Skip to content

Sgp4Propagator

Defined in: sgp4.rs:63

Available on crate feature sgp4 only.

pub struct Sgp4Propagator

An SGP4 propagator built from a mean element set.

Construction precomputes sgp4’s epoch Constants; they are not mutated during propagation, so a single propagator can be reused to generate a whole trajectory (one Constants build amortized over many propagate calls).

fn from_elements(elements: &Sgp4Elements) -> [Result<Self, Sgp4Error>](https://doc.rust-lang.org/std/result/enum.Result.html)

Build a propagator from a mean element set.

Uses AFSPC compatibility mode (WGS72 + AFSPC sidereal time / epoch).


fn propagate_minutes_since_epoch(&self, minutes: f64) -> [Result<([Vec3<Teme>](../vec3/), [Vec3<Teme>](../vec3/)), Sgp4Error>](https://doc.rust-lang.org/std/result/enum.Result.html)

Propagate to minutes after the element-set epoch.

Returns (position, velocity) in the Teme frame, in km and km/s.

minutes should stay within SGP4’s useful range (the model is fit for roughly days-to-weeks around epoch and loses meaning far from it); the caller owns that choice. Pathologically large magnitudes also make the deep-space resonance integrator (a fixed 720-minute step toward the target) iterate proportionally, so very large values are slow as well as physically meaningless.


fn propagate(&self, t: [Epoch<Utc>](../epoch/)) -> [Result<([Vec3<Teme>](../vec3/), [Vec3<Teme>](../vec3/)), Sgp4Error>](https://doc.rust-lang.org/std/result/enum.Result.html)

Propagate to the absolute UTC epoch t.

The elapsed time is naive UTC minutes ((t − epoch)), matching SGP4’s leap-second-agnostic time convention. Returns (position, velocity) in the Teme frame, in km and km/s.