No description
Find a file
2026-08-18 22:01:53 +08:00
yksa_orbital Initial commit 2026-08-18 22:01:53 +08:00
.gitignore Initial commit 2026-08-18 22:01:53 +08:00
pyproject.toml Initial commit 2026-08-18 22:01:53 +08:00
README.md Initial commit 2026-08-18 22:01:53 +08:00

yksa-orbital

Propagation for YKSA Django services. See yksa_orbital/README.md for the API, the backends and the sidecar contract — that document moved here with the code and is the reference.

yksa-orbital @ git+https://git.intra.yksa.space/web/yksa-orbital.git@v0.1.0
INSTALLED_APPS = [..., "yksa_orbital", ...]
ORBITAL_PROPAGATOR_BACKEND = "sgp4"        # or "orekit"
OREKIT_SERVICE_URL = "http://orekit:5000"

Status

Extracted from the tle repo, where it was already the right shape: a backend registry, a wire format and a config reader, with no Django models. It is used by odms today.

ops and tdas still have their own propagation code (ops/yksa_ops/orbits/propagate.py, tdas/yksa_tdas/location/propagate.py) and should move onto this package next. Two things are missing before they can:

  • ops needs a passes(station, satellite, window) entry point. Its pass prediction currently uses Skyfield, which this package does not wrap.
  • tdas needs the sub-satellite point and ECI/ECEF state vectors it computes itself. Those the sgp4 backend already provides, so that port is the smaller of the two.

Until both are done the estate still describes the same satellite through three code paths, which is the reason this package exists.

The Orekit sidecar itself stays in tle/services/orekit — it is a container, not a Python package, and moving it is a deployment change rather than an extraction.