Metadata-Version: 2.4
Name: geoidlab
Version: 1.0.2
Summary: GeoidLab: A Modular and Automated Python Package for Geoid Computation
Home-page: https://github.com/cikelly/geoidlab
Author: Caleb Kelly
Author-email: Caleb Kelly <geo.calebkelly@gmail.com>
License-Expression: GPL-3.0-or-later
Project-URL: Homepage, https://github.com/cikelly/geoidlab
Project-URL: Documentation, https://geoidlab.readthedocs.io
Project-URL: Repository, https://github.com/cikelly/geoidlab
Project-URL: Changelog, https://github.com/cikelly/geoidlab/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/cikelly/geoidlab/issues
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
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 :: GIS
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.8,<3.13
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy<2.0.0,>=1.20.0
Requires-Dist: scipy<2.0.0,>=1.7.0
Requires-Dist: requests>=2.25.0
Requires-Dist: tqdm>=4.60.0
Requires-Dist: beautifulsoup4>=4.9.0
Requires-Dist: xarray>=0.19.0
Requires-Dist: netCDF4>=1.5.7
Requires-Dist: pandas<3.0.0,>=1.3.0
Requires-Dist: numba>=0.53.0
Requires-Dist: numba-progress>=0.0.3
Requires-Dist: openpyxl>=3.0.7
Requires-Dist: rasterio>=1.2.0
Requires-Dist: rioxarray>=0.5.0
Requires-Dist: bottleneck>=1.3.2
Requires-Dist: scikit-learn<2.0.0,>=0.24.0
Requires-Dist: joblib>=1.3.0
Requires-Dist: matplotlib<4.0.0,>=3.4.0
Requires-Dist: pyproj<4.0.0,>=3.0.0
Requires-Dist: packaging>=21.0
Provides-Extra: dev
Requires-Dist: pytest>=6.0; extra == "dev"
Requires-Dist: pytest-cov>=2.0; extra == "dev"
Requires-Dist: black>=21.0; extra == "dev"
Requires-Dist: flake8>=3.9; extra == "dev"
Requires-Dist: mypy>=0.900; extra == "dev"
Requires-Dist: sphinx>=4.0; extra == "dev"
Requires-Dist: sphinx-rtd-theme>=1.0; extra == "dev"
Requires-Dist: twine>=3.4; extra == "dev"
Requires-Dist: build>=0.7; extra == "dev"
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# GeoidLab

<div align="center">
  <img src="docs/logo/logo.png" alt="Logo" width="200"/>
</div>

<p></p>
                                                                                  

**`GeoidLab`: A Modular and Automated Python Package for Geoid Computation.**


The package comes packed with utilities for estimating a geoid model using Stokes' method, with options for:

- the original Stokes' kernel
- Wong and Gore's modification of Stokes' kernel
- Heck and Gruninger's modification of Stokes' kernel
- Terrain correction
- Residual Terrain Modeling (RTM)

`GeoidLab` uses the remove-compute-restore (RCR) method for geoid calculation. It is designed to be almost entirely automated.

- Automatically downloads [SRTM30PLUS](https://topex.ucsd.edu/pub/srtm30_plus/srtm30/grd/) over the bounding box of interest
- Downloads multiple SRTM30PLUS tiles if bounding box extends over multiple tiles
- Automatically downloads a GGM from [ICGEM](https://icgem.gfz-potsdam.de/tom_longtime)
- Uses a template file so that users do not have to interact with the scripts
- Can automatically download other DEMs (e.g., Copernicus DEM, NASADEM, and GEBCO). Default is SRTM30PLUS

## Installation
`GeoidLab` can be installed using conda/mamba or pip.
  
```
conda create -n geoid_env -y
mamba install -c conda-forge geoidlab -y
```      
Test installation

```

```
## Examples
- Prepare data: This includes all relevant data for your study area:
  - Terrestrial gravity data
  - Marine gravity data
  - Global Geopotential Model (GGM). `GeoidLab` can automatically download this. Just provide the name of the GGM in the template file
  - Digital Elevation Model (DEM). `GeoidLab` presently downloads SRTM30PLUS
- Ensure that the terrestrial gravity data has columns `lon`, `lat`, `gravity`, and `height`. If you are providing gravity anomalies,
  ensure that they are free-air anomalies
- Call ``

See the [tutorial repo](https://github.com/cikelly/geoidlab-tutorial) for examples of using `GeoidLab`.

## References
- Yakubu, C. I., Ferreira, V. G. and Asante, C. Y., (2017): [Towards the Selection of an Optimal Global Geopotential
Model for the Computation of the Long-Wavelength Contribution: A Case Study of Ghana, Geosciences, 7(4), 113](http://www.mdpi.com/2076-3263/7/4/113)

- C. I. Kelly, S. A. Andam-Akorful, C. M. Hancock, P. B. Laari & J. Ayer (2021): [Global gravity models and the Ghanaian vertical datum: challenges of a proper definition, Survey Review, 53(376), 44–54](https://doi.org/10.1080/00396265.2019.1684006)
