Skip to content

flightaware/egm2008

Repository files navigation

Earth Gravitational Model (EGM2008)

The coordinate system used by GPS is WGS 84, which expresses altitudes as a "height above ellipsoid". Because this ellipsoid is a mathematical simplification, the height given by GPS does not necessarily reflect the height above the actual ground beneath.

The Earth Gravitational Models published by the National Geospatial Intelligence Agency are a way to approximate how high an altitude given in WGS 84 coordinates truly is above the ground.

This library includes data derived from EGM 2008 along with an interpolation function. Together, these allow for an approximate offset to be obtained for arbitrary points on the globe.

Updating geoid.rs

The src/geoid.rs file is generated by a Python script (generate.py) that runs NGA's Fortran interpolation program. In order to run the script, you'll need to download the EGM model data from the NGA's website.

You will also need to install gfortran. There are a few ways to do this:

  • On macOS, through Homebrew with brew install gfortran.
  • Use the included Nix dev shell with nix develop.

For convenience, you can run generate_geoid.sh which will download and verify the model data from NGA, compile the interpolation program, and update src/geoid.rs.