龙空技术网

怎样漂亮地显示二维和三维地震数据?(含程序)

科技州与数据州 227

前言:

目前姐妹们对“pythonvtk教程”大致比较看重,朋友们都想要了解一些“pythonvtk教程”的相关知识。那么小编也在网上收集了一些关于“pythonvtk教程””的相关文章,希望你们能喜欢,兄弟们快快来了解一下吧!

当地震数据完成了读取和处理之后,为了直观地展示输出结果,可视化是重要的一个步骤。今天的课程利用Python强大的可视化能力,给大家讲解怎样做出漂亮的可视化效果。

01 二维地震可视化

在Python中画图,我们常用matplotlib软件包。下面我们直接给大家讲解可视化的关键程序。

这里有几个关键参数要讲解一下:

一是色卡的选择。调节参数cmap,可以带来不同的视觉效果。

比如使用plt.cm.seismic调色,可以看到剖面丰富的细节。这种调试常常在储层研究中使用。

如果使用plt.cm.bone或Greys调色,则显示了剖面的走向和脉络。这种调色常常在断层研究中使用。

二是颜色亮度的调节。通过调节vmin和vmax两个配对参数的数值,可以调节整个图像的亮度。如果没有指定,程序会默认使用输入数组的最小值和最大值作为亮度范围。因为地震数据常常取值范围的差别非常大,数据如果没有归一化,可能会造成显示效果较差。比如上面这个地震数据,如果不指定亮度范围,效果看起来是这样的:

02 三维地震可视化

接下来讲讲三维地震数据的可视化。

首先我们可以展示这个三维地震体的二维剖面效果,比如inline设置为100。代码和二维显示没啥区别。

效果就是这样的:

那如果有同学不想看平面效果,想看立体三维的效果,还想自由地旋转和拖动剖面。这用Python怎么实现呢?

要实现这个效果,使用matplotlib是无法实现的,需要使用专业3D可视化工具:Mayavi。Mayavi是一个交互式三维绘图软件包。matplotlib也可以进行简单的三维打印,但Mayavi依赖于更强大的引擎(VTK),更适合显示大型或复杂的数据。

Mayavi可以实现很多惊艳的效果,比如下面这些:

这个软件包很容易安装,只要装上最新版本即可。记住装之前要先装好PyQt4。

那为了实现我们的三维地震数据显示,关键的代码是这样的:

首先对数据进行一下归一化,这样保证了显示效果会比较正常。然后在三维建模部分,依次对x、y、z三个维度去画地震剖面图。

这样的程序运行后,就会弹出一个窗口,不仅显示了立体的三维剖面效果,还可以用鼠标选中剖面,随意拖动,旋转,伴随着拖动,剖面会随之变化,非常好用。

Mayavi 的功能非常强大,不仅可以展示三个剖面建立的立体模型,对于单个剖面,也能显示出立体的效果。比如下面这个剖面:

主要的代码是这样写的:

更多酷炫的显示效果,各位同学还可以自行研究。

今天的课程就到这里。这节课给大家讲解了怎样画出漂亮的二维和三维地震数据。详细程序可以联系我获取,欢迎关注我交流,再见。

扩展阅读:如何从0开启地震深度学习科研之路

标签: #pythonvtk教程