TSDN
MAXMLRTCM CT for TopNET

MAXML file creation guide for TopNET

Since version 11.6 TopNET supports sending

Coordinate Transformation (CT) messages. For RTCM data supporting a RTK service, coordinates are measured within the ITRF or a regional realization. Surveyors and other users of RTK services must normally present their results in the coordinates of local datums. Therefore, coordinate transformations are necessary.

By having RTCM messages that contain transformation data and information about the Coordinate Reference Systems (CRS), the users of the RTK service can obtain their results in the desired CRS without any manual operations. The RTK service providers can then ensure that current information for the computation of the transformations is always used. The convenience of this method will promote the acceptance of RTK services.

For storing and exchange of data for CT messages TopNET uses MAXML (MAXML 1.5) format .

MAXML file structure

MAXML is official public XML format for data exchange with Topcon Software: Topcon Field, Topcon Office and Topcon Tools. For correct import in TopNET storage operator must prepare data in according to MAXML structure. The main tag for coordinate transformation data is tps:CoordinateSystemsCollection. It contains collections of Ellipsoids, Datums and Grids linked between each other and specifying a set of CRSs. One file could contain unbounded number of these objects for import into TopNET storage and further translation to rovers.

Ellipsoids

Ellipsoids collection consists of tps:EllipsoidDefinition tags each contains one Earth Ellipsoid model description. Despite there is only one required field (Name) due to schema, for correct definition must be defined:

  • Name.
  • Id in attribute (for linking between objects).
  • Units (if not a meters).
  • A (The semi-major axis of the ellipsoid).
  • One of:
    • InvF (The inverse flattering).
    • E (Eccentricity).
    • B (the semi-minor axis).

Other fields are optional and not required.

Schema:

Example:

Ellipsoids
<tps:EllipsoidDefinition id="ELL6">
  <tps:Name>CGCS2000</tps:Name>
  <tps:Comment>Chineese Geodetic Ref. Sys. 2000</tps:Comment>
  <tps:EpsgCode>1024</tps:EpsgCode>
  <tps:A>6378137.000000</tps:A>
  <tps:InvF>298.257222</tps:InvF>
</tps:EllipsoidDefinition>


Download full sample RTCM1021.mxl (RTCM1021.mxlzip)

Datums

Datums collection consists of tps:Datum tags each contains one Geodetic Datum model description. Coordinate Reference System based on Datum and Datum transformation called Geographic coordinate system and transfers in 1021/1022 RTCM messages. For correct datum definition must be defined:

  • Name (for displaying in UI).
  • Id in attribute (for linking between objects).
  • Ellipsoid (idRef attribute that is equal to an Ellipsoid Definition for this datum).
  • At least one DatumTransformation (maybe several).

Other fields are optional and not required.

Schema:

Example:

Datums
<tps:Datum id="DTM76">
  <tps:Name>CGCS2000</tps:Name>
  <tps:Comment>Chinees datum 2000</tps:Comment>
  <tps:Ellipsoid idRef="ELL6"/>
  <tps:EpsgCode>4479</tps:EpsgCode>
  <tps:DatumTransformation id="DTT77">
    <!--datum transformation body -->
  </tps:DatumTransformation>
</tps:Datum>


Download full sample RTCM1021.mxl (RTCM1021.mxlzip)

Datum Transformations

For coordinate transformation between datums where datum transformation parameters are defined. Datum transformation is mathematical formulas and parameters that transform coordinates from this datum to another (or from another to this). There are several types of transformation formulas that supported in MAXML format but not all supported by RTCM standard. In general, RTCM standard supports Helmert transformation (linear and strict) formulas, Molodensky Abridged and Molodensky-Badekas transformation formulas.
For correct datum transformation description must be defined:

  • ToLocal.
  • DatumToFrom.
  • One of:
    • HelmertParameters.
    • MolodenskyBdksParameters.
  • Units.
  • DatumTransformationBoundaries.
  • CorrectionTable (if exists).

Other fields are optional and not required.

ToLocal and DatumToFrom:

DatumTransformation tag is inside the Datum tag and specifies formulas and parameters for transformation between this Datum (Local) and DatumToFrom. If ToLocal flag is true then parameters direction DatumToFrom -> Local datum, else Local -> DatumToFrom. The default value is false.
DatumToFrom tag contains Datum name and idRef of Datum that is on the «other side» of this transformation. As RTCM standard says (excluding the case of transformation chains), it must be some global ECEF (ITRF, ETRF, ...). The default value is WGS84. If you want to define another datum as DatumToFrom, you must define it in Datums section and specify its ID as a idRef.
For example, if you provide transformation parameters from WGS84 to Your Datum, you may only set <tps:ToLocal>true</tps:ToLocal> tag and do not add tags with default values.

Helmert parameters:

Also known as 7-parameters transformation. The tag contains Method (strict or linearized), seven parameters, and Horizontal and Vertical qualities. The default method is strict. Parameters DX, DY, DZ are linear parameters in accordance with distance units from DatumTransformation/Units/DistanceUnits tag. Parameters RX, RY, RZ are angular parameters in accordance with DatumTransformation/Units/AngleUnits, Scale is a scale factor in accordance with DatumTransformation/Units/ScaleUnits. HorizontalQuality and VerticalQuality values always in millimeters and specify the maximum possible error after applying of the Helmert transformation in horizontal and vertical directions, respectively.

Molodensky-Badekas parameters:

Also known as 10-parameters transformation. Contains the same fields as Helmert one, and three additional parameters. P0X, P0Y, P0Z are linear parameters in distance units from DatumTransformation/Units/DistanceUnits tag.

Units:

The set of units that applies to all values in DatumTransformation and its children nodes (excluding those where units are explicitly specified). Distance, angle, and scale units must be specified if differ from default.

DatumTransformationBoundaries:

The spherical rectangle area of validity for transformation specified by min and max Lat/Lon coordinates in accordance with DatumTransformation/Units/LatLonUnits.

Schema:

Example:

Datum Transformations
<tps:DatumTransformation id="DTT86">
  <tps:Name>Helmert Transformation</tps:Name>
  <tps:ToLocal>true</tps:ToLocal>
  <tps:HelmertParameters>
    <tps:DX>-83.000000</tps:DX>
    <tps:DY>37.000000</tps:DY>
    <tps:DZ>124.000000</tps:DZ>
    <tps:RX>0.000000</tps:RX>
    <tps:RY>0.000000</tps:RY>
    <tps:RZ>0.000000</tps:RZ>
    <tps:Scale>0.000000</tps:Scale>
    <tps:HorizontalQuality>0.0</tps:HorizontalQuality>
    <tps:VerticalQuality>0.0</tps:VerticalQuality>
  </tps:HelmertParameters>
  <tps:Units>
    <tps:DistanceUnits>meters</tps:DistanceUnits>
    <tps:AngleUnits>arcsec</tps:AngleUnits>
    <tps:ScaleUnits>ppm</tps:ScaleUnits>
  </tps:Units>
  <tps:DatumTransformationBoundaries>
    <tps:MinLatNorthing>54.18333333333333</tps:MinLatNorthing>
    <tps:MinLonEasting>36.666666666666664</tps:MinLonEasting>
    <tps:MaxLatNorthing>57.016666666666666</tps:MaxLatNorthing>
    <tps:MaxLonEasting>40.333333333333336</tps:MaxLonEasting>
  </tps:DatumTransformationBoundaries>
</tps:DatumTransformation>


Download full sample RTCM1021.mxl (RTCM1021.mxlzip)

Grids

Grids collection contains tps:Grid tags, each with tps:Projection tag inside it. Grid is the set of transformations to local plane coordinate systems. For example, global UTM grid with several zones and projection parameters for each zone. In MAXML v.1.5 grid supports only one projection parameters. So, grid object is one-to-one with projection object yet. For correct definition tps:Grid tag must contain:

  • Name (for displaying in UI).
  • Id in attributes (for linking between objects).
  • Region.
  • Projection (with parameters inside).

Other fields are optional and not required.

Region:

This field corresponds RTCM DF149 field and contains information about region of CRS utilization, for example: Africa, Eurasia, N. America and so on.

Schema:

Example:

Grids
<tps:Grid id="GRD347">
  <tps:Name>France-CC42</tps:Name>
  <tps:DisplayName>France-LambertCC42</tps:DisplayName>
  <tps:Comment>Lambert 9z</tps:Comment>
  <tps:EpsgCode>3942</tps:EpsgCode>
  <tps:Region>Europe</tps:Region>
  <tps:Projection>
    <!--projection body-->
  </tps:Projection>
</tps:Grid>


Download full sample RTCM1021_1025.mxl (RTCM1021_1025.mxlzip)

Projections

tps:Projection tag contains type and parameters of Map Projection Transformation used to transform coordinates from latitude and longitude to meters on a plane. Parameters of projection are translated in RTCM messages 1025-1027, according to projection type. tps:Projection tag also contains tps:Unit, that allows to set params in different measure units. Some projections is supposed to be used with one reference datum, or list of datums. This reference could be recorded with tps:Datum tag(s). For correct Projection definition must be defined:

  • Name (if projection is a part of Grid it may contain zone number).
  • Axes (the direction for coordinates growth).
  • Units.
  • Type.
  • ParamsProjection
  • CorrectionTable(s) (if any).
  • Datum(s) (reference to the Datum(s) to be used with this projection).

Other fields are optional and not required.

Axes:

The direction where coordinates increase and coordinates order. The default value is NE, that means Y directed to North and it is the first coordinate, X is directed to East and it is the second coordinate. For example, if it is necessary to transfer transverse mercator south oriented projection (TMS), the Axes is SE.

Units:

tps:Units tag contains distance, angle and scale units must be defined to treat parameters of distance, angle and scale types respectively. Also distance units applied to tps:CorrectionTable that is under tps:Projection tag. The list of all available units you can find in MAXML schema documentation.

Type:

MAXML format could transfer projections of any type, thanks to a flexible parameter storage structure, but RTCM supports not all. The list of supported types:

  • TMERC // Transverse Mercator,
  • LC // Lambert Conformal Conic,
  • STER // Stereographic,
  • DSTER // Double Stereographic,
  • MERCATOR // Mercator Auxiliary Sphere,
  • OM // Oblique Mercator,
  • CASSINI // Cassini Soldner.

Identificators of types must be in strict accordance with this list.

ParamsProjection:

This tag contains the list of projection parameters with tags P0, P1, …. Each parameter is the double value with name and type in attributes. Names of parameters must correspond names from Topcon Software products or OGC WKT dataset parameters names. For example, False_Easting, Standard_Parallel_1, etc. Type of parameter in most common cases is distance, angle, scale or undefined. It specifies which type of unit is applied to this parameter.

Datums:

tps:Projection tag may contain zero, one or several tags tps:Datum with name and idRef attribute points to I tag with the same id from tps:CoordinateSystemCollection. If there is one tps:Datum pointer in projection, that means that this projection must be used with this Datum only. If there are several pointers, the projection must be used with Datum from this list only (like SPC83 with NAD datums). Is there is no tps:Datum tag, that means that projection is available to use on any datum (like UTMN-Zone# projection).

Schema:

Example:

Projections
<tps:Projection>
  <tps:EpsgCode>3942</tps:EpsgCode>
  <tps:Units>
    <tps:DistanceUnits>meters</tps:DistanceUnits>
    <tps:AngleUnits>dddmmsss</tps:AngleUnits>
    <tps:ScaleUnits>decimal</tps:ScaleUnits>
  </tps:Units>
  <tps:Type>LC</tps:Type>
  <tps:ParamsProjection>
    <tps:P0 name="SouthLat" type="angle">41.150000</tps:P0>
    <tps:P1 name="NorthLat" type="angle">42.450000</tps:P1>
    <tps:P2 name="Lon0" type="angle">3.000000</tps:P2>
    <tps:P3 name="Lat0" type="angle">42.000000</tps:P3>
    <tps:P4 name="East0" type="distance">1700000.000000</tps:P4>
    <tps:P5 name="North0" type="distance">1200000.000000</tps:P5>
    <tps:P6 name="Scale" type="scale">1.000000</tps:P6>
  </tps:ParamsProjection>
  <tps:Datum idRef="DTM1"/>
</tps:Projection>


Download full sample RTCM1021_1025.mxl (RTCM1021_1025.mxlzip)

Correction Tables

tps:CorrectionTable tag contains the table of residuals to be utilized right after transformation based on formulas and parameters. If corrections are given in angle units in Latitude/Longitude mesh, it must be placed inside tps:DatumTransformation tag and utilized right after utilizing Helmert or Molodensky formulas (RTCM message 1023). Else if corrections are in meters in projected system mesh, it must be placed inside corresponding tps:Projection tag (RTCM message 1024). Residuals must be placed in regular rectangle mesh (allow to contain holes filled with NaN values) or in a set of regular rectangle meshes in one datum transformation or projection. tps:CorrectionTable contains fields:

  • MeanLatNorthing (default is 0).
  • MeanLonEasting (default is 0).
  • MeanHeight (default is 0).
  • HorizontalInterpolation (default is "bilinear").
  • VerticalInterpolation (default is "bilinear").
  • HeightProcessMethod (default is "undefined").
  • HorizontalTableQuality (default is 0).
  • VerticalTableQuality (default is 0).
  • ModifiedJulianDay (default is 0).
  • Passport.
  • Data.

Passport and Data are required fields, other required if differs from default.

Mean Values:

If residuals data shifted in relation to some mean value in any direction, it could be specified in corresponding field, and it will be used to calculate result residual. For example, if MeanLatNorthing = 0.003 and latitude shift from some Datum transformation correction table node equals 0.00001, then Result_residual = MeanLatNorthing + Lat_shift[i] = 0.00301. Also with Longitude and Height. For datum transformation tables MeanLatNorthing and MeanLonEasting are in LatLon measure units. Height is in Distance measure units. For projection tables MeanLatNorthing, MeanLonEasting and Height are in Distance measure units.


Interpolation Types:

This fields specify horizontal and vertical interpolation types for being used by rover. Could be "bilinear", "biquadratic", "bispline".

HeightProcessMethod:

The indicator for way of height processing in the transformation. There are:

  • geometric: Height calculated only in Helmert/Molodensky transformation and result is Ellipsoidal Height, table offsets are not processed for height;
  • physical_target: Offsets in the table for height are given in the Current (Target) Datum (after Helmert/Molodensky transformation);
  • physical_source: Offsets in the table for height are given in Source Datum (FromDatum).

Table Quality:

HorizontalTableQuality and VerticalTableQuality are always in millimeters and specify the maximum possible error after applying residuals.

ModifiedJulianDay:

ModifiedJulianDay tag specify MJD number of table data release. If several tables are pieces of one dataset, they must have equals MJDs. If it is new version of table, there must be another (newer) MJD.

Passport:

Every table must contain tps:Passport with all fields filled. For correct definition there are must be:

  • Boundaries group (for datum transformation tables in LatLon Units, for projection transformation in Distance Units):
    • tps:MinLatNorthing;
    • tps:MinLonEasting;
    • tps:MaxLatNorthing;
    • tps:MaxLonEasting.
  • Steps in two directions (for datum transformation tables in LatLon Units, for projection transformation in Distance Units):
    • tps:LatNorthingStep;
    • tps:LonEastingStep.
  • tps:DataDimension - The dimension of data in the table. How much residuals for each point in tps:Data.
    • 1 is for Geoid (Vertical CS definition), only Height residual;
    • 2 is for Horizontal table datum or projection CS definition, Lat/Lon or Northing/Easting residuals;
    • 3 is for Horizontal and Vertical residuals in one table, Lat/Lon/Height or N/E/Height residuals. The order matters.
  • tps:TraversalOrder specify order of values in the tps:Data. The default value is EN, it means that table data starts from most south-western corner and placed by rows from west to east and from south to north. MAXML format fully supports all 8 variants of traversal orders. Note, that RTCM residuals patches (4x4) in 1023 and 1024 messages transferred to rover in ES traversal order.

Data:

tps:Data tag contains space separated ('\t' and '\n' also acceptable) double values for residuals corresponding to the area specified by passport. Also, acceptable NaN values for some points where value is absent. The number of values must be exactly as is in the formula:
Num = ((MaxLonEasting - MinLonEasting) / LonEastingStep + 1) * ((MaxLatNorthing - MinLatNorthing) / LatNorthingStep + 1) * DataDimension.
For datum transformation tables horizontal residuals are in units from LatLonUnits field. For projection transformation tables all residuals are in units from DistanceUnits field.

Schema:

Example (CorrectionTable from DatumTransformation):

Correction Tables
<tps:Units>
  <tps:DistanceUnits>meters</tps:DistanceUnits>
  <tps:AngleUnits>arcsec</tps:AngleUnits>
  <tps:ScaleUnits>ppm</tps:ScaleUnits>
  <tps:LatLonUnits>dec_deg</tps:LatLonUnits>
</tps:Units>
<tps:CorrectionTable>
  <tps:MeanLatNorthing>0.000000277778</tps:MeanLatNorthing>
  <tps:MeanLonEasting>0.000001666667</tps:MeanLonEasting>
  <tps:MeanHeight>45.010000</tps:MeanHeight>
  <tps:HorizontalInterpolation>bilinear</tps:HorizontalInterpolation>
  <tps:VerticalInterpolation>bilinear</tps:VerticalInterpolation>
  <tps:HeightProcessMethod>physical_source</tps:HeightProcessMethod>
  <tps:ModifiedJulianDay>59127</tps:ModifiedJulianDay>
  <tps:Passport>
    <tps:MinLatNorthing>48.058333333333</tps:MinLatNorthing>
    <tps:MinLonEasting>12.225000000000</tps:MinLonEasting>
    <tps:MaxLatNorthing>48.083333333333</tps:MaxLatNorthing>
    <tps:MaxLonEasting>12.262500000000</tps:MaxLonEasting>
    <tps:LatNorthingStep>0.008333333333</tps:LatNorthingStep>
    <tps:LonEastingStep>0.012500000000</tps:LonEastingStep>
    <tps:DataDimension>3</tps:DataDimension>
    <tps:TraversalOrder>EN</tps:TraversalOrder>
  </tps:Passport>
  <tps:Data>-9.16667e-08 9.16667e-08 0.001 0 2.33333e-07 -0.002 -8.33333e-09 8.33333e-08 -0.006 -6.66667e-08 5.83333e-08 -0.009 8.33333e-08 2.41667e-07 0.002 1.08333e-07 2.25e-07 0 -2.5e-08 -8.33333e-08 -0.004 -1.25e-07 1.66667e-08 -0.009 8.33333e-08 -7.5e-08 0.001 8.33333e-09 5.83333e-08 -0.001 -1.66667e-07 -1.5e-07 -0.003 -2.83333e-07 -1.91667e-07 -0.007 7.5e-08 -2.5e-07 0.002 -1.41667e-07 -2.5e-08 -0.001 -1.16667e-07 -3.33333e-08 -0.002 -1.08333e-07 -1.25e-07 -0.005</tps:Data>
</tps:CorrectionTable>


Download full sample:

MAXML Samples

MAXML files templates for different kind of RTCM messages

RTCM 1021. Helmert Transformation


RTCM1021.mxl (RTCM1021.mxlzip)

RTCM 1022. Molodensky-Badekas Transformation


RTCM1022.mxl (RTCM1022.mxlzip)

RTCM 1021 + 1023. Helmert Transformation with Lat/Lon Table Residuals


RTCM1021_1023.mxl (RTCM1021_1023.mxlzip)

RTCM 1022 + 1023. Molodensky-Badekas Transformation with Lat/Lon Table Residuals


RTCM1022_1023.mxl (RTCM1022_1023.mxlzip)

RTCM 1021 + 1025. Helmert Transformation with Projection parameters


RTCM1021_1025.mxl (RTCM1021_1025.mxlzip)

RTCM 1022 + 1025. Molodensky-Badekas Transformation with Projection parameters


RTCM1022_1025.mxl (RTCM1022_1025.mxlzip)

RTCM 1021 + 1023 + 1025. Helmert Transformation with Lat/Lon Table Residuals, Projection parameters


RTCM1021_1023_1025.mxl (RTCM1021_1023_1025.mxlzip)

RTCM 1022 + 1023 + 1025. Molodensky-Badekas Transformation with Lat/Lon Table Residuals, Projection parameters


RTCM1022_1023_1025.mxl (RTCM1022_1023_1025.mxlzip)

RTCM 1021 + 1025 + 1024. Helmert Transformation, Projection parameters with N/E Table Residuals


RTCM1021_1024_1025.mxl (RTCM1021_1024_1025.mxlzip)

RTCM 1022 + 1025 + 1024. Molodensky-Badekas Transformation, Projection parameters with N/E Table Residuals


RTCM1022_1024_1025.mxl (RTCM1022_1024_1025.mxlzip)

Other RTCM CT service providers overview

SAPOS

The satellite positioning service SAPOS is a joint project of the working group of surveying administrations of the federal states of the Federal Republic of Germany (AdV). SAPOS provides the official geodetic spatial reference in the form of a Germany-wide network of GNSS reference stations.

SAPOS uses RTCM CT messages to deliver Germany datum transformation parameters and orthometric height residuals for territory of Germany. The source data of this transformation was described in MaXML format file and loaded into TopNET-V software. During the comparison of the coordinates transformation results, the same coordinates were obtained at the rover in the case of working in the SAPOS network and in the TopNET network.

Here you could download MaXML file template with SAPOS RTCM CT parameters: SAPOS_template.mxl (SAPOS_template.mxlzip)