-
Notifications
You must be signed in to change notification settings - Fork 3
/
index.html
executable file
·63 lines (43 loc) · 4.9 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<!DOCTYPE html>
<html lang="en-US">
<meta name="keywords" content="ELP/MPP02, Lunar Ephemeris, C++, JavaScript" />
<meta charset="UTF-8" />
<head>
<title>ELP/MPP02 Lunar Ephemeris: C++ Implementation</title>
<link rel="stylesheet" href="ElpMpp02.css">
</head>
<body>
<div id="wrapper">
<br />
<h1>ELP/MPP02 Lunar Ephemeris: C++ Implementation</h1>
<br />
<p>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.</p>
<p>Source paper: <i>The lunar theory ELP revisited. Introduction of new planetary perturbations</i> by J. Chapront and G. Francou, <a href="https://ui.adsabs.harvard.edu/abs/2003A%26A...404..735C/abstract" target="_blank">Astronomy and Astrophysics, v.404, p.735-742 (2003)</a>. See also references to ELP2000-82B theory in the paper.</p>
<p>The authors provide data files, a FORTRAN code and a
pdf documentation on <a href="ftp://cyrano-se.obspm.fr/pub/2_lunar_solutions/2_elpmpp02/" target="_blank">this ftp site</a>. 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.</p>
<p>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.</p>
<p>JavaScript is convenient for HTML-based applications, such as my <a href="https://ytliu0.github.io/starCharts/" target="_blank">local star charts</a> and <a href="https://ytliu0.github.io/starCharts/chartGCRS_min.html" target="_blank">equatorial star charts</a> pages. I wrote C++ routines that generate JavaScript functions to compute a truncated ELP/MPP02 series.</p>
<p>The following is a summary of the files in this package. See <a href="docs/ElpMpp02.pdf" target="_blank">this pdf file</a> for documentation. Files can be downloaded on my <a href="https://github.com/ytliu0/ElpMpp02">GitHub code page</a>.</p>
<ul>
<li>14 data files: <code>elp_main.long</code>, <code>elp_main.lat</code>, <code>elp_main.dist</code>, <code>elp_pert.longT0</code>, <code>elp_pert.longT1</code>, <code>elp_pert.longT2</code>, <code>elp_pert.longT3</code>, <code>elp_pert.latT0</code>, <code>elp_pert.latT1</code>, <code>elp_pert.latT2</code>, <code>elp_pert.distT0</code>, <code>elp_pert.distT1</code>, <code>elp_pert.distT2</code>, <code>elp_pert.distT3</code>. 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.</li>
<li><code>ElpMpp02.h</code>: 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 <code>example.cpp</code> provides an example of using this code.</li>
<li><code>ElpMpp_trim.h</code>: 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 <code>example_usingElpMpp_trim.cpp</code> provides an example of using this code.</li>
<li><code>ElpMpp_JavaScript.h</code>: 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.</li>
<li><a href="ElpMpp02.html"><code>ElpMpp02.html</code></a>: 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.</li>
<li><code>ElpMpp02_aux.js</code>, <code>ElpMpp02LLR_min.js</code>, <code>ElpMpp02DE_min.js</code>: Contain JavaScript functions used by <code>ElpMpp02.html</code>. <code>ElpMpp02LLR_min.js</code> and <code>ElpMpp02DE_min.js</code> are generated by <code>ElpMpp_JavaScript.h</code> to
compute the (untruncated) ELP/MPP02 series using parameters fitted to LLR and
DE405/DE406. <code>ElpMpp02_aux.js</code> contains auxiliary functions to manage the
activities on <code>ElpMpp02.html</code>.</li>
<li><code>ElpMpp02.css</code>: Style file used by this html file and <code>ElpMpp02.html</code>.</li>
</ul>
<br />
</div>
</body>
</html>