Scarabaeus API#

This reference manual details the modules, classes, and methods included in Scarabaeus. Each module contains classes relevant to itself. For more in-depth descriptions of each, see its respective section below.

The entirety of the source code is available on the source repository.


Body#

The Body module defines objects in the orbit determination process. This includes planets, ground stations, and spacecraft.

Dynamics#

The Dynamics module provides functionality for modeling the dynamic environment acting on a spacecraft. This includes modeling of Keplerian accelerations, 3rd body perturbations, solar radiation pressure, higher-order fidelity gravitational modeling (spherical harmonics, polyhedral), and finite burn modeling.

Environment#

The Environment module provides high-level representations used to define the environment of an orbit-determination scenario. This includes state vector definitions, trajectory containers, numerical propagators, and multi-leg mission sequences.

Finite Burn#

The Finite Burn module provides functionality for modeling finite burn maneuvers, including maneuver sequencing and parsing of maneuver definitions for use in trajectory propagation and orbit determination.

Guidance#

The Guidance module provides functionality for guidance tasks such as B-Plane targeting and maneuver planning.

Measurements#

The Measurements module provides functionality for both computed and observed measurement modeling, multi-type measurement datasets, and computation of partial derivatives. Supported observables include radiometric (range, range-rate, Doppler) and optical measurements.

Orbit Determination#

The Orbit Determination (OD) module implements OD and filtering algorithms, including batch least-squares, linearized Kalman filter, square-root information filter, and smoother variants. Also includes filter management, iteration control, and solution containers.

Spacecraft#

The Spacecraft module provides functionalities that define various properties of a spacecraft body, including sensors (imagers, antennas), actuators (thrusters), structural elements, n-plate models, and power-generation models.

Time & Frame#

The Time and Frame module provides tools for handling reference frame and time referencing systems. A dedicated set of classes manages reference frame definition, transformation, and storage, as well as epoch representation and SPICE integration.

Units#

The Units module provides tools to manage both physical dimensions and units across Scarabaeus, ensuring correct operations, clear interfaces, and continuity when performing calculations using physical properties.

Uncertainty Quantification#

The Uncertainty Quantification module provides tools for uncertainty quantification in the orbit determination process, including covariance matrix construction, propagation, and analysis.

Utilities#

The Utilities module provides utility tools leveraged across the entirety of Scarabaeus, including constants definitions, noise generation, orbital element conversion, polynomial representations, and plotting utilities.

Scarabaeus Rust#

The Scarabaeus Rust contains computationaly expensive algorithms written in Rust instead of Python and exposes them as classes and functions to the rest of Scarabaeus.