The geoid undulation

Top  Previous  Next

DigiTerra Explorer calculates heights in two ways:


1.Height above ellipsoid. This is the default.

2.Height above Mean Sea Level if a geoid undulation value is specified by using a geoid undulation file.

k-tip-iconAbout the height calculation please also have a look at this tutorial at

To specify appropriate value of the Upward offset field on the GPS Survey panel for calculating the height value it is necessary to understand how DigiTerra Explorer calculates heights


GPS receivers output the height of the GPS antenna, in meters, via the GGA sentence of the NMEA protocol. This height is relative to Mean Sea Level. Many GPS receivers also output the geoid undulation, in meters, via the same GGA sentence. The geoid undulation is the distance between the geoid and ellipsoid. DigiTerra Explorer then calculates the sum of the GPS antenna height (relative to Main Sea Level) and the geoid undulation to produce the ellipsoidal height (Height Above Ellipsoid) which is potentially stored as the height value. So from the GGA message, DigiTerra Explorer calculates Height Above Ellipsoid using the following formula:


Height Above Ellipsoid = Main See Level Height ± Geoid undulation value


This Height Above Ellipsoid value is based on the datum used by the GPS receiver, which is typically WGS84. The default unit for Height Above Ellipsoid value is meter. When the TSIP protocol is used on Trimble devices, DigiTerra Explorer requests the Height Above Ellipsoid height from the GPS. Consequently, no calculation of the Height Above Ellipsoid is needed by DigiTerra Explorer.


To store accurate height values, it is necessary to provide DigiTerra Explorer with additional information to be used for calculating the height values. Upward offset: Since the height reported by the GPS is actually the height of the GPS antenna, it is necessary to let DigiTerra Explorer know the height of the GPS antenna above the ground. DigiTerra Explorer then subtracts the antenna height from the GPS height to determine the height value for the GPS position at ground level. The default Upward offset (antenna height) is -1.5 meter.


Geoid undulation

The geoid undulation file provides the geoid separation value (distance between the geoid and ellipsoid) to the current Latitude, Longitude GPS position. DigiTerra Explorer subtracts the geoid undulation from the ellipsoidal height to determine the height for the heights value. The resultant height is the Main Sea Level, or orthometric height. The Geoid undulation is negative where the geoid lies below the ellipsoid.


The geoid undulation file built based on the official Earth Gravitation Model's (EGM2008) 2.5 Minute Geoid Heights (has been publicly released by the U.S. National Geospatial-Intelligence Agency (NGA) EGM Development Team.)


The EGM2008 Model



GGA String


GGA - Global Positioning System Fix Data, Time, Position and fix related data for a GPS receiver.  


Field Number:

1)   Universal Time Coordinated (UTC)

2)   Latitude

3)   N or S (North or South)

4)   Longitude

5)   E or W (East or West)

6)   GPS Quality Indicator,

0 - fix not available,

1 - GPS fix,

2 - Differential GPS fix

   (values above 2 are 2.3 features)

3 - PPS fix

4 - Real Time Kinematic

5 - Float RTK

6 - estimated (dead reckoning)

7 - Manual input mode

8 - Simulation mode

7)   Number of satellites in view, 00 – 12

8)   Horizontal Dilution of precision

9)   Antenna Altitude above/below mean-sea-level (geoid)

10) Units of antenna altitude, meters

11) Geoidal separation, the difference between the WGS-84 earth ellipsoid and mean-sea-level (geoid), "-" means mean-sea-level below ellipsoid

12) Units of geoidal separation, meters

13) Age of differential GPS data, time in seconds since last SC104 type 1 or 9 update, null field when DGPS is not used

14) Differential reference station ID, 0000-1023

15) Checksum


Relation to Geoid Undulation


H = h - N


H:   Ellipsoid height

h:   Orthometric height (Field 9) (mean-sea-level height)

N:   Geoidal separation (Field 11)


What you read in field 9 is an orthometric height (h) corrected by global geoidal

separation (N) in meters, based on the official NATO's standard mean-sea-level algorithm

(5-degree grid of height).


To calculate the ellipsoid height (H) use this formula:


H = h - N (NATO)

(H = Field 9 - Field 11)


Now use the interpolated geoidal separation to calculate the correct ellipsoid height (h).


h = H + N (EGM2008 interpolated)



The EGM2008 geoid undulation file can be downloaded to DigiTerra Explorer from the following link: Must be copied the uncompressed files to the \Geoids path.


The geoidund.rar contains the following files:






Custom raster grids (more accurate) can be used by replacing the geoidUnd.dat file with the new raster's header file: geoidUnd.hdr. In case of using a custom grid file you have to copy or calculate the next values based on the geoidUnd.ers file (header file values = ERS file values):


EastMin = Eastings

EastMax = Eastings + NrOfCellsPerLine * Xdimension

EastSize = Xdimension

NorthMin = Northings - NrOfLines * Ydimension

NorthMax = Northings

NorthSize = Ydimension


The original geoidUnd.ers (ERS file values):


DatasetHeader Begin

 DataFile        = "geoidUnd.dat"

 DataSetType        = ERStorage

 DataType        = Raster

 ByteOrder        = LSBFirst

 Commnet                = "Geoid undulation 2.5 x 2.5 min global"

 CoordinateSpace Begin

         Datum                = "WGS84"

         Projection        = "Geographic"

         CoordinateType        = EN

         Rotation        = 0:0:0.0

 CoordinateSpace End

 RasterInfo Begin

         CellType        = IEEE4ByteReal

         CellInfo Begin

                 Xdimension        = 0.04166666666666667

                 Ydimension        = 0.04166666666666667

         CellInfo End

         NrOfLines                = 4321

         NrOfCellsPerLine        = 8642

         RegistrationCoord Begin

                 Eastings        = -0.04166666666666667

                 Northings        = 90

         RegistrationCoord End

         NrOfBands        = 1

 RasterInfo End

DatasetHeader End


The original geoidUnd.hdr (header file values):


// Geoid Undulation Matrix

// Format: 4 or 8 byte floating point, little endian encoding

// Data Order: rows from eastmin to eastmax, columns from northmax to northmin