yksa-orbital/README.md
2026-08-18 22:01:53 +08:00

37 lines
1.5 KiB
Markdown

# yksa-orbital
Propagation for YKSA Django services. See [yksa_orbital/README.md](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
```
```python
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.