goGPS-Project / goGPS_Java

goGPS Java is a GNSS observation processing library.
http://www.gogps-project.org
59 stars 43 forks source link

too old Ephemeris being used #26

Closed ZiglioUK closed 7 years ago

ZiglioUK commented 7 years ago

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

ege010 commented 7 years 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

ege010 commented 7 years ago

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! :)

ZiglioUK commented 7 years ago

Thank you @ege010 I'm gonna check it out