I'm querying for planetary ephemeris and to make
sure I am getting expected values I'm comparing my results
against the JPL HORIZONS website. Unfortunately I'm not seeing
the accuracies that I was expecting. I'm querying for January
1st at midnight for the year 2000 and 2015. I'm doing this for
the Sun, Moon and Jupiter. The Sun position is around 5100
meters off, the moon position is about 40 meters off and
Jupiter's position is between 137 km and 179 km off.
I downloaded and have Orekit using the 421 ephemerides at
this point. These get me closest. I've tried 406, 423 and
430. The 430 ephemerides didn't even load (I believe they
changed the format slightly) and 406 was worse by at least
20%. My settings on the website are:
Ephemeris Type: Vectors
Target Body: Jupiter [599], Sun [10] or Moon [301]
Coordinate Origin: Geocentric [500] (which is Earth[399]
BODY CENTER)
Reference plane: Earth mean equator and equinox of
reference
Reference System: ICRF/J2000
Type: Geometric states (no aberration; instantaneous
dynamic states)
Times entered for vector format is always in Coordinate
Time, which matches Orekit's TDB timescale. I'm generating my
"actual" values using code like this:
PVCoordinatesProvider pvSun =
CelestialBodyFactory.getSun();
Frame j2000 = FramesFactory.getEME2000();
AbsoluteDate epoch = new AbsoluteDate(2000, 1, 1, 0, 0,
0,
TimeScalesFactory.getTDB());
Vector3D actualPosition = pvSun.getPVCoordinates(epoch,
j2000)
.getPosition();
It's not clear to me what I am doing wrong. I've tried
messing around with the coordinate frame, timescale and
changing the type generated by HORIZONS to include light time
delay and stellar aberration. The closest I've gotten to
matching HORIZONS is with the above configuration of the
HORIZONS site and this code.
If anything jumps out at someone, let me know.
Thanks!
Hank