美文网首页
「课程更新」——教你一种新的读取三维数据的方法

「课程更新」——教你一种新的读取三维数据的方法

作者: 科技州与数据州 | 来源:发表于2021-07-04 14:37 被阅读0次

    在实际环境中,地震勘探产生的都是三维数据。三维地震数据的读取一直是一个比较困难的课题,不仅因为数据容量较大,还有数据结构复杂,造成了参数设置复杂。

    01 课程回顾

    在课程《地震数据处理实战入门》的第二课《怎样读取二维和三维地震数据?》,我给大家讲解了怎样使用segyio软件包读取三维数据的方法。

    这个方法的主要原理是:使用程序打印出地震道头的信息,从中找到inline和crossline的数据范围,然后手动计算数值。从而确定了三维数据中的x, y 两个维度的参数。

    这个方法有个最大的问题是:每次要人为去寻找和计算参数,这样效率不是很低吗?

    有没有程序自动查找参数,然后自动计算出来的方法呢?还真有。

    02 全自动读取三维数据的方法

    我们希望程序直接读出三维数据的x, y, z,这个想法怎样实现呢?

    这里我们使用一个F3_seismic.sgy数据,这是一个比较规范的荷兰的数据。

    首先是加载和读出整体的数据。

    数据就是这样的:

    这里data3D数组的第二维数值462就是三维数据体的z值。

    然后需要读出inline和crossline的序列。

    看起来像是这样的:

    最后要计算出inline和crossline的跨度,即三维中最重要的x, y的数值。

    这样就算出了x和y的结果:

    这里有一个情况要特别说明,这个自动化计算三维体尺寸的方法局限性是比较大的。这里的关键就是三维体的道头数据要比较规范,程序能够正确地读出inline和crossline。否则,用程序读出的数值就会出错。这也是为啥上面例子要换一个数据体,而用Kerry3D.segy数据,程序就不能正确识别,读出的x和y都为1。

    简单来总结,要获取三维体尺寸的方法可以使用以下几招:

    首先,使用自动化程序读取尺寸。

    其次,如果上述方法失败,可以考虑程序读出segy道头,人工进行分析和赋值。

    再次,如果连segy道头信息也没有,可以考虑使用地震软件如petrel等进行扫描来识别尺寸。

    03 其实还有其它读取SEGY的软件包

    读取地震数据的软件包不只segyio一个,这里再给大家推出一个——obspy。

    obspy是一个针对地震领域开发的python库。其目的是使地震学软件包和工作流程的发展更为便利,也利用这些功能为地震学进入更大的科学python生态系统建桥铺路。obspy对地震学界内通常使用的几乎所有文件格式提供读写支持,它取代了大量的文件格式转换工具;在这样广泛的输入/输出支持的基础上,在处理程序时使用地震学家之间交流的专业术语。obspy整合了获取世界范围内地震数据中心所发布数据的方法,集成了大量地震学界所用的专有库,并且使用一个简单易用的接口统一调用所有功能。

    具体到读取三维地震数据的案例,我们怎样来操作呢?

    直接给大家看看关键的代码:

    其实原理和segyio是一样的。

    相关的内容我已经更新到了《怎样读取二维和三维地震数据?》图文和《地震数据处理实战入门》内容,完整的程序可以查看对应的图文获取。今天的课程就到这里,以后会持续更新和完善课程内容,再见。

    扩展阅读:

    怎样轻松入门地震勘探研究:先从地震数据处理开始

    如何从0开启地震深度学习科研之路

    相关文章

      网友评论

          本文标题:「课程更新」——教你一种新的读取三维数据的方法

          本文链接:https://www.haomeiwen.com/subject/gggmultx.html