深度学习断层实战(五)——预测结果定性分析(附程序)
地震断层显示了地下地层的运行情况,对地震勘探,油气藏预测起着重要的参考的作用。断层可以显示地震带的走向,也可以在油气运移中起到通道的作用,对油气形成起到圈闭的作用。因此通过图形化界面,清晰显示出剖面的断层,成为了地震勘探研究中不可或缺的部分。
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软件中显示的效果:
以上就是这次课程的内容。我们给大家讲解了可视化显示二维和三维地震体断层的方法,相信能够帮助大家深入研究地震勘探和地质构造。如果对程序感兴趣可以联系我交流。再见。
扩展阅读: