1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 | import base from './base';
|
12 | import planetelements from './planetelements';
|
13 | import solar from './solar';
|
14 |
|
15 |
|
16 | export var io = 0;
|
17 | export var europa = 1;
|
18 | export var ganymede = 2;
|
19 | export var callisto = 3;
|
20 |
|
21 | var k = [17295, 21819, 27558, 36548];
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 | function XY(x, y) {
|
29 | this.x = x;
|
30 | this.y = y;
|
31 | }
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 | export function positions(jde) {
|
42 | var d = jde - base.J2000;
|
43 | var p = Math.PI / 180;
|
44 | var V = 172.74 * p + 0.00111588 * p * d;
|
45 | var M = 357.529 * p + 0.9856003 * p * d;
|
46 | var sV = Math.sin(V);
|
47 | var N = 20.02 * p + 0.0830853 * p * d + 0.329 * p * sV;
|
48 | var J = 66.115 * p + 0.9025179 * p * d - 0.329 * p * sV;
|
49 |
|
50 | var _base$sincos = base.sincos(M),
|
51 | sM = _base$sincos[0],
|
52 | cM = _base$sincos[1];
|
53 |
|
54 | var _base$sincos2 = base.sincos(N),
|
55 | sN = _base$sincos2[0],
|
56 | cN = _base$sincos2[1];
|
57 |
|
58 | var _base$sincos3 = base.sincos(2 * M),
|
59 | s2M = _base$sincos3[0],
|
60 | c2M = _base$sincos3[1];
|
61 |
|
62 | var _base$sincos4 = base.sincos(2 * N),
|
63 | s2N = _base$sincos4[0],
|
64 | c2N = _base$sincos4[1];
|
65 |
|
66 | var A = 1.915 * p * sM + 0.02 * p * s2M;
|
67 | var B = 5.555 * p * sN + 0.168 * p * s2N;
|
68 | var K = J + A - B;
|
69 | var R = 1.00014 - 0.01671 * cM - 0.00014 * c2M;
|
70 | var r = 5.20872 - 0.25208 * cN - 0.00611 * c2N;
|
71 |
|
72 | var _base$sincos5 = base.sincos(K),
|
73 | sK = _base$sincos5[0],
|
74 | cK = _base$sincos5[1];
|
75 |
|
76 | var Δ = Math.sqrt(r * r + R * R - 2 * r * R * cK);
|
77 | var ψ = Math.asin(R / Δ * sK);
|
78 | var λ = 34.35 * p + 0.083091 * p * d + 0.329 * p * sV + B;
|
79 | var DS = 3.12 * p * Math.sin(λ + 42.8 * p);
|
80 | var DE = DS - 2.22 * p * Math.sin(ψ) * Math.cos(λ + 22 * p) - 1.3 * p * (r - Δ) / Δ * Math.sin(λ - 100.5 * p);
|
81 | var dd = d - Δ / 173;
|
82 | var u1 = 163.8069 * p + 203.4058646 * p * dd + ψ - B;
|
83 | var u2 = 358.414 * p + 101.2916335 * p * dd + ψ - B;
|
84 | var u3 = 5.7176 * p + 50.234518 * p * dd + ψ - B;
|
85 | var u4 = 224.8092 * p + 21.48798 * p * dd + ψ - B;
|
86 | var G = 331.18 * p + 50.310482 * p * dd;
|
87 | var H = 87.45 * p + 21.569231 * p * dd;
|
88 |
|
89 | var _base$sincos6 = base.sincos(2 * (u1 - u2)),
|
90 | s212 = _base$sincos6[0],
|
91 | c212 = _base$sincos6[1];
|
92 |
|
93 | var _base$sincos7 = base.sincos(2 * (u2 - u3)),
|
94 | s223 = _base$sincos7[0],
|
95 | c223 = _base$sincos7[1];
|
96 |
|
97 | var _base$sincos8 = base.sincos(G),
|
98 | sG = _base$sincos8[0],
|
99 | cG = _base$sincos8[1];
|
100 |
|
101 | var _base$sincos9 = base.sincos(H),
|
102 | sH = _base$sincos9[0],
|
103 | cH = _base$sincos9[1];
|
104 |
|
105 | var c1 = 0.473 * p * s212;
|
106 | var c2 = 1.065 * p * s223;
|
107 | var c3 = 0.165 * p * sG;
|
108 | var c4 = 0.843 * p * sH;
|
109 | var r1 = 5.9057 - 0.0244 * c212;
|
110 | var r2 = 9.3966 - 0.0882 * c223;
|
111 | var r3 = 14.9883 - 0.0216 * cG;
|
112 | var r4 = 26.3627 - 0.1939 * cH;
|
113 | var sDE = Math.sin(DE);
|
114 | var xy = function xy(u, r) {
|
115 | var _base$sincos10 = base.sincos(u),
|
116 | su = _base$sincos10[0],
|
117 | cu = _base$sincos10[1];
|
118 |
|
119 | return new XY(r * su, -r * cu * sDE);
|
120 | };
|
121 | return [xy(u1 + c1, r1), xy(u2 + c2, r2), xy(u3 + c3, r3), xy(u4 + c4, r4)];
|
122 | }
|
123 |
|
124 |
|
125 |
|
126 |
|
127 |
|
128 |
|
129 |
|
130 |
|
131 |
|
132 |
|
133 |
|
134 |
|
135 |
|
136 |
|
137 | export function e5(jde, earth, jupiter, pos) {
|
138 | pos = pos || new Array(4);
|
139 |
|
140 |
|
141 | var λ0 = void 0,
|
142 | β0 = void 0,
|
143 | t = void 0;
|
144 | var Δ = 5.0;(function () {
|
145 | var _solar$trueVSOP = solar.trueVSOP87(earth, jde),
|
146 | lon = _solar$trueVSOP.lon,
|
147 | lat = _solar$trueVSOP.lat,
|
148 | range = _solar$trueVSOP.range;
|
149 |
|
150 | var s = lon,
|
151 | β = lat,
|
152 | R = range;
|
153 |
|
154 | var _base$sincos11 = base.sincos(s),
|
155 | ss = _base$sincos11[0],
|
156 | cs = _base$sincos11[1];
|
157 |
|
158 | var sβ = Math.sin(β);
|
159 | var τ = base.lightTime(Δ);
|
160 | var x = void 0,
|
161 | y = void 0,
|
162 | z = void 0;
|
163 | function f() {
|
164 | var _jupiter$position = jupiter.position(jde - τ),
|
165 | lon = _jupiter$position.lon,
|
166 | lat = _jupiter$position.lat,
|
167 | range = _jupiter$position.range;
|
168 |
|
169 | var _base$sincos12 = base.sincos(lon),
|
170 | sl = _base$sincos12[0],
|
171 | cl = _base$sincos12[1];
|
172 |
|
173 | var _base$sincos13 = base.sincos(lat),
|
174 | sb = _base$sincos13[0],
|
175 | cb = _base$sincos13[1];
|
176 |
|
177 | x = range * cb * cl + R * cs;
|
178 | y = range * cb * sl + R * ss;
|
179 | z = range * sb + R * sβ;
|
180 | Δ = Math.sqrt(x * x + y * y + z * z);
|
181 | τ = base.lightTime(Δ);
|
182 | }
|
183 |
|
184 | f();
|
185 | f();
|
186 |
|
187 | λ0 = Math.atan2(y, x);
|
188 | β0 = Math.atan(z / Math.hypot(x, y));
|
189 | t = jde - 2443000.5 - τ;
|
190 | })();
|
191 |
|
192 | var p = Math.PI / 180;
|
193 | var l1 = 106.07719 * p + 203.48895579 * p * t;
|
194 | var l2 = 175.73161 * p + 101.374724735 * p * t;
|
195 | var l3 = 120.55883 * p + 50.317609207 * p * t;
|
196 | var l4 = 84.44459 * p + 21.571071177 * p * t;
|
197 | var π1 = 97.0881 * p + 0.16138586 * p * t;
|
198 | var π2 = 154.8663 * p + 0.04726307 * p * t;
|
199 | var π3 = 188.184 * p + 0.00712734 * p * t;
|
200 | var π4 = 335.2868 * p + 0.00184 * p * t;
|
201 | var ω1 = 312.3346 * p - 0.13279386 * p * t;
|
202 | var ω2 = 100.4411 * p - 0.03263064 * p * t;
|
203 | var ω3 = 119.1942 * p - 0.00717703 * p * t;
|
204 | var ω4 = 322.6186 * p - 0.00175934 * p * t;
|
205 | var Γ = 0.33033 * p * Math.sin(163.679 * p + 0.0010512 * p * t) + 0.03439 * p * Math.sin(34.486 * p - 0.0161731 * p * t);
|
206 | var Φλ = 199.6766 * p + 0.1737919 * p * t;
|
207 | var ψ = 316.5182 * p - 0.00000208 * p * t;
|
208 | var G = 30.23756 * p + 0.0830925701 * p * t + Γ;
|
209 | var Gʹ = 31.97853 * p + 0.0334597339 * p * t;
|
210 | var Π = 13.469942 * p;
|
211 |
|
212 | var Σ1 = 0.47259 * p * Math.sin(2 * (l1 - l2)) + -0.03478 * p * Math.sin(π3 - π4) + 0.01081 * p * Math.sin(l2 - 2 * l3 + π3) + 0.00738 * p * Math.sin(Φλ) + 0.00713 * p * Math.sin(l2 - 2 * l3 + π2) + -0.00674 * p * Math.sin(π1 + π3 - 2 * Π - 2 * G) + 0.00666 * p * Math.sin(l2 - 2 * l3 + π4) + 0.00445 * p * Math.sin(l1 - π3) + -0.00354 * p * Math.sin(l1 - l2) + -0.00317 * p * Math.sin(2 * ψ - 2 * Π) + 0.00265 * p * Math.sin(l1 - π4) + -0.00186 * p * Math.sin(G) + 0.00162 * p * Math.sin(π2 - π3) + 0.00158 * p * Math.sin(4 * (l1 - l2)) + -0.00155 * p * Math.sin(l1 - l3) + -0.00138 * p * Math.sin(ψ + ω3 - 2 * Π - 2 * G) + -0.00115 * p * Math.sin(2 * (l1 - 2 * l2 + ω2)) + 0.00089 * p * Math.sin(π2 - π4) + 0.00085 * p * Math.sin(l1 + π3 - 2 * Π - 2 * G) + 0.00083 * p * Math.sin(ω2 - ω3) + 0.00053 * p * Math.sin(ψ - ω2);
|
213 | var Σ2 = 1.06476 * p * Math.sin(2 * (l2 - l3)) + 0.04256 * p * Math.sin(l1 - 2 * l2 + π3) + 0.03581 * p * Math.sin(l2 - π3) + 0.02395 * p * Math.sin(l1 - 2 * l2 + π4) + 0.01984 * p * Math.sin(l2 - π4) + -0.01778 * p * Math.sin(Φλ) + 0.01654 * p * Math.sin(l2 - π2) + 0.01334 * p * Math.sin(l2 - 2 * l3 + π2) + 0.01294 * p * Math.sin(π3 - π4) + -0.01142 * p * Math.sin(l2 - l3) + -0.01057 * p * Math.sin(G) + -0.00775 * p * Math.sin(2 * (ψ - Π)) + 0.00524 * p * Math.sin(2 * (l1 - l2)) + -0.0046 * p * Math.sin(l1 - l3) + 0.00316 * p * Math.sin(ψ - 2 * G + ω3 - 2 * Π) + -0.00203 * p * Math.sin(π1 + π3 - 2 * Π - 2 * G) + 0.00146 * p * Math.sin(ψ - ω3) + -0.00145 * p * Math.sin(2 * G) + 0.00125 * p * Math.sin(ψ - ω4) + -0.00115 * p * Math.sin(l1 - 2 * l3 + π3) + -0.00094 * p * Math.sin(2 * (l2 - ω2)) + 0.00086 * p * Math.sin(2 * (l1 - 2 * l2 + ω2)) + -0.00086 * p * Math.sin(5 * Gʹ - 2 * G + 52.225 * p) + -0.00078 * p * Math.sin(l2 - l4) + -0.00064 * p * Math.sin(3 * l3 - 7 * l4 + 4 * π4) + 0.00064 * p * Math.sin(π1 - π4) + -0.00063 * p * Math.sin(l1 - 2 * l3 + π4) + 0.00058 * p * Math.sin(ω3 - ω4) + 0.00056 * p * Math.sin(2 * (ψ - Π - G)) + 0.00056 * p * Math.sin(2 * (l2 - l4)) + 0.00055 * p * Math.sin(2 * (l1 - l3)) + 0.00052 * p * Math.sin(3 * l3 - 7 * l4 + π3 + 3 * π4) + -0.00043 * p * Math.sin(l1 - π3) + 0.00041 * p * Math.sin(5 * (l2 - l3)) + 0.00041 * p * Math.sin(π4 - Π) + 0.00032 * p * Math.sin(ω2 - ω3) + 0.00032 * p * Math.sin(2 * (l3 - G - Π));
|
214 | var Σ3 = 0.1649 * p * Math.sin(l3 - π3) + 0.09081 * p * Math.sin(l3 - π4) + -0.06907 * p * Math.sin(l2 - l3) + 0.03784 * p * Math.sin(π3 - π4) + 0.01846 * p * Math.sin(2 * (l3 - l4)) + -0.0134 * p * Math.sin(G) + -0.01014 * p * Math.sin(2 * (ψ - Π)) + 0.00704 * p * Math.sin(l2 - 2 * l3 + π3) + -0.0062 * p * Math.sin(l2 - 2 * l3 + π2) + -0.00541 * p * Math.sin(l3 - l4) + 0.00381 * p * Math.sin(l2 - 2 * l3 + π4) + 0.00235 * p * Math.sin(ψ - ω3) + 0.00198 * p * Math.sin(ψ - ω4) + 0.00176 * p * Math.sin(Φλ) + 0.0013 * p * Math.sin(3 * (l3 - l4)) + 0.00125 * p * Math.sin(l1 - l3) + -0.00119 * p * Math.sin(5 * Gʹ - 2 * G + 52.225 * p) + 0.00109 * p * Math.sin(l1 - l2) + -0.001 * p * Math.sin(3 * l3 - 7 * l4 + 4 * π4) + 0.00091 * p * Math.sin(ω3 - ω4) + 0.0008 * p * Math.sin(3 * l3 - 7 * l4 + π3 + 3 * π4) + -0.00075 * p * Math.sin(2 * l2 - 3 * l3 + π3) + 0.00072 * p * Math.sin(π1 + π3 - 2 * Π - 2 * G) + 0.00069 * p * Math.sin(π4 - Π) + -0.00058 * p * Math.sin(2 * l3 - 3 * l4 + π4) + -0.00057 * p * Math.sin(l3 - 2 * l4 + π4) + 0.00056 * p * Math.sin(l3 + π3 - 2 * Π - 2 * G) + -0.00052 * p * Math.sin(l2 - 2 * l3 + π1) + -0.00050 * p * Math.sin(π2 - π3) + 0.00048 * p * Math.sin(l3 - 2 * l4 + π3) + -0.00045 * p * Math.sin(2 * l2 - 3 * l3 + π4) + -0.00041 * p * Math.sin(π2 - π4) + -0.00038 * p * Math.sin(2 * G) + -0.00037 * p * Math.sin(π3 - π4 + ω3 - ω4) + -0.00032 * p * Math.sin(3 * l3 - 7 * l4 + 2 * π3 + 2 * π4) + 0.0003 * p * Math.sin(4 * (l3 - l4)) + 0.00029 * p * Math.sin(l3 + π4 - 2 * Π - 2 * G) + -0.00028 * p * Math.sin(ω3 + ψ - 2 * Π - 2 * G) + 0.00026 * p * Math.sin(l3 - Π - G) + 0.00024 * p * Math.sin(l2 - 3 * l3 + 2 * l4) + 0.00021 * p * Math.sin(2 * (l3 - Π - G)) + -0.00021 * p * Math.sin(l3 - π2) + 0.00017 * p * Math.sin(2 * (l3 - π3));
|
215 | var Σ4 = 0.84287 * p * Math.sin(l4 - π4) + 0.03431 * p * Math.sin(π4 - π3) + -0.03305 * p * Math.sin(2 * (ψ - Π)) + -0.03211 * p * Math.sin(G) + -0.01862 * p * Math.sin(l4 - π3) + 0.01186 * p * Math.sin(ψ - ω4) + 0.00623 * p * Math.sin(l4 + π4 - 2 * G - 2 * Π) + 0.00387 * p * Math.sin(2 * (l4 - π4)) + -0.00284 * p * Math.sin(5 * Gʹ - 2 * G + 52.225 * p) + -0.00234 * p * Math.sin(2 * (ψ - π4)) + -0.00223 * p * Math.sin(l3 - l4) + -0.00208 * p * Math.sin(l4 - Π) + 0.00178 * p * Math.sin(ψ + ω4 - 2 * π4) + 0.00134 * p * Math.sin(π4 - Π) + 0.00125 * p * Math.sin(2 * (l4 - G - Π)) + -0.00117 * p * Math.sin(2 * G) + -0.00112 * p * Math.sin(2 * (l3 - l4)) + 0.00107 * p * Math.sin(3 * l3 - 7 * l4 + 4 * π4) + 0.00102 * p * Math.sin(l4 - G - Π) + 0.00096 * p * Math.sin(2 * l4 - ψ - ω4) + 0.00087 * p * Math.sin(2 * (ψ - ω4)) + -0.00085 * p * Math.sin(3 * l3 - 7 * l4 + π3 + 3 * π4) + 0.00085 * p * Math.sin(l3 - 2 * l4 + π4) + -0.00081 * p * Math.sin(2 * (l4 - ψ)) + 0.00071 * p * Math.sin(l4 + π4 - 2 * Π - 3 * G) + 0.00061 * p * Math.sin(l1 - l4) + -0.00056 * p * Math.sin(ψ - ω3) + -0.00054 * p * Math.sin(l3 - 2 * l4 + π3) + 0.00051 * p * Math.sin(l2 - l4) + 0.00042 * p * Math.sin(2 * (ψ - G - Π)) + 0.00039 * p * Math.sin(2 * (π4 - ω4)) + 0.00036 * p * Math.sin(ψ + Π - π4 - ω4) + 0.00035 * p * Math.sin(2 * Gʹ - G + 188.37 * p) + -0.00035 * p * Math.sin(l4 - π4 + 2 * Π - 2 * ψ) + -0.00032 * p * Math.sin(l4 + π4 - 2 * Π - G) + 0.0003 * p * Math.sin(2 * Gʹ - 2 * G + 149.15 * p) + 0.00029 * p * Math.sin(3 * l3 - 7 * l4 + 2 * π3 + 2 * π4) + 0.00028 * p * Math.sin(l4 - π4 + 2 * ψ - 2 * Π) + -0.00028 * p * Math.sin(2 * (l4 - ω4)) + -0.00027 * p * Math.sin(π3 - π4 + ω3 - ω4) + -0.00026 * p * Math.sin(5 * Gʹ - 3 * G + 188.37 * p) + 0.00025 * p * Math.sin(ω4 - ω3) + -0.00025 * p * Math.sin(l2 - 3 * l3 + 2 * l4) + -0.00023 * p * Math.sin(3 * (l3 - l4)) + 0.00021 * p * Math.sin(2 * l4 - 2 * Π - 3 * G) + -0.00021 * p * Math.sin(2 * l3 - 3 * l4 + π4) + 0.00019 * p * Math.sin(l4 - π4 - G) + -0.00019 * p * Math.sin(2 * l4 - π3 - π4) + -0.00018 * p * Math.sin(l4 - π4 + G) + -0.00016 * p * Math.sin(l4 + π3 - 2 * Π - 2 * G);
|
216 | var L1 = l1 + Σ1;
|
217 | var L2 = l2 + Σ2;
|
218 | var L3 = l3 + Σ3;
|
219 | var L4 = l4 + Σ4;
|
220 |
|
221 |
|
222 | var I = void 0;
|
223 | var X = new Array(5).fill(0);
|
224 | var Y = new Array(5).fill(0);
|
225 | var Z = new Array(5).fill(0);
|
226 | var R = void 0;(function () {
|
227 | var L = [L1, L2, L3, L4];
|
228 | var B = [Math.atan(0.0006393 * Math.sin(L1 - ω1) + 0.0001825 * Math.sin(L1 - ω2) + 0.0000329 * Math.sin(L1 - ω3) + -0.0000311 * Math.sin(L1 - ψ) + 0.0000093 * Math.sin(L1 - ω4) + 0.0000075 * Math.sin(3 * L1 - 4 * l2 - 1.9927 * Σ1 + ω2) + 0.0000046 * Math.sin(L1 + ψ - 2 * Π - 2 * G)), Math.atan(0.0081004 * Math.sin(L2 - ω2) + 0.0004512 * Math.sin(L2 - ω3) + -0.0003284 * Math.sin(L2 - ψ) + 0.0001160 * Math.sin(L2 - ω4) + 0.0000272 * Math.sin(l1 - 2 * l3 + 1.0146 * Σ2 + ω2) + -0.0000144 * Math.sin(L2 - ω1) + 0.0000143 * Math.sin(L2 + ψ - 2 * Π - 2 * G) + 0.0000035 * Math.sin(L2 - ψ + G) + -0.0000028 * Math.sin(l1 - 2 * l3 + 1.0146 * Σ2 + ω3)), Math.atan(0.0032402 * Math.sin(L3 - ω3) + -0.0016911 * Math.sin(L3 - ψ) + 0.0006847 * Math.sin(L3 - ω4) + -0.0002797 * Math.sin(L3 - ω2) + 0.0000321 * Math.sin(L3 + ψ - 2 * Π - 2 * G) + 0.0000051 * Math.sin(L3 - ψ + G) + -0.0000045 * Math.sin(L3 - ψ - G) + -0.0000045 * Math.sin(L3 + ψ - 2 * Π) + 0.0000037 * Math.sin(L3 + ψ - 2 * Π - 3 * G) + 0.000003 * Math.sin(2 * l2 - 3 * L3 + 4.03 * Σ3 + ω2) + -0.0000021 * Math.sin(2 * l2 - 3 * L3 + 4.03 * Σ3 + ω3)), Math.atan(-0.0076579 * Math.sin(L4 - ψ) + 0.0044134 * Math.sin(L4 - ω4) + -0.0005112 * Math.sin(L4 - ω3) + 0.0000773 * Math.sin(L4 + ψ - 2 * Π - 2 * G) + 0.0000104 * Math.sin(L4 - ψ + G) + -0.0000102 * Math.sin(L4 - ψ - G) + 0.0000088 * Math.sin(L4 + ψ - 2 * Π - 3 * G) + -0.0000038 * Math.sin(L4 + ψ - 2 * Π - G))];
|
229 | R = [5.90569 * (1 + -0.0041339 * Math.cos(2 * (l1 - l2)) + -0.0000387 * Math.cos(l1 - π3) + -0.0000214 * Math.cos(l1 - π4) + 0.000017 * Math.cos(l1 - l2) + -0.0000131 * Math.cos(4 * (l1 - l2)) + 0.0000106 * Math.cos(l1 - l3) + -0.0000066 * Math.cos(l1 + π3 - 2 * Π - 2 * G)), 9.39657 * (1 + 0.0093848 * Math.cos(l1 - l2) + -0.0003116 * Math.cos(l2 - π3) + -0.0001744 * Math.cos(l2 - π4) + -0.0001442 * Math.cos(l2 - π2) + 0.0000553 * Math.cos(l2 - l3) + 0.0000523 * Math.cos(l1 - l3) + -0.0000290 * Math.cos(2 * (l1 - l2)) + 0.0000164 * Math.cos(2 * (l2 - ω2)) + 0.0000107 * Math.cos(l1 - 2 * l3 + π3) + -0.0000102 * Math.cos(l2 - π1) + -0.0000091 * Math.cos(2 * (l1 - l3))), 14.98832 * (1 + -0.0014388 * Math.cos(l3 - π3) + -0.0007917 * Math.cos(l3 - π4) + 0.0006342 * Math.cos(l2 - l3) + -0.0001761 * Math.cos(2 * (l3 - l4)) + 0.0000294 * Math.cos(l3 - l4) + -0.0000156 * Math.cos(3 * (l3 - l4)) + 0.0000156 * Math.cos(l1 - l3) + -0.0000153 * Math.cos(l1 - l2) + 0.000007 * Math.cos(2 * l2 - 3 * l3 + π3) + -0.0000051 * Math.cos(l3 + π3 - 2 * Π - 2 * G)), 26.36273 * (1 + -0.0073546 * Math.cos(l4 - π4) + 0.0001621 * Math.cos(l4 - π3) + 0.0000974 * Math.cos(l3 - l4) + -0.0000543 * Math.cos(l4 + π4 - 2 * Π - 2 * G) + -0.0000271 * Math.cos(2 * (l4 - π4)) + 0.0000182 * Math.cos(l4 - Π) + 0.0000177 * Math.cos(2 * (l3 - l4)) + -0.0000167 * Math.cos(2 * l4 - ψ - ω4) + 0.0000167 * Math.cos(ψ - ω4) + -0.0000155 * Math.cos(2 * (l4 - Π - G)) + 0.0000142 * Math.cos(2 * (l4 - ψ)) + 0.0000105 * Math.cos(l1 - l4) + 0.0000092 * Math.cos(l2 - l4) + -0.0000089 * Math.cos(l4 - Π - G) + -0.0000062 * Math.cos(l4 + π4 - 2 * Π - 3 * G) + 0.0000048 * Math.cos(2 * (l4 - ω4)))];
|
230 |
|
231 | var T0 = (jde - 2433282.423) / base.JulianCentury;
|
232 | var P = (1.3966626 * p + 0.0003088 * p * T0) * T0;
|
233 | for (var i in L) {
|
234 | L[i] += P;
|
235 | }
|
236 | ψ += P;
|
237 | var T = (jde - base.J1900) / base.JulianCentury;
|
238 | I = 3.120262 * p + 0.0006 * p * T;
|
239 | for (var _i in L) {
|
240 | var _base$sincos14 = base.sincos(L[_i] - ψ),
|
241 | sLψ = _base$sincos14[0],
|
242 | cLψ = _base$sincos14[1];
|
243 |
|
244 | var _base$sincos15 = base.sincos(B[_i]),
|
245 | sB = _base$sincos15[0],
|
246 | cB = _base$sincos15[1];
|
247 |
|
248 | X[_i] = R[_i] * cLψ * cB;
|
249 | Y[_i] = R[_i] * sLψ * cB;
|
250 | Z[_i] = R[_i] * sB;
|
251 | }
|
252 | })();
|
253 |
|
254 | Z[4] = 1;
|
255 |
|
256 | var A = new Array(5).fill(0);
|
257 | var B = new Array(5).fill(0);
|
258 | var C = new Array(5).fill(0);
|
259 |
|
260 | var _base$sincos16 = base.sincos(I),
|
261 | sI = _base$sincos16[0],
|
262 | cI = _base$sincos16[1];
|
263 |
|
264 | var Ω = planetelements.node(planetelements.jupiter, jde);
|
265 |
|
266 | var _base$sincos17 = base.sincos(Ω),
|
267 | sΩ = _base$sincos17[0],
|
268 | cΩ = _base$sincos17[1];
|
269 |
|
270 | var _base$sincos18 = base.sincos(ψ - Ω),
|
271 | sΦ = _base$sincos18[0],
|
272 | cΦ = _base$sincos18[1];
|
273 |
|
274 | var _base$sincos19 = base.sincos(planetelements.inc(planetelements.jupiter, jde)),
|
275 | si = _base$sincos19[0],
|
276 | ci = _base$sincos19[1];
|
277 |
|
278 | var _base$sincos20 = base.sincos(λ0),
|
279 | sλ0 = _base$sincos20[0],
|
280 | cλ0 = _base$sincos20[1];
|
281 |
|
282 | var _base$sincos21 = base.sincos(β0),
|
283 | sβ0 = _base$sincos21[0],
|
284 | cβ0 = _base$sincos21[1];
|
285 |
|
286 | for (var i in A) {
|
287 | var a0 = void 0,
|
288 | b0 = void 0;
|
289 |
|
290 | var a = X[i];
|
291 | var b = Y[i] * cI - Z[i] * sI;
|
292 | var c = Y[i] * sI + Z[i] * cI;
|
293 |
|
294 | a0 = a * cΦ - b * sΦ;
|
295 | b = a * sΦ + b * cΦ;
|
296 | a = a0;
|
297 |
|
298 | b0 = b * ci - c * si;
|
299 | c = b * si + c * ci;
|
300 | b = b0;
|
301 |
|
302 | a0 = a * cΩ - b * sΩ;
|
303 | b = a * sΩ + b * cΩ;
|
304 | a = a0;
|
305 |
|
306 | a0 = a * sλ0 - b * cλ0;
|
307 | b = a * cλ0 + b * sλ0;
|
308 | a = a0;
|
309 |
|
310 | A[i] = a;
|
311 | B[i] = c * sβ0 + b * cβ0;
|
312 | C[i] = c * cβ0 - b * sβ0;
|
313 | }
|
314 |
|
315 | var _base$sincos22 = base.sincos(Math.atan2(A[4], C[4])),
|
316 | sD = _base$sincos22[0],
|
317 | cD = _base$sincos22[1];
|
318 |
|
319 |
|
320 |
|
321 | for (var _i2 = 0; _i2 < 4; _i2++) {
|
322 | var x = A[_i2] * cD - C[_i2] * sD;
|
323 | var y = A[_i2] * sD + C[_i2] * cD;
|
324 | var z = B[_i2];
|
325 |
|
326 | var d = x / R[_i2];
|
327 | x += Math.abs(z) / k[_i2] * Math.sqrt(1 - d * d);
|
328 |
|
329 | var W = Δ / (Δ + z / 2095);
|
330 | pos[_i2] = new XY(x * W, y * W);
|
331 | }
|
332 | return pos;
|
333 | }
|
334 |
|
335 | export default {
|
336 | io: io,
|
337 | europa: europa,
|
338 | ganymede: ganymede,
|
339 | callisto: callisto,
|
340 | positions: positions,
|
341 | e5: e5
|
342 | }; |
\ | No newline at end of file |