Skip to content

Geocentric

Geocentric (spherical Earth) coordinate transformations.

Converts between geocentric coordinates [longitude, latitude, altitude] and Earth-Centered Earth-Fixed (ECEF) Cartesian coordinates [x, y, z].

The geocentric model treats the Earth as a perfect sphere with radius equal to the WGS84 semi-major axis. For an ellipsoidal model, use the geodetic functions in :mod:astrojax.coordinates.geodetic.

All inputs and outputs use SI base units (metres, radians).

References
  1. O. Montenbruck and E. Gill, Satellite Orbits: Models, Methods and Applications, Springer, 2012, Sec. 5.3.

position_ecef_to_geocentric(x_ecef, use_degrees=False)

Convert ECEF Cartesian coordinates to geocentric position.

Parameters:

Name Type Description Default
x_ecef ArrayLike

ECEF position [x, y, z] in m.

required
use_degrees bool

If True, return longitude and latitude in degrees.

False

Returns:

Type Description
Array

Geocentric coordinates [lon, lat, alt]. Longitude and latitude in rad (or deg), altitude in m.

Examples:

import jax.numpy as jnp
from astrojax.constants import WGS84_a
from astrojax.coordinates import position_ecef_to_geocentric
x_ecef = jnp.array([WGS84_a, 0.0, 0.0])
geoc = position_ecef_to_geocentric(x_ecef)
float(geoc[2])  # altitude ≈ 0

position_geocentric_to_ecef(x_geoc, use_degrees=False)

Convert geocentric position to ECEF Cartesian coordinates.

Parameters:

Name Type Description Default
x_geoc ArrayLike

Geocentric coordinates [lon, lat, alt]. Longitude and latitude in rad (or deg if use_degrees=True), altitude in m above the spherical Earth surface.

required
use_degrees bool

If True, interpret longitude and latitude as degrees.

False

Returns:

Type Description
Array

ECEF position [x, y, z] in m.

Examples:

import jax.numpy as jnp
from astrojax.coordinates import position_geocentric_to_ecef
x_geoc = jnp.array([0.0, 0.0, 0.0])
x_ecef = position_geocentric_to_ecef(x_geoc)
float(x_ecef[0])  # WGS84_a on the equator