Bug in reading nutation parameters from Bulletin A

Hello,

I found a bug in the class BulletinAFilesLoader when reading the nutation parameters. The values for the non-rotating origin (NRO) and equinox nutation parameters are inverted in the creation of EOPEntry elements.

At line 707, the if clause assigns the NRO values to the indices 1 and 2 of the double array Value of poleOffsetsFieldsMap, whereas the equinox values are assigned to the indices 3 and 4.

At line 529 and 556, the EOPEntry elements are created. The problem is that it expects the equinox values (ddPsi/ddEps) before the NRO ones.

The code currently does:

history.add(new EOPEntry(mjd,
                                                 0.0, Double.NaN, 0.0, 0.0, Double.NaN, Double.NaN,
                                                 UnitsConverter.MILLI_ARC_SECONDS_TO_RADIANS.convert(currentPole[1]),
                                                 UnitsConverter.MILLI_ARC_SECONDS_TO_RADIANS.convert(currentPole[2]),
                                                 UnitsConverter.MILLI_ARC_SECONDS_TO_RADIANS.convert(currentPole[3]),
                                                 UnitsConverter.MILLI_ARC_SECONDS_TO_RADIANS.convert(currentPole[4]),
                                                 configuration.getVersion(),
                                                 mjdDate, eopDataType));

What it should do instead is:

history.add(new EOPEntry(mjd,
                                                 0.0, Double.NaN, 0.0, 0.0, Double.NaN, Double.NaN,
                                                 UnitsConverter.MILLI_ARC_SECONDS_TO_RADIANS.convert(currentPole[3]),
                                                 UnitsConverter.MILLI_ARC_SECONDS_TO_RADIANS.convert(currentPole[4]),
                                                 UnitsConverter.MILLI_ARC_SECONDS_TO_RADIANS.convert(currentPole[1]),
                                                 UnitsConverter.MILLI_ARC_SECONDS_TO_RADIANS.convert(currentPole[2]),
                                                 configuration.getVersion(),
                                                 mjdDate, eopDataType));

Hi @EYannick,

Welcome to the forum !!

Looks like a nice catch! Unfortunately I don’t know much about BulletinA.
@luc do you confirm the bug?
Yannick, can you open a bug report on the forge please?

Cheers,
Maxime

Hello Maxime,

Thanks for your reply. I opened an issue as you suggested: orekit#1841

Best,

Yannick

1 Like