美文网首页
怎样保存SEGY数据供工程使用?(含程序)

怎样保存SEGY数据供工程使用?(含程序)

作者: 科技州与数据州 | 来源:发表于2021-07-15 13:39 被阅读0次

    在《地震数据处理实战入门》的第五课《怎样修改保存二维和三维地震数据?》中,给大家详细讲解了怎样保存SEGY数据。很多同学使用Python程序成功构建了新的SEGY数据,但是将数据投入工程项目使用时(如做高分辨率、断层识别等),出现了问题。

    比如在商业地质勘探软件Petrel中,导入我们新建的数据资料,报了这样的错误:

    这是什么原因呢?

    01 从SEGY文件结构找原因。

    SEGY地震数据一般以地震道为单位进行组织,采用SEG-Y文件格式存储。SEG-Y格式是由SEG (Society of Exploration Geophysicists)提出的标准磁带数据格式之一,它是石油勘探行业地震数据的最为普遍的格式之一。

    SEGY的数据结构比较复杂,详细介绍可以参考另外一门课《深度学习地震去噪实战》的第4节课《地震仿真噪声实战》。这里简单介绍一下:标准SEG-Y文件一般包括三部分。第一部分是EBCDIC卷头说明。第二部分是二进制文件头。第三部分是实际的地震道。

    回顾一下当时保存地震数据的程序:

    可以看到,在上面的程序中,新保存的地震数据里面没有卷头说明和文件头的信息,只保存了地震道的数据。这样的数据使用简单的画图程序打开没有问题,但是用到专业的处理软件做后面复杂的工作就有问题了。

    02 一种简单的解决方案。

    找到了问题原因,要解决起来就有了思路,就是要构造新数据的卷头说明和文件头信息。

    如果大家只是对原始数据做了数值上的处理,没有改变数据尺寸,这还比较好办。就是把原始数据的卷头说明和文件头传给新数据即可。主要程序可以这样写:

    这里有几个点要说明:一是专业软件读取地震头时主要关注的是数据的尺寸,所以如果没有对数据尺寸进行修改,就可以直接复制原始数据的卷头说明和文件头信息。二是src.text[0]读出了原始数据的卷头说明。三是src.header读出了所有地震道的文件头信息。

    03 更复杂的解决方案。

    如果同学们对原始数据的尺寸也进行了改变(比如进行了切割),那就需要下一番功夫来修改卷头说明和文件头信息了。

    首先是修改卷头说明。

    我们可以把原始卷头下载到文本中进行修改,然后再传递给新的地震数据。

    比如这里你可能改变了地震道的数量和抽样点数量,就可以自行修改。

    其次是修改地震道的文件头。

    红色框部分我们首先复制了对应地震道文件头的信息,然后修改了抽样点数值。这里的115对应了抽样点字段。

    详细的操作和说明建议大家看看这个网站:

    https://segyio.readthedocs.io/en/latest/segyio.html。

    04 顺带讲解怎样将SEGY保存为MAT。

    很多同学在问,想把SEGY数据保存为MAT格式,方便在Matlab中处理。这里直接给大家看程序。

    使用scipy软件库,就可以把二进制数据保存为mat格式数据。这里要注意的是保存为字典的数据结构。

    在matlab读取mat就用这样的程序:

    以上就是今天的内容。今天深入讲解了SEGY数据的一些保存方法,掌握了这些知识,会非常有助于大家开展地震数据处理深入的研究。如果你有问题讨论或希望获取数据或程序都欢迎联系我交流。下节课再见。

    扩展阅读:

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

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

    相关文章

      网友评论

          本文标题:怎样保存SEGY数据供工程使用?(含程序)

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