Conventions

Units

All physical quantities use SI base units (m, kg, s, A, K, …) unless explicitly stated otherwise in a function’s docstring. Notable exceptions that are called out everywhere they appear:

  • Angles — radians throughout the library; degrees appear only in user-facing constructors (e.g. GroundStation(lat, lon) accepts degrees).

  • Orbital elements — semi-major axis in metres, angles in radians.

  • Antenna gain — dBi; power levels — dBW.

Coordinate frames

  • ECI (Earth-Centred Inertial, J2000/GCRS): the default frame for positions and velocities. The x-axis points toward the vernal equinox, z toward the celestial north pole.

  • ECEF (Earth-Centred Earth-Fixed, WGS84): rotates with the Earth. Used for ground-station positions.

  • LVLH (Local Vertical Local Horizontal): body-frame reference aligned with the orbital plane. x = along-track, y = cross-track, z = nadir.

Array conventions

  • Position / velocity arrays are shaped (N, 3) for a time series or (3,) for a single epoch. Scalar detection uses .ndim == 1.

  • Times are numpy.datetime64[us] throughout.

Attitude

  • Quaternions are stored as [w, x, y, z] (scalar-first).

  • The spacecraft boresight is the body-z axis.

  • Nadir mode: body-z points nadir (−R̂), body-x along-track (Ŝ).