37 lines
1.5 KiB
Markdown
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.
|