Epoch-aware terrestrial reference-frame transforms.
The built-in catalog contains published 14-parameter Helmert transforms for ITRF and ETRF realizations. Positions are geocentric Cartesian metres, velocities are metres per year, and epochs are decimal years.
Summary
Types
Frame catalog error detail.
Functions
Return all built-in Helmert catalog entries.
Return the direct published catalog entry for from to to.
Propagate a station position from one decimal-year epoch to another.
Transform a Cartesian station position and optional velocity between frames.
Propagate a station to transform_epoch_year, then transform it between frames.
Types
@type error_reason() :: :invalid_frame | map()
Frame catalog error detail.
Functions
@spec catalog() :: [Sidereon.FrameCatalog.HelmertTransform.t()]
Return all built-in Helmert catalog entries.
@spec catalog_entry( Sidereon.FrameCatalog.TerrestrialFrame.t(), Sidereon.FrameCatalog.TerrestrialFrame.t() ) :: {:ok, Sidereon.FrameCatalog.HelmertTransform.t()} | {:error, error_reason()}
Return the direct published catalog entry for from to to.
@spec propagate_position(Sidereon.vec3(), Sidereon.vec3(), number(), number()) :: {:ok, Sidereon.vec3()} | {:error, error_reason()}
Propagate a station position from one decimal-year epoch to another.
@spec transform( Sidereon.vec3(), Sidereon.vec3() | nil, Sidereon.FrameCatalog.TerrestrialFrame.t(), Sidereon.FrameCatalog.TerrestrialFrame.t(), number() ) :: {:ok, Sidereon.FrameCatalog.TerrestrialState.t()} | {:error, error_reason()}
Transform a Cartesian station position and optional velocity between frames.
@spec transform_from_epoch( Sidereon.vec3(), Sidereon.vec3(), number(), Sidereon.FrameCatalog.TerrestrialFrame.t(), Sidereon.FrameCatalog.TerrestrialFrame.t(), number() ) :: {:ok, Sidereon.FrameCatalog.TerrestrialState.t()} | {:error, error_reason()}
Propagate a station to transform_epoch_year, then transform it between frames.