poliastro / validation

Validation of poliastro against external software.
Apache License 2.0
11 stars 6 forks source link

Frames validation #22

Closed jorgepiloto closed 3 years ago

jorgepiloto commented 3 years ago

Frames validation has been a long discussion topic and several issues within official poliastro repository have been opened about it, see:

At the moment, all poliastro source code related to frames is located within the frames sub-package. On the other hand, Orekit documentation about frames is collected in the following links:

Finally, official IAU documentation about Cartographic Coordinates and Rotational Elements is depicted in the following webpage: https://astrogeology.usgs.gov/groups/IAU-WGCCRE

jorgepiloto commented 3 years ago

More useful links about how GMAT manages representations of body inertial and body fixed representations:

jorgepiloto commented 3 years ago

After a quick test, I was able to check that transformations from body inertial to body fixed in poliastro were properly applied (validation was done against GMAT). Regarding, Orekit, output results had the same order of magnitude and sign, but slightly diverged.

This is probably behind the difference in results, see CelestialBodyFactory docs:

The underlying body-centered frames are either direct children of EME2000 (for Moon and Earth-Moon barycenter) or children from other body-centered frames. For example, the path from EME2000 to Jupiter-centered frame is: EME2000, Earth-Moon barycenter centered, solar system barycenter centered, Jupiter-centered. The defining transforms of these frames are combinations of simple linear translation/velocity transforms without any rotation. The frame axes are therefore always parallel to EME2000 frame axes.

In addition, the position of the bodies provided by this class are interpolated using the JPL DE 405/DE 406 ephemerides.

jorgepiloto commented 3 years ago

Let me collect inertial frame definitions from each software documentation:

Celestial bodies inertial frames

jorgepiloto commented 3 years ago

This is solved, although some of tests were marked as XFAIL since the rotational elements implemented within Orekit come from the IAU 2009 report, while the poliastro ones do from the 2015 one.

astrojuanlu commented 3 years ago

I think we can consider this done! It's the turn for Orekit to update their constants ;)