ExSrpPhat.Geo (ex_srp_phat v0.1.0)

Copy Markdown View Source

WGS-84 geodetic ↔ ECEF conversion, delegated to the Rust NIF so the transform matches the solver's geometry exactly (and so callers need no separate geodesy dependency).

Constants: semi-major axis a = 6_378_137.0 m, flattening f = 1 / 298.257223563, first eccentricity² e² = f(2 − f). The forward transform is exact closed form; the inverse uses Bowring's method.

Summary

Functions

ECEF {x, y, z} meters → geodetic {lat_deg, lon_deg, alt_m}.

Geodetic latitude/longitude (degrees) + height (m, HAE) → ECEF {x, y, z} meters.

Functions

ecef_to_latlon(x, y, z)

@spec ecef_to_latlon(number(), number(), number()) :: {float(), float(), float()}

ECEF {x, y, z} meters → geodetic {lat_deg, lon_deg, alt_m}.

latlon_to_ecef(lat_deg, lon_deg, alt_m \\ 0.0)

@spec latlon_to_ecef(number(), number(), number()) :: {float(), float(), float()}

Geodetic latitude/longitude (degrees) + height (m, HAE) → ECEF {x, y, z} meters.