Coordinate System Configuration API
Types
| Name | Description |
|---|---|
| ReferenceFrame | Spatial reference frame for input/output coordinates Determines how position and attitude values are interpreted. |
| HorizontalUnit | HorizontalUnit Unit of measurement for horizontal geodetic coordinates (latitude/longitude) |
| VerticalUnit | VerticalUnit Unit of measurement for vertical coordinate (height/altitude) |
| VerticalDatum | VerticalDatum Vertical datum reference for height measurements |
| GeodeticOptions | GeodeticOptions Options for geodetic coordinate representation Configures units and datum for geodetic coordinates when using ReferenceFrame::Geodetic. |
| CoordinateSystem | Coordinate 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
| Name | Description |
|---|---|
| verticalDatum | Vertical datum reference Default: VerticalDatum::Ellipsoid (WGS84) |
| horizontalUnit | Unit for latitude and longitude Default: HorizontalUnit::Radian |
| verticalUnit | Unit 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
| Name | Description |
|---|---|
| referenceFrame | Spatial reference frame for coordinates Determines how position and attitude values are interpreted. |
| geodeticOptions | Geodetic coordinate options (optional) |
| coordinateEpoch | Coordinate 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).
If provided, the epoch should match the mission epoch (i.e., today's date for real-time, recording date for post-processing)
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.
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.