MoonPhysical constructor
MoonPhysical(
- double jde
Implementation
MoonPhysical(this.jde) {
final nutResult = nut.nutation(jde);
_deltaPsi = nutResult.dPsi;
final t = j2000Century(jde);
_f = horner(t, [
93.272095 * _d2r,
483202.0175233 * _d2r,
-0.0036539 * _d2r,
-_d2r / 3526000,
_d2r / 863310000,
]);
_omega = horner(t, [
125.0445479 * _d2r,
-1934.1362891 * _d2r,
0.0020754 * _d2r,
_d2r / 467441,
-_d2r / 60616000,
]);
_eps = nut.meanObliquity(jde) + nutResult.dEps;
_sEps = math.sin(_eps);
_cEps = math.cos(_eps);
// rho, sigma, tau — p. 372, 373
final d = horner(t, [
297.8501921 * _d2r,
445267.1114034 * _d2r,
-0.0018819 * _d2r,
_d2r / 545868,
-_d2r / 113065000,
]);
final m = horner(t, [
357.5291092 * _d2r,
35999.0502909 * _d2r,
-0.0001536 * _d2r,
_d2r / 24490000,
]);
final mp = horner(t, [
134.9633964 * _d2r,
477198.8675055 * _d2r,
0.0087414 * _d2r,
_d2r / 69699,
-_d2r / 14712000,
]);
final e = horner(t, [1.0, -0.002516, -0.0000074]);
final k1 = 119.75 * _d2r + 131.849 * _d2r * t;
final k2 = 72.56 * _d2r + 20.186 * _d2r * t;
_rho = -0.02752 * _d2r * math.cos(mp) +
-0.02245 * _d2r * math.sin(_f) +
0.00684 * _d2r * math.cos(mp - 2 * _f) +
-0.00293 * _d2r * math.cos(2 * _f) +
-0.00085 * _d2r * math.cos(2 * (_f - d)) +
-0.00054 * _d2r * math.cos(mp - 2 * d) +
-0.0002 * _d2r * math.sin(mp + _f) +
-0.0002 * _d2r * math.cos(mp + 2 * _f) +
-0.0002 * _d2r * math.cos(mp - _f) +
0.00014 * _d2r * math.cos(mp + 2 * (_f - d));
_sigma = -0.02816 * _d2r * math.sin(mp) +
0.02244 * _d2r * math.cos(_f) +
-0.00682 * _d2r * math.sin(mp - 2 * _f) +
-0.00279 * _d2r * math.sin(2 * _f) +
-0.00083 * _d2r * math.sin(2 * (_f - d)) +
0.00069 * _d2r * math.sin(mp - 2 * d) +
0.0004 * _d2r * math.cos(mp + _f) +
-0.00025 * _d2r * math.sin(2 * mp) +
-0.00023 * _d2r * math.sin(mp + 2 * _f) +
0.0002 * _d2r * math.cos(mp - _f) +
0.00019 * _d2r * math.sin(mp - _f) +
0.00013 * _d2r * math.sin(mp + 2 * (_f - d)) +
-0.0001 * _d2r * math.cos(mp - 3 * _f);
_tau = 0.0252 * _d2r * math.sin(m) * e +
0.00473 * _d2r * math.sin(2 * (mp - _f)) +
-0.00467 * _d2r * math.sin(mp) +
0.00396 * _d2r * math.sin(k1) +
0.00276 * _d2r * math.sin(2 * (mp - d)) +
0.00196 * _d2r * math.sin(_omega) +
-0.00183 * _d2r * math.cos(mp - _f) +
0.00115 * _d2r * math.sin(mp - 2 * d) +
-0.00096 * _d2r * math.sin(mp - d) +
0.00046 * _d2r * math.sin(2 * (_f - d)) +
-0.00039 * _d2r * math.sin(mp - _f) +
-0.00032 * _d2r * math.sin(mp - m - d) +
0.00027 * _d2r * math.sin(2 * (mp - d) - m) +
0.00023 * _d2r * math.sin(k2) +
-0.00014 * _d2r * math.sin(2 * d) +
0.00014 * _d2r * math.cos(2 * (mp - _f)) +
-0.00012 * _d2r * math.sin(mp - 2 * _f) +
-0.00012 * _d2r * math.sin(2 * mp) +
0.00011 * _d2r * math.sin(2 * (mp - m - d));
}