Defining new datums

New datums are stored in a text file named datums.txt that can be stored either locally or in the $PROHOME/etc directory, or both.

The following is the top portion of the file.

!
!       NOTE: The range of D900 to D998 is reserved for
!             local customer development.
!
!             The range of D-90 to D-98 is reserved for
!             local customer development.
!
!             New datum definitions can be submitted to
!             [email protected]
!
"DoD World Geodetic System 1984, DMA TR 8350.2"
"4 JUL 1997, Third Printing, Includes 3 JAN 2000 Updates"
"D-01","NAD27 (USA, NADCON)","E000","Conterminous U.S.","D122","conus.los","conus.las"
"D-02","NAD83 (Deprecated - use D122)","E008",0,0,0,"Conterminous U.S.",2,2,2,354
"D-03","NAD27 (Canada, NTv1)","E000","Canada","D122","grid.dac"

To define the new datum, add the new datum definition as one line of text to the datum.txt file.

For example:

"D801","ATS77","E910",0,0,0,"New Brunswick",0,0,0,0

The fields of the new three-term Molodensky transformation datum record are as follows:

Field No. Example Value Description
1 D801 A unique code for the datum that does not already exist in this file. The first character is D (or d) for datum followed by an integer (maximum of 3 characters).
2 "ATS77" A descriptor string for the Earth datum. This descriptor is not currently used in the software. An empty character string can be used.
3 E910 Field 1 of the ellipsoid record uses the datum from ellips.txt. If this is a new ellipsoid that is not supported, it can be defined. See Defining new ellipsoids.
4 0 An x offset of the ellipsoid to the Earth center, in meters.
5 0 A y offset of the ellipsoid to the Earth center, in meters.
6 0 A z offset of the ellipsoid to the Earth center, in meters.
7 New Brunswick A descriptor string for the Earth datum. This descriptor defines where this datum is typically used.
8 0 The minimum error for the x-dimension, in meters.
Note: This is not used and can be set as 0.
9 0 The minimum error for the y-dimension, in meters.
Note: This is not used and can be set as 0.
10 0 The minimum error for the z-dimension, in meters.
Note: This is not used and can be set as 0.
11 0 The number of Doppler stations used to model the offsets and errors.
Note: This is not used and can be set as 0.

Fields 1 to 11 are required to add a new three-term Molodensky transformation. For a new seven-term Bursa-Wolf transform, four additional terms (12 to 15) must be added to the end of the new datum record.

For example:

"D802","ATS77","E910",0,0,0,"New Brunswick",0,0,0,0,0.001,0.002,0.004,1.00001

The additional fields of the new seven-term Bursa-Wolf datum record are as follows:

Field No. Example Value Description
12 0.001 The x-rotation, in decimal seconds.
13 0.002 The y-rotation, in decimal seconds.
14 0.004 The z-rotation, in decimal seconds.
15 1.00001

The new scale.

This field is the new scale and is used "as is" in the seven-term transformation.

It is commonly accepted elsewhere that this term is the "change in scale in parts per million" that is added to 1.0. This field is processed as follows:
  • If the ScaleValue is equal to 0.999 or 1.001 or is in the range of 0.999 to 1.001, the value is the old scale type and the NewScale is set to equal this ScaleValue.
  • If the ScaleValue is less than 0.999 or greater than 1.001, the value is the new type of ScaleValue and is processed as: NewScale = 1.0 + ScaleValue/1000000.0

However, if the ScaleValue is in the range of 0.999 to 1.001 and it is supposed to be change of scale in parts per million, this ScaleValue should be handled with the old method. Calculate the math manually and enter that value for the ScaleValue.

Problems with alternating the old and new methods for processing the ScaleValue are possible, but unlikely, because:
  • the range of 0.999 to 1.001 is very small, and the chance of the new way of specifying ScaleValue falling within this range is slim
  • the possibility of an old ScaleValue outside the range of 0.999 to 1.001 is negligible

To add a definition once so that it is globally available to all users (and if you have write-permission to the file), the new definition can be added to the file $PROHOME/etc/datum.txt.

At the operating-system level (for example, on a UNIX platform), you can copy the files as follows:

% cp $PROHOME/etc/datum.txt
% chmod 644 datum.txt

You may also wish to define a datum that uses a grid shift file or a set of gridshift files to perform coordinate transformation, instead of using numerical parameters.

For example:

"D788","NAD83 HARN (USA, NADCON)","E008","Utah","D122","uthpgn.los","uthpgn.las"

The first three fields for this type of datum record are the same as the definition of a standard; the remaining fields should be defined as follows:

Field No. Example Value Description
4 Utah A descriptor string for the Earth datum. This descriptor defines where this datum is typically used.
5 D122

The target datum used by the specified grid shift file(s) to shift. In this example, the grid shift files are used to transform to D122.

If the gridshift files are meant to transform from the current datum to the target datum, simply list the target datum for this field. In our case, D788, the grid shift files contain parameters to transform from D788 to D122, so list this field as D122.

If, however, the grid shift file were to contain parameters for performing a transformation from the target datum to the current datum, prefix the field with a '-'. For example, if the grid shift files associated with your datum contain parameters that are meant to transform the datum for D788 from D122 to D788, specify this field as –D122.

6 uthpgn.los The grid shift file used to perform longitude shifts. If the grid shift file format requires only one grid shift file that is used to perform both longitude and latitude shifts (for example, NTv2), use that file for this field.
7 uthpgn.las The grid shift file used to perform latitude shifts. If the grid shift file format requires only one grid shift file that is used to perform both longitude and latitude shifts (for example, NTv2), do not include this field in the datum record.

© PCI Geomatics Enterprises, Inc.®, 2026. All rights reserved.