美文网首页
视频教你地震断层识别和专业展示全套方法(附程序)

视频教你地震断层识别和专业展示全套方法(附程序)

作者: 科技州与数据州 | 来源:发表于2023-03-24 17:01 被阅读0次

各位同学,大家好。前期科技州推出了课程《实际资料断层识别实战——教你用Python自动识别地震断层》受到大家广泛关注。但是有些同学提出希望讲讲将断层识别结果在petrel中进行专业的展示。今天我们就通过视频讲解,全流程给大家演示断层识别和展示的方法。

01 环境的配置

1.基本程序环境

我们的课程主要都是在Python环境下运行的,所以大家需要配置Python相关运行环境。我们常用Anacoda 的Spider作为集成编辑器。这款软件既是免费软件,也具有较好的调试功能。

另外我们的课程涉及深度学习的内容比较多,我们会用到tensorflow和keras,这也请大家自行安装。

Petrel是专业处理地质数据的软件,在课程中我们用来展示断层结果。

以下是我们推荐的程序和引用库版本。

Python 3.8

keras 2.3.1

tensorflow-gpu 2.2.0

Anaconda 3 Spyder 4.1.5

petrel 2016

另外特别提示:

强烈建议大家配置具有独立NVIDIA显卡的运行环境,并装好CUDA驱动和Python的tensorflow-gpu版本,充分使用GPU加速计算。

后续我们课程中有关深度学习的处理,特别是断层和储层的处理,使用GPU加速比CPU会快很多个数量级。

2.本课程用到的引用库

这本次课程中,我们还会用到几个引用库。

一是matplotlib库,主要功能是用于绘制各种图像的模块,用于数据的分析和展示。

安装方法:pip install matplotlib

二是numpy库

NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。在本课程中主要用来做地震数组的运算。

安装方法:pip install numpy

三是obspy库

obspy 是个开源的处理地震数据的 Python框架。它为普通的文件格式提供解析器,客户端用来访问数据中心,提供地震信号处理日程,允许操作地震时间序列。我们教程中用来读取地震数据。

安装方法:pip install obspy

四是segyio库

segyio是一个小型的处理地震segy数据的程序库,带有python和matlab的语言绑定,能够方便地读写文件头信息、道头信息和地震数据。我们教程中用来保存地震数据。

安装方法:pip install segyio

五是tqdm库

Tqdm是 Python 进度条库,可以在 Python长循环中添加一个进度提示信息。

安装方法:pip install tqdm

本次课程这几个引用库的推荐版本是:

matplotlib 3.7.1

numpy 1.21.0

obspy 1.2.2

segyio 1.9.6

tqdm 4.50.2

02 程序运行

1.程序结构

本次课程运行的结构如图所示:

data文件夹存放了地震数据,其中pred.segy是我们把断层识别结果pred.dat重新制作的segy文件,seismic.sgy是原始的地震资料。

dataset文件夹存放了中间结果,其中pred.dat是断层识别结果文件,seis.dat是将原始地震资料转换后的二进制数据体。

model文件夹存放了模型文件,其中

model_lr_1.0e-04_25_epochs.h5是要加载的模型权重文件,SegNet3D.json是模型结构文件。

接下来就是我们要运行的程序文件。1.seismicTool.py是数据处理工具程序,实现了地震数据尺寸的计算,断层结果保存为segy数据体等功能。2.predictionDemo.py是主程序文件,实现了地震资料的断层识别,断层结果展示等功能。prediction.py是一个调用程序,实现了断层识别和结果保存等功能。

2.程序运行

接下来就详细讲解整个程序运行和操作的过程。

(1)数据尺寸检测

三维地震资料的尺寸是后续工作开展的前提条件,由于各种原因,我们可能只有三维资料,而不知道它的三维尺寸。因为三维数据体的复杂性,数据尺寸的计算比二维数据要困难些,因此我们提供了两种方法供大家参考。

一是使用seismicTool.py程序。我们通过obspy函数库来读取数据体地震道头,程序的num_inline,num_xline,num_sample参数就是地震体的inline,crossline和timeline参数。不过如果地震数据的道头有问题,程序可能无法正确识别。比如这里的num_inline和num_xline就计算不正确,只有num_sample计算正确。

二是使用petrel软件。右击地震数据,选择Statistics。其中Number of inlines为 inline,Number of crosslines为xline,Number of samples per trace为timeline。这样就能快速获得三维尺寸。

(2)断层识别

我们打开predictionDemo.py程序。

首先导入训练好的模型。

然后填好地震数据三维尺寸。

运行pred_segyAllMan函数后,就会自动识别地震体的断层,并把结果保存在dataset文件夹。

这里视处理地震体的大小不同,处理速度会显著的变化。一般来说,对于纯CPU,内存8G以内的运行环境,最好处理尺寸在400*400*400以内,否则可能在运行过程中耗尽内存资源而崩溃。

断层识别完成后,可以加载识别结果进行显示。

我们既可以画出剖面与断层的左右显示的两张图片,也可以画出剖面与断层重叠的一张图片。

不过这样的显示结果在工程应用中还不够灵活和专业,更好的显示效果需要在petrel软件中实现。

(3)结果在petrel显示

在petrel加载数据之前,我们需要先将断层结果保存为segy数据体。

我们使用程序seismiceTool.py“断层结果保存为SEGY数据体”部分。将生成的pred.segy断层结果保存为segy数据格式。

这里程序的原理是利用原始地震数据的道头信息,复制到新的断层数据体中,方便petrel软件加载数据。

接下来就进入到petrel软件中来操作了。

我们首先在petrel工程中加载原始三维地震资料。选择survey 1,选择Import (on selection),加载三维数据资料。如果弹出对话框,选择 continue spatially,在Input data对话框点击OK。

现在显示3D地震图像。在home选项窗口,点击Window,选择3D window。勾选inline 和 Xline后,就显示出了3D地震资料。还可以添加timeline维度,选择文件,鼠标右键选择insert time slice intersection。

为了后续断层显示明显一些,需要把地震资料的颜色调为灰白色。选择文件,选择settings,选择colors,在Global color选项框中选择white grey black。

接下来就是加载断层结果了。选择survey 1,选择Import (on selection),加载断层数据。如果弹出对话框,在Input data对话框点击OK。也可以添加断层体的time slice显示。

这时候勾选断层结果与地震资料融合显示,效果比较差。我们需要调整断层结果的颜色。点击断层资料,鼠标右键选择settings,点击colors,先选择Global 的窗口,选择white red的配色,然后再点击Local的选项(这样做的好处是后面修改不会影响软件的默认配置)。

现在我们需要不断调节调色板,直到符合我们满意的效果。首先把最底部色标调到最左边,这样就实现了白色透明的效果,也就把断层线清晰的显示了出来。其次,如果我们希望断层线少一些,细一些,就可以点击中间一个色标,拖动到最左边,进行上下调节,并点击apply按钮来看效果。当达到我们满意的结果后,就可以点击OK按钮。

petrel显示效果多样,如果你想调节三维的显示效果,可以通过鼠标自由的移动显示角度。如果你想调节不同的inline,xline,timeline的位置,可以这样操作:先不显示断层的结果,然后点击工具栏中的“manipulate plane”工具,就可以随意拖动不同维度的剖面。

然后再加载断层结果,这时发现断层和资料是错位的。我们需要点击顶部的工具“players”,选择“intersection player”工具,点击不同维度的断层剖面,调节数值与地震资料匹配。这样就达到了比较好的效果。

如果你想只显示一个剖面的情况,比如显示timeline的断层结果。就可以把地震资料和断层结果的inline和xline维度反向勾选让其不显示,然后再调整到一个满意的角度来显示。

通过以上的讲解,相信大家已经掌握了了断层识别和显示的全部过程,将有效帮助大家后续科研或工程的应用。如果大家对程序感兴趣,请联系我交流讨论。

我是科技州,用心分享智能地震勘探干货,带你一同进步。再见。

相关阅读:

智能时代已到 助你勇攀储层勘探高峰

如何在地震勘探研究更上一层楼?带你一起深度学习识别断层

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

深度学习地震去噪实战:教你如何从0开启地震深度学习科研之路

相关文章

网友评论

      本文标题:视频教你地震断层识别和专业展示全套方法(附程序)

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