Matching output with FK5 libraries

Hello,
Forgive the somewhat scattershot questions. I am using orekit to replace a legacy application that uses Fortran SOFA FK5 libraries. I am trying to account for some differences in results between Orekit and the legacy application when converting between reference frames.

Q1) One thing I noticed is that when converting from ECEF / ITRF vectors into an ECI TOD reference frame, the distance between the computed vectors is over 1/2 mile apart. This seems like way too large a discrepancy to attribute to just using old conversions. Does anyone have experience doing this kind of thing that could offer advice?

Q2) In troubleshooting the above, I noticed that the error is way smaller (to the tune of 20 feet or so) when I subtract about 3.5 seconds to the AbsoluteDate I use for the frame conversion. Thinking this might point to an incorrect use of leap seconds somewhere, I decided to mess with my tai-utc file to add and subtract leap seconds in an effort to figure out if that was the culprit. I noticed, though, that adding or removing leap seconds from this file does not change my coversion significantly (it makes a slight difference, but not nearly of the same magnitude as altering the timestamp for the conversion). Can anyone help me understand why that would be the case?

Thanks in advance for any ideas or advice.

Hi @bvanmatre welcome!

Did you check the Earth Orientation Parameters used are consistent in both legacy and new code?

Hello,
Thank you for the welcome and idea. Unfortunately the legacy app is something of a black box for me. I have been told that they are in fact using daily updated eop. What I did try, though, was to use an outdated eop finals200A.all file, and then change to a current one. I noticed that I did not see any difference in the calculated result… This leads me to believe that I am not loading the file correctly or that the eop data is not being used. Is there a way to validate the EOP data is loaded on my end?

You can try to call this at the end of your run, in order to see what was loaded:

DataContext.getDefault().getDataProvidersManager().getLoadedDataNames().forEach(System.out::println);