SP3
What it is
SP3 is the precise orbit product format that originated in the GNSS community. It is read, never written.
Like CCSDS OEM, it is a table of states rather than a model. Both are imported the same way and both propagate only by interpolation.
SP3 or OEM
| SP3 | CCSDS OEM | |
|---|---|---|
| Origin | GNSS precise orbit products | Agency and operator interchange |
| Typical content | Position, often with clock corrections | Position and velocity |
| Typical interval | Fixed, commonly 15 minutes | Whatever the producer chose |
| Structure | Fixed-column records, epoch headers | Keyword-value metadata plus records |
| Frame declaration | In the header | REF_FRAME per block |
Use whichever your source publishes. SP3 is what you receive from GNSS analysis centers; OEM is what you receive from a spacecraft operator or agency.
Importing
orbitforge import-ephem \
--sp3 product.sp3 \
--name gnss-fleet \
--output gnss.json--oem and --sp3 are mutually exclusive. Supplying both is rejected rather
than one silently winning.
Over HTTP the same import is available through
POST /import/ephemeris.
Only the ephemeris model applies
Satellites imported from SP3 must be propagated with --model ephemeris, and
only within the span the table covers. Outside it there is nothing to
interpolate, and the file carries no dynamics to extrapolate with.
Selecting a different model fails rather than substituting silently:
Error: simulation failed
Caused by:
satellite `x` has no ephemeris table; ephemeris propagation requires one (import via OEM or SP3)The converse, running a numerical model on ephemeris-imported satellites, would be worse in principle: it would propagate from the first state under a force model unrelated to whatever produced the table, and diverge from the very trajectory it was meant to reproduce.
Interpolation interval matters
A precise product is precise at its tabulated epochs. Between them the state is interpolated, and the error that introduces depends on the tabulation interval relative to the orbital period.
A 15-minute interval on a GNSS satellite with a roughly 12-hour period samples each revolution about 48 times, which supports accurate interpolation. The same interval on a low Earth orbit satellite with a 96-minute period samples about six times per revolution, and interpolating that aggressively can introduce error far exceeding the product’s own accuracy.
Check the interval against the period before trusting a value between records. A centimeter-accurate product interpolated badly is not centimeter accurate.
Clock data
SP3 commonly carries clock corrections alongside position, because GNSS applications need them. They are not used for orbital propagation here, which concerns geometry rather than timing signals.
See also
- CCSDS OEM, the other table format.
import-ephem.- Propagation fidelity.
main (pre-release)