SSAPy is a fast, flexible, high-fidelity orbital modeling and analysis tool for orbits spanning from low-Earth orbit into the cislunar regime.
For higher-level utilities, convenience workflows, plotting tools, GCRF-to-ITRF coordinate conversion helpers, Lambertian magnitude / brightness calculations, and related extensions, see the companion project SSAPy-Toolkit.
SSAPy includes:
- Ability to define satellite parameters (area, mass, radiation and drag coefficients, etc.)
- Support for multiple orbit representations and input types, including TLE-based initialization and Keplerian, equinoctial, and Kozai mean Keplerian elements
- Fully customizable analytic force propagation models, including:
- Earth gravity models (WGS84, EGM84, EGM96, EGM2008)
- Lunar gravity models (point source and harmonic)
- Radiation pressure (Earth and solar)
- Forces for planets out to Neptune
- Atmospheric drag models
- Maneuvering with user-defined burn profiles
- Multiple integrators, including SGP4, Runge-Kutta (4, 8, and 7/8), SciPy, Keplerian, and Taylor series methods
- User-definable timesteps and orbit information retrieval times, allowing queries for quantities of interest such as magnitude, state vectors, TLEs, Keplerian elements, periapsis, apoapsis, specific angular momentum, and more
- Ground- and space-based observer models
- Lighting and visibility condition analysis
- Multiple-hypothesis tracking (MHT) UCT linker
- Vectorized computations using array broadcasting for efficient execution and easy deployment on HPC systems
- Short-arc probabilistic orbit determination methods
- Conjunction probability estimation
- Built-in uncertainty quantification
- Support for Monte Carlo runs and data fusion
- Support for multiple coordinate frames and coordinate transformations, including GCRF, IERS, GCRS Cartesian, TEME Cartesian, RA/Dec, NTW, zenith/azimuth, apparent positions, and orthogonal tangent plane coordinates
For installation details, see the Installing SSAPy section of the documentation.
If you are looking for higher-level utilities or plotting-oriented workflows, you may also want to install or explore SSAPy-Toolkit.
- Python (3.8+)
The following Python packages are installed automatically when you install SSAPy:
The documentation is hosted at:
The API documentation may also be explored interactively:
python3import ssapy
help(ssapy)Contributing to SSAPy is straightforward. Please open a
pull request
targeting the main branch of the
SSAPy repository.
For work that primarily concerns plotting, dashboards, convenience utilities, or higher-level workflows, please also consider whether the contribution belongs in the companion repository SSAPy-Toolkit.
Your PR must pass SSAPy's required CI checks. For local testing guidance, documentation builds, and Git workflow tips, see the Contribution Guide.
SSAPy's main branch contains the latest development work.
For stable installations, we recommend using one of SSAPy's tagged releases.
The latest release is always available from the releases/latest tag.
Please note that SSAPy has a Code of Conduct. By participating in the SSAPy community, you agree to abide by its rules.
SSAPy was developed with support from Lawrence Livermore National Laboratory's (LLNL) Laboratory Directed Research and Development (LDRD) Program under projects 19-SI-004 and 22-ERD-054, by the following individuals (in alphabetical order):
- Robert Armstrong (LLNL)
- Julia Ebert (formerly LLNL, now at Fleet Robotics)
- Nathan Golovich (LLNL)
- Noah Lifset (formerly LLNL, now PhD student at UT Austin)
- Dan Merl (LLNL) - Developer
- Joshua Meyers (formerly LLNL, now at KIPAC) - Former Lead Developer
- Caleb Miller (LLNL)
- Alexx Perloff (LLNL)
- Kerianne Pruett (formerly LLNL)
- Edward Schlafly (formerly LLNL, now at STScI) - Former Lead Developer
- Michael Schneider (LLNL) - Creator, Former Lead Developer
- Travis Yeager (LLNL) - Current Lead Developer
Many thanks go to SSAPy's other contributors.
On GitHub, you can copy a citation in APA or BibTeX format via the "Cite this repository" button. If you prefer MLA or Chicago style citations, see the comments in CITATION.cff.
You may also cite the following publications (click here for BibTeX entries):
- Yeager, T., Pruett, K., & Schneider, M. (2022). Unaided Dynamical Orbit Stability in the Cislunar Regime. Poster presentation, Cislunar Security Conference, USA.
- Yeager, T., Pruett, K., & Schneider, M. (2023). Long-term N-body Stability in Cislunar Space. Poster presentation, Advanced Maui Optical and Space Surveillance (AMOS) Technologies Conference, USA.
- Yeager, T., Pruett, K., & Schneider, M. (2023, September). Long-term N-body Stability in Cislunar Space. In S. Ryan (Ed.), Proceedings of the Advanced Maui Optical and Space Surveillance (AMOS) Technologies Conference (p. 208). Retrieved from https://amostech.com/TechnicalPapers/2023/Poster/Yeager.pdf
SSAPy is distributed under the terms of the MIT license. All new contributions must be made under the MIT license.
See the LICENSE and NOTICE files for details.
SPDX-License-Identifier: MIT
LLNL-CODE-862420
The structure and organization of this repository's documentation were inspired by the excellent design and layout of the Coffea project.