Sidereon.ErrorMetrics (Sidereon v0.16.1)

Copy Markdown View Source

Position error metrics derived from supplied covariance matrices.

Covariances are in square metres. ENU axes are east, north, up. ECEF covariances are rotated at the supplied WGS84 geodetic reference before metrics are computed.

Summary

Functions

Compute position error metrics from an ECEF covariance matrix in square metres.

Compute position error metrics from an ENU covariance matrix in square metres.

Compute position error metrics from a kinematic solution-like map or struct.

Types

covariance3()

@type covariance3() :: [[number()]]

error_reason()

@type error_reason() ::
  :non_finite
  | :not_positive_semidefinite
  | :invalid_probability
  | :rotation
  | term()

geodetic_radians_m()

@type geodetic_radians_m() :: {number(), number(), number()}

Functions

from_ecef_covariance(covariance_ecef_m2, receiver_llh_rad_m)

@spec from_ecef_covariance(covariance3(), geodetic_radians_m()) ::
  {:ok, Sidereon.ErrorMetrics.PositionErrorMetrics.t()}
  | {:error, error_reason()}

Compute position error metrics from an ECEF covariance matrix in square metres.

The receiver is {lat_rad, lon_rad, height_m}.

from_enu_covariance(covariance_enu_m2)

@spec from_enu_covariance(covariance3()) ::
  {:ok, Sidereon.ErrorMetrics.PositionErrorMetrics.t()}
  | {:error, error_reason()}

Compute position error metrics from an ENU covariance matrix in square metres.

from_kinematic_solution(solution)

@spec from_kinematic_solution(map()) ::
  {:ok, Sidereon.ErrorMetrics.PositionErrorMetrics.t()}
  | {:error, error_reason()}

Compute position error metrics from a kinematic solution-like map or struct.

The value must provide :position_m and :position_covariance_m2.