Understanding Transformations

By Dr. Robin Steeves

This section explains the process used by the GeoLab Coordinate Transformer when transforming coordinates. Understanding this process is key to understanding the significance of such things as applying 7-parameters to a reference ellipsoid versus specifying a set of 7-parameters to the coordinates.

Any transformation performed by the GeoLab Coordinate Transformer is done in two major steps:

  • Transform the input coordinates to geocentric Cartesian coordinates;

  • Transform the resulting geocentric Cartesian coordinates from step one to the desired output coordinate type.


The following abbreviations are used in describing transformations below:

  • E - Easting (map projection x-coordinate)

  • H - Ellipsoidal height

  • L - Ellipsoidal longitude

  • N - Northing (map projection y-coordinate)

  • O - Orthometric height (elevation)

  • P - Ellipsoidal latitude

  • U - Geoid undulation (U = H - O)

  • X - Geocentric Cartesian X-coordinate

  • Y - Geocentric Cartesian Y-coordinate

  • Z - Geocentric Cartesian Z-coordinate

  • n - North-south component of the deflection of the vertical.

  • e - East-west component of the deflection of the vertical.

It is important to understand the major difference between the two input file types (GeoLab adjustment files and a GeoLab text file). With GeoLab adjustment files, geoid undulations (U) and deflections of the vertical (n, e) are retrieved directly from the adjustment files. With GeoLab text files, geoid undulations (U) and deflections of the vertical (e, n) must be specified by GEOI and GFIL records. If no such records are found in the text file, the geoid values are set to zero.

Step 1: Transforming Input Coordinates to Geocentric Cartesian Coordinates
If the input is from GeoLab adjustment files, the Geocentric Cartesian coordinates are read directly from those files.

If the input is from a GeoLab text file, then the Geocentric Cartesian coordinates are computed as follows:

  • NE: Compute PL from NE using specified map projection; Set H to zero, and O to H - U; Compute geocentric XYZ from PLH (PLH is relative to the specified reference ellipsoid for from-coordinates).

  • NEO: Same as NE, except that O is given and H is set to O + U.

  • NEH: Same as NE, except that H is given and O is set to H - U.

  • PL: Set H to zero, and O to H - U; Compute geocentric XYZ from PLH (PLH is relative to the specified reference ellipsoid for from-coordinates).

  • PLO: Same as PL, except that O is given and H is set to O + U.

  • PLH: Same as PL, except that H is given and O is set to H - U.

  • XYZ: Compute PLH (relative to the specified reference ellipsoid for from-coordinates) from the given XYZ.


At this point we know the PLH coordinates (relative to the possibly non-geocentric reference ellipsoid specified for from-coordinates) and the geocentric Cartesian coordinates XYZ. If 4-parameter and/or 7-parameter values are specified, these transformations are now applied to produce the final geocentric XYZ coordinates to start with in Step 2 below (i.e. the specified 4-parameter and/or 7-parameter values are used to transform the near-geocentric XYZ coordinates to geocentric XYZ coordinates).

Step 2: Transforming the Geocentric Cartesian Coordinates to Output Coordinates
Now that we have geocentric Cartesian coordinates XYZ and geoid values (U, e, n), we can compute the to-coordinates. The following transformations are performed (in the given order) to produce the to-coordinates:

  • If the to-coordinate type is PLO, NEO, or GEOI, we must transform the geoid values (U, e, n) from the from-ellipsoid to the to-ellipsoid.

  • If the to-coordinate type is PL, PLH, PLO, NE, NEH, or NEO, we must transform XYZ to PLH relative to the to-ellipsoid.

  • If the to-coordinate type is NE, NEO, or NEH, we must transform PLH (relative to the to-ellipsoid) to NE map projection coordinates relative to the to-map projection.

  • If the to-coordinate type is NEO or PLO, we set O to H - U.