Coordinate rotation issues #586
Replies: 1 comment 3 replies
-
Those differences are so small compared to the inherent few-kilometer inaccuracy of SGP4, that one would almost be tempted to blame them on quirks of how the propagator might have been tweaked between different versions. But it’s indeed interesting that the magnitude of the differences are consistent between two different satellites! That does seem to suggest some systematic difference in how the two libraries handle coordinate systems. (Though, of course, two or three more satellites would make it even more likely that the difference isn’t simply noise, but a consistent 2m / 15m offset!) Does the Orekit library include the small effect of polar motion? That makes about a ~3m difference at the Earth's surface, and a proportionally bigger difference at larger distances from the Earth’s center. You can turn it on in Skyfield with the maneuver described here: https://rhodesmill.org/skyfield/accuracy-efficiency.html Have you double-checked that both libraries are using the same timescale, presumably UTC for the moments you are specifying? You might take a look at whether the 2m and 15m differences are always in the same direction: are they always that the satellite is ahead in its orbit? Or behind? Or farther from the Earth's center, or closer? Or are they not systematic at all and flip around between different directions? The answer would be a very strong hint about where we would investigate next. Or, instead of guessing: does Orekit expose the underlying vectors? If you could have it print the TEME vector generated by SGP4, then the GCRS vector, then the ITRS vector, then we could have Skyfield print the same three vectors and identify at exactly which step a difference is creeping in. |
Beta Was this translation helpful? Give feedback.
-
I'm new to using Skyfield. I've been looking for a full python astrodynamics library that can support satellite research and have previously used Orekit and PyOrekit for this. In trying to get a feel for things I am coding examples in both skyfield and Orekit (java) and noticing some discrepancies when representing satellite positions computed from TLEs and I wonder if it is due to the underlying EOP data or the algorithms used. In my example, given a LEO satellite in near polar orbit I'm computing RMS errors of about 2 meters when comparing the skyfield (GCRS) values to a J2000/GCRF value from Orekit - this isnt a big deal. However, when I rotate for itrs using the following
and compare that against Orekit's ITRF position the error is 15 meters which is concerning. I was worried that perhaps the EOP data was not correctly loaded so I went to IERS and downloaded a new finals2000A.all file and load it in using
I checked using multiple ITRF and IERS conventions in Orekit and eliminated that as the cause. I also checked with a different LEO satellite, and different date and get the same ~2 meter difference in J2000 and ~15 meter difference in ITRF.
I'm not sure if this is a data or algorithm issue. Can anyone with more skyfield experience weigh in? Thanks!
Beta Was this translation helpful? Give feedback.
All reactions