Ephemeris conversion time : from cartesian to mean keplerian elements

Hello !

I’m facing a really long conversion time while trying to convert the state vectors of my OEM ephemeris (covering 24h with a time step of 30s) into mean keplerian elements.

To this end, I build a simple propagator with an initial state vector, and for each state vector, with the current state and propagator, I instantiate an OsculatingToMeanElementsConverter object. This object is the reason why the conversion is really slow. Conversion time ranges from ~4s to a couple of seconds when tweaking propagator settings.

In order to speed things up, instead of a numerical propagator I tried using an analytical one with the class EcksteinHechlerPropagator and its method computeMeanOrbit. The results were much better (0.2s per state vector) but still taking too long for an entire ephemeris.

I would like to know what I’m doing wrong here as to why the conversion is taking that much time or if I omitted something. What do you think ?

Thanks in advance,

Lucas.

Hi Lucas,

Have you tried doing some profiling ? You could use VisualVM for instance.
If you can’t, please provide us with some runnable code, preferably simplified wrt your original use case.

As a general remark, I would avoid instantiating objects multiple times when they can be reused.

Cheers,
Romain