Orbis.Passes (Orbis v0.31.0)

Copy Markdown View Source

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 Orbis API shape.

Summary

Functions

Predict visible passes of a satellite over a ground station.

Types

ground_station()

@type ground_station() :: %{
  latitude: float(),
  longitude: float(),
  altitude_m: float()
}

pass()

@type pass() :: %{
  rise: DateTime.t(),
  set: DateTime.t(),
  max_elevation: float(),
  max_elevation_time: DateTime.t(),
  duration_seconds: float()
}

Functions

predict(tle, ground_station, start_time, end_time, opts \\ [])

@spec predict(
  Orbis.Elements.t(),
  ground_station(),
  DateTime.t(),
  DateTime.t(),
  keyword()
) :: [pass()]

Predict visible passes of a satellite over a ground station.

Parameters

  • tle — parsed %Orbis.Elements{} struct
  • ground_station%{latitude: deg, longitude: deg, altitude_m: m}
  • start_timeDateTime.t() beginning of the search window
  • end_timeDateTime.t() end of the search window
  • opts — keyword list
    • :min_elevation — minimum peak elevation in degrees to keep a pass (default 0.0)
    • :step_seconds — coarse propagation step in seconds (default 60)

Returns

A list of pass maps sorted by rise time:

[%{
  rise: DateTime.t(),
  set: DateTime.t(),
  max_elevation: float(),       # degrees
  max_elevation_time: DateTime.t(),
  duration_seconds: float()
}]