Skip to main content

An interactive 3D visualization tool mainly designed for seismic data

Project description

Seismic-Canvas: interactive 3D seismic visualization tool

Seismic-Canvas is an interactive 3D visualization tool mainly designed for seismic data, at the same time also can be useful for any 3D data. This tool is based on VisPy, a Python library that leverages the computational power of GPUs through the OpenGL library.

Install

Simply run the following command to install from PyPI:

pip install seismic_canvas

Usage

Slicing

Add any number of slices to view the slices of your volume using seismic_canvas.volume_slices function. For example:

visual_nodes = volume_slices(volume,
  x_pos=[370, 170, 570, 770], y_pos=810, z_pos=120, clim=(-2, 2))
Slicing

Camera

Left click and drag to rotate the camera angle; right click and drag, or scroll mouse wheel, to zoom in and out. Hold Shift key, left click and drag to pan move. Press Space key to return to the initial view. Press S key to save a screenshot PNG file at any time. Press Esc key to close the window.

Camera

Dragging

Most elements are draggable. Hold Ctrl key, the selectable visual nodes will be highlighted when your mouse hovers over them; left click and drag to move the highlighted visual node. The volume slices will update their contents in real-time during dragging. You can also press D key to toggle the dragging mode on/off.

Dragging

MemMap

Compatible to numpy memory map. For example, reading in a binary data file contatining a 3D seismic volume with size 210x920x825 (608MB), Seismic-Canvas takes ~700MB RAM (Windows PyQt5 backend).

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

Instead, reading in the same file using numpy memory map, Seismic-Canvas takes only ~82MB RAM (Windows PyQt5 backend), and significantly reduces the launch time.

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

Reproducibility

When you drag and arrange everything on the canvas, press A key to print out a collection of useful parameters that can be used to reproduce the current canvas setting.

Reproducibility

Dependencies

Seismic-Canvas depends on numpy and vispy Python libraries. The vispy library also depends on one of these backends to display a window on your OS: PyQt4/PySide, PyQt5/PySide2, glfw, pyglet, SDL, or wx. We recommend PyQt5 as it is the easiest to install and most compatible on different platforms.

It is also recommended to install PyOpenGL and matplotlib; they are optinal libraries that can enhance the visualization in various ways. For example, PyOpenGL allows for nice antialiased 3D line objects, and matplotlib helps render a much more useful colorbar than the vispy stock colorbar object.

Demo

See simple_demo.py for a simple demo. vispy/util/fetching.py will automatically download this example data.

Simple Demo

Also try osv_F3_demo.py to check out the results from this research: xinwucwp/osv. You can download all the binary data volumes from this Google Drive link.

Planarity Fault Semblance Fault Strike Angle

Using 2D markers to visualize a randomly generated well logs.

Voting Scores

Using triangle mesh surfaces to visualize FaultSkins.

Fault Surfaces

A dark themed example with a z-axis-up axis legend:

Fault Likelihood

To-Do List

  • Well log visualization
  • Replace current colorbar with Matplotlib rendered colorbar
  • Draw lines where slice planes intersect

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seismic_canvas-0.1.0.tar.gz (26.3 MB view details)

Uploaded Source

Built Distribution

seismic_canvas-0.1.0-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

Details for the file seismic_canvas-0.1.0.tar.gz.

File metadata

  • Download URL: seismic_canvas-0.1.0.tar.gz
  • Upload date:
  • Size: 26.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.3

File hashes

Hashes for seismic_canvas-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dfc7a3708e084580f4ad89f5db68ac860c553df304d2e18ca8b5e59088f2b7a8
MD5 06e750f110e6842f64cc28a607dcad60
BLAKE2b-256 c140994a92789e2a431a994979cb62fd8901448daf2535a09956380c9b9cd370

See more details on using hashes here.

File details

Details for the file seismic_canvas-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: seismic_canvas-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.3

File hashes

Hashes for seismic_canvas-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3ee3421402bb9f44ce51df09de12283000243b72d9b94516899419865740326a
MD5 6ec8ec7c41667843e1382a34d097d1cf
BLAKE2b-256 fad50ab6891be18d3be1560d8be1ac308f3bae43eb07bcaa40150c10470ca1ef

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page