ELP/MPP02 Lunar Ephemeris: C++ Implementation


ELP/MPP02 is a semi-analytic solution for the lunar motion developed by J. Chapront and G. Francou in 2002. It is an improvement of the ELP2000-82B lunar theory.

Source paper: The lunar theory ELP revisited. Introduction of new planetary perturbations by J. Chapront and G. Francou, Astronomy and Astrophysics, v.404, p.735-742 (2003). See also references to ELP2000-82B theory in the paper.

The authors provide data files, a FORTRAN code and a pdf documentation on this ftp site. ELP/MPP02 theory provides two sets of parameters adjusted to fit either the lunar laser ranging (LLR) observation data or JPL's DE405/DE406 ephemerides.

I have written C++ functions to compute the lunar positions based on the information on that ftp site. The full ELP/MPP02 theory contains series involving 35901 terms. High accuracy of lunar positions may not be necessary for some applications. It is therefore useful to create a truncated series to speed up computation. I have written routines that create a truncated series using 4 parameters. I also wrote a function to estimate the accuracy of the truncated series.

JavaScript is convenient for HTML-based applications, such as my local star charts and equatorial star charts pages. I wrote C++ routines that generate JavaScript functions to compute a truncated ELP/MPP02 series.

The following is a summary of the files in this package. See this pdf file for documentation. Files can be downloaded on my GitHub code page.