Sgp4Ex.CoordinateSystems (Sgp4Ex v0.2.1)
View SourceCoordinate system transformations for satellite positions.
Provides conversions between:
- TEME (True Equator Mean Equinox) - SGP4 output frame
- ECEF (Earth-Centered Earth-Fixed) / ITRF
- Geodetic (latitude, longitude, altitude) using WGS84
Summary
Functions
Convert ECEF Cartesian coordinates to geodetic (lat/lon/alt).
Convert TEME coordinates to ECEF (Earth-Centered Earth-Fixed).
Convert TEME position to geodetic coordinates (latitude, longitude, altitude).
Functions
@spec ecef_to_geodetic({float(), float(), float()}) :: {:ok, %{latitude: float(), longitude: float(), altitude_km: float()}}
Convert ECEF Cartesian coordinates to geodetic (lat/lon/alt).
Uses iterative algorithm to account for Earth's ellipsoid shape. Based on Vallado's algorithm.
Convert TEME coordinates to ECEF (Earth-Centered Earth-Fixed).
Uses simplified conversion without polar motion corrections.
@spec teme_to_geodetic({float(), float(), float()}, DateTime.t()) :: {:ok, %{latitude: float(), longitude: float(), altitude_km: float()}}
Convert TEME position to geodetic coordinates (latitude, longitude, altitude).
This is the main convenience function that chains TEME → ECEF → Geodetic conversions.
Parameters
teme_position- Position in TEME frame {x, y, z} in kmdatetime- UTC datetime for the position
Returns
{:ok, %{latitude: lat, longitude: lon, altitude_km: alt}} where:
latitude- Geodetic latitude in degrees (-90 to 90)longitude- Geodetic longitude in degrees (-180 to 180)altitude_km- Height above WGS84 ellipsoid in kilometers