Hello,
I am trying to use a NumericPropagator with the EGM2008 gravity model for a project that I am working on. Unfortunately, when I check the results against STK, they are way off after 15 days. When I visualize them in CZML, what I see is pretty good agreement for a day or so, and then the STK propagator appears to pull ahead of the Orekit propagator. The error by the end of day 15 is entirely in the in-track direction, and the orbital planes appear to remain co-planar. The STK propagator is roughly 2.5 minutes (in time) ahead at this point.
To initialize the EGM2008 model, downloaded the EGM2008 file (record 104) from the ICGEM website here:
I placed the EGM2008.gfc file into my orekit-data/Potential directory and renamed the eigen-6s.gfc file to eigen-6s.old.
My code to create the gravity model looks like this:
public static ForceModel createGravityModel(int degree, int order, Frame centralBodyFrame) {
NormalizedSphericalHarmonicsProvider provider = GravityFieldFactory.getNormalizedProvider(
degree,
order);
ForceModel holmesFeatherstone = new HolmesFeatherstoneAttractionModel(
centralBodyFrame,
provider);
return holmesFeatherstone;
}
Note that I am using degree 70, order 70 for testing.
I have tried various centralBodyFrames [IERS_2010, IERS_2003, IERS_1996] with ‘simpleEOP’ set to [true,false]. Just for fun, I tried GTOD with applyEOPCorr set to false as well.
My propagator is initialized with this code
public static NumericalPropagator createOrekitPropagator(
List<ForceModel> forceModelList,
Orbit orbit) {
final double minStep = 0.001;
final double maxStep = 1000;
// error control parameters (absolute and relative)
final double positionError = 10.0;
ODEIntegrator integrator = new DormandPrince853IntegratorBuilder(
minStep,
maxStep,
positionError).buildIntegrator(
orbit,
OrbitType.CARTESIAN);
// set up space dynamics propagator
NumericalPropagator propagator = new NumericalPropagator(integrator);
for (ForceModel forceModel : forceModelList) {
propagator.addForceModel(forceModel);
}
return propagator;
}
I’m relatively confident that I have my initial orbit setup right as STK and the Orekit propagator appear in the same location when viewing the cesium.
With that being said, I’m at a bit of a loss here. Does anyone have any suggestions for next steps? If I can get things to line up, Orekit will do pretty much exactly what I need it to do.
FWIW, this is a Sun Synch / ~550km orbit.
Thanks!
Screenshot of Cesium Viewer showing the difference between Orekit and STK for one centralBodyFrame (though all show the same behavior)