Skip to content

Reference Frames Module

Reference frame transformations between ECI and ECEF coordinate systems.

frames

Reference Frames Module

Reference frame transformations between ECI and ECEF coordinate systems.

This module provides transformations between: - ECI (Earth-Centered Inertial): J2000/GCRF frame - ECEF (Earth-Centered Earth-Fixed): ITRF frame

The transformations implement the IAU 2006/2000A precession-nutation model and use Earth Orientation Parameters (EOP) for high-precision conversions.

Functions are provided for: - Rotation matrices (bias-precession-nutation, Earth rotation, polar motion) - Position vector transformations - State vector (position + velocity) transformations

bias_precession_nutation builtin

bias_precession_nutation(epc: Epoch) -> np.ndarray

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.

This formulation computes the Bias-Precession-Nutation correction matrix according using a CIO based model using using the IAU 2006 precession and IAU 2000A nutation models.

The function will utilize the global Earth orientation and loaded data to apply corrections to the Celestial Intermediate Pole (CIP) derived from empirical observations.

Parameters:

Name Type Description Default
epc Epoch

Epoch instant for computation of transformation matrix

required

Returns:

Type Description
ndarray

3x3 rotation matrix transforming GCRS -> CIRS

References

IAU SOFA Tools For Earth Attitude, Example 5.5 http://www.iausofa.org/2021_0512_C/sofa/sofa_pn_c.pdf Software Version 18, 2021-04-18

earth_rotation builtin

earth_rotation(epc: Epoch) -> np.ndarray

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

Parameters:

Name Type Description Default
epc Epoch

Epoch instant for computation of transformation matrix

required

Returns:

Type Description
ndarray

3x3 rotation matrix transforming CIRS -> TIRS

polar_motion builtin

polar_motion(epc: Epoch) -> np.ndarray

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

The function will utilize the global Earth orientation and loaded data to apply corrections to compute the polar motion correction based on empirical observations of polar motion drift.

Parameters:

Name Type Description Default
epc Epoch

Epoch instant for computation of transformation matrix

required

Returns:

Type Description
ndarray

3x3 rotation matrix transforming TIRS -> ITRF

position_ecef_to_eci builtin

position_ecef_to_eci(epc: Epoch, x: ndarray) -> np.ndarray

Transforms a position vector from the Earth Centered Earth Fixed (ECEF/ITRF) frame to the Earth Centered Inertial (ECI/GCRF) frame.

Applies the full IAU 2006/2000A transformation including bias, precession, nutation, Earth rotation, and polar motion corrections using global Earth orientation parameters.

Parameters:

Name Type Description Default
epc Epoch

Epoch instant for the transformation

required
x ndarray

Position vector in ECEF frame (m), shape (3,)

required

Returns:

Type Description
ndarray

Position vector in ECI frame (m), shape (3,)

position_eci_to_ecef builtin

position_eci_to_ecef(epc: Epoch, x: ndarray) -> np.ndarray

Transforms a position vector from the Earth Centered Inertial (ECI/GCRF) frame to the Earth Centered Earth Fixed (ECEF/ITRF) frame.

Applies the full IAU 2006/2000A transformation including bias, precession, nutation, Earth rotation, and polar motion corrections using global Earth orientation parameters.

Parameters:

Name Type Description Default
epc Epoch

Epoch instant for the transformation

required
x ndarray

Position vector in ECI frame (m), shape (3,)

required

Returns:

Type Description
ndarray

Position vector in ECEF frame (m), shape (3,)

rotation_ecef_to_eci builtin

rotation_ecef_to_eci(epc: Epoch) -> np.ndarray

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.

The function will utilize the global Earth orientation and loaded data to apply corrections for Celestial Intermidate Pole (CIP) and polar motion drift derived from empirical observations.

Parameters:

Name Type Description Default
epc Epoch

Epoch instant for computation of transformation matrix

required

Returns:

Type Description
ndarray

3x3 rotation matrix transforming ITRF -> GCRF

rotation_eci_to_ecef builtin

rotation_eci_to_ecef(epc: Epoch) -> np.ndarray

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.

The function will utilize the global Earth orientation and loaded data to apply corrections for Celestial Intermidate Pole (CIP) and polar motion drift derived from empirical observations.

Parameters:

Name Type Description Default
epc Epoch

Epoch instant for computation of transformation matrix

required

Returns:

Type Description
ndarray

3x3 rotation matrix transforming GCRF -> ITRF

state_ecef_to_eci builtin

state_ecef_to_eci(epc: Epoch, x_ecef: ndarray) -> np.ndarray

Transforms a state vector (position and velocity) from the Earth Centered Earth Fixed (ECEF/ITRF) frame to the Earth Centered Inertial (ECI/GCRF) frame.

Applies the full IAU 2006/2000A transformation including bias, precession, nutation, Earth rotation, and polar motion corrections using global Earth orientation parameters. The velocity transformation accounts for the Earth's rotation rate.

Parameters:

Name Type Description Default
epc Epoch

Epoch instant for the transformation

required
x_ecef ndarray

State vector in ECEF frame [position (m), velocity (m/s)], shape (6,)

required

Returns:

Type Description
ndarray

State vector in ECI frame [position (m), velocity (m/s)], shape (6,)

state_eci_to_ecef builtin

state_eci_to_ecef(epc: Epoch, x_eci: ndarray) -> np.ndarray

Transforms a state vector (position and velocity) from the Earth Centered Inertial (ECI/GCRF) frame to the Earth Centered Earth Fixed (ECEF/ITRF) frame.

Applies the full IAU 2006/2000A transformation including bias, precession, nutation, Earth rotation, and polar motion corrections using global Earth orientation parameters. The velocity transformation accounts for the Earth's rotation rate.

Parameters:

Name Type Description Default
epc Epoch

Epoch instant for the transformation

required
x_eci ndarray

State vector in ECI frame [position (m), velocity (m/s)], shape (6,)

required

Returns:

Type Description
ndarray

State vector in ECEF frame [position (m), velocity (m/s)], shape (6,)