/GemPyTF

a TensorFlow extension of GemPy.

Primary LanguageJupyter NotebookEuropean Union Public License 1.2EUPL-1.2

GemPyTF

Overview

This is a TensorFlow extension of GemPy to develop 3D subsurface model while keep tracking the derivatives of the parameters.

Why TensorFlow

GemPy is the most popular Python-based 3-D structural geological modeling open-source software now, which allows the implicit (i.e. automatic) creation of complex geological models from interface and orientation data. We all love GemPy, however, the installation of Theano sometime could be frustrating. Therefore this project aims to extend the backend of GemPy with the modern machine learning package TensorFlow for Automatic Differentiation (AD).

Try the simple demos in colab: Open In Colab

Installation and dependency

The current version is depend on an older version of GemPy-'2.1.1'

TODO: Test and wrap this in a single installation file as e.g. requirements.txt

  • create conda environment conda create --name gempytf python==3.7
  • conda activate gempytf
  • git clone https://github.com/GeorgeLiang3/GemPyTF.git
  • pip install --upgrade pip
  • pip install tensorflow
  • conda install pandas
  • conda install scipy
  • pip install nptyping==1.0.1
  • conda install seaborn
  • skimage < '0.18.2' and for MacOS < 10.13.6 need older skimage version pip install -U scikit-image==0.17.2 stackoverflow answer

Limitations

At the moment there are only limited models are tested (in Examples).

current version has

  • no support for topology
  • no support for fault block
  • not been tested with topography

Known bugs to be fixed

  • 3D color map is in wrong order (fixed)
  • 2D plot function show_data function not correct (fixed)
  • Hessian in graph mode is limited

References

  • Original GemPy paper: de la Varga, M., Schaaf, A. and Wellmann, F., 2019. GemPy 1.0: open-source stochastic geological modeling and inversion. Geoscientific Model Development, 12(1), pp.1-32.
  • Hessian MCMC used GemPyTF: Liang, Z., Wellmann, F. and Ghattas, O., 2022. Uncertainty quantification of geological model parameters in 3D gravity inversion by Hessian-informed Markov chain Monte Carlo. Geophysics, 88(1), pp.1-78.