GCRF ↔ TEME ↔ ITRF Transformations¶
Transformations between the Geocentric Celestial Reference Frame (GCRF), the true equator and mean equinox of date (TEME) frame in which SGP4 expresses its output, and the International Terrestrial Reference Frame (ITRF).
Note
For conceptual explanations and examples, see GCRF ↔ TEME ↔ ITRF Transformations in the Learn section.
Building Blocks¶
greenwich_mean_sidereal_rotation builtin ¶
Computes the rotation R3(GMST82) about the celestial pole by Greenwich mean sidereal time on the IAU 1982 model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the rotation matrix. | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix |
GCRF ↔ TEME¶
rotation_gcrf_to_teme builtin ¶
Computes the rotation matrix transforming the GCRF to the true equator and mean equinox of date (TEME): R3(ERA - GMST82) C, the CIO-based bias-precession-nutation matrix followed by the rotation from the Celestial Intermediate Origin to the IAU 1982 mean equinox.
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_teme_to_gcrf builtin ¶
Computes the rotation matrix transforming the true equator and mean equinox of date (TEME) to the GCRF: the transpose of rotation_gcrf_to_teme.
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_teme builtin ¶
position_gcrf_to_teme(epc: Union[Epoch, Sequence[Epoch]], x: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a position vector from the GCRF to the true equator and mean equinox of date (TEME). The position is rotated by rotation_gcrf_to_teme.
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_teme_to_gcrf builtin ¶
position_teme_to_gcrf(epc: Union[Epoch, Sequence[Epoch]], x: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a position vector from the true equator and mean equinox of date (TEME) to the GCRF. The position is rotated by rotation_teme_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_teme builtin ¶
state_gcrf_to_teme(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 true equator and mean equinox of date (TEME). Both halves are rotated by rotation_gcrf_to_teme; 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_teme_to_gcrf builtin ¶
state_teme_to_gcrf(epc: Union[Epoch, Sequence[Epoch]], x_teme: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a state vector (position and velocity) from the true equator and mean equinox of date (TEME) to the GCRF. Both halves are rotated by rotation_teme_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_teme | ndarray or list | State vector in | required |
axis | int | The axis of | -1 |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: State vector in |
TEME ↔ ITRF¶
rotation_teme_to_itrf builtin ¶
Computes the rotation matrix transforming the true equator, mean equinox of date (TEME) to the ITRF: polar motion applied after the Greenwich mean sidereal rotation, W R3(GMST82).
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_teme builtin ¶
Computes the rotation matrix transforming the ITRF to the true equator, mean equinox of date (TEME): the transpose of rotation_teme_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_teme_to_itrf builtin ¶
position_teme_to_itrf(epc: Union[Epoch, Sequence[Epoch]], x: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a position vector from the true equator, mean equinox of date (TEME) to the ITRF. Applies the Earth-rotation and polar-motion rotation W R3(GMST82).
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_teme builtin ¶
position_itrf_to_teme(epc: Union[Epoch, Sequence[Epoch]], x: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a position vector from the ITRF to the true equator, mean equinox of date (TEME). Applies the transpose of the Earth-rotation and polar-motion rotation W R3(GMST82).
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_teme_to_itrf builtin ¶
state_teme_to_itrf(epc: Union[Epoch, Sequence[Epoch]], x_teme: Union[ndarray, Sequence], axis: int = -1) -> ndarray
Transforms a state vector (position and velocity) from the true equator, mean equinox of date (TEME) to the ITRF. Accounts for the transport term from Earth's rotation, so the ITRF velocity is not simply a rotated TEME 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_teme | 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_teme builtin ¶
state_itrf_to_teme(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 true equator, mean equinox of date (TEME). Accounts for the transport term from Earth's rotation, so the TEME 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
- GCRF ↔ MOD ↔ TOD Transformations - Equinox-based transformations
- Reference Frames Module - Complete API reference for frames module