Integration history

Hi all,

I’m wondering, is it possible to retrieve the intermediate instances of SpacecraftState produced by a NumericalPropagator during a run?
The application I have in mind is to get the covariance matrices possibly underlying there. Because I’m pretty sure that the output of an IntegratedEphemerisPropagator do not keep non-trivial additional state variables. Or am I wrong?

Cheers,
Romain.

I guess you can do it using getEphemerisGenerator from the propagator interface before the run, then performing the propagation, the calling getGeneratedEphemeris on the generator.

Hi Luc,

Thanks for your answer.
The Ephemeris generator returns an IntegratedEphemerisPropagator and I don’t see how to access the step history there. It can “only” interpolate at any time within the date bounds. But maybe this interpolation also works on the covariance matrix coefficients? I recalled from previous discussions on this forum that it wasn’t the case, I may be wrong though.

Edit: I might have got confused with the Ephemeris class

Cheers,
Romain.

Hi Romain,
if I understand correctly your question, the integration history can be stored by a step handler as follows:

List<SpacecraftState> ephemeris = new ArrayList<>();
propagator.setStepHandler((OrekitStepInterpolator interpolator) → {
ephemeris.add(interpolator.getCurrentState());
});

1 Like

Turns out the IntegratedEphemerisPropagator also includes the covariance coefficients in its output states. However I’ve not checked yet if they were really interpolated or just copied from closest point.

When it comes to retrieving the interpolation history @glauco.digenova your solution looks beautiful, thanks for sharing it.

Cheers,
Romain.