SinexLoader doesn't handle multiple historical eccentricities for a same station

When reading the eccentricities file for ILRS stations (https://ilrs.gsfc.nasa.gov/network/site_procedures/eccentricity.html), I realized that Orekit does not support multiple eccentricity entries for a same station.
This is used in ILRS stations to indicate the historical detector positions in case it was moved or in case a new survey provides a better estimation of the detector position. For instance for the Yarragadee station (7090), there are 18 entries with each a validity time interval, see ecc_xyz.snx lines 888 to 905.

Looking at the source code in SinexLoader.java from line 232, Orekit’s behaviour is the following:

  • Set the validity time interval of the Station object based on the first entry found for this station (for Yarragadee, it gives 1979-07-01T00:00:00.000Z to 1983-07-26T23:59:58.000Z)
  • Set the eccentricities based on the last entry found for this station (for Yarragadee, it gives [-1.2073; 2.5034; -1.5509})

Instead, I would suggest to:

  • Set the validity time interval of the Station object from the start time of the first segment until the end time of the last segment found for this station
  • Query the eccentricity value corresponding to the time input by the user

Hi,

It’s indeed a bug in Orekit. Could you open an issue?

We could also imagine a fix for which we save all the data in a TimeSpanMap. It’s something close to what you proposed.

Best regards,
Bryan

Thanks for the swift answer, I opened issue SinexLoader doesn’t handle multiple historical eccentricities for a same station (#867) · Issues · Orekit / Orekit · GitLab

Cheers
Clément

1 Like

Thank you :slight_smile:

This was fixed in Fixed handling of multiple historical eccentricities for a same station. (!222) · Merge requests · Orekit / Orekit · GitLab, thanks Bryan!

1 Like