26 lines
1.2 KiB
Python
26 lines
1.2 KiB
Python
"""Propagation for Django services: a backend registry and the Orekit client.
|
|
|
|
The public surface is :func:`get_backend`. Everything that needs a state vector
|
|
asks for a backend by name (or lets ``settings.ORBITAL_PROPAGATOR_BACKEND``
|
|
decide) and talks to the :class:`odm.PropagatorBackend` seam, so no call site
|
|
knows or cares which propagator answered.
|
|
|
|
Two backends ship:
|
|
|
|
``sgp4`` pure Python, no service dependency. TEME plus a GMST Earth-fixed
|
|
frame, and analytical theory only -- it has no drag integration, so
|
|
it refuses decay work rather than returning a number nobody should
|
|
trust.
|
|
``orekit`` an HTTP client to the Orekit sidecar (``services/orekit``): rigorous
|
|
frames, numerical propagation, drag fitting, decay forecasts and the
|
|
solar-activity ensemble.
|
|
|
|
Reusable on purpose. ODMS and ``track.tmtc.yksa.space`` both propagate, both
|
|
against the same sidecar, and the alternative to sharing this app is two HTTP
|
|
clients that drift apart on timeouts, on 503 handling, and on what they send.
|
|
Add it to ``INSTALLED_APPS`` and set ``OREKIT_SERVICE_URL``.
|
|
"""
|
|
|
|
from .registry import BACKENDS, get_backend, register
|
|
|
|
__all__ = ["BACKENDS", "get_backend", "register"]
|