Skip to main content
Version: 0.6 (Latest)

Coordinate System Configuration API

Types

NameDescription
ReferenceFrameSpatial reference frame for input/output coordinates Determines how position and attitude values are interpreted.
HorizontalUnitHorizontalUnit Unit of measurement for horizontal geodetic coordinates (latitude/longitude)
VerticalUnitVerticalUnit Unit of measurement for vertical coordinate (height/altitude)
VerticalDatumVerticalDatum Vertical datum reference for height measurements
GeodeticOptionsGeodeticOptions Options for geodetic coordinate representation Configures units and datum for geodetic coordinates when using ReferenceFrame::Geodetic.
CoordinateSystemCoordinate system specification Defines the complete coordinate system configuration including reference frame, geodetic options, and coordinate epoch for tectonic plate correction.

ReferenceFrame

enum class ReferenceFrame

Spatial reference frame for input/output coordinates

Determines how position and attitude values are interpreted. Choose based on your application's coordinate system.

ECEF : Earth-Centered Earth-Fixed (ECEF) coordinates

  • Position: [X, Y, Z] in meters from Earth's center
  • Attitude: Rotation relative to ECEF X,Y,Z axes

Geodetic : Geodetic coordinates with local NED orientation

  • Position: [Latitude(rad), Longitude(rad), Height above (WGS84) Ellipsoid(m)]
  • Attitude: Rotation relative to local North-East-Down frame
  • Recommended when Covariance matrix is provided (pose search in north-east plane is more robust than in ECEF)

HorizontalUnit

enum class HorizontalUnit

HorizontalUnit Unit of measurement for horizontal geodetic coordinates (latitude/longitude)

Radian : Radians (default)

Latitude and longitude expressed in radians.

Degree : Degrees

Latitude and longitude expressed in decimal degrees.


VerticalUnit

enum class VerticalUnit

VerticalUnit Unit of measurement for vertical coordinate (height/altitude)

Meter : Meters (default)

Height expressed in meters.

Foot : Feet

Height expressed in feet.


VerticalDatum

enum class VerticalDatum

VerticalDatum Vertical datum reference for height measurements

Ellipsoid : WGS84 Ellipsoid (default)

Height above the WGS84 reference ellipsoid (ellipsoidal height). Measurements typically received from GNSS systems. Altitude/height represented as HAE - Height Above Ellipsoid

EGM2008 : EGM2008 Geoid

Height above the EGM2008 geoid model (orthometric height approximation). Measurements typically received from barometric altimeters. Altitude/height represented as HAMSL - Height Above Mean Sea Level (approximate)


GeodeticOptions

struct GeodeticOptions

GeodeticOptions Options for geodetic coordinate representation

Configures units and datum for geodetic coordinates when using ReferenceFrame::Geodetic. These options only apply to geodetic mode and are ignored when using ECEF coordinates.

Variables

NameDescription
verticalDatumVertical datum reference Default: VerticalDatum::Ellipsoid (WGS84)
horizontalUnitUnit for latitude and longitude Default: HorizontalUnit::Radian
verticalUnitUnit for height/altitude Default: VerticalUnit::Meter

Variable Details

verticalDatum

VerticalDatum verticalDatum

Vertical datum reference

Default: VerticalDatum::Ellipsoid (WGS84)

horizontalUnit

HorizontalUnit horizontalUnit

Unit for latitude and longitude

Default: HorizontalUnit::Radian

verticalUnit

VerticalUnit verticalUnit

Unit for height/altitude

Default: VerticalUnit::Meter


CoordinateSystem

struct CoordinateSystem

Coordinate system specification

Defines the complete coordinate system configuration including reference frame, geodetic options, and coordinate epoch for tectonic plate correction.

Variables

NameDescription
referenceFrameSpatial reference frame for coordinates Determines how position and attitude values are interpreted.
geodeticOptionsGeodetic coordinate options (optional)
coordinateEpochCoordinate epoch for tectonic plate correction (optional, RECOMMENDED: omit)

Variable Details

referenceFrame

ReferenceFrame referenceFrame

Spatial reference frame for coordinates

Determines how position and attitude values are interpreted. Choose based on your application's coordinate system. See: ReferenceFrame for detailed descriptions

geodeticOptions

std::optional<GeodeticOptions> geodeticOptions

Geodetic coordinate options (optional)

Configures units and datum for geodetic coordinates. Only applies when referenceFrame is set to ReferenceFrame::Geodetic. Ignored when using ECEF coordinates.

If not provided, default GeodeticOptions will be used. See: GeodeticOptions for available options

coordinateEpoch

std::optional<float> coordinateEpoch

Coordinate epoch for tectonic plate correction (optional, RECOMMENDED: omit)

Enables correction for tectonic plate movement between epoch of reference map and epoch of mission, improving accuracy for high-precision applications. Uses GSRM2.1 model for tectonic plate movement.

Year as decimal number (e.g., 2025.0 for January 1st, 2025).

tip

If provided, the epoch should match the mission epoch (i.e., today's date for real-time, recording date for post-processing)

note

Tectonic plate shift is typically only a few centimeters per year in most locations, so this can be omitted for many applications unless high precision is required.

caution

Models average, long-term plate movement only (GSRM2.1). Does NOT model deformation in zones along tectonic plate borders, compensate for sudden shifts (earthquakes, landslides), or account for local subsidence/uplift from other geological processes.

If not provided, no tectonic correction is applied.