一个主要为地震数据设计的交互式三维可视化工具

seismic-canvas的Python项目详细描述


地震画布:交互式三维地震可视化工具

地震画布是一个交互式的三维可视化工具,主要针对地震数据设计,同时也可以对任何三维数据有用。 这个工具基于VisPy,这是一个Python库,通过^{str1}$OpenGL库利用gpu的计算能力。在

安装

只需运行以下命令即可从PyPI安装:

pip install seismic_canvas

使用

切片

使用seismic_canvas.volume_slices函数添加任意数量的切片以查看卷的切片。例如:

^{pr2}$

摄像机

左键单击并拖动可旋转相机角度;右键单击并拖动或滚动鼠标滚轮可放大和缩小。按住Shift键,左键单击并拖动以平移移动。按Space键返回初始视图。随时按S键保存屏幕截图PNG文件。按Esc键关闭窗口。在

拖动

大多数元素是可拖动的。按住Ctrl键,当鼠标悬停在可选择的可视节点上时,它们将高亮显示;左键单击并拖动以移动高亮显示的可视节点。卷切片将在拖动期间实时更新其内容。也可以按D键打开/关闭拖动模式。在

地图3>

numpy memory map兼容。例如,读取包含大小为210x920x825(608MB)的三维地震卷的二进制数据文件时,地震画布需要大约700MB的RAM(Windows PyQt5后端)。在

volume=np.fromfile('./CostaRica_seismic.dat','>f4').reshape(825,920,210)

相反,使用numpy内存映射读取同一个文件,Seismic Canvas只需要约82MB的RAM(windowspyqt5后端),并大大缩短了启动时间。在

volume=np.memmap('./CostaRica_seismic.dat',dtype='>f4',mode='r',shape=(825,920,210))

再现性

当您拖动并排列画布上的所有内容时,按A键打印出可用于重现当前画布设置的有用参数集合。在

依赖关系

地震画布依赖于numpyvispyPython库。 vispy库还依赖于这些后端之一在操作系统上显示窗口:PyQt4/PySide、PyQt5/PySide2、glfw、pyglet、SDL或wx。 我们建议使用PyQt5,因为它最容易安装,并且在不同的平台上最兼容。在

还建议安装PyOpenGLmatplotlib;它们是可选库,可以以各种方式增强可视化效果。{/str{/str}对于3D对象,{/str}比open-str}str}更有用。在

演示

请参见^{}获取一个简单的演示。^{}将自动下载此示例数据。在

也可以试试^{}来看看这项研究的结果:xinwucwp/osv。您可以从此Google Drive link下载所有二进制数据卷。在

使用二维标记可视化随机生成的测井曲线。在

使用三角形网格曲面可视化FaultSkins

一个带有z轴-上方向轴图例的深色主题示例:

待办事项列表

  • [x] 测井可视化
  • [x] 将当前colorbar替换为Matplotlib渲染的colorbar
  • []在切片平面相交处绘制直线

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在保存信息时切换类的“标准”方式是什么?   java JConsole,用于在JBoss AS7独立模式下远程访问JMX   Maven中未识别java CMD   java做。。虽然带开关菜单   java Javax内容不可访问   从cmd验证日期的java方法   安卓应用程序正在缓存java JSON   java正在尝试使用用户输入的参数创建随机数生成器   java Prompt=在keydove和Spring安全Oauth2之间登录   http没有在java中接收的字节数   在命令行上运行java应用程序(JAR文件)的命令行有我不理解的错误   我需要重命名我在java中生成的json对象的键   java Eclipse重命名/重构会影响javadoc上的变量引用吗?   Java:寻找一个库来读取LDAP数据   包含子实体的参数和数据表的java详细信息