Metadata-Version: 2.1
Name: invert4geom
Version: 0.7.0
Summary: Constrained gravity inversion to recover the geometry of a density contrast.
Author-email: Matt Tankersley <matt.d.tankersley@gmail.com>
License: Copyright 2023 Matt Tankersley
        
        Permission is hereby granted, free of charge, to any person obtaining a copy of
        this software and associated documentation files (the "Software"), to deal in
        the Software without restriction, including without limitation the rights to
        use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
        of the Software, and to permit persons to whom the Software is furnished to do
        so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/mdtanker/invert4geom
Project-URL: Documentation, https://invert4geom.readthedocs.io/
Project-URL: Bug Tracker, https://github.com/mdtanker/invert4geom/issues
Project-URL: Discussions, https://github.com/mdtanker/invert4geom/discussions
Project-URL: Changelog, https://invert4geom.readthedocs.io/en/latest/changelog.html
Keywords: inversion,gravity,geometry,density,Moho,sediment,geophysics,geology,geoscience
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Classifier: Typing :: Typed
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: xarray
Requires-Dist: verde >=1.8.0
Requires-Dist: rioxarray
Requires-Dist: pykdtree
Requires-Dist: xrft >=1.0
Requires-Dist: harmonica >=0.6.0
Requires-Dist: polartoolkit
Requires-Dist: numba
Requires-Dist: scipy
Requires-Dist: nptyping
Requires-Dist: numba-progress
Requires-Dist: tqdm
Requires-Dist: pygmt
Requires-Dist: dask
Provides-Extra: all
Requires-Dist: invert4geom[dev,docs,opti,test,viz] ; extra == 'all'
Provides-Extra: dev
Requires-Dist: invert4geom[docs,opti,test,viz] ; extra == 'dev'
Requires-Dist: ruff ; extra == 'dev'
Requires-Dist: nox ; extra == 'dev'
Requires-Dist: pre-commit ; extra == 'dev'
Requires-Dist: pylint ; extra == 'dev'
Requires-Dist: python-semantic-release >=8 ; extra == 'dev'
Requires-Dist: ipykernel ; extra == 'dev'
Requires-Dist: jupyterlab ; extra == 'dev'
Requires-Dist: mypy ; extra == 'dev'
Provides-Extra: docs
Requires-Dist: sphinx >=4.0 ; extra == 'docs'
Requires-Dist: myst-parser ; extra == 'docs'
Requires-Dist: sphinx-copybutton ; extra == 'docs'
Requires-Dist: sphinx-autoapi ; extra == 'docs'
Requires-Dist: sphinx-autodoc-typehints ; extra == 'docs'
Requires-Dist: sphinx-book-theme >=0.3 ; extra == 'docs'
Requires-Dist: sphinx-design ; extra == 'docs'
Requires-Dist: nbsphinx ; extra == 'docs'
Requires-Dist: nbconvert ; extra == 'docs'
Requires-Dist: sphinxcontrib-bibtex ; extra == 'docs'
Provides-Extra: opti
Requires-Dist: optuna >=3.1.0 ; extra == 'opti'
Requires-Dist: optuna-integration ; extra == 'opti'
Requires-Dist: botorch >=0.4.0 ; extra == 'opti'
Requires-Dist: joblib ; extra == 'opti'
Requires-Dist: psutil ; extra == 'opti'
Requires-Dist: tqdm-joblib ; extra == 'opti'
Provides-Extra: test
Requires-Dist: pytest >=6 ; extra == 'test'
Requires-Dist: pytest-cov >=3 ; extra == 'test'
Requires-Dist: invert4geom[opti] ; extra == 'test'
Provides-Extra: viz
Requires-Dist: pyvista ; extra == 'viz'
Requires-Dist: trame ; extra == 'viz'
Requires-Dist: ipywidgets ; extra == 'viz'
Requires-Dist: matplotlib ; extra == 'viz'
Requires-Dist: seaborn ; extra == 'viz'
Requires-Dist: ipython ; extra == 'viz'
Requires-Dist: plotly ; extra == 'viz'

<h1 align="center">Invert4geom</h1>
<h2 align="center">3D geometric gravity inversions
</h2>

<p align="center">
<a href="https://invert4geom.readthedocs.io"><strong>Documentation Link</strong></a>
</p>

<!-- SPHINX-START1 -->

<p align="center">
<a href="https://mybinder.org/v2/gh/mdtanker/invert4geom/main">
 <img src="https://mybinder.org/badge_logo.svg" alt="Binder link"></a>
 </p>

<p align="center">
<a href=https://pypi.org/project/invert4geom/>
<img src=https://img.shields.io/pypi/v/invert4geom
alt="Latest version on PyPI"
/>
</a>
<a href=https://github.com/conda-forge/invert4geom-feedstock>
<img src=https://img.shields.io/conda/vn/conda-forge/invert4geom
alt="Latest version on conda-forge"
/>
</a>
<a href=https://pypi.org/project/invert4geom/>
<img src=https://img.shields.io/pypi/pyversions/invert4geom
alt="Compatible Python versions"
/>

<p align="center">
<a href=https://app.codecov.io/github/mdtanker/invert4geom>
<img src=https://codecov.io/github/mdtanker/invert4geom/badge.svg?
alt="Test coverage status"
/>
</a>
<a href=https://invert4geom.readthedocs.io/en/latest/?badge=latest>
<img src=https://readthedocs.org/projects/invert4geom/badge/?version=latest&style=flat-square
alt='Documentation Status'
/>
<a href=https://github.com/mdtanker/invert4geom/actions>
<img src=https://github.com/mdtanker/invert4geom/workflows/CI/badge.svg
alt="Actions status"
/>
<p align="center">
<a href=https://github.com/mdtanker/invert4geom/discussions>
<img src=https://img.shields.io/static/v1?label=Discussions&message=Ask&color=blue&logo=github
alt="GitHub discussion"
/>
<!-- </a>
<a href="https://zenodo.org/badge/latestdoi/475677039">
<img src="https://zenodo.org/badge/475677039.svg?style=flat-square"
alt="Zenodo DOI"
/> -->
</a>
 </p>

<!-- <p align="center">
<img src="docs/figures/cover_fig.png"/>
</p> -->

<!-- SPHINX-END1 -->

![](docs/figures/cover_fig.png)

<!-- <p align="center">
<img src="docs/figures/cover_fig.png" width="400"/>
</p> -->

<!-- SPHINX-START2 -->

**Invert4geom** is a Python library for performing 3D geometric gravity inversions, where the aim is to recover the geometry of a density contrast.

Typical use cases include modeling the topography of the Moho, the sediment-basement contact, or bathymetry.
These density contrasts are represented by a layer of vertical right-rectangular prisms.
Since we use vertical prisms, they don't take the curvature of the Earth into account.
For large-scale applications, such as continental studies, it would be better to use tesseroids instead of prisms.

See the [overview](overview.md) for further description of this package and what it can be used for.

#### What _Invert4Geom_ is for:

- invert **gravity** data to recover the topography of a density contrast
- use with **gridded** gravity data
- discretization using _vertical right-rectangular prisms_
- performing regional-residual separation
- stochastic uncertainty analysis of inversion results
- basic visualization tools

#### What _Invert4Geom_ is **NOT** for:

- performing parameter-estimation inversions (i.e. recovering density values) -> see [SimPEG](https://simpeg.xyz/) or [pyGIMLi](https://www.pygimli.org/index.html)
- a point-and-click GUI -> see [Geosoft/Seequent Oasis Montaj](https://www.seequent.com/products-solutions/geosoft-oasis-montaj/) or [MiraGeoscience VPmg](https://www.mirageoscience.com/mining-industry-software/geoscience-analyst-pro-geophysics/)
- a ready-to-use inversion with minimal user input
- use with discrete (un-gridded) gravity data -> see [Harmonica](https://www.fatiando.org/harmonica/latest/index.html) for gridding your data
- for processing gravity data -> see [Harmonica](https://www.fatiando.org/harmonica/latest/index.html) for gravity processing tools
- for use with tesseroids, or non-regular grids (raise an issue request if you want this implemented!)
- publication-quality visualization -> see [PyGMT](https://www.pygmt.org/dev/index.html) for plotting tools

<!-- prettier-ignore-start -->
[actions-badge]:            https://github.com/mdtanker/invert4geom/workflows/CI/badge.svg
[actions-link]:             https://github.com/mdtanker/invert4geom/actions
[conda-badge]:              https://img.shields.io/conda/vn/conda-forge/invert4geom
[conda-link]:               https://github.com/conda-forge/invert4geom-feedstock
[codecov-badge]:            https://codecov.io/github/mdtanker/invert4geom/badge.svg?
[codecov-link]:             https://app.codecov.io/github/mdtanker/invert4geom
[github-discussions-badge]: https://img.shields.io/static/v1?label=Discussions&message=Ask&color=blue&logo=github
[github-discussions-link]:  https://github.com/mdtanker/invert4geom/discussions
[pypi-link]:                https://pypi.org/project/invert4geom/
[pypi-platforms]:           https://img.shields.io/pypi/pyversions/invert4geom
[pypi-version]:             https://img.shields.io/pypi/v/invert4geom
[rtd-badge]:                https://readthedocs.org/projects/invert4geom/badge/?version=latest
[rtd-link]:                 https://invert4geom.readthedocs.io/en/latest/?badge=latest

<!-- prettier-ignore-end -->

<!-- SPHINX-END2 -->
