Mean to Osculating elements

Hi all,
Is there a converter in orekit to pass from mean to osculating elements?

Hi Bryan
It depends on what mean elements you consider I would say.
I am used to use Brouwer-Lyddane mean elements (as I come from GMAT/FreeFlyer background).
I can suggest my small method (assuming you have your Orbit meanOrbit):

final double harmonicDegree = 7;
final double harmonicOrder = 7;
UnnormalizedSphericalHarmonicsProvider provider = GravityFieldFactory.getUnnormalizedProvider(harmonicDegree,  harmonicOrder);
Propagator propagator = new BrouwerLyddanePropagator(meanOrbit, provider, PropagationType.MEAN, BrouwerLyddanePropagator.M2);
SpacecraftState osculatingState = propagator.propagate(meanOrbit.getDate());

So basically I initialize the BL propagator with mean elements and extracting the osculating elements propagating to the same date.
I made some tests and results (so conversion from mean to osc) are in line with GMAT.
You can obviously reverse the method to get mean parameters using the method BrouwerLyddanePropagator.computeMeanOrbit()

Open to other suggestions

Alberto

1 Like

Hi @Bryan and @alberto-ferrero,

That’s an interesting method, Alberto, I wasn’t aware of it.
I haven’t tried but it should work the same way with EcksteinHechlerPropagator.

Also, note that for the DSST mean elements, you can use the method DSSTPropagator.computeOsculatingState.

Hi Maxime
to comment on EcksteinHechlerPropagator, yes it is implemented in the same way.
As the ecc~=0 issue for BrouwerLyddanePropagator (From Osculating to Mean Elements with Brouwer-Lyddane Propagator, negative eccentricity (#947) · Issues · Orekit / Orekit · GitLab), I would actually suggest to use EcksteinHechlerPropagator for near circular orbits rather than BrouwerLyddanePropagator to convert from mean to osculating and vice versa.
Alberto

1 Like