TimeStampedCacheException with oem propagator

Hi Orekit Team !

Trying to parse and work with an oem ephemeris file on Orekit 13.0 and having a peculiar behavior of Orekit failing to generate the PVCoordinates for the entirety of the ephemeris. The failures occur one or two steps before the end of the file. The end date is retrieved from the ephemeris segment. I have read that a time span limit can occur when parsing ephemeris but the error is still on when manually reducing the ephemeris file size and number of points.
Any ideas on the subject ?
KSAT_PE_NOBURN_20250408T223010Z.oem (2.1 MB)

Exception in thread “main” org.orekit.errors.TimeStampedCacheException: unable to generate new data after 2025-04-17T01:43:00.000Z, but data is requested for 2025-04-17T01:45:00.000Z which is 1.2E2 s after
at org.orekit.utils.SortedListTrimmer.getNeighborsSubList(SortedListTrimmer.java:91)
at org.orekit.files.general.EphemerisSegmentPropagator.interpolate(EphemerisSegmentPropagator.java:152)
at org.orekit.files.general.EphemerisSegmentPropagator.getPVCoordinates(EphemerisSegmentPropagator.java:98)
at orekit.OrekitTrial.main(OrekitTrial.java:83)

Here is the script in use:

// Load Orekit data
File orekitData = new File("./app/src/main/resources/orekit-data");
DataProvidersManager manager = DataContext.getDefault().getDataProvidersManager();manager.addProvider(new DirectoryCrawler(orekitData));

// Import spacecraft ephemeris
File oemFile = new File("./app/src/main/resources/input/KSAT_PE_NOBURN_20250408T223010Z.oem");
OemParser parser = new ParserBuilder().buildOemParser();
Oem oem = parser.parse(new DataSource(oemFile));
        
// Retrieve ephemeris data
OemSegment segment = oem.getSegments().getFirst();
int interpolationSamples = segment.getInterpolationSamples();
Frame frame = segment.getFrame();
Double mu = segment.getMu();
BoundedPropagator oemPropagator = segment.getPropagator();
AbsoluteDate startDate = oemPropagator.getMinDate();
AbsoluteDate stopDate = oemPropagator.getMaxDate();

// Initial state
SpacecraftState initialState = oemPropagator.getInitialState();
double mass = initialState.getMass();

// Final state
TimeStampedPVCoordinates finalPVCoordinates = oemPropagator.getPVCoordinates(stopDate, frame);

Thanks as always for your time and assistance !

Cheers,
Gueorguy

Hello @Gueorguy,

The file you provided is missing data for 2025-04-17T01:44:00.000000 and 2025-04-17T01:45:00.000000 even though it says that it should go up to 2025-04-17T01:45:00.000000:

USEABLE_STOP_TIME    = 2025-04-17T01:45:00.000000
STOP_TIME            = 2025-04-17T01:45:00.000000

That’s why you are getting this error :slight_smile: !

Cheers,
Vincent