By: Peter Srajer, CLS, P. Eng. and Benjamin Skogen, CPM

Synopsis of Issue

The survey and engineering worlds have various methods of determining the height of a point on the ground surface. In the same manner as horizontal coordinates having different datums, so do vertical coordinates. There are three surfaces we are concerned with in this case (Figure 1) Topographic surfaces are what we ordinarily see as the ground and it is that surface that we normally wish to have the elevation of a point on. The two others (Geoid and Ellipsoid) are the base or the datum from which we are measuring the height from. We need a consistent and industry standard way of referencing the topographic height value. To do that, we need to have, as our datum, the surface shown as the Geoid. Any elevation measured from this Geoid datum or surface is also known as the Orthometric height or Mean Sea Level (MSL). Technically there are many different Geoid surfaces, but the Geoid surface we are interested in is defined by actual sea level stations, survey level stations and, more predominantly, gravity measurements. These inputs are combined and adjusted to create a Geoid surface. This Geoid surface, however, is not static. As better gravity measurements arise, the Geoid surface gets updated. This is done by government agencies. In the case of the US, the US National Geodetic Survey (NGS) completes the work, but it is usually several years between updates to the surfaces. The Geoid surface is also called a Geoidal model as it is not truly a physical surface all the time. MSL means something physical on the coast but it varies physically from the actual mean sea level in the mountains where gravity measurements vary. Several presently used Geoid models are called Geoid12, Geoid18, and EGM96. The number indicates the year that it was finalized and published by the relevant agencies.

Technical Description

Figure 1: The Ellipsoidal height (h), Orthometric height (H) and Geoid height (N)
Reference: Natural Resources Canada – Retrieved Sept 30, 2019

Orthometric height (H), often referred as Mean Sea Level Height, can be obtained by subtracting the Geoid height (N), which we obtained from the Geoid model (i.e. Geoid18), from the GNSS ellipsoidal height (h): H = h – N. A Geoid height (N) is positive (+) when the Geoid is above the ellipsoid and negative (-) when it is below (as shown on the right and left sides of Figure 1). Hybrid Geoid models such as Geoid12b/18, EGM96 etc. are created by constraining a gravimetric Geoid model to published heights which used GNSS observations on leveled benchmarks. The Geoid 12b and Geoid18 hybrid models are used in the US; whereas the CGVD28, CGVD2013, CGVD2013a model are used in Canada. A model called EGM96 is used as a global reference if the localized models are unavailable.

The North American-Pacific Geopotential Datum of 2022 (NAPGD2022) is scheduled to replace both the Canadian and US models in 2022, which will replace all existing US and Canadian Geoid models at that time.

The relationship between horizontal and vertical GNSS parameters is that WGS84 parameters approximate the Earth by an ellipsoid, which is basically a flattened and deformed sphere. EGM96 is a complex model based on the gravitational force of the Earth, (which is not constant), that defines what “sea level” or up and down means. This smooth but irregular shape is called the “Geoid“. WGS84 is the ellipsoid that best fits that EGM96 Geoid, and this fit has been updated as more accurate measurements of the Geoid have been carried out over the years. It is the EGM Geoid that has redefined the WGS84 ellipsoid over the years. In a similar manner, the local to North America NAD83 parameters are used in conjunction with the localized Geoid12b,18, CGVDxxxx Geoid models. To get the correct Geoidal undulation values from the various Geoid models, you must have the horizontal coordinates in the correct NAD83 datum. The correct horizontal datum coordinates are required as the Geoidal model files are gridded in those specific horizontal datums.

GEOID18 is intended for use with coordinates in the North American Datum of 1983 (2011). NAD83 (2011) is from epoch 2010.00 and it provides Orthometric heights consistent with the North American Vertical Datum of 1988 (NAVD 88).

The Canadian models can be referenced to NAD83(CSRS) epochs (1997.0, 2002.0, 2010.0), depending on which Geoidal model is used. Even though the CGVD2013a Geoid model is now associated to an epoch (2011.0), Natural Resources Canada (NRCan) considered the current Geoid model as static. The epoch of 2011.0 was selected as it represents approximately the middle of the gravity measurements time span used in CGG2013a.

The use of epochs is done to ensure that tectonic plate movements and similar temporal displacements are accounted for. If needed to ensure very high precision measurements that are between epochs, a velocity grid is available. This is needed to ensure the correct horizontal position and epoch to get a correct, highly precise Geoid model. In most cases, unless a very high accuracy is needed, the use of standard NAD83 (CSRS) for Canada, NAD83 (2011) for US or WGS84 for EGM96 are enough.

The PointMan Solution

PointMan uses the output CGGA portion of NMEA string (NMEA-0183 messages: Overview) as the data input. In that data string, there are two height values; one is the Orthometric height (H) and the other is the Geoidal height (N). While this may seem to solve our problem: finding the Orthometric height, the problem lies in that this Orthometric height is not generally based on an accurate Geoidal model. In the Bluestar GPS, the Geoidal height and thus the Orthometric height is based on a generic inclined plane; essentially a low-resolution approximation that is of limited use for surveying. The correct procedure is to revert that NMEA Orthometric height to the GNSS Ellipsoidal height (h) by adding the NMEA Geoidal height (N) to the NMEA Orthometric height. This results in an Ellipsoidal height; from this point we subtract the correct accurate Geoidal height (N) that we derive from one of the appropriate hybrid Geoidal surfaces (i.e. Geoid18) to get a final accurate Orthometric height (H).

The essential problem is to find the Geoidal height (N) from the appropriate Geoidal model.  The Geoidal models are freely available from the various government agencies (links below). There are various formats and some files are available from proprietary sources (Trimble GGF files).  In all cases, the solution is to convert to a common format (BIN from the Geoid18 models) and load this surface in the program.  We may need to subdivide the Geoidal grid if it becomes too unwieldy to load and search the full set. The next process is to convert the GPS (from NMEA string) horizontal coordinates to the appropriate horizontal datum temporarily (see explanation above) and search with the hybrid Geoid model at those horizontal coordinates for the corresponding Geoidal height (N). This is the value we are looking for. The problem arises in that the hybrid Geoidal model is not a continuous surface, it only has values at regular grid points. These points can be spaced up to 100 km apart in the case of the EGM96 model. An interpolation scheme must be used to get the correct Geoidal value; something like a bi or tri-cubic interpolation is normally used. Other schemes that may need to be considered in future work would be to use the GDAL libraries to rasterize the Geoidal surfaces. This way, a continuous surface is created which solves the interpolation problem. This also transfers the processing needed for interpolation to a one-time process done on the initial back end load off the local computer.

UI Implementation

PointMan has a drop down inside the Diff Menu to select between preconfigured Geoids

The user can choose from None (Default), EGM96, 12A, 12B and GEOID18

These Geoids are hosted on our database server and made available via configuration on a per-client basis with access permissions included. Once the user selects a Geoid to use, PointMan will cache the information and use it to perform conversions locally on the device. This way, conversions can be performed in offline mode as well when no cell service or WiFi is available. The following screenshot shows what the user sees in PointMan when they have a Geoid selected in the settings page. This view is real-time which gives the user confidence that they are collecting on the desired Geoid.

The next screenshot shows what attributes are saved during data collection. Once a feature is collected, the user can tap on the feature and then tap Details. Note that the Geoid and Elevation (Orthometric) is captured.


Shown below is an accuracy map for Geoid12B. The map and additional information can be found at At the 95% confidence level, the map indicates an accuracy of around 4-5 cm in our location, which is about 0.16 feet, therefore the 0.12 is accuracy is within the error tolerance. If CDOT and ProStar were to run a full analysis, we would, of course, take a larger series of measurements with each instrument and, thus, get a statistical measure. Since we only used three units for this test, it is simply considered a difference measurement.


CDOT Case Study – Cross-Comparison & Verification of Accuracy

To account for the various GPS receivers on the market, we performed a difference measurement between each of the popular receivers that PointMan supports. Most surveyors are familiar with the Trimble R10 and trust it. Because of this, our study sets the Trimble as the standard and we indicate the Emlid and Bluestar differences from it. As a real-world test of PointMan implementing Geoid models, Colorado Department of Transportation surveyors used the following three GPS receivers in conjunction with both NTRIP and Base/Rover corrections to test Geoid12B inside the PointMan mobile application against known Trimble-collected monuments:

  1. BlueStarGPS SafeRTK (Mesa County NTRIP)
  2. Emlid Reach RS2 (Mesa County NTRIP & LoRa Radio Base – 868 MHz)
  3. Trimble R10 w/ TSC3 (Mesa County NTRIP) as a baseline for comparisonThe following image shows the locations of four control points as well as the location of the base station used for testing these three systems.


Maximum elevation variance between the three receivers was 0.12 feet vertically, which CDOT verified to be within tolerance on their project sites. Note that the testing only included the Geoid12B (CONUS) model with no vertical calibrations performed on any of the receivers to ensure that the data from each unit was comparable.

Figure 1: CDOT surveyors using an Emlid Reach RS2 base and rover on a project site (12/10/2019)


Despite a small sample size, these results showed that elevation differences were minimal when using the same Geoid with no vertical calibration. As a reminder, the goal of this study was two-fold: (1) using PointMan Geoids, verify that accurate elevations could be collected using less expensive equipment, while being comparable to more expensive Trimble units and (2) to determine if more cost-effective GPS receivers could, in fact, be utilized by CDOT to meet project accuracy requirements. During our testing, this study confirms both items in question. Both the Emlid and the BlueStar receivers performed within the 95% confidence level set forth by NOAA and were also comparable to Trimble with respect to project tolerances. In addition, both CDOT surveyors on the project verbally indicated that the data collected using the Emlid and BlueStar receivers was acceptable for CDOT projects. The surveyors were also impressed with how easily all three GPS receivers connected to PointMan and how reliably they held an NTRIP correction signal. It was noted that PointMan correctly calculated Geoidal height for every point collected. In conclusion, we believe our implementation of Geoids in the PointMan mobile application will give users on CDOT and other projects the ability to acquire accurate vertical data while utilizing our low-cost solution.


Further Explanation – Geoid models:

United States Geoid Models (Geoid18):

Canadian Geoid Models:

EGM 96 models:

EGM 96 and EGM 2008:

Proprietary Geoid Models – useful for Second phase loading of GGF Models:

Link to test results for Canadian Geoid models: