goGPS-Project/goGPS_Java

too old Ephemeris being used

Closed this issue · 3 comments

I've seen this happening when trying to process some recent data.
The daily Rinex file was not available yet so we backed off an hour and loaded the Rinex from the previous day:

http://garner.ucsd.edu/pub/rinex/2016/314/auto3140.16n.Z from the net.
URL: http://garner.ucsd.edu/pub/rinex/2016/314/auto3140.16n.Z
404 Not Found
http://garner.ucsd.edu/pub/rinex/2016/313/auto3130.16n.Z from the net.
URL: http://garner.ucsd.edu/pub/rinex/2016/313/auto3130.16n.Z

Unfortunately it appears that the the Ephemeris in use from the older Rinex were just too old (168 minutes).
As a quick&dirty fix, I've added this check to RinexNavigationParser.findEph():

	if( dtMin/1000/60>120 )
	  return null;

Have you seen this happening too? I've noticed goGPS using old ephemeris a few times when doing processing in real time, but that was long time ago

Yes, we should add a check on the maximum allowed time difference. In goGPS MATLAB it's already implemented: https://github.com/goGPS-Project/goGPS_MATLAB/blob/master/goGPS/positioning/find_eph.m#L56

It should work now. For some strange reason, the commit included code indentation changes (I have no idea where those came from)... anyway, the code now should take into account the maximum interval specified in the navigation message, if available; if not, it will use the same default maximum values used in goGPS MATLAB. Let me know if I broke something! :)

Thank you @ege010
I'm gonna check it out