Synodic Frames¶
Transformations between GCRF and the Earth-Moon Rotating (EMR), Sun-Earth Rotating (SER), and Geocentric Solar Ecliptic (GSE) frames.
Note
For conceptual explanations and examples, see Synodic Reference Frames in the Learn section.
GCRF ↔ EMR¶
rotation_gcrf_to_emr builtin ¶
Computes the rotation matrix from GCRF axes to Earth-Moon Rotating (EMR) frame axes (NASA TP-20220014814 §4.6.2): x̂ Earth→Moon, ẑ along the Moon's orbital angular momentum relative to Earth.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming GCRF -> EMR axes |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
rotation_emr_to_gcrf builtin ¶
Computes the rotation matrix from Earth-Moon Rotating (EMR) frame axes to GCRF axes. Inverse of rotation_gcrf_to_emr.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming EMR -> GCRF axes |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
position_gcrf_to_emr builtin ¶
Transforms a Cartesian GCRF position into the equivalent Earth-Moon Rotating (EMR) frame position. The EMR origin is the Earth-Moon barycenter.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
x_gcrf | ndarray or list | Cartesian GCRF position (m), shape | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Cartesian EMR position (m), shape |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
position_emr_to_gcrf builtin ¶
Transforms a Cartesian Earth-Moon Rotating (EMR) frame position into the equivalent Cartesian GCRF position. Inverse of position_gcrf_to_emr.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
x_emr | ndarray or list | Cartesian EMR position (m), shape | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Cartesian GCRF position (m), shape |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
state_gcrf_to_emr builtin ¶
Transforms a Cartesian GCRF state (position and velocity) into the equivalent Earth-Moon Rotating (EMR) frame state. The EMR origin is the Earth-Moon barycenter; the velocity transform uses the exact rotation- matrix time derivative (including dẑ/dt) evaluated from SPK acceleration.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
x_gcrf | ndarray or list | Cartesian GCRF state | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Cartesian EMR state |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
state_emr_to_gcrf builtin ¶
Transforms a Cartesian Earth-Moon Rotating (EMR) frame state (position and velocity) into the equivalent Cartesian GCRF state. Inverse of state_gcrf_to_emr.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
x_emr | ndarray or list | Cartesian EMR state | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Cartesian GCRF state |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
GCRF ↔ SER¶
rotation_gcrf_to_ser builtin ¶
Computes the rotation matrix from GCRF axes to Sun-Earth Rotating (SER) frame axes (NASA TP-20220014814 §4.6.4): x̂ Sun→Earth, ẑ along Earth's orbital angular momentum relative to the Sun.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming GCRF -> SER axes |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
rotation_ser_to_gcrf builtin ¶
Computes the rotation matrix from Sun-Earth Rotating (SER) frame axes to GCRF axes. Inverse of rotation_gcrf_to_ser.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming SER -> GCRF axes |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
position_gcrf_to_ser builtin ¶
Transforms a Cartesian GCRF position into the equivalent Sun-Earth Rotating (SER) frame position. The SER origin is the (computed) Sun-Earth barycenter.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
x_gcrf | ndarray or list | Cartesian GCRF position (m), shape | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Cartesian SER position (m), shape |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
position_ser_to_gcrf builtin ¶
Transforms a Cartesian Sun-Earth Rotating (SER) frame position into the equivalent Cartesian GCRF position. Inverse of position_gcrf_to_ser.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
x_ser | ndarray or list | Cartesian SER position (m), shape | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Cartesian GCRF position (m), shape |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
state_gcrf_to_ser builtin ¶
Transforms a Cartesian GCRF state (position and velocity) into the equivalent Sun-Earth Rotating (SER) frame state. The SER origin is the (computed) Sun-Earth barycenter; the velocity transform uses the exact rotation-matrix time derivative (including dẑ/dt) evaluated from SPK acceleration.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
x_gcrf | ndarray or list | Cartesian GCRF state | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Cartesian SER state |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
state_ser_to_gcrf builtin ¶
Transforms a Cartesian Sun-Earth Rotating (SER) frame state (position and velocity) into the equivalent Cartesian GCRF state. Inverse of state_gcrf_to_ser.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
x_ser | ndarray or list | Cartesian SER state | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Cartesian GCRF state |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
GCRF ↔ GSE¶
rotation_gcrf_to_gse builtin ¶
Computes the rotation matrix from GCRF axes to Geocentric Solar Ecliptic (GSE) frame axes (NASA TP-20220014814 §2.5.4/§4.6.5): x̂ Earth→Sun, ẑ normal to the instantaneous ecliptic plane.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming GCRF -> GSE axes |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
rotation_gse_to_gcrf builtin ¶
Computes the rotation matrix from Geocentric Solar Ecliptic (GSE) frame axes to GCRF axes. Inverse of rotation_gcrf_to_gse.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: 3x3 rotation matrix transforming GSE -> GCRF axes |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
position_gcrf_to_gse builtin ¶
Transforms a Cartesian GCRF position into the equivalent Geocentric Solar Ecliptic (GSE) frame position. GSE is Earth-centered.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
x_gcrf | ndarray or list | Cartesian GCRF position (m), shape | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Cartesian GSE position (m), shape |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
position_gse_to_gcrf builtin ¶
Transforms a Cartesian Geocentric Solar Ecliptic (GSE) frame position into the equivalent Cartesian GCRF position. Inverse of position_gcrf_to_gse.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
x_gse | ndarray or list | Cartesian GSE position (m), shape | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Cartesian GCRF position (m), shape |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
state_gcrf_to_gse builtin ¶
Transforms a Cartesian GCRF state (position and velocity) into the equivalent Geocentric Solar Ecliptic (GSE) frame state. GSE is Earth-centered; the velocity transform uses the exact rotation-matrix time derivative (including dẑ/dt) evaluated from SPK acceleration.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
x_gcrf | ndarray or list | Cartesian GCRF state | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Cartesian GSE state |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |
state_gse_to_gcrf builtin ¶
Transforms a Cartesian Geocentric Solar Ecliptic (GSE) frame state (position and velocity) into the equivalent Cartesian GCRF state. Inverse of state_gcrf_to_gse.
Auto-initializes the default de440s ephemeris if no SPK kernel is loaded.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epc | Epoch | Epoch instant for computation of the transformation | required |
x_gse | ndarray or list | Cartesian GSE state | required |
Returns:
| Type | Description |
|---|---|
ndarray | numpy.ndarray: Cartesian GCRF state |
Raises:
| Type | Description |
|---|---|
RuntimeError | If the SPK lookup fails at |