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

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:

Note: Function egmGeoidHeights is used to test the geoids GeoidKarney and GeoidPGM, see PyGeodesy module test/testGeoids.py.