Update solar system ephemeris files
Currently the solar system ephemeris files in the repository (used for calculating solar system barycenter delays/Doppler frequency modulations) only go up to 2020, which is fast approaching. This merge request includes updated files for the DE200
, DE405
, and DE421
ephemerides (but not DE414
as it's very rarely been used and will not be a standard for the future) spanning from 1 Jan 2000 to 1 Jan 2040 (assuming no more leap seconds between now and then!). It also includes the DE430
ephemeris between these dates, as this is being commonly used for pulsar timing at the moment. The time files starting tdb_
and te405_
have also been updated between these dates. The updated/new files are therefore:
lalpulsar/test/earth00-40-DE200.dat.gz
lalpulsar/test/earth00-40-DE405.dat.gz
lalpulsar/test/earth00-40-DE421.dat.gz
lalpulsar/test/earth00-40-DE430.dat.gz
lalpulsar/test/sun00-40-DE200.dat.gz
lalpulsar/test/sun00-40-DE405.dat.gz
lalpulsar/test/sun00-40-DE421.dat.gz
lalpulsar/test/sun00-40-DE430.dat.gz
lalpulsar/test/tdb_2000-2040.dat.gz
lalpulsar/test/te405_2000-2040.dat.gz
These files have been added so as to be tracked with git lfs
.
The files have been created using a new script lalapps_create_solar_system_ephemeris_python
, which uses routines in astropy
for calculating the position and velocity of solar system bodies. The script with which the new ephemerides were generated is here [Note: the end time of 2040 means that this gives an ERFA Warning
when run, due to the lack of availability of time corrections up to that date]. The old files have entries spaced once per 4 hours for the Earth, and once per 40 hours for the Sun, but I've halved this to once per 2 hours and once per 20 hours respectively, as the file size is still easily manageable.
These output of lalapps_create_solar_system_ephemeris_python
has been compared with that produced by the old lalapps_create_solar_system_ephemeris
code. The script to do the comparisons is attached here. It calculates the ephemeris for the Earth and the Sun using both codes, at 10 hours intervals between 2004 and 2006 (chosen so that it spanned an added leap second at the and of 2004). The difference (absolute and relative) in position, velocity, and acceleration, and the solar system barycenter time delay, between the old and new methods for each ephemeris, are shown below:
Earth
DE200 | DE405 |
---|---|
DE421 | DE430 |
Sun
DE200 | DE405 |
---|---|
DE421 | DE430 |
Time delay
DE200 | DE405 |
---|---|
DE421 | DE430 |
It can be seen that for the DE405 ephemeris there is very little difference, with positions being within a metre of each other, and time delays consistent to within a few nanoseconds. For the DE200 ephemeris, a 31 metre Earth position offset is visible, which leads to time delay differences of around one hundred nanoseconds, and for DE421 and DE421 a ~9 metre Earth position offset it visible, which leads to time delay differences of tens of nanoseconds.
I understand the cause of these differences and think it is in fact due to a bug in the old ephemeris generation code. The 31 metre difference is exactly the difference between the definition of the AU in the DE200 and DE405 ephemeris files (see here). In create_solar_system_ephemeris.c
it multiplies positions and velocities by the ratio of the DE405 ephemeris AU definition and the given ephemeris' AU definition. I think (and it was me that did it) this was under the misguided attempt to correct all ephemerides to the same definition of the metre, but this shoudn't have been done. If I look at what is done in TEMPO2, in their ephemeris reading code, the ephemeris values are divided by that ephemeris' AU definition, to put the positions in terms of AU, but then converted back to metres by multiplying by the same AU definition. So, what is done in create_solar_system_ephemeris.c
looks to be wrong, and the current DE200 ephemerides (and to a lesser extent the DE414 and DE421 ephemerides) will be slighly wrong - although still at a level that is negligible in terms of its effect on phases for all searches. We probably shouldn't remove the old DE200 ephemerides though as they were used for S5 and S6 hardware injections, so may still be used for some future studies.
This references issue CW/lalsuite#33. cc - @john-whelan, @karl-wette, @reinhard-prix, @david-keitel