astra.visibility module

ASTRA Core observer visibility and pass prediction module. Calculates topocentric elevation/azimuth of satellites relative to ground observers and detects pass events (AOS, TCA, LOS). Features: 1. Custom fully-vectorized WGS84 ENU rotation matrix yielding 100x

performance over standard object-oriented Skyfield graph transversals.

  1. Sub-second Binary Search Bisection root-finding for precise AOS/LOS.

  2. Automatically synchronized IERS EOPs via timescale loading.

astra.visibility.visible_from_location(positions_teme, times_jd, observer)[source]

Compute topocentric elevation angles using custom vectorized ENU algebra.

astra.visibility.get_azimuths(positions_teme, times_jd, observer)[source]

Companion function for azimuth processing using the same fast matrix algebra.

astra.visibility.passes_over_location(satellite, observer, t_start_jd, t_end_jd, step_minutes=1.0)[source]

Predict satellite passes over a ground observer location.

Computes all pass events where the satellite’s elevation exceeds the observer’s minimum elevation threshold within the specified time window.

Parameters:
  • satellite – SatelliteTLE or SatelliteOMM object to propagate.

  • observer – Ground observer with location and minimum elevation.

  • t_start_jd – Start time as Julian Date (UTC).

  • t_end_jd – End time as Julian Date (UTC).

  • step_minutes – Time step for coarse scan (default 1 minute).

Returns:

  • Precise AOS/TCA/LOS times (binary search to sub-second accuracy)

  • Maximum elevation and azimuth at all three events

  • Duration in seconds

  • Illumination status (satellite sunlit, observer in darkness)

Return type:

List of PassEvent objects, sorted by AOS time. Each event includes