GemPy is a Python-based, open-source library for implicitly generating 3D structural geological models. It is aimed to provide a straightforward approach to creating models of complex scenarios and is capable of including many different features such as:
Finite and infinite faults
Unconformities, erosive contacts and onlaps
Surface topography and lithological outcrops
How It Works
The implicit nature of GemPy's core algrotihm allows the user to automatically generate complex 3D structural geological models through the interpolation of input data in the form of:
Surface contact points: 3D coordinates of points marking the boundaries between different features (e.g. layer interfaces, fault planes, unconformities).
Orientation measurements: Orientation of the poles perpendicular to the dipping of surfaces at any point in the 3D space.
GemPy itself offers direct visualization of 2D model sections via matplotlib and in full, interactive 3D using the Visualization Toolkit (VTK). This allows for real-time manipulation data and the 3D model.
Models can also easily be exported, for example as NumPy or VTK files for further visualization and processing in other software such as ParaView.
With its core based on the numerical computation library Theano, GemPy is designed to support an embedding of geological modeling in probabilistic frameworks. For this, we recommend the use of PyMC3, a library for probabilistic programming in Python.
The stochastic perspective allows for a better inclusion and examination of random variables via methods such as Monte Carlo simulation and Bayesian inference.
A perfectly true representation of subsurface geology is virtually unattainable. That is why it is important to think about model uncertainties.
Using GemPy in a probabilistic framework, you can not only quantify such uncertainties via Monte Carlo simulation, but also to reduce them by incorporating secondary information via Bayesian inference and advanced MCMC sampling. You can even visualize probability fields and model uncertainties in 2D and 3D.
GemPy can help you better understand the quality of your model and the value of additional information.
GemPy includes a module for visualizing geological models in an augmented reality environment using real sand. The topography of the sand surface is scanned via a Kinect, and an according outcrop of the GemPy-computed model is then projected back onto the sand. Best of all: The GemPy is fast enough to update the projection in real-time while you reshape the sand with your own hands!
So go ahead, be creative and explore your model!
Build mountains, carve valleys, find anticlines and trace fault surfaces! The AR Sandbox is perfect for public presentation and educational purposes.
We believe in open source!
All of GemPy's code is open and free to use. You can easily customize or extend it according to your own needs. We encourage you to be an active member in our open-source community by reporting errors, giving us feedback and contributing your own modules to the GemPy library!