ReferenceSystems

The ReferenceSystems submodule contains precision transformations between common standard reference systems.

Currently only Earth-based reference systems are supported.

Most of the transformations are make backend calls to the SOFA C-library functions provide the package SOFA.jl

SatelliteDynamics.rRTNtoECIFunction

Compute the radial, along-track, cross-track (RTN) to Earth-centered inertial rotation matrix. If applied to a position vector in the RTN frame, it will transform that vector to into the equivalent position vector in the ECI frame.

The RTN frame is also commonly refered to as the local-vertical, local-horizontal (LVLH) frame.

Arguments:

  • x::AbstractVector{<:Real}: Inertial state (position and velocity) of primary (observing) satellite

Returns:

  • R_rtn2eci::SMatrix{3,3}: Rotation matrix transforming from the RTN frame to the ECI frame
source
SatelliteDynamics.rECItoRTNFunction

Compute the Earth-centered inertial to radial, along-track, cross-track (RTN) rotation matrix. If applied to a position vector in the ECI frame, it will transform that vector into the equivalent position vector in the RTN frame.

The RTN frame is also commonly refered to as the local-vertical, local-horizontal (LVLH) frame.

Arguments:

  • x::AbstractVector{<:Real}: Inertial state (position and velocity) of primary (observing) satellite

Returns:

  • R_eci2rtn::SMatrix{3,3}: Rotation matrix transforming from the ECI frame to the RTN frame
source
SatelliteDynamics.sECItoRTNFunction

Compute the radial, along-track, cross-track (RTN) coordinates of a target satellite in the primary satellites RTN frame.

The RTN frame is also commonly refered to as the local-vertical, local-horizontal (LVLH) frame.

Arguments:

  • x::AbstractVector{<:Real}: Inertial state (position and velocity) of primary (observing) satellite
  • xt::AbstractVector{<:Real}: Inertial state (position and velocity) of the target satellite

Returns:

  • xrtn::AbstractVector{<:Real}: Position and velocity of the target relative of the observing satellite in the RTN.
source

Arguments:

  • x::AbstractVector{<:Real}: Inertial state (position and velocity) of primary (observing) satellite
  • xt::SVector{3,<:Real}: Inertial state (position) of the target satellite

Returns:

  • xrtn::SVector{3,<:Real}: Position of the target relative of the observing satellite in the RTN.
source

Arguments:

  • x::AbstractVector{<:Real}: Inertial state (position and velocity) of primary (observing) satellite
  • xt::SVector{6,<:Real}: Inertial state (position and velocity) of the target satellite

Returns:

  • xrtn::SVector{6,<:Real}: Position and velocity of the target relative of the observing satellite in the RTN.
source
SatelliteDynamics.sRTNtoECIFunction

Compute the Earth-center

The RTN frame is also commonly refered to as the local-vertical, local-horizontal (LVLH) frame.

Arguments:

  • x::AbstractVector{<:Real}: Inertial state (position and velocity) of primary (observing) satellite
  • xrtn::AbstractVector{<:Real}: Inertial state (position and velocity) of the target satellite

Returns:

  • xt::AbstractVector{<:Real}: Position and velocity of the target relative of the observing satellite in the RTN.
source

Arguments:

  • x::AbstractVector{<:Real}: Inertial state (position and velocity) of primary (observing) satellite
  • xrtn::SVector{3,<:Real}: Inertial state (position) of the target satellite

Returns:

  • xt::SVector{3,<:Real}: Position of the target relative of the observing satellite in the RTN.
source

Arguments:

  • x::AbstractVector{<:Real}: Inertial state (position and velocity) of primary (observing) satellite
  • xrtn::SVector{6,<:Real}: Inertial state (position and velocity) of the target satellite

Returns:

  • xt::SVector{6,<:Real}: Position and velocity of the target relative of the observing satellite in the RTN.
source
SatelliteDynamics.bias_precession_nutationFunction

Computes the Bias-Precession-Nutation matrix transforming the GCRS to the CIRS intermediate reference frame. This transformation corrects for the bias, precession, and nutation of Celestial Intermediate Origin (CIO) with respect to inertial space.

Arguments:

  • epc::Epoch: Epoch of transformation

Returns:

  • rc2i::Matrix{<:Real}: 3x3 Rotation matrix transforming GCRS -> CIRS
source
SatelliteDynamics.earth_rotationFunction

Computes the Earth rotation matrix transforming the CIRS to the TIRS intermediate reference frame. This transformation corrects for the Earth rotation.

Arguments:

  • epc::Epoch: Epoch of transformation

Returns:

  • r::Matrix{<:Real}: 3x3 Rotation matrix transforming CIRS -> TIRS
source
SatelliteDynamics.polar_motionFunction

Computes the Earth rotation matrix transforming the TIRS to the ITRF reference frame.

Arguments

  • epc::Epoch: Epoch of transformation

Returns

  • rpm::Matrix{<:Real}: 3x3 Rotation matrix transforming TIRS -> ITRF
source
SatelliteDynamics.rECItoECEFFunction

Computes the combined rotation matrix from the inertial to the Earth-fixed reference frame. Applies corrections for bias, precession, nutation, Earth-rotation, and polar motion.

The transformation is accomplished using the IAU 2006/2000A, CIO-based theory using classical angles. The method as described in section 5.5 of the SOFA C transformation cookbook.

Arguments

  • epc::Epoch: Epoch of transformation

Returns

  • r::Matrix{<:Real}: 3x3 Rotation matrix transforming GCRF -> ITRF
source
SatelliteDynamics.rECEFtoECIFunction

Computes the combined rotation matrix from the Earth-fixed to the inertial reference frame. Applies corrections for bias, precession, nutation, Earth-rotation, and polar motion.

The transformation is accomplished using the IAU 2006/2000A, CIO-based theory using classical angles. The method as described in section 5.5 of the SOFA C transformation cookbook.

Arguments

  • epc::Epoch: Epoch of transformation

Returns

  • r::Matrix{<:Real}: 3x3 Rotation matrix transforming ITRF -> GCRF
source
SatelliteDynamics.sECItoECEFFunction

Transforms an Earth inertial state into an Earth fixed state

The transformation is accomplished using the IAU 2006/2000A, CIO-based theory using classical angles. The method as described in section 5.5 of the SOFA C transformation cookbook.

Arguments

  • epc::Epoch: Epoch of transformation
  • x::AbstractVector{<:Real}: Inertial state (position, velocity) [m; m/s]

Returns

  • x_ecef::Vector{<:Real}: Earth-fixed state (position, velocity)
source
SatelliteDynamics.sECEFtoECIFunction

Transforms an Earth fixed state into an Inertial state

The transformation is accomplished using the IAU 2006/2000A, CIO-based theory using classical angles. The method as described in section 5.5 of the SOFA C transformation cookbook.

Arguments

  • epc::Epoch: Epoch of transformation
  • x::AbstractVector{<:Real}: Earth-fixed state (position, velocity) [m; m/s]

Returns

  • x_eci::Vector{<:Real}: Inertial state (position, velocity)
source