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));