Giter Club home page Giter Club logo

elpmpp02's Introduction

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.

  • index.html: HTML page of this README document.
  • 14 data files: elp_main.long, elp_main.lat, elp_main.dist, elp_pert.longT0, elp_pert.longT1, elp_pert.longT2, elp_pert.longT3, elp_pert.latT0, elp_pert.latT1, elp_pert.latT2, elp_pert.distT0, elp_pert.distT1, elp_pert.distT2, elp_pert.distT3. These data files are generated from the data files on the ftp site mentioned above. They are stored in a format more convenient for C++ implementation.
  • ElpMpp02.h: Contains functions that compute the lunar positions using both sets of parameters fitted to LLR and DE405/DE406. This is basically a C++ version of the FORTRAN code. The file example.cpp provides an example of using this code.
  • ElpMpp_trim.h: Contains functions that generate a truncated version of the ELP/MPP02 series. A C++ file and 14 data files will be created by the code to implement the truncated series. It also contains a function that estimates the accuracy of the truncated series by performing a Monte Carlo simulation. The file example_usingElpMpp_trim.cpp provides an example of using this code.
  • ElpMpp_JavaScript.h: Contains routines that generate JavaScript functions to compute a truncated ELP/MPP02 series. Two javascript files will be created by this code. They contain exactly the same functions, but one is human-readable and the other is a minified version (for production run). No data files will be generated. Terms in the ELP/MPP02 series are written explicitly in the JavaScript code.
  • ElpMpp02.html: A web-based JavaScript calculator that computes the lunar positions by ELP/MPP02 using both sets of parameters fitted to LLR and DE405/DE406. This is essentially a JavaScript version of the FORTRAN code. It is intended for code test.
  • ElpMpp02_aux.js, ElpMpp02LLR_min.js, ElpMpp02DE_min.js: Contain JavaScript functions used by ElpMpp02.html. ElpMpp02LLR_min.js and ElpMpp02DE_min.js are generated by ElpMpp_JavaScript.h to compute the (untruncated) ELP/MPP02 series using parameters fitted to LLR and DE405/DE406. ElpMpp02_aux.js contains auxiliary functions to manage the activities on ElpMpp02.html.
  • ElpMpp02.css: Style file used by this html file and ElpMpp02.html.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.