Satellite pass prediction over a ground station.
Finds time windows when a satellite is above the local horizon (or a minimum elevation threshold) as seen from a ground station. The pass-search orchestration and coordinate math live in the Rust core; this module keeps the public Sidereon API shape.
Summary
Functions
Predict visible passes of a satellite over a ground station.
Predict visible passes, raising ArgumentError on errors.
Types
Functions
@spec predict( Sidereon.Elements.t(), ground_station(), DateTime.t(), DateTime.t(), keyword() ) :: {:ok, [pass()]} | {:error, predict_error()}
Predict visible passes of a satellite over a ground station.
Parameters
tle- parsed%Sidereon.Elements{}structground_station-%{latitude: deg, longitude: deg, altitude_m: m}start_time-DateTime.t()beginning of the search windowend_time-DateTime.t()end of the search windowopts- keyword list:min_elevation- minimum peak elevation in degrees to keep a pass (default0.0):step_seconds- coarse propagation step in seconds (default60)
Returns
{:ok, passes} with pass structs sorted by rise time:
{:ok, [%Sidereon.Pass{
rise: DateTime.t(),
set: DateTime.t(),
max_elevation: float(), # degrees
max_elevation_time: DateTime.t(),
duration_seconds: float()
}]}Returns {:error, reason} for malformed elements, station fields, options,
or NIF boundary failures. Use predict!/5 for the raising form.
@spec predict!( Sidereon.Elements.t(), ground_station(), DateTime.t(), DateTime.t(), keyword() ) :: [ pass() ]
Predict visible passes, raising ArgumentError on errors.