GNSS propagation accuracy

Hello Orekit community,

I am trying to develop GNSSPropagatorBuilder using YUMA almanac file. I obtained the GNSS propagator ephemeris result and compared them with the TLEPropagator method using the nearest TLE file at the epoch. Comparing both result with the precise ephemeris data (SP3 file) yields almost the same error for different GNSS satellites. I am curious about the advantage of using GNSSPropagatorBuilder method instead of TLEPropagator method. Below are the result for 1 day propagation:

Absolute error GPS TLE:  [704.58687077 490.93284704 751.82865889]
Absolute error GPS truth:  [ 1525.31744111 11632.04067343 56175.34525701]
Absolute error TLE truth:  [  820.73057034 11141.10782639 56927.17391589]
Relative error GPS TLE %:  [ 0.004335   -0.00239872 -0.01720887]
Relative error GPS truth %:  [ 0.00938458 -0.05683476 -1.28581697]
Relative error TLE truth %:  [ 0.00504936 -0.05443473 -1.30280164]

Thank you in advance

Hi @saltinisik

It could be interesting to see the evolution of the error between between t0 and t0 + 1day, where t0 is the almanac epoch.
I expect that the error will be small at the beginning and increase a lot with the time.

TLE propagation is done using the SGP4/SDP4 model. This model consider few zonal harmonics (J2, J3, and J4 if I good remember), luni-solar attraction, and drag.
At the opposite, the almanac propagation doesn’t consider any orbital perturbation. That’s probably why the TLE accuracy is better than the Almanac accuracy after the one day propagation.

If I good remember, almanac are very precise at the almanac epoch and in a time span of few hours.

Best regards,

Hello again,

Thank you for the very quick reply. So, if i understand correct, GNSSPropagatorBuilder helps us to propagate YUMA/SEM almanac files of GNSS satellites and there is no advantage of using GNSS propagator in terms of accuracy for the long propagation period. Maybe it could be interesting case to add orbital perturbation to the GNSS propagator so that accuracy of the propagator could be increased.

Another thing that i tried was using SP3 precise ephemeris file with the BoundedPropagator method. I implemented this in my code but BoundedPropagator method gives me unexpected results. I expect that the results would be very close to the SP3 ephemeris file timestamped position data but it was not the case. Do you have any idea why this difference comes from?

Thank you,

No. The GNSS propagator is not intended to be an accurate propagator, it is intended to be an implementation of the model that is consistent with the data in the navigation message. If you need accuracy, you have to use something dedicated to accuracy.

Beware SP3 are generally in some terrestrial frame and Orekit propagators work in inertial frames, so there are some frame transforms involved.

Hello again,

I obtained the file from the internet and they are used WGS84 frame in the ephemeris file. I am using SP3Parser method and that method requires WGS84 frame as input. I am not sure about how to implement WGS84 as a frame?

Thank you in advance,

WGS84 is a terrestrial frame close to ITRF.
They were close to about 1m at the beginning, but recent realizations of the frames
are consistent within 1cm (see

So if you use recent data and not historical data, you can just use ITRF with up to date EOP.