GCRF ↔ MOD ↔ TOD Transformations¶
Equinox-based transformations between the Geocentric Celestial Reference Frame (GCRF), the Earth mean equator and equinox of date (MOD), the true equator and equinox of date (TOD), and the International Terrestrial Reference Frame (ITRF).
Note
For conceptual explanations and examples, see GCRF ↔ MOD ↔ TOD Transformations in the Learn section.
Building Blocks¶
bias_precession builtin ¶
bias_precession(epc: Epoch, model: PrecessionNutationModel) -> ndarray
Computes the bias-precession matrix transforming the GCRF to the mean equator and equinox of date (MOD) on the given precession-nutation model: frame bias followed by precession from J2000.0 to date. Equivalent to rotation_gcrf_to_mod when model is the selected model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation matrix. | required |
model | PrecessionNutationModel | Precession-nutation model to evaluate. | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming |
nutation builtin ¶
nutation(epc: Epoch, model: PrecessionNutationModel) -> ndarray
Computes the nutation matrix transforming the mean equator and equinox of date (MOD) to the true equator and equinox of date (TOD) on the given precession-nutation model, with IERS celestial pole offset corrections. Equivalent to rotation_mod_to_tod when model is the selected model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation matrix. | required |
model | PrecessionNutationModel | Precession-nutation model to evaluate. | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming |
gast_rotation builtin ¶
gast_rotation(epc: Epoch, model: PrecessionNutationModel) -> ndarray
Computes the Earth rotation matrix R3(GAST) transforming the true equator and equinox of date (TOD) to the Terrestrial Intermediate Reference System (TIRS), using Greenwich apparent sidereal time evaluated on the given precession-nutation model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation matrix. | required |
model | PrecessionNutationModel | Precession-nutation model to evaluate. | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming |
GCRF ↔ MOD¶
rotation_gcrf_to_mod builtin ¶
Computes the rotation matrix transforming the GCRF to the mean equator and equinox of date (MOD) using the bias-precession of the selected precession-nutation model (IAU 2006/2000A by default).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for computation of the transformation matrix. A sequence evaluates one matrix per epoch. | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming |
rotation_mod_to_gcrf builtin ¶
Computes the rotation matrix transforming the mean equator and equinox of date (MOD) to the GCRF: the transpose of rotation_gcrf_to_mod.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for computation of the transformation matrix. A sequence evaluates one matrix per epoch. | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming |
position_gcrf_to_mod builtin ¶
position_gcrf_to_mod(epc: Union[Epoch, Sequence[Epoch]], x: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a position vector from the GCRF to the mean equator and equinox of date (MOD). The position is rotated by rotation_gcrf_to_mod.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x | ndarray or list | Position vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Position vector in |
position_mod_to_gcrf builtin ¶
position_mod_to_gcrf(epc: Union[Epoch, Sequence[Epoch]], x: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a position vector from the mean equator and equinox of date (MOD) to the GCRF. The position is rotated by rotation_mod_to_gcrf.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x | ndarray or list | Position vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Position vector in |
state_gcrf_to_mod builtin ¶
state_gcrf_to_mod(epc: Union[Epoch, Sequence[Epoch]], x_gcrf: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a state vector (position and velocity) from the GCRF to the mean equator and equinox of date (MOD). Both halves are rotated by rotation_gcrf_to_mod; the frames are non-rotating relative to each other, below 1e-11 rad/s, under 1e-4 m/s in low Earth orbit.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x_gcrf | ndarray or list | State vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: State vector in |
state_mod_to_gcrf builtin ¶
state_mod_to_gcrf(epc: Union[Epoch, Sequence[Epoch]], x_mod: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a state vector (position and velocity) from the mean equator and equinox of date (MOD) to the GCRF. Both halves are rotated by rotation_mod_to_gcrf; the frames are non-rotating relative to each other, below 1e-11 rad/s, under 1e-4 m/s in low Earth orbit.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x_mod | ndarray or list | State vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: State vector in |
MOD ↔ TOD¶
rotation_mod_to_tod builtin ¶
Computes the rotation matrix transforming the mean equator and equinox of date (MOD) to the true equator and equinox of date (TOD) using the nutation series of the selected precession-nutation model (IAU 2006/2000A by default), with IERS celestial pole offset corrections.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for computation of the transformation matrix. A sequence evaluates one matrix per epoch. | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming |
rotation_tod_to_mod builtin ¶
Computes the rotation matrix transforming the true equator and equinox of date (TOD) to the mean equator and equinox of date (MOD): the transpose of rotation_mod_to_tod.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for computation of the transformation matrix. A sequence evaluates one matrix per epoch. | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming |
position_mod_to_tod builtin ¶
position_mod_to_tod(epc: Union[Epoch, Sequence[Epoch]], x: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a position vector from the mean equator and equinox of date (MOD) to the Earth true equator and equinox of date (TOD). The position is rotated by rotation_mod_to_tod.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x | ndarray or list | Position vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Position vector in |
position_tod_to_mod builtin ¶
position_tod_to_mod(epc: Union[Epoch, Sequence[Epoch]], x: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a position vector from the Earth true equator and equinox of date (TOD) to the mean equator and equinox of date (MOD). The position is rotated by rotation_tod_to_mod.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x | ndarray or list | Position vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Position vector in |
state_mod_to_tod builtin ¶
state_mod_to_tod(epc: Union[Epoch, Sequence[Epoch]], x_mod: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a state vector (position and velocity) from the mean equator and equinox of date (MOD) to the Earth true equator and equinox of date (TOD). Both halves are rotated by rotation_mod_to_tod; the frames are non-rotating relative to each other, below 1e-11 rad/s, under 1e-4 m/s in low Earth orbit.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x_mod | ndarray or list | State vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: State vector in |
state_tod_to_mod builtin ¶
state_tod_to_mod(epc: Union[Epoch, Sequence[Epoch]], x_tod: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a state vector (position and velocity) from the Earth true equator and equinox of date (TOD) to the mean equator and equinox of date (MOD). Both halves are rotated by rotation_tod_to_mod; the frames are non-rotating relative to each other, below 1e-11 rad/s, under 1e-4 m/s in low Earth orbit.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x_tod | ndarray or list | State vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: State vector in |
GCRF ↔ TOD¶
rotation_gcrf_to_tod builtin ¶
Computes the rotation matrix transforming the GCRF to the Earth true equator and equinox of date (TOD): bias-precession followed by nutation with IERS celestial pole offset corrections, on the selected precession-nutation model (IAU 2006/2000A by default).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for computation of the transformation matrix. A sequence evaluates one matrix per epoch. | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming |
rotation_tod_to_gcrf builtin ¶
Computes the rotation matrix transforming the Earth true equator and equinox of date (TOD) to the GCRF: the transpose of rotation_gcrf_to_tod.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for computation of the transformation matrix. A sequence evaluates one matrix per epoch. | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming |
position_gcrf_to_tod builtin ¶
position_gcrf_to_tod(epc: Union[Epoch, Sequence[Epoch]], x: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a position vector from the GCRF to the Earth true equator and equinox of date (TOD). The position is rotated by rotation_gcrf_to_tod.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x | ndarray or list | Position vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Position vector in |
position_tod_to_gcrf builtin ¶
position_tod_to_gcrf(epc: Union[Epoch, Sequence[Epoch]], x: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a position vector from the Earth true equator and equinox of date (TOD) to the GCRF. The position is rotated by rotation_tod_to_gcrf.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x | ndarray or list | Position vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Position vector in |
state_gcrf_to_tod builtin ¶
state_gcrf_to_tod(epc: Union[Epoch, Sequence[Epoch]], x_gcrf: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a state vector (position and velocity) from the GCRF to the Earth true equator and equinox of date (TOD). Both halves are rotated by rotation_gcrf_to_tod; the frames are non-rotating relative to each other, below 1e-11 rad/s, under 1e-4 m/s in low Earth orbit.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x_gcrf | ndarray or list | State vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: State vector in |
state_tod_to_gcrf builtin ¶
state_tod_to_gcrf(epc: Union[Epoch, Sequence[Epoch]], x_tod: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a state vector (position and velocity) from the Earth true equator and equinox of date (TOD) to the GCRF. Both halves are rotated by rotation_tod_to_gcrf; the frames are non-rotating relative to each other, below 1e-11 rad/s, under 1e-4 m/s in low Earth orbit.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x_tod | ndarray or list | State vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: State vector in |
TOD ↔ ITRF¶
rotation_tod_to_itrf builtin ¶
Computes the rotation matrix transforming the Earth true equator and equinox of date (TOD) to the ITRF: polar motion applied after the Greenwich apparent sidereal rotation, W R3(GAST).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for computation of the transformation matrix. A sequence evaluates one matrix per epoch. | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming |
rotation_itrf_to_tod builtin ¶
Computes the rotation matrix transforming the ITRF to the Earth true equator and equinox of date (TOD): the transpose of rotation_tod_to_itrf.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for computation of the transformation matrix. A sequence evaluates one matrix per epoch. | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming |
position_tod_to_itrf builtin ¶
position_tod_to_itrf(epc: Union[Epoch, Sequence[Epoch]], x: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a position vector from the Earth true equator and equinox of date (TOD) to the ITRF. Applies the Earth-rotation and polar-motion rotation W R3(GAST).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x | ndarray or list | Position vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Position vector in |
position_itrf_to_tod builtin ¶
position_itrf_to_tod(epc: Union[Epoch, Sequence[Epoch]], x: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a position vector from the ITRF to the Earth true equator and equinox of date (TOD). Applies the transpose of the Earth-rotation and polar-motion rotation W R3(GAST).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x | ndarray or list | Position vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Position vector in |
state_tod_to_itrf builtin ¶
state_tod_to_itrf(epc: Union[Epoch, Sequence[Epoch]], x_tod: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a state vector (position and velocity) from the Earth true equator and equinox of date (TOD) to the ITRF. Accounts for the transport term from Earth's rotation, so the ITRF velocity is not simply a rotated TOD velocity.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x_tod | ndarray or list | State vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: State vector in |
state_itrf_to_tod builtin ¶
state_itrf_to_tod(epc: Union[Epoch, Sequence[Epoch]], x_itrf: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a state vector (position and velocity) from the ITRF to the Earth true equator and equinox of date (TOD). Accounts for the transport term from Earth's rotation, so the TOD velocity is not simply a rotated ITRF velocity.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch or Sequence[Epoch] | Epoch instant for the transformation. A sequence evaluates one epoch per vector (or broadcasts a single vector across all epochs). | required |
x_itrf | ndarray or list | State vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: State vector in |
See Also¶
- GCRF ↔ ITRF Transformations - CIO-based transformations
- EME2000 ↔ GCRF Transformations - Constant frame bias
- Reference Frames Module - Complete API reference for frames module