Bug in v.12 sp3 parser

I was moving my orbit determination code from v.11.3 to v.12.0 and the SP3 parser stopped working. Upon investigation what was happening was that when a standard deviation value for one of the x/y/z/time position values was missing, the code simply returned an exception.

I have attached one of the SP3 files that caused the exception.

The error occurs in line 711 of org/orekit/files/sp3/SP3Parser.java

IGS0OPSULT_20232120600_02D_15M_ORB.SP3 (493.3 KB)

Ironically the reason this doesn’t happen in 11.3 is because 12.0 is more ambitious than 11.3. The code where the std.dev. values are read in hadn’t been implemented in 11.3 yet, so the fact that these values were occasionally missing from the file lines didn’t matter. However, because I got these files directly from the NASA mirror website the code cannot count on the std. dev. data being blank-free.

Hi @baubin, you are right, this is a bug.

I have checked the standard, and it explicitly allows some fields to be left blank.

I have created issue 1286 and resolved it.
I guess we will include this fix in the 12.0.1 version. In the mean time, you can either include the patch from commit 3f373301 or use the develop branch.

Thanks for the report!

Great, thanks! :slight_smile: