Skip to Content

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

SP3CCSDS OEM
OriginGNSS precise orbit productsAgency and operator interchange
Typical contentPosition, often with clock correctionsPosition and velocity
Typical intervalFixed, commonly 15 minutesWhatever the producer chose
StructureFixed-column records, epoch headersKeyword-value metadata plus records
Frame declarationIn the headerREF_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

Question? Give us feedbackDocuments Varaha Constellation Designer main (pre-release)
Last updated on