深度学习断层实战(五)——预测结果定性分析(附程序)

地震断层显示了地下地层的运行情况,对地震勘探,油气藏预测起着重要的参考的作用。断层可以显示地震带的走向,也可以在油气运移中起到通道的作用,对油气形成起到圈闭的作用。因此通过图形化界面,清晰显示出剖面的断层,成为了地震勘探研究中不可或缺的部分。

01 断层数据准备

我们使用程序自动生成了三维地震数据体和对应的断层标识,包括了20对地震数据体和对应的断层标识。每个数据体的尺寸是128*128*128。数据如图所示:

对应的断层标识数据是这样的:

其中1标识了在剖面中断层的位置。所有的剖面集成就形成了体数据。

我们使用Python程序来实现了断层的显示。

我们编写了load_data_synth函数来加载所有的数据体和对应的断层体。

这段程序主要是使用np.fromfile函数来读取二进制地震数据。

这样就加载了地震数据和断层数据:

02 在二维剖面显示断层

首先,我们编写了show_image_synth函数来显示断层。

这段函数的要点是通过plt.imshow来叠加显示图片。alpha控制这透明度。

在断层处理方面,我们又编写了create_img_alpha函数。

这里对断层的数值进行了条件约束,让阈值小于0.5的断层值为0,大于0.5的断层值为1。这段程序是针对预测的断层结果进行处理,预测断层结果是一个0-1的概率,因此需要条件约束。

接下来是对断层线的颜色进行赋值,通过三个通道进行赋值,可以让断层线成为红色、黄色、蓝色等不同颜色。

显示出来的断层效果就是这样的。通过断层在地震剖面上叠加显示,可以清楚地看出剖面上断层的位置和走向。

03 在三维地震体中显示断层

在二维剖面显示断层比较简单,就是inshow函数显示。但是要显示三维数据难度就比较大了。

我们选择了专业显示三维图像的mayavi来显示三维地震体断层。

首先要对数据体进行归一化处理。

然后要加载数据体,并进行位置标定。

最后就是叠加显示三维地震体和断层体。

这里有几个需要注意的地方:

1.为了显示透明的叠加效果,需要配置transparent和opacity参数。

2.如果想调整显示界面,可以调整colormap中的参数。不过有些显示没有透明效果,就不能叠加显示图形。

3. mayavi显示对计算机性能要求较高,有时候运行速度较慢。

上图是运行的效果,可以让大家直观观察三维数据体的不同方向断层分布情况,显示的内容比二维数据更加的丰富。

其实三维数据显示不仅仅可以在Python环境可以做,也可以在其它环境来做。

这是在Jython环境中显示的效果:

这是在Petrel软件中显示的效果:

以上就是这次课程的内容。我们给大家讲解了可视化显示二维和三维地震体断层的方法,相信能够帮助大家深入研究地震勘探和地质构造。如果对程序感兴趣可以联系我交流。再见。

扩展阅读:

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

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

你可能感兴趣的:(深度学习断层实战(五)——预测结果定性分析(附程序))