The reference frame definition specifies the ellipsoid for a reference frame, and the location, orientation, and scale of coordinates relative to a reference system. The reference system is arbitrary. Conversions can only be done between coordinates which have the same reference system.
Reference frame definitions have the following format in the coordinate system definition file:
code description ELLIPSOID ellipsoid_code refcode
IERS_TSR Tx Ty Tz scale Rx Ry Rz
grid_conversion_definition
deformation_model_definition
code description ELLIPSOID ellipsoid_code refcode
IERS_ETSR year0 Tx Ty Tz scale Rx Ry Rz scale
dTx dTy dTz dscale dRx dRy dRz
grid_conversion_definition
deformation_model_definition
code description ELLIPSOID ellipsoid_code refcode
Tx Ty Tz Rx Ry Rz scale
[RATES year0 dTx dTy dTz dRx dRy dRz dscale]
grid_conversion_definition
deformation_model_definition
where
code is an identifier for the reference frame. This may contain letters, numbers, and the underscore character. It cannot contain blanks. Aliases for the code may be included using "=" to separate the codes, for example "NZGD2000=NZGD2000_20170601". Also codes can be included in brackets, "NZGD2000_20170601=(20170601)". The brackets indicate that the code should not be shown in lists of reference frames but can be used in reference frames.
description is a quoted text description of the reference frame
ellipsoid_code is the code for the ellipsoid associated with the reference frame. This code must have been defined in an earlier [ellipsoids] section of the file.
refcode is a code identifying the base reference system in terms of which translations, rotations, scale, and deformation are defined. This can be the code of another reference frame, or an arbitrary code. Conversions are possible between reference frames with a common base code. This need not direct. For example if frame A references frame B, and frames B and C reference frame D, then conversion between any of the frames is possible. Circular referencing is not allowed, so if frame A references B, and B reference C, then C cannot reference A or B. The reference code can be 'NONE', in which case there is no base reference frame, and the transformation and deformation components cannot be included.
The translations, rotations, and scale change can be expressed using either IERS or NGS conventions. The main difference is that the sign of the rotation parameters is reversed.
For IERS convention definitions the translation, scale, and rotation are the transformations that must be applied to a coordinate in terms of the reference frame to convert it to a coordinate in terms of the underlying base reference frame. For the NGS convention, the translation and scale are applied to the coordinates to convert to the base reference frame, but the rotation is reversed.
In the coordsys.def file the convention also affects the units used to express the parameters. For the IERS convention definitions the units are millimetres (mm) for translations, part per billion (ppb) for scale change, and milli arc seconds (mas) for rotations. For NGS convention definitions the units are metres, part per million (ppm) and arc seconds.
IERS conventions are used for definitions using first and second formats above, that is including the literal text "IERS_TSR" or "IERS_ETSR".
Tx Ty Tz is XYZ position of the origin of the reference frame in the reference system (i.e. the translation that must be applied to coordinates to convert them back to the reference system). The coordinates are in mm for IERS format transformations or metres for NGS format transformations.
Rx Ry Rz are the rotations about the X, Y, and Z axes required to convert coordinates from the reference frame back to the reference system. The rotations are in milli arc seconds for IERS format transformations or arc seconds for NGS format transformations.
scale is the scale difference between the reference frame and the reference system. It is applied to coordinates to convert them back to the reference system. The scale is defined in parts per billion for IERS format transformations or parts per million for NGS format transformations.
RATES is an optional section for NGS format transformations defining the rates of change of the transformation components.
year0 is the date at which the transformation applies as a decimal year.
dTx dTy dTz are the rates of change of the transformation components.
dRx dRy dRz are the rates of change of the transformation components.
dscale is the rate of change of the transformation components.
grid_conversion_definition defines a grid based conversion between the base reference frame and this one. The grid model is applied in addition to the seven parameter transformation. Currently only one format of grid conversion is defined:
GRID SNAP2D filename description
where filename is the name of the grid file containing the grid defining the latitude and longitude offsets to be applied, and description is a text description of the model.
deformation_model_definition defines a deformation model that applies for the datum. The deformation model is used to convert coordinates between different epochs and to convert coordinates to the base reference frame. Converting coordinates requires defining a reference epoch at which the model is to be evaluated. The deformation calculated at that epoch is added to the coordinates to convert to the base reference frame coordinates. The definition is structured as:
DEFORMATION type parameters
Here type is the type of deformation model to use. There are currently four model types supported by concord and SNAP. These are
VELGRID grid_file_name reference_epoch
LINZDEF def_model_file
BW14 reference_epoch dTx dTy dTz dRx dRy dRz dS
EULER reference_epoch Plon Plat rate
NONE
The VELGRID model is a gridded velocity model defining the east and north components of velocities on the grid in metres per year. It requires a reference epoch which defines the time at which the deformation is zero.
The LINZDEF model is a complex model comprising multiple components. This has just one parameter, the name of the model definition file. Coordinates in the This does not necessarily correspond to actual coordinates at any real epoch. For NZGD2000 this would be the reference coordinates used to refer to a mark.
The BW14 and EULER models are both equivalent to 14 parameter Bursa Wolf transformations and can be implemented in the transformation definition section (with RATES or IERS_ETSR). The EULER model does provide a convenient alternative formulation however.
The BW14 model adds a rate change to the Bursa Wolf model. It has parameters of a reference epoch, at which the deformation is zero, and translation rates (mm/year), rotation rates (msec/year), and scale change rate (ppb/year).
The EULER model calculates deformation based on a Euler rotation pole and rate. It has parameters of a reference epoch at which the deformation is zero, the longitude and latitude of the pole (in degrees), and the rotation rate in msec/year.
Here is an example of the reference frames section of the coordinate system definition file:
[reference_frames]
WGS84 "World Geodetic System 1984" &
ELLIPSOID WGS84 &
WGS84 0.0 0.0 0.0 0.0 0.0 0.0 0.0
NZGD49 "New Zealand Geodetic Datum 1949" &
ELLIPSOID INTERNATIONAL &
WGS84 59.47 -5.04 187.44 -0.47 0.10 -1.024 -4.5993 &
GRID SNAP2D def492kt.grd "LINZ NZGD49-NZGD2000 conversion grid"
NZGD2000 "New Zealand Geodetic Datum 2000" ELLIPSOID GRS80 &
WGS84 0 0 0 0 0 0 0 &
DEFORMATION 2000.0 VELGRID igns98b 2000.0