- Introduction
- Contents of the Ephemeris
- Getting the Ephemeris Files
- A Sketchy History of DE Versions
- Acknowledgment
- References

The JPL Solar System Ephemeris specifies the past and future positions of the Sun, Moon, and nine planets in three-dimensional space. Many versions of this ephemeris have been produced to include improved measurements of the positions of the Moon and planets [refs 1,2] and to conform to new and improved coordinate system definitions.

The DE100-series ephemeris is in the B1950 coordinate system, the DE200 series is in the J2000 system, and the DE400 series is in the reference frame defined by the International Earth Rotation Service (IERS). DE200 [refs 4,5] has been the standard from which the Astronomical Almanac tables are computed since 1984. Updated planetary position accuracy is generally available in more than one series. For example, DE118 [ref 3] and DE200 are from the same data as are DE140 and DE400. As of this writing the latest data set is DE421.

Planetary positions are generated by a computer integration fit to the best available observations of the positions of the Sun, Moon, planets, and five largest asteroids. The computer integration involves step wise computation of the position of each planet as determined by the gravitation of all of the other objects in the solar system. The planet's position is stepped both forward and backward in time from some chosen epoch. Minor adjustments are made to the masses and shapes of the Moon and planets to get best agreement with their observed position of the last 80 years or so. The observation are mainly from transit circles since 1911, planetary radar ranging since 1964, lunar laser ranging since 1969, distances to the Viking lander on Mars since 1976, and, most recently, VLBI. The computer calculations have been extended as far as 3000 BC to 3000 AD, but positions for the 1850-2050 range are the most accurate, of course.

Subtle differences exist between the best ephemeris model coordinates and the standard definitions of B1950 and J2000, between the coordinate systems defined by star positions and the B1950 and J2000 standards, and between the coordinate systems defined by stars and radio sources. These differences, which start at the level of a couple of milliseconds and a few tenths of an arcsecond, are very important to pulsar timing and radio interferometry. Hence, one needs to be very careful about comparing observations reduced on the basis of different ephemerides and coordinate systems. With care and consistency, all-sky accuracies of a few hundred nanoseconds and a few milliarcseconds are currently being achieved.

The solar system objects or reference points for which barycentric positions and velocities are specified in the JPL ephemeris are Mercury, Venus, the Earth-Moon barycenter, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto, and the Sun. The geocentric position of the Moon is specified, from which the solar system barycentric position of the Earth or Moon may be derived when combined with the Earth-Moon barycenter position. The DE200 ephemeris also contains equation coefficients for Earth nutation and lunar libration.

The JPL DE-series ephemeris consists of computer files that begin with a header, e.g. header.405, containing a few lines of annotation, the ephemeris time span, values of many constants assumed by the computer integration, and an index table that tells the relative locations of the data for the different solar system objects in the data blocks to follow, e.g., asc+2000.405. Each data block contains coefficients for Chebyshev polynomials [ref 8] that specify each of the three coordinate values and, by numeric differentiation, three coordinate velocity components for each object over the time span of the data block, generally 32 days.

Within a data block interval, any object, particularly the faster moving ones like the Moon and inner planets, may have its equations divided into subintervals to achieve the required accuracy. Each object has its own number of equation coefficients, but the number is the same in every data block and subinterval for that object. The number of coefficients and number of subintervals for each object are specified in the header index table. All dates and coefficients are double precision. The equations are for solar system barycentric positions in kilometers and velocities in kilometers per day. The time independent variable is Barycentric Dynamic Time (TDB) in fractional Julian days. The data block structure is

- Interval start Julian date
- Interval end Julian date
- Mercury sub-block
- Subinterval 1
- X-coordinate coefficients
- Y-coordinate coefficients
- Z-coordinate coefficients

- Subinterval 2
- X-coordinate coefficients
- Y-coordinate coefficients
- :

- Subinterval 3
- :

- Subinterval 1
- Venus sub-block
- Subinterval 1
- X-coordinate coefficients
- Y-coordinate coefficients
- Z-coordinate coefficients

- Subinterval 2
- :
- etc.

- Subinterval 1

Once the desired subinterval is found and the equation coefficients converted into a three-dimensional position for the specified time, using these positions is quite straightforward. Getting the position and velocity of one object with respect to another is a simple subtraction of six vector pairs. Finding the direction of one object with respect to another is then a simple rectangular to spherical coordinate transformation. A more complete discussion of ephemeris use is given in Using the JPL Solar System Ephemeris.

To set up a new ephemeris installation you need to obtain the data files from JPL for the time ranges of interest. The best way is to FTP the files over the Internet as described below. You can also download the Fortran code for accessing these files from the same FTP site. A companion document to this one describes a set of C++ routines for accessing and interpreting the ephemeris so we will concern ourselves here mainly with getting the data files.

The FTP web site is here, or you can do an anonymous FTP from the command line with 'ftp -i ssd.jpl.nasa.gov' and then cd to pub/eph/planets/ascii.

Next, you might want to fetch the latest documentation on the DE421 ephemeris. It contains some detailed information about the latest ephemeris, including accuracy estimates, and a lot of useful references, some of which are listed below. This document does presume a basic understanding of the ephemeris, however.

Now get the ephemeris header and data files. You have a choice of downloading either the binary or ASCII data files, but the binary files are machine and language dependent. If you intend to read the ephemeris data with the JPL Fortran code on a byte-order compatible machine, then fetch the binary files from the bsp directory.

The ASCII data files are readable by any machine, so those are the ones we'll use. For all but the most precise applications it probably doesn't matter much which ephemeris data version you use. If you need data going back to the year 1600, DE405 is a good choice so select the 'de405' ascii directory on the FTP web page and download the "header.405" and the "ascpxxxx.405" for the time periods in which you are interested. The DE405 data files are in 20 year intervals. For example, the file 'ascp1980.405' contains data for 1980 to 2000 for the DE405 ephemeris. The files are 6.2 MB each in size.

These ASCII files can be concatenated and converted to the binary format of your machine for much faster access with a program called 'asc2bin'. The source code for this program can be obtain from the ftp site, which contains code for a complete python language module for accessing the JPL ephemeris data. After compiling this file the ascii to binary conversion requires these linux commands or their equivalents in other operating systems:

$ cat header.405 ascp1980.405 ascp2000.405 > asc_cat.405 $ asc2bin asc_cat.405 2450000 2460000where the last two arguments, 2450000 2460000, are the beginning and ending Julian dates for the binary file created. These dates must be within the range of the ascii data files that were concatenated. For quick reference, the Julian dates for January 1, 1995, 2000, 2005, 2010, 2015, and 2020 are 2449718, 2451544, 2453371, 2455197, 2457023, and 2458849, respectively. Code for program for converting (month, day, year) to Modified Julian Date (mjd = jd - 240000.5), mdy2mjd, is also available at the same ftp site.

The JPL folks have kindly provided some test results that you can use to test both your ephemeris data and the code you are using to read it. These test results are in the 'test-data/' directory. Download the testpo.405 file.

You now have all of the JPL files required to use the C++ programs to be described in the documents associated with this one. If you would like to use the JPL fortran code, get the source code files in the 'fortran/' directory. Compiling and testing this code is described in the usrguide document mentioned above.

Depending on your interests, you may branch to a document describing the general use of the JPL ephemeris. Two other documents give general information on civil and astronomical time systems, and the rotational motions of the earth.

- DE118
- This was the best available planetary ephemeris as of 1983, spanning the 1850-2050 time range, based on transit circle measurements since 1911, planetary radar since 1964, lunar laser ranging since 1969, and Viking spacecraft ranging on Mars since 1974. Its larger time span companion was DE102 [ref 3], which covered 1411 BD to 3002 AD. The major ephemerides leading to DE118 were DE96, DE102, DE108, and DE111 [ref 5]. All of these ephemerides, including DE118 are in the B1950 coordinate system.
- DE200
- This is DE118 rotated into the J2000 coordinate system [ref 4]. DE200 has been the basis for the calculation of Astronomical Almanac planetary tables since 1984.
- DE125
- Created in July 1985 for the Voyager encounter with Uranus [ref 6].
- DE130
- Created in October 1987 for the Voyager encounter with Neptune [ref 6].
- DE202
- This is DE130 rotated into the J2000 coordinate system. DE202 is more accurate for the outer planets than is DE200 [ref 6].
- DE403
- A new ephemeris [ref 7] aligned with the (J2000) reference frame of the Radio Source Catalog of the International Earth Rotation Service (IERS). It it based on planetary and reference frame data available in 1995.