Getting Started

System Prerequisites

SSAPy has the following minimum system requirements, which are assumed to be present on the machine where SSAPy is run:

System prerequisites for SSAPy

Name

Supported Versions

Notes

Requirement Reason

Python

3.10–3.12

Interpreter

C/C++ Compilers

Building software

make

Build software

git

Manage software repositories

graphviz

Local documentation building

These requirements can be easily installed on most modern macOS and Linux systems.

apt update
apt install build-essential git python3 python3-distutils python3-venv graphviz

Installation

As the package has been published on PyPI, it can be installed using pip.

pip install llnl-ssapy

SSAPy’s data (ephemerides, gravity models, and textures) ships in the ssa-data-* packages, which install automatically with SSAPy; no Git LFS is needed. The all-data extra adds the propulsion and benchmark data sets:

pip install "llnl-ssapy[all-data]"

Planetary ephemerides

SSAPy uses JPL DE440 by default, from the short kernel de440s.bsp (1849-2150). A 1900-2150 excerpt of DE430 is also installed for reproducing results from SSAPy 1.1.10 and earlier; select it with ssapy.ephemeris.set_planetary_ephemeris("de430") or SSAPY_EPHEMERIS=de430.

For epochs outside those spans SSAPy downloads a longer kernel of the same ephemeris from NAIF (de440.bsp or de430.bsp, 1550-2650, 120 MB) and, for DE440 beyond 1550-2650, DE441 (1.65 GB per half), checks its SHA-256, caches it in ~/.cache/ssapy (SSAPY_DATA_CACHE), and warns before downloading. Set SSAPY_EPHEMERIS_DOWNLOAD=0 to forbid downloads, for example on compute nodes without network access, and prefetch on a node that has it:

SSAPY_DATA_CACHE=/shared/ssapy-cache python -c "import ssapy.ephemeris as e; e.fetch()"

Orekit dependency

Orekit is an optional dependency, including the Orekit Python wrapper that is hard to find. Clone the python wrappper from here:

Alternatively, the Orekit python wrapper can be installed from Anaconda.