Expand description
Geoid undulation (geoid height) lookup with bilinear interpolation.
The geoid undulation N is the height of the geoid (mean sea level
equipotential surface) above the WGS84 reference ellipsoid, in metres.
GNSS positioning yields the ellipsoidal height h; the orthometric height
H (height above mean sea level) is
H = h - NA geoid model is published as a regular latitude/longitude grid of N
samples (EGM96, EGM2008, and the national models all ship this way). This
module provides:
GeoidGrid, a regular grid of undulation samples with bilinear interpolation (GeoidGrid::undulation_rad/GeoidGrid::undulation_deg);GeoidGrid::from_text, a data-loading hook that parses a simple, documented grid text format so a caller can supply a full EGM grid;geoid_undulation, a zero-setup lookup against a small COARSE built-in global grid, plusorthometric_height_m/ellipsoidal_height_mheight conversion helpers.
§Built-in grid vs. loading a real model
Embedding a full-resolution EGM grid (EGM2008 is a 1-minute, ~2.3 GB grid)
is impractical to vendor into the crate, so the built-in grid is a COARSE
30-degree global field. It reproduces the large-scale character of the geoid
(the Indian Ocean low, the North Atlantic / New Guinea highs, the polar
offsets) and is suitable for tests, sanity checks, and metre-scale fallback,
but it is NOT survey-grade. Production code should load a real model through
GeoidGrid::from_text (or build a GeoidGrid from any parsed source)
and call GeoidGrid::undulation_rad directly.
Structs§
- Geoid
Grid - A regular latitude/longitude grid of geoid undulation samples (metres) with bilinear interpolation.
Enums§
- Geoid
Error - Why a geoid grid could not be constructed or parsed.
Functions§
- ellipsoidal_
height_ m - Ellipsoidal height
h = H + N(metres above the WGS84 ellipsoid) from an orthometric height and a geodetic position in radians, using the built-in grid’s undulation. For a real model, addGeoidGrid::undulation_raddirectly. - geoid_
undulation - Geoid undulation
N(metres above the WGS84 ellipsoid) at a geodetic position in radians, from the COARSE built-in global grid. - orthometric_
height_ m - Orthometric height
H = h - N(metres above mean sea level) from an ellipsoidal height and a geodetic position in radians, using the built-in grid’s undulation. For a real model, subtractGeoidGrid::undulation_raddirectly.