TimeStampedPVCoordinates docs say "It is not intended as a replacement for proper orbit propagation"

Apologies for the simple question - I’m very new to Orekit (using Java) and OD in general.

The documentation for TimeStampedPVCoordinates states that “It is not intended as a replacement for proper orbit propagation (it is not even Keplerian!)” and that it should only be used for propagating with small date ranges. The tutorials do not use TimeStampedPVCoordinates as far as I can tell; they use explicitly set parameters for a, i, omega, etc. Is that the best way to propagate over date ranges that span weeks or months?

Hi @hmohm
The proper way is to use a propagator. Note that for long periods like months even propagators may have some problems, typically on low Earth orbit, because atmospheric drag cannot be predicted: the state of upper atmosphere depends on solar activity and changes very fast (at the scale of a few hours).

If you need accuracy, the numerical propagator is a good choice, but requires setting up the force models depending on orbit (low or high) and satellite shape and attitude (for surface forces like drag and solar radiation pressure).

Hi! Thanks for the reply!

Just so I’m clear … it’s not recommended to directly feed an orbit type with TimeStampedPVCoordinates?

Many thanks!
hmohm1616

Hi @hmohm,

It is perfectly safe to define an orbit with a TimeStampedPVCoordinates.
What you should avoid is propagating an orbit with the shiftedBy method of TimeStampedPVCoordinates.
This method is the one you extracted the Javadoc of your first post from.

What this Javadoc and @luc mean is that, if you want to know where your object will be in the future, you should use a propagator instead of using the shiftedBy method.

You can use TimeStampedPVCoordinates to an orbit, it will be considered as an osculating state. Then the orbit can be propagated using some dynamical model, a simple one or a complex one.

Beware that some propagators use mean elements. For example DSSTPropagator has a PropagationType enumerate to set up properly so it knows if the initial orbit is meant to be mean orbit or osculating orbit.