Propagators
Orbit propagation methods for predicting future states.
Available Propagators
| Propagator | Description | Use Case |
|---|---|---|
Vallado |
Analytical Kepler propagator | Two-body motion |
SGP4 |
Simplified General Perturbations | TLE-based propagation |
GroundPropagator |
Ground station state | Earth-fixed locations |
Quick Example
import lox_space as lox
# Analytical (Kepler) propagation
t = lox.Time("TAI", 2024, 1, 1)
state = lox.State(t, (6678.0, 0.0, 0.0), (0.0, 7.73, 0.0))
propagator = lox.Vallado(state)
# Propagate to a single time
future = propagator.propagate(t + lox.TimeDelta.from_hours(1))
# Propagate to multiple times
times = [t + lox.TimeDelta(i * 60) for i in range(100)]
trajectory = propagator.propagate(times)
# SGP4 propagation from TLE
tle = """ISS (ZARYA)
1 25544U 98067A 24001.50000000 .00016717 00000-0 30472-3 0 9993
2 25544 51.6400 10.3600 0005000 50.0000 310.0000 15.50000000000010"""
sgp4 = lox.SGP4(tle)
state = sgp4.propagate(t)
Vallado
Semi-analytical Keplerian orbit propagator using Vallado's method.
Parameters:
-
–initial_stateInitial orbital state (must be in an inertial frame).
-
–max_iterMaximum iterations for Kepler's equation solver.
Examples:
>>> state = lox.State(t, position=(6678.0, 0.0, 0.0), velocity=(0.0, 7.73, 0.0))
>>> prop = lox.Vallado(state)
>>> trajectory = prop.propagate([t1, t2, t3])
Methods:
-
propagate–Propagate the orbit to one or more times.
propagate
propagate(time: list[Time]) -> Trajectory
propagate(time: Time | list[Time]) -> State | Trajectory
Propagate the orbit to one or more times.
SGP4
SGP4 (Simplified General Perturbations 4) orbit propagator.
SGP4 is the standard propagator for objects tracked by NORAD/Space-Track. It uses Two-Line Element (TLE) data.
Parameters:
-
–tleTwo-Line Element set (2 or 3 lines).
Examples:
>>> tle = '''ISS (ZARYA)
... 1 25544U 98067A 24001.50000000 .00016717 00000-0 10270-3 0 9002
... 2 25544 51.6400 208.9163 0006703 40.7490 46.4328 15.49952307 11'''
>>> sgp4 = lox.SGP4(tle)
>>> trajectory = sgp4.propagate([t1, t2, t3])
Methods:
propagate
propagate(time: Time, provider: EOPProvider | None = None) -> State
propagate(time: list[Time], provider: EOPProvider | None = None) -> Trajectory
propagate(
time: Time | list[Time], provider: EOPProvider | None = None
) -> State | Trajectory
Propagate the orbit to one or more times.
GroundPropagator
Propagator for ground station positions.
Parameters:
-
–locationThe ground location to propagate.
Examples:
>>> gs = lox.GroundLocation(lox.Origin("Earth"), lon, lat, alt)
>>> prop = lox.GroundPropagator(gs)
>>> trajectory = prop.propagate([t1, t2, t3])
Methods:
-
propagate–Propagate the ground station to one or more times.
propagate
propagate(time: list[Time]) -> Trajectory
propagate(time: Time | list[Time]) -> State | Trajectory
Propagate the ground station to one or more times.