/omfvtk

3D visualization for the Open Mining Format (omf)

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

OMF-VTK

Documentation Status PyPI Build Status GitHub

A VTK interface for the Open Mining Format package (omf) providing Python 3D visualization.

Installation

Installation is simply:

pip install omfvtk

All necessary dependencies will be installed alongside omfvtk. Please note that this package heavily leverages the vtki package.

Example Use

Be sure to check out the Example Notebook that demos omfvtk! Here's an example using the sample data hosted in the OMF repository.

import vtki
import omfvtk

project = omfvtk.load_project('test_file.omf')
project

Table Representation

Once the data is loaded as a vtki.MultiBlock dataset from omfvtk, then that object can be directly used for interactive 3D visualization from vtki:

project.plot(notebook=False)

Or an interactive scene can be created and manipulated to create a compelling figure directly in a Jupyter notebook. First, grab the elements from the project:

# Grab a few elements of interest and plot em up!
vol = project['Block Model']
assay = project['wolfpass_WP_assay']
topo = project['Topography']
dacite = project['Dacite']

Then apply a filtering tool from vtki to the volumetric data:

thresher = vtki.Threshold(vol, display_params={'show_edges':False})
IPython Thresholding Tool

Then you can put it all in one environment!

# Grab the active plotting window
#  from the thresher tool
p = thresher.plotter
# Add our datasets
p.add_mesh(topo, cmap='gist_earth', show_edges=False, opacity=0.5)
p.add_mesh(assay, color='blue', line_width=3)
p.add_mesh(dacite, show_edges=False, color='yellow', opacity=0.6)
# Add the bounds axis
p.add_bounds_axes()
Interactive Rendering

And once you like what the render view displays, you can save a screenshot:

p.screenshot('wolfpass.png')

Wolf Pass Screenshot