In space SE it was suggested I use PyEphem to calculate orbits from two-line elements. Now I'm curious how it calculates "build-in" solar system objects like the planets and their satellites. Does it use one of the standard JPL ephemerides (also here), or something else?
So far I couldn't find out looking at the PyEphem or XEphem websites.
For example the JPL ephemerides are generated (loosely speaking) by integrating orbits over a limited period of time while comparing to a large body of observed data to arrive at a set of orbital parameters. Then it is integrated far into the future and past, and results are tabulated at fixed times. This table of positions (and other things) can be called an ephemeris.
The ephemeris is then used by interpolating between time periods - in this case using coeficients of Chebyshev polynomials given in the table.
The JPL DE405 ephemeris for example can be read with the python module de405
@Mattexx has pointed out below that XEphem is using a routine called libastro
, and that PyEphem is probably doing the same. So I'd like to know what it is using to calculate positions - the algorithm and observed data set.