DatumTransform

Description

abstract class Tinman.Terrain.Georef.DatumTransform

Derived from

SerializableBase abstract
IDatumTransform

Abstract base class for IDatumTransform implementations.

Public / Constructors

Coordinate​Frame​Rotation


public static method CoordinateFrameRotation → (5)

source in : Ellipsoid

[not-null]
The source ellipsoid, for geographic to geocentric conversion.

target in : Ellipsoid

[not-null]
The target ellipsoid, for geocentric to geographic conversion.

in : Vec3D

EPSG-8605: X-axis translation (tX),
EPSG-8606: Y-axis translation (tY),
EPSG-8607: Z-axis translation (tZ),
specified in UnitOfMeasure.Metre.

in : Vec3D

EPSG-8608: X-axis rotation (rX),
EPSG-8609: Y-axis rotation (rY),
EPSG-8610: Z-axis rotation (rZ),
specified in UnitOfMeasure.Radian.

dS in : float64

EPSG-8611: Scale difference (dS), specified in UnitOfMeasure.Unity.

returns → IDatumTransform

The resulting datum transform.

EPSG-1133: Coordinate Frame rotation full matrix (geog2D)
EPSG-1140: Coordinate Frame rotation full matrix (geog3D)

Geocentric​Transform


public static method GeocentricTransform → (3)

source in : Ellipsoid

[not-null]
The source ellipsoid, for geographic to geocentric conversion.

target in : Ellipsoid

[not-null]
The target ellipsoid, for geocentric to geographic conversion.

transform in : Mat4D

The geocentric transformation matrix, expressed in UnitOfMeasure.Metre.

returns → IDatumTransform

The resulting datum transform.

Applies the given transformation in the geocentric domain.

First, geographic coordinates are converted to geocentric coordinates using the source coordinate system. Then the matrix transformation is applied to the X-, Y- and Z-coordinates. Finally, the geocentric coordinates are converted back to geographic coordinates using the target coordinate system.

Geocentric​Translations


public static method GeocentricTranslations → (3)

source in : Ellipsoid

[not-null]
The source ellipsoid, for geographic to geocentric conversion.

target in : Ellipsoid

[not-null]
The target ellipsoid, for geocentric to geographic conversion.

in : Vec3D

EPSG-8605: X-axis translation (tX),
EPSG-8606: Y-axis translation (tY),
EPSG-8607: Z-axis translation (tZ),
specified in UnitOfMeasure.Metre.

returns → IDatumTransform

The resulting datum transform.

EPSG-1035: Geocentric translations (geog3D domain)
EPSG-9603: Geocentric translations (geog2D domain)

Geographic​Linear


public static method GeographicLinear → (4)

latitude in : float64

Latitude offset, in radians.

longitude in : float64

Longitude offset, in radians.

scale opt : float64 = 1

Height scale factor.

offset opt : float64 = 0

Height offset value.

returns → IDatumTransform

The resulting datum transform.

Creates a custom linear datum transform.

For the given input coordinates (lambda, phi, h), the transformation will give:

(lambda + longitude, phi + latitude, h * scale + offset)

This method represents the following:

  • EPSG-1131: Geog3D to Geog2D+GravityRelatedHeight

  • EPSG-1136: Geographic3D to GravityRelatedHeight

  • EPSG-9601: Longitude rotation

  • EPSG-9616: Vertical Offset

  • EPSG-9618: Geographic2D with Height Offsets

  • EPSG-9619: Geographic2D offsets

  • EPSG-9660: Geographic3D offsets

Helmert


public static method Helmert → (5)

source in : Ellipsoid

[not-null]
The source ellipsoid, for geographic to geocentric conversion.

target in : Ellipsoid

[not-null]
The target ellipsoid, for geocentric to geographic conversion.

in : Vec3D

EPSG-8605: X-axis translation (tX),
EPSG-8606: Y-axis translation (tY),
EPSG-8607: Z-axis translation (tZ),
specified in UnitOfMeasure.Metre.

in : Vec3D

EPSG-8608: X-axis rotation (rX),
EPSG-8609: Y-axis rotation (rY),
EPSG-8610: Z-axis rotation (rZ),
specified in UnitOfMeasure.Radian.

dS in : float64

EPSG-8611: Scale difference (dS), specified in UnitOfMeasure.Unity.

returns → IDatumTransform

The resulting datum transform.

EPSG-1037: Position Vector Transformation (geog3D domain)
EPSG-1038: Coordinate Frame Rotation (geog3D domain)
EPSG-1149: Coordinate Frame Rotation (geog3D to compound)
EPSG-9606: Position Vector Transformation (geog2D domain)
EPSG-9607: Coordinate Frame Rotation (geog2D domain)

For the PVT case, the axis rotation parameters (see in) must be passed in unchanged. For the CFR case, the axis rotation parameters must be negated (see IVecOps.Neg) before passing them in.

Molodensky


public static method Molodensky → (6)

source in : Ellipsoid

[not-null]
The source ellipsoid, for geographic to geocentric conversion.

target in : Ellipsoid

[not-null]
The target ellipsoid, for geocentric to geographic conversion.

in : Vec3D

EPSG-8605: X-axis translation (tX),
EPSG-8606: Y-axis translation (tY),
EPSG-8607: Z-axis translation (tZ),
specified in UnitOfMeasure.Metre.

in : Vec3D

EPSG-8608: X-axis rotation (rX),
EPSG-8609: Y-axis rotation (rY),
EPSG-8610: Z-axis rotation (rZ),
specified in UnitOfMeasure.Radian.

in : Vec3D

EPSG-8617: Ordinate 1 of evaluation point (Xp),
EPSG-8618: Ordinate 2 of evaluation point (Yp),
EPSG-8667: Ordinate 3 of evaluation point (Zp),
specified in UnitOfMeasure.Metre.

dS in : float64

EPSG-8611: Scale difference (dS), specified in UnitOfMeasure.Unity.

returns → IDatumTransform

The resulting datum transform.

EPSG-1039: Molodensky-Badekas (CF geog3D domain)
EPSG-1062: Molodensky-Badekas (PV geog3D domain)
EPSG-1063: Molodensky-Badekas (PV geog2D domain)
EPSG-9636: Molodensky-Badekas (CF geog2D domain)

For the PV case, the axis rotation parameters (see in) must be passed in unchanged. For the CF case, the axis rotation parameters must be negated (see IVecOps.Neg) before passing them in.

Polynomial​Sin


public static method PolynomialSin → (6)

source in : UnitOfMeasure

[not-null]
The vertical coordinate unit.

c0 in : float64

The polynomial coefficient, in metres.

c1 in : float64

The polynomial coefficient, in metres.

c2 in : float64

The polynomial coefficient, in metres.

c3 in : float64

The polynomial coefficient, in metres.

c4 in : float64

The polynomial coefficient, in metres.

returns → IDatumTransform

The resulting datum transform.

Vertical offset computed by a polynomial of degree 4 on the sine of the latitude:

f(x)  = c4 * x^4 + c3 * x^3 + c2 * x^2 + c1 * x^1 + c0
H_out = H_in + scale * f(sin(latitude))

where H_in is the vertical coordinate value in the source datum, H_out is the vertical coordinate value in the target datum and scale is the scale factor from metres to vertical units.

Slope


public static method Slope → (4)

source in : Ellipsoid

[not-null]
The source ellipsoid.

in : Vec2D

EPSG-8617: Ordinate 1 of evaluation point (phi_S0),
EPSG-8618: Ordinate 2 of evaluation point (lambda_S0),
specified in UnitOfMeasure.Radian.

in : Vec2D

EPSG-8731: Inclination in longitude,
EPSG-8730: Inclination in latitude,
specified in UnitOfMeasure.Unity per UnitOfMeasure.Radian.

in : float64

EPSG-8603: Vertical Offset,
specified in UnitOfMeasure.Metre.

returns → IDatumTransform

The resulting datum transform.

EPSG-1046: Vertical Offset and Slope

Zero​To​Mean​Tide


public static method ZeroToMeanTide → (1)

source in : UnitOfMeasure

[not-null]
The vertical coordinate unit.

returns → IDatumTransform

The resulting datum transform.

EPSG-1107: Zero-tide height to mean-tide height (EVRF2019)

Protected / Constructors

Datum​Transform


protected constructor DatumTransform → (2)

serialType in : ISerialTypeInfo

[not-null]
The serial type ID.

hashCode in : int32

A pseudo-random hash code that represents the IRasterTransform implementation class.

Creates a new instance of DatumTransform.

Configuration

Config


public static attribute Config → (get)

value : IConfigurator<IDatumTransform>

[not-null]
The configurator object.

The configurator object for this type.