gimli

Geophysical Inversion and Modeling Library :earth_africa:

https://github.com/gimli-org/gimli

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: sciencedirect.com
  • Committers with academic emails
    5 of 32 committers (15.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.0%) to scientific vocabulary

Keywords

c-plus-plus finite-elements finite-volume geophysics inversion modeling open-source python

Keywords from Contributors

fem finite-element-analysis mesh mesh-processing meshviewer open-science vtk inverse-problems partial-differential-equations geoscience
Last synced: 6 months ago · JSON representation ·

Repository

Geophysical Inversion and Modeling Library :earth_africa:

Basic Info
  • Host: GitHub
  • Owner: gimli-org
  • License: other
  • Language: Python
  • Default Branch: master
  • Homepage: https://www.pygimli.org
  • Size: 32.9 MB
Statistics
  • Stars: 422
  • Watchers: 38
  • Forks: 151
  • Open Issues: 42
  • Releases: 27
Topics
c-plus-plus finite-elements finite-volume geophysics inversion modeling open-source python
Created over 12 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Citation Authors

README.md

pyGIMLi CI Anaconda-Server Badge release Github commits (since latest release) Slack

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
Installation

Anaconda-Server Badge Anaconda-Server Badge Anaconda-Server Badge Anaconda-Server Badge

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.

bash 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.

bash conda activate pg

See https://www.pygimli.org/installation.html for more information.

Import convention

python import pygimli as pg print(pg.__version__)

Check www.pygimli.org for additional information, detailed installation instructions and many examples.

Citing pyGIMLi

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:

sourceCode @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.} }

License

pyGIMLi is distributed under the terms of the Apache 2.0 license. Details on the license agreement can be found here.

Credits

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

  • meshio: https://github.com/nschloe/meshio

  • 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

  • Triangle: https://www.cs.cmu.edu/~quake/triangle.html

Owner

  • Name: GIMLi Development Team
  • Login: gimli-org
  • Kind: organization
  • Email: mail@pygimli.org
  • Location: Germany

Carsten Rücker, Thomas Günther, Florian Wagner

Citation (CITATION.cff)

cff-version: 1.2.0
title: >-
  pyGIMLi: An open-source library for modelling and
  inversion in geophysics
message: >-
  If you use this software, please cite it using the metadata from
  'preferred-citation'.
type: software
authors:
  - given-names: Carsten
    family-names: Rücker
    email: carsten@pygimli.org
    orcid: 'https://orcid.org/0000-0002-8231-9861'
  - given-names: Thomas
    family-names: Günther
    email: thomas@pygimli.org
    orcid: 'https://orcid.org/0000-0001-5409-0273'
  - given-names: Florian
    family-names: Wagner
    email: florian@pygimli.org
    orcid: 'https://orcid.org/0000-0001-7407-9741'
repository-code: 'https://github.com/gimli-org/gimli'
url: 'https://www.pygimli.org'
license: Apache-2.0

preferred-citation:
  type: article
  journal: Computers and Geosciences
  year: 2017
  title: >-
    pyGIMLi: An open-source library for modelling and
    inversion in geophysics
  authors:
    - given-names: Carsten
      family-names: Rücker
      email: carsten@pygimli.org
      orcid: 'https://orcid.org/0000-0002-8231-9861'
    - given-names: Thomas
      family-names: Günther
      email: thomas@pygimli.org
      orcid: 'https://orcid.org/0000-0001-5409-0273'
    - given-names: Florian M.
      family-names: Wagner
      email: florian@pygimli.org
      orcid: 'https://orcid.org/0000-0001-7407-9741'
  abstract: >-
    Many tasks in applied geosciences cannot be solved
    by single measurements, but require the integration
    of geophysical, geotechnical and hydrological
    methods. Numerical simulation techniques are
    essential both for planning and interpretation, as
    well as for the process understanding of modern
    geophysical methods. These trends encourage open,
    simple, and modern software architectures aiming at
    a uniform interface for interdisciplinary and
    flexible modelling and inversion approaches. We
    present pyGIMLi (Python Library for Inversion and
    Modelling in Geophysics), an open-source framework
    that provides tools for modelling and inversion of
    various geophysical but also hydrological methods.
    The modelling component supplies discretization
    management and the numerical basis for
    finite-element and finite-volume solvers in 1D, 2D
    and 3D on arbitrarily structured meshes. The
    generalized inversion framework solves the
    minimization problem with a Gauss-Newton algorithm
    for any physical forward operator and provides
    opportunities for uncertainty and resolution
    analyses. More general requirements, such as
    flexible regularization strategies, time-lapse
    processing and different sorts of coupling
    individual methods are provided independently of
    the actual methods used. The usage of pyGIMLi is
    first demonstrated by solving the steady-state heat
    equation, followed by a demonstration of more
    complex capabilities for the combination of
    different geophysical data sets. A fully coupled
    hydrogeophysical inversion of electrical
    resistivity tomography (ERT) data of a simulated
    tracer experiment is presented that allows to
    directly reconstruct the underlying hydraulic
    conductivity distribution of the aquifer. Another
    example demonstrates the improvement of jointly
    inverting ERT and ultrasonic data with respect to
    saturation by a new approach that incorporates
    petrophysical relations in the inversion. Potential
    applications of the presented framework are
    manifold and include time-lapse, constrained,
    joint, and coupled inversions of various
    geophysical and hydrological data sets.
  doi: 10.1016/j.cageo.2017.07.011 
  volume: 109
  start: 106
  end: 123
  license: CC-BY-4.0

GitHub Events

Total
  • Create event: 8
  • Release event: 3
  • Issues event: 107
  • Watch event: 38
  • Delete event: 3
  • Issue comment event: 275
  • Push event: 199
  • Pull request event: 16
  • Fork event: 16
Last Year
  • Create event: 8
  • Release event: 3
  • Issues event: 107
  • Watch event: 38
  • Delete event: 3
  • Issue comment event: 275
  • Push event: 199
  • Pull request event: 16
  • Fork event: 16

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 4,307
  • Total Committers: 32
  • Avg Commits per committer: 134.594
  • Development Distribution Score (DDS): 0.587
Past Year
  • Commits: 203
  • Committers: 6
  • Avg Commits per committer: 33.833
  • Development Distribution Score (DDS): 0.512
Top Committers
Name Email Commits
carsten-forty2 c****n@g****g 1,780
Florian Wagner m****l@f****o 976
Thomas Günther t****s@p****g 523
Thomas Günther h****y@p****g 512
Thomas Günther T****r@l****e 262
Thomas Günther t****r@l****e 59
Friedrich Dinsel f****l@m****g 50
Maximilian Weigand m****d@g****e 44
Friedrich Dinsel f****l@g****m 30
Skibbe n****e@g****m 18
Andrea Balza a****m@g****m 12
Dieter Werthmüller p****e 6
Paolo Flores p****2@g****m 4
RichardScottOZ 7****Z 4
sathyanarayanrao 3****o 4
Bane Sullivan b****n@g****m 3
Carsten Rücker r****e@B****E 3
Alain Plattner a****r@g****m 2
Joost Gevaert j****t@g****m 2
aurorec a****r@g****m 1
Amir Mardan 4****n 1
JuliusHen 9****n 1
danielpflieger 7****r 1
Florian Wagner w****r@g****e 1
Daniel Beiter d****r@h****e 1
Florian Wagner w****r@r****e 1
Florian Wagner w****l@s****h 1
root r****t@r****e 1
halbmy E****! 1
florian f****n@f****x 1
and 2 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 283
  • Total pull requests: 34
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 3 months
  • Total issue authors: 130
  • Total pull request authors: 12
  • Average comments per issue: 3.82
  • Average comments per pull request: 0.91
  • Merged pull requests: 18
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 78
  • Pull requests: 13
  • Average time to close issues: 28 days
  • Average time to close pull requests: 3 days
  • Issue authors: 53
  • Pull request authors: 5
  • Average comments per issue: 2.17
  • Average comments per pull request: 0.69
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tonapawilliam (26)
  • makeabhishek (21)
  • IsabellaLorenzen (9)
  • mariosgeo (9)
  • jcmefra (8)
  • HenryWHR (6)
  • kafahabibullah1453 (6)
  • Abby123455r (5)
  • NoteboomM (5)
  • AY131313 (5)
  • kerim371 (5)
  • Santi-Rebole-Canals (4)
  • ZHR0623 (4)
  • shdlovezxm (4)
  • ghost (4)
Pull Request Authors
  • m-weigand (9)
  • prisae (9)
  • soehag (2)
  • Moonhoro (2)
  • guiguilhermegui (2)
  • andieie (2)
  • robinthibaut (2)
  • AmirMardan (2)
  • CamillaLu (1)
  • paoloose (1)
  • MTR-Tushar (1)
  • AlainPlattner (1)
Top Labels
Issue Labels
question (36) bug (16) documentation (5) installation (3) feature request (3) good first issue (3) building and distribution (2) discussion (2)
Pull Request Labels
bug (2) documentation (2) enhancement (2)

Dependencies

environment.yml conda
  • bibtexparser
  • jupyter
  • matplotlib
  • meshio
  • numpy
  • panel
  • pgcore >=1.3.0
  • pydata-sphinx-theme
  • pytest
  • pytest-cov
  • pytest-html
  • pyvista >=0.34
  • scipy
  • scooby
  • sphinx >=3.1
  • sphinx-design
  • sphinx-gallery
  • sphinxcontrib-bibtex
  • sphinxcontrib-doxylink
  • sphinxcontrib-programoutput
  • sphinxcontrib-spelling
  • tetgen
dev_requirements.txt pypi
  • bibtexparser * development
  • ipython * development
  • meshio * development
  • panel * development
  • pydata-sphinx-theme * development
  • pygccxml ==2.0.0 development
  • pyplusplus ==1.8.4 development
  • pytest * development
  • pyvista >=0.34 development
  • scipy * development
  • scooby * development
  • sphinx >=3.1 development
  • sphinx-design * development
  • sphinx-gallery * development
  • sphinxcontrib-bibtex * development
  • sphinxcontrib-doxylink * development
  • sphinxcontrib-programoutput * development
  • tetgen * development