相关文章推荐
威武的南瓜  ·  [Android]StateMachine介 ...·  5 月前    · 
威武的南瓜  ·  Top 5 typeorm Code ...·  11 月前    · 
帅气的红茶  ·  清华大学出版社·  2 小时前    · 
阳刚的凉面  ·  Python Web ...·  2 小时前    · 
傻傻的馒头  ·  利用Pycharm + ...·  2 小时前    · 
首发于 科技州

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


当地震数据完成了读取和处理之后,为了直观地展示输出结果,可视化是重要的一个步骤。今天的课程利用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开启地震深度学习科研之路

发布于 2021-06-04 09:01

文章被以下专栏收录

 
推荐文章