Doppler shift calculation for satellite-ground links.
Given a satellite's GCRS state vector (position and velocity), a ground station, and a carrier frequency, computes the radial velocity (range rate) and the resulting Doppler shift.
Summary
Functions
Compute Doppler shift for a satellite-ground link.
Functions
Compute Doppler shift for a satellite-ground link.
Parameters
gcrs_state- map with:position{x, y, z}(km) and:velocity{vx, vy, vz}(km/s) in GCRSdatetime- observation time (DateTimeor{{y,m,d},{h,m,s}}tuple)ground_station-%{latitude: deg, longitude: deg, altitude_m: meters}frequency_hz- carrier frequency in Hz
Returns
A map with:
:range_rate_km_s- radial velocity in km/s (positive = approaching):doppler_hz- Doppler shift in Hz (positive = frequency increase):doppler_ratio- dimensionless Doppler ratio (-range_rate / c)
Example
gcrs = Orbis.teme_to_gcrs(teme, datetime)
station = %{latitude: 40.0, longitude: -74.0, altitude_m: 0.0}
result = Orbis.Doppler.shift(gcrs, datetime, station, 437.0e6)
result.doppler_hz # => ~10_000.0 (for typical LEO pass)