Package pygeodesy :: Module geoids |
[frames] | no frames]

# Module geoids

Classes GeoidG2012B, GeoidKarney and GeoidPGM to interpolate the height of various geoids at `LatLon` locations or separate lat-/longitudes using different interpolation methods and `geoid` files.

GeoidKarney is a transcription of Charles Karney's C++ class Geoid to pure Python. The GeoidG2012B and GeoidPGM interpolators both depend on scipy and numpy and require those packages to be installed.

In addition, each geoid interpolator needs `grid knots` (down)loaded from a `geoid` file, specific to the interpolator, more details below. For each interpolator, there are several interpolation choices, for example linear, cubic, etc.

Typical usage is as follows. First, create an interpolator from a `geoid` file, also referred to as the `grid knots`.

`>>> ginterpolator = GeoidXyz(grid_file, **options)`

Then, get the interpolated geoid height of `LatLon` location(s) with

`>>> h = ginterpolator(ll)`

or

`>>> h0, h1, h2, ... = ginterpolator(ll0, ll1, ll2, ...)`

or

`>>> hs = ginterpolator(lls) # list, tuple, generator, ...`

For separate lat- and longitudes invoke the `.height` method

`>>> h = ginterpolator.height(lat, lon)`

or

`>>> h0, h1, h2, ... = ginterpolator.height(lats, lons) # lists, tuples, ...`

Errors from `scipy` are raised as SciPyErrors. Warnings issued by `scipy` can be thrown as SciPyWarning exceptions, provided Python `warnings` are filtered accordingly, see SciPyWarning.

See Also: Karney's GeographicLib, Geoid height and Installing the Geoid datasets, SciPy interpolation RectBivariateSpline and interp2d and the functions elevations.elevation2 and elevations.geoidHeight2.

Version: 20.10.20

Classes
| _GeoidBase (INTERNAL) Base class for `Geoid...`s.
| GeoidError Geoid interpolator `Geoid...` or interpolation issue.
| GeoidG2012B Geoid height interpolator for GEOID12B Model grids CONUS, Alaska, Hawaii, Guam and Northern Mariana Islands, Puerto Rico and U.S. Virgin Islands and American Samoa based on `SciPy` RectBivariateSpline or interp2d interpolation.
| GeoidHeight5Tuple 5-Tuple `(lat, lon, egm84, egm96, egm2008)` for GeoidHeights.dat tests with the heights for 3 different EGM grids with `degrees90` and `degrees180` degrees (after converting `lon` from the original `0.0 <= EasterLon <= 360.0`).
| GeoidKarney Geoid height interpolator for Karney's GeographicLib Earth Gravitational Model (EGM) geoid egm*.pgm datasets using bilinear or cubic interpolation and caching in pure Python transcribed from Karney's C++ class Geoid.
| GeoidPGM Geoid height interpolator for Karney's GeographicLib Earth Gravitational Model (EGM) geoid egm*.pgm datasets but based on `SciPy` RectBivariateSpline or interp2d interpolation.
| PGMError Issue parsing or cropping an `egm*.pgm` geoid dataset.

Functions
egmGeoidHeights(GeoidHeights_dat) Generate geoid egm*.pgm height tests from GeoidHeights.dat Test data for Geoids. |

Variables
| __all__ = `_ALL_LAZY.geoids`

Function Details

### egmGeoidHeights (GeoidHeights_dat) |
Generate geoid egm*.pgm height tests from GeoidHeights.dat Test data for Geoids. Arguments: `GeoidHeights_dat` - The un-gz-ed `GeoidHeights.dat` file (`str` or `file` handle). Returns: For each test, yield a GeoidHeight5Tuple`(lat, lon, egm84, egm96, egm2008)`. Raises: `GeoidError` - Invalid `GeoidHeights_dat`. Note: Function egmGeoidHeights is used to test the geoids GeoidKarney and GeoidPGM, see PyGeodesy module `test/testGeoids.py`.