【可视化】地震数据体Segy文件inline、xline道数据计算获取
''' { "CDPMax": 792, "CDPMin": 58, "LineMax": 796, "LineMin": 510, "bps": 4, "dsf": 1, "dsfDesc": "IBM Float", "dt": 4000, "ns": 1252, "ntraces": 210945, "paramIndex": "[[21:24],[222:224]]", "segyType": 3 } ''' ''' inline和xline数据提取 1. 获取指定inline对应道行列的数据,比如inlineIndex在区间(LineMin,LineMax) 2. LineMax - LineMin + 1 = 列数量 3. CDPMax - CDPMin + 1 = 行数量 4. (行 + 1 ) * (列 + 1) = 总道数 5. inlineIndex 列上的道间距计算: ----列平移X:inlineIndex - LineMin ----起始道:(inlineIndex - LineMin) * 行数量 + 1 ----终止道:(inlineIndex - LineMin + 1) * 行数量 6. xlineIndex 行上的道间距数据计算,不连续需要逐个道提取 ---行平移Y:xlineIndex - CDPMin ---起始道:第一列上的数据,从CDPMin到CDPMax,即xlineIndex - CDPMin + 1起算 ---往右横向增加行数量,直到最后一列CDPMax ''' ''' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * '''
#!/usr/bin/env python # testsegy.py import sys import os import json from time import * sys.path.append('../') # fileName = "D:/3000_Seismic/Data/2D-3DData/2D/2d.segy" # fileName = "D:/3000_Seismic/Data/2D-3DData/2D/shotgather.sgy" # fileName = "D:/3000_Seismic/Data/2D-3DData/2D/1.sgy" # fileName = "D:/3000_Seismic/Data/2D-3DData/2D/A1.sgy" # fileName = "D:/3000_Seismic/Data/2D-3DData/2D/L3.sgy" # fileName = "D:/3000_Seismic/Data/2D-3DData/2D/lineE.sgy" # fileName = "D:/3000_Seismic/Data/2D-3DData/2D/seismic_marmousi-ii.segy" # fileName = "D:/3000_Seismic/Data/2D-3DData/2D/shot.segy" # fileName = "D:/3000_Seismic/Data/2D-3DData/2D/bigEndianIEEEFloat.sgy" # fileName = "D:/3000_Seismic/Data/2D-3DData/2D/example_for_segy.segy" fileName = "D:/3000_Seismic/Data/2D-3DData/3D/Kerry3D.segy" # fileName = "D:/3000_Seismic/Data/2D-3DData/3D/Sooner3D.sgy" # fileName = "D:/3000_Seismic/Data/2D-3DData/3D/seismic850_1230_3D.sgy" ######################################################################### ######################################################################### # inlineIndex = 510 # inlinePosTrace = getInlineTraceIndexArray(fileName,inlineIndex,SH) # print(len(inlinePosTrace)) # print(inlinePosTrace) # inlineIndex = 796 # inlinePosTrace = getInlineTraceIndexArray(fileName,inlineIndex,SH) # print(len(inlinePosTrace)) # print(inlinePosTrace) # xlineIndex = 58 # xlinePosTrace = getXlineTraceIndexArray(fileName,xlineIndex,SH) # print(len(xlinePosTrace)) # print(xlinePosTrace) # xlineIndex = 792 # xlinePosTrace = getXlineTraceIndexArray(fileName,xlineIndex,SH) # print(len(xlinePosTrace)) # print(xlinePosTrace) ######################################################################### begin_time = time() inlineIndex = 510 inlinePosTrace = getSegyTraceDataByInlineIndex(fileName,inlineIndex) print(len(inlinePosTrace)) print(len(inlinePosTrace[0])) inlineIndex = 796 inlinePosTrace = getSegyTraceDataByInlineIndex(fileName,inlineIndex) print(len(inlinePosTrace)) print(len(inlinePosTrace[0])) xlineIndex = 58 xlinePosTrace = getSegyTraceDataByXlineIndex(fileName,xlineIndex) print(len(xlinePosTrace)) print(len(xlinePosTrace[0])) xlineIndex = 792 xlinePosTrace = getSegyTraceDataByXlineIndex(fileName,xlineIndex) print(len(xlinePosTrace)) print(len(xlinePosTrace[0])) end_time = time() run_time = end_time-begin_time print ('该程序运行时间(s):',run_time)
博客地址: http://www.cnblogs.com/defineconst/
博客版权: 本文以学习、研究和分享为主,欢迎转载和各类爬虫,但必须在文章页面明显位置给出原文链接。 如果文中有不妥或者错误的地方还望高手的您指出,以免误人子弟。如果您有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。
博客版权: 本文以学习、研究和分享为主,欢迎转载和各类爬虫,但必须在文章页面明显位置给出原文链接。 如果文中有不妥或者错误的地方还望高手的您指出,以免误人子弟。如果您有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库