pyGIMLi is an open-source library for modelling and inversion and in geophysics. The object-oriented library provides management for structured and unstructured meshes in 2D and 3D, finite-element and finite-volume solvers, various geophysical forward operators, as well as Gauss-Newton based frameworks for constrained, joint and fully-coupled inversions with flexible regularization.
What is pyGIMLi suited for?
- analyze, visualize and invert geophysical data in a reproducible manner
- forward modelling of (geo)physical problems on complex 2D and 3D geometries
- inversion with flexible controls on a-priori information and regularization
- combination of different methods in constrained, joint and fully-coupled inversions
- teaching applied geophysics (e.g. in combination with Jupyter notebooks)
What is pyGIMLi NOT suited for?
- for people that expect a ready-made GUI for interpreting their data
On all platforms, we recommend to install pyGIMLi via the conda package manager contained in the Anaconda distribution. For details on how to install Anaconda, we refer to: https://docs.anaconda.com/anaconda/install/
Note that Anaconda comes with many (great) packages, many of which you likely will not use. If you want to save space, you can install the light-weight version Miniconda.
To avoid conflicts with other packages, we recommend to install pyGIMLi in a separate environment. Here we call this environment pg, but you can give it any name. Note that this environment has to be created only once.
conda create -n pg -c gimli -c conda-forge "pygimli>=1.5.0"
If you are using Windows or Mac, a new environment named “pg” should be visible in the Anaconda Navigator. If you want to use pygimli from the command line, you have to activate the environment. You can put this line in your ~/.bashrc file so that it is activated automatically if you open a terminal.
conda activate pg
See https://www.pygimli.org/installation.html for more information.
import pygimli as pg
print(pg.__version__)
Check www.pygimli.org for additional information, detailed installation instructions and many examples.
More information can be found in this paper. If you use pyGIMLi for your work, please cite as:
Rücker, C., Günther, T., Wagner, F.M., 2017. pyGIMLi: An open-source library for modelling and inversion in geophysics, Computers and Geosciences, 109, 106-123, doi: 10.1016/j.cageo.2017.07.011.
BibTeX code:
@article{Ruecker2017,
title = {{pyGIMLi}: An open-source library for modelling and inversion in geophysics},
journal = {Computers and Geosciences},
volume = {109},
pages = {106--123},
year = {2017},
doi = {10.1016/j.cageo.2017.07.011},
url = {https://www.sciencedirect.com/science/article/pii/S0098300417300584},
author = {R\"ucker, C. and G\"unther, T. and Wagner, F. M.}
}
pyGIMLi is distributed under the terms of the Apache 2.0 license. Details on the license agreement can be found here.
We use or link some third-party software (beside the usual tool stack: cmake, gcc, boost, python, numpy, scipy, matplotlib) and are grateful for all the work made by the authors of these awesome open-source tools:
-
libkdtree++: Maybe abandoned, mirror: https://github.com/nvmd/libkdtree
-
pyplusplus: https://pypi.org/project/pyplusplus/
-
pyvista: https://docs.pyvista.org/
-
suitesparse, umfpack: https://people.engr.tamu.edu/davis/suitesparse.html
-
Tetgen: http://wias-berlin.de/software/index.jsp?id=TetGen&lang=1