@essrt/physics 7.0.0 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/package.json +4 -2
- package/src/constants/coefficients.d.ts +1 -38
- package/src/constants/coefficients.js +2 -5
- package/src/constants/generated.d.ts +109 -25
- package/src/constants/generated.js +226 -96
- package/src/earth/deep-orbital-history.cjs +10 -0
- package/src/earth/frame-of-date.cjs +105 -0
- package/src/eclipse/besselian.cjs +41 -17
- package/src/eclipse/sun-planetary-completion.cjs +55 -14
- package/src/index.js +9 -1
- package/src/model.js +262 -124
- package/src/moon/apparent.cjs +45 -126
- package/src/moon/deep-ecc-channel.cjs +59 -12
- package/src/moon/deep-modes-artifact.cjs +4 -2
- package/src/moon/month-chain.cjs +21 -10
- package/src/moon/series-extension.cjs +2 -1
- package/src/moon/series.cjs +21 -4
- package/src/planets/chain-artifact.js +2 -2
- package/src/planets/fibonacci-laws.cjs +7 -42
- package/src/planets/model.cjs +10 -13
- package/src/planets/secular-shape.cjs +36 -0
- package/src/planets/spin-channel.cjs +391 -0
- package/types/constants/coefficients.d.ts +1 -38
- package/types/constants/generated.d.ts +109 -25
- package/types/earth/deep-orbital-history.d.cts +2 -0
- package/types/earth/frame-of-date.d.cts +37 -0
- package/types/eclipse/besselian.d.cts +5 -7
- package/types/eclipse/sun-planetary-completion.d.cts +14 -10
- package/types/index.d.ts +3 -1
- package/types/model.d.ts +26 -0
- package/types/moon/apparent.d.cts +7 -68
- package/types/moon/deep-ecc-channel.d.cts +31 -2
- package/types/moon/deep-modes-artifact.d.cts +2 -0
- package/types/moon/month-chain.d.cts +4 -0
- package/types/planets/fibonacci-laws.d.cts +0 -29
- package/types/planets/model.d.cts +10 -4
- package/types/planets/secular-shape.d.cts +30 -0
- package/types/planets/spin-channel.d.cts +193 -0
- package/src/planets/predict.cjs +0 -324
- package/types/planets/predict.d.cts +0 -88
package/src/moon/apparent.cjs
CHANGED
|
@@ -1,27 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Moon
|
|
3
|
-
*
|
|
2
|
+
* Moon scene position — the ecliptic → equatorial conversion of the series
|
|
3
|
+
* output, THE shared implementation (Phase 8.2-7). Since plan 06 R3 item 1 it
|
|
4
|
+
* is ONLY that conversion: the rendered Moon is the GEOMETRIC series Moon
|
|
5
|
+
* (moon/series.cjs sceneEvalAt, the derived extension inside), on the same
|
|
6
|
+
* convention as the rendered Sun and planets.
|
|
4
7
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
8
|
+
* WHAT LEFT, and the measurement that retired it (record; the values stay in
|
|
9
|
+
* git history and docs/retired-record.md):
|
|
10
|
+
* - the "D5 derived optics" — the annual aberration v_E/c applied to the
|
|
11
|
+
* Moon's direction ("moonAberrationRaDec"). That operation turns the
|
|
12
|
+
* geometric Moon into its ASTROMETRIC place (the body at emission time,
|
|
13
|
+
* the observer's aberration not applied — Horizons quantity 1, a
|
|
14
|
+
* star-chart convention 20″·cos D from both the geometric and the
|
|
15
|
+
* apparent Moon). D5 had validated against exactly that reference and
|
|
16
|
+
* so applied the REFERENCE'S convention to the RENDERED Moon. The scene
|
|
17
|
+
* is an orrery of where the bodies are — geometric: Earth's shadow is
|
|
18
|
+
* cast by the geometric Sun and the Moon enters it at its geometric
|
|
19
|
+
* place — so the conversion belongs to the comparison instrument (the
|
|
20
|
+
* pipeline verifier bridges it, tools/lib/optimizer.js), not to the
|
|
21
|
+
* scene. Measured over 1970–2049: the bare series + extension against
|
|
22
|
+
* Horizons' APPARENT Moon (≡ geometric − 0.7″ for a co-moving body)
|
|
23
|
+
* −1.0″ ± 1.5″ flat in elongation; the D5-shifted rendered Moon +32.5″ +
|
|
24
|
+
* 20″·cos D against the same. (Plan 06 R3 scene conventions — the
|
|
25
|
+
* earlier wording "wrong physics" over-reached: astrometric is a valid
|
|
26
|
+
* convention, applied on the wrong side of the boundary.)
|
|
27
|
+
* - the fitted RA/Dec patches MOON_CORRECTION (pure-Meeus A/B) and
|
|
28
|
+
* MOON_CORRECTION_RESIDUAL (the post-D5 remainder, dominated by a −5.1″
|
|
29
|
+
* raCosMp term): fitted around the layer above at syzygies; the series +
|
|
30
|
+
* extension carry a ~1.3″ cos M′ structure against Horizons and no fitted
|
|
31
|
+
* value replaces it.
|
|
32
|
+
* - the fitted mean-longitude anchor moonMeeusLpCorrection (+32.75″, now 0,
|
|
33
|
+
* model-parameters.json): the eclipse tier's mean Sun compensated (κ +
|
|
34
|
+
* the I2 long inequality + the trend-ΔT offset), see eclipse/besselian.cjs.
|
|
25
35
|
*
|
|
26
36
|
* S8 (obliquity source) stays ENGINE-INJECTED per call: the browser passes
|
|
27
37
|
* its live scene value (o.obliquityEarth, refreshed in updatePositions);
|
|
@@ -32,122 +42,31 @@
|
|
|
32
42
|
'use strict';
|
|
33
43
|
|
|
34
44
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* @param {{
|
|
42
|
-
* constants: {
|
|
43
|
-
* j2000JD: number,
|
|
44
|
-
* julianCenturyDays: number,
|
|
45
|
-
* sunMeanLongitudeJ2000Deg: number,
|
|
46
|
-
* perihelionLongitudeJ2000Deg: number,
|
|
47
|
-
* eccentricityJ2000: number,
|
|
48
|
-
* eccentricityDotJ2000: number,
|
|
49
|
-
* d5RateLDegPerDay: number,
|
|
50
|
-
* d5RatePeriDegPerDay: number,
|
|
51
|
-
* speedOfLight: number,
|
|
52
|
-
* },
|
|
53
|
-
* fns: {
|
|
54
|
-
* computeObliquityEarth: (year: number) => number,
|
|
55
|
-
* getAuDistanceKm: () => number,
|
|
56
|
-
* isFrameworkNative: () => boolean,
|
|
57
|
-
* getCorrectionResidual: () => (MoonCorrectionTable | null),
|
|
58
|
-
* getCorrectionLegacy: () => (MoonCorrectionTable | null),
|
|
59
|
-
* },
|
|
60
|
-
* }} deps — the D5 rates are the engines' J2000-frozen values (the year
|
|
61
|
-
* globals are deep-time-mutable, same pattern as FW_A2_RATE); the AU
|
|
62
|
-
* distance is a GETTER (browser-mutable under deep time).
|
|
45
|
+
* No dependencies since R3 item 1 (the former D5 optics constants and the
|
|
46
|
+
* fitted-patch getters are gone); the factory shape is kept for the two
|
|
47
|
+
* scene twins' call sites.
|
|
48
|
+
* @param {object} [_deps] ignored
|
|
63
49
|
*/
|
|
64
|
-
function createMoonApparent(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
const {
|
|
71
|
-
computeObliquityEarth, getAuDistanceKm, isFrameworkNative,
|
|
72
|
-
getCorrectionResidual, getCorrectionLegacy,
|
|
73
|
-
} = fns;
|
|
74
|
-
|
|
75
|
-
/** Framework-native geocentric Sun vector, equatorial km.
|
|
76
|
-
* @param {number} jd @returns {[number, number, number]} */
|
|
77
|
-
function sunGeoVecEqD5(jd) {
|
|
78
|
-
const T = (jd - j2000JD) / julianCenturyDays;
|
|
79
|
-
const d = jd - j2000JD;
|
|
80
|
-
const L0 = sunMeanLongitudeJ2000Deg + d5RateLDegPerDay * d;
|
|
81
|
-
const M = ((L0 - (perihelionLongitudeJ2000Deg + d5RatePeriDegPerDay * d)) + 180) * Math.PI / 180; // geocentric-perigee convention (Sun perigee = Earth perihelion + 180°)
|
|
82
|
-
const e = eccentricityJ2000 + eccentricityDotJ2000 * T;
|
|
83
|
-
const Ceq = ((2 * e - Math.pow(e, 3) / 4) * Math.sin(M)
|
|
84
|
-
+ 1.25 * e * e * Math.sin(2 * M)
|
|
85
|
-
+ (13 / 12) * Math.pow(e, 3) * Math.sin(3 * M)) * 180 / Math.PI; // deg (Kepler EoC series)
|
|
86
|
-
const lam = (L0 + Ceq) * Math.PI / 180;
|
|
87
|
-
const v = M + Ceq * Math.PI / 180;
|
|
88
|
-
const R = (1 - e * e) / (1 + e * Math.cos(v)) * getAuDistanceKm();
|
|
89
|
-
const eps = computeObliquityEarth(2000 + d / 365.2425) * Math.PI / 180;
|
|
90
|
-
return [R * Math.cos(lam), R * Math.sin(lam) * Math.cos(eps), R * Math.sin(lam) * Math.sin(eps)];
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/** Annual-aberration delta (central difference, v_E/c SUBTRACTED).
|
|
94
|
-
* @param {number} jd @param {number} ra @param {number} dec
|
|
95
|
-
* @returns {{dRA: number, dDec: number}} */
|
|
96
|
-
function moonAberrationRaDec(jd, ra, dec) {
|
|
97
|
-
const h = 0.02; // days (central difference)
|
|
98
|
-
const a = sunGeoVecEqD5(jd - h), b = sunGeoVecEqD5(jd + h);
|
|
99
|
-
const s = 1 / (2 * h * 86400 * speedOfLight);
|
|
100
|
-
const kx = -(b[0] - a[0]) * s, ky = -(b[1] - a[1]) * s, kz = -(b[2] - a[2]) * s; // v_E/c
|
|
101
|
-
const cd = Math.cos(dec);
|
|
102
|
-
const ux = cd * Math.cos(ra), uy = cd * Math.sin(ra), uz = Math.sin(dec);
|
|
103
|
-
const wx = ux - kx, wy = uy - ky, wz = uz - kz; // SUBTRACT the aberration content
|
|
104
|
-
const wr = Math.sqrt(wx * wx + wy * wy + wz * wz);
|
|
105
|
-
let dRA = Math.atan2(wy, wx) - ra;
|
|
106
|
-
dRA = Math.atan2(Math.sin(dRA), Math.cos(dRA));
|
|
107
|
-
return { dRA, dDec: Math.asin(Math.max(-1, Math.min(1, wz / wr))) - dec };
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/** The post-hoc RA/Dec override on the series output. Returns EQUATORIAL
|
|
111
|
-
* radians — the engines own their scene storage conventions (the browser
|
|
112
|
-
* stores dec as π/2 − dec, phi form).
|
|
113
|
-
* @param {{lonDeg: number, betRad: number, meeusT: (number | undefined), obliquityDeg: number}} p
|
|
50
|
+
function createMoonApparent(_deps) {
|
|
51
|
+
/** The RA/Dec of the series output — ecliptic → equatorial (Meeus eq. 13.3,
|
|
52
|
+
* 13.4) on the injected obliquity. Returns EQUATORIAL radians — the engines
|
|
53
|
+
* own their scene storage conventions (the browser stores dec as π/2 − dec,
|
|
54
|
+
* phi form). `meeusT` is accepted for call-site stability and unused.
|
|
55
|
+
* @param {{lonDeg: number, betRad: number, meeusT?: (number | undefined), obliquityDeg: number}} p
|
|
114
56
|
* @returns {{raRad: number, decRad: number}} */
|
|
115
|
-
function overrideRaDec({ lonDeg, betRad,
|
|
57
|
+
function overrideRaDec({ lonDeg, betRad, obliquityDeg }) {
|
|
116
58
|
const eps = obliquityDeg * (Math.PI / 180);
|
|
117
59
|
const cosE = Math.cos(eps), sinE = Math.sin(eps);
|
|
118
60
|
const lamR = lonDeg * (Math.PI / 180);
|
|
119
61
|
const sinLam = Math.sin(lamR), cosLam = Math.cos(lamR);
|
|
120
62
|
const sinBet = Math.sin(betRad), cosBet = Math.cos(betRad);
|
|
121
|
-
|
|
122
|
-
// Ecliptic → equatorial (Meeus eq. 13.3, 13.4)
|
|
123
63
|
let newRA = Math.atan2(sinLam * cosE - Math.tan(betRad) * sinE, cosLam);
|
|
124
64
|
if (newRA < 0) newRA += 2 * Math.PI;
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (isFrameworkNative()) {
|
|
128
|
-
const ab = moonAberrationRaDec(j2000JD + (meeusT || 0) * julianCenturyDays, newRA, newDec);
|
|
129
|
-
newRA += ab.dRA;
|
|
130
|
-
newDec += ab.dDec;
|
|
131
|
-
}
|
|
132
|
-
const mc = isFrameworkNative() ? getCorrectionResidual() : getCorrectionLegacy();
|
|
133
|
-
if (mc) {
|
|
134
|
-
const d2r = Math.PI / 180;
|
|
135
|
-
const dJD = (meeusT || 0) * julianCenturyDays;
|
|
136
|
-
// MATCHED-PAIR arguments — fitted against these exact linear forms.
|
|
137
|
-
const Dc = (297.850 + 12.19074912 * dJD) * d2r;
|
|
138
|
-
const Mpc = (134.963 + 13.06499295 * dJD) * d2r;
|
|
139
|
-
const Msc = (357.529 + 0.98560028 * dJD) * d2r;
|
|
140
|
-
newRA -= (mc.raSinD * Math.sin(Dc) + mc.raCosD * Math.cos(Dc)
|
|
141
|
-
+ mc.raSinMp * Math.sin(Mpc) + mc.raCosMp * Math.cos(Mpc)
|
|
142
|
-
+ mc.raSinMs * Math.sin(Msc) + mc.raCosMs * Math.cos(Msc)) * d2r;
|
|
143
|
-
newDec -= (mc.decSinD * Math.sin(Dc) + mc.decCosD * Math.cos(Dc)
|
|
144
|
-
+ mc.decSinMp * Math.sin(Mpc) + mc.decCosMp * Math.cos(Mpc)
|
|
145
|
-
+ mc.decSinMs * Math.sin(Msc) + mc.decCosMs * Math.cos(Msc)) * d2r;
|
|
146
|
-
}
|
|
65
|
+
const newDec = Math.asin(sinBet * cosE + cosBet * sinE * sinLam);
|
|
147
66
|
return { raRad: newRA, decRad: newDec };
|
|
148
67
|
}
|
|
149
68
|
|
|
150
|
-
return {
|
|
69
|
+
return { overrideRaDec };
|
|
151
70
|
}
|
|
152
71
|
|
|
153
72
|
module.exports = { createMoonApparent };
|
|
@@ -45,14 +45,41 @@
|
|
|
45
45
|
'use strict';
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
|
+
* THE SLOPE ANCHOR (owner-approved model change, after the Moon panels).
|
|
49
|
+
* The 18-term table reproduces the attractor and the 405-kyr beat, but
|
|
50
|
+
* nothing constrained its local DERIVATIVE at J2000: measured, its ė read
|
|
51
|
+
* −5.00e-5/cy against the run's own −4.24e-5 (and the observed −4.20e-5),
|
|
52
|
+
* a 19 % slope error that the lunar chain multiplied straight into the
|
|
53
|
+
* perigee and node curvature (−44″/cy² against Meeus's −37″/cy² — the
|
|
54
|
+
* "18 % split" the Moon precession panels showed). Against the ±10-Myr
|
|
55
|
+
* series the table compresses, the error is a LINEAR vector drift of
|
|
56
|
+
* 2.25e-4 per kyr out to ±20 kyr (an unresolved ultra-long mode), then
|
|
57
|
+
* spectrum-class either way. So the anchored form gains a second,
|
|
58
|
+
* BOUNDED term of the same class as the constant remainder:
|
|
59
|
+
*
|
|
60
|
+
* z(t) = Σ … + (z_J2000 − Σ(0)) + (ż_J2000 − Σ̇(0))·I(t),
|
|
61
|
+
* I(t) = ∫₀ᵗ cos²(π τ / 2T_q) dτ (the arguments' taper: linear near
|
|
62
|
+
* J2000, saturating at ±T_q/2 beyond |t| ≥ T_q)
|
|
63
|
+
*
|
|
64
|
+
* — ż_J2000 is the run's own z-rate at J2000 (script-written into the
|
|
65
|
+
* artifact by generate.mjs from the banked series: "we are the source"),
|
|
66
|
+
* T_q the H/12 taper the arguments' rate anchors ride. Inside the canon it
|
|
67
|
+
* restores the run's slope exactly; beyond ±T_q it is a constant vector
|
|
68
|
+
* offset of ~3e-3, the size of the table's own spectrum-class scatter
|
|
69
|
+
* there, never a growing polynomial. Absent the two fields (an older
|
|
70
|
+
* artifact), the channel is the value-anchored form above, unchanged.
|
|
71
|
+
*
|
|
48
72
|
* @param {{
|
|
49
73
|
* earthZ: ReadonlyArray<{omegaRadPerYr: number, re: number, im: number}>,
|
|
50
74
|
* anchorE: number,
|
|
51
75
|
* anchorPeriEclipticDeg: number,
|
|
76
|
+
* anchorZDotPerYr?: ReadonlyArray<number>,
|
|
77
|
+
* slopeTaperYears?: number,
|
|
52
78
|
* }} artifact — the embedded deep-modes artifact (earth z-modes + the J2000
|
|
53
|
-
* anchor pair joined from the chain artifact's one home
|
|
79
|
+
* anchor pair joined from the chain artifact's one home, + the J2000
|
|
80
|
+
* z-rate pair and the taper from the series' one home).
|
|
54
81
|
*/
|
|
55
|
-
function createDeepEccChannel({ earthZ, anchorE, anchorPeriEclipticDeg }) {
|
|
82
|
+
function createDeepEccChannel({ earthZ, anchorE, anchorPeriEclipticDeg, anchorZDotPerYr, slopeTaperYears }) {
|
|
56
83
|
const D2R = Math.PI / 180;
|
|
57
84
|
const zA = [anchorE * Math.cos(anchorPeriEclipticDeg * D2R), anchorE * Math.sin(anchorPeriEclipticDeg * D2R)];
|
|
58
85
|
/** @param {number} tYr @returns {[number, number]} */
|
|
@@ -65,27 +92,47 @@ function createDeepEccChannel({ earthZ, anchorE, anchorPeriEclipticDeg }) {
|
|
|
65
92
|
}
|
|
66
93
|
return [re, im];
|
|
67
94
|
};
|
|
95
|
+
/** dΣ/dt (per year) — analytic. @param {number} tYr @returns {[number, number]} */
|
|
96
|
+
const modeSumRate = (tYr) => {
|
|
97
|
+
let dx = 0, dy = 0;
|
|
98
|
+
for (const m of earthZ) {
|
|
99
|
+
const c = Math.cos(m.omegaRadPerYr * tYr), s = Math.sin(m.omegaRadPerYr * tYr);
|
|
100
|
+
dx += m.omegaRadPerYr * (-m.re * s - m.im * c);
|
|
101
|
+
dy += m.omegaRadPerYr * (m.re * c - m.im * s);
|
|
102
|
+
}
|
|
103
|
+
return [dx, dy];
|
|
104
|
+
};
|
|
68
105
|
const s0 = modeSum(0);
|
|
69
106
|
const R = [zA[0] - s0[0], zA[1] - s0[1]]; // the constant remainder
|
|
107
|
+
// the slope anchor: the run's J2000 z-rate minus the table's, through the taper
|
|
108
|
+
const Tq = (anchorZDotPerYr && typeof slopeTaperYears === 'number' && slopeTaperYears > 0) ? slopeTaperYears : 0;
|
|
109
|
+
const sDot0 = modeSumRate(0);
|
|
110
|
+
const DZ = Tq > 0 && anchorZDotPerYr ? [anchorZDotPerYr[0] - sDot0[0], anchorZDotPerYr[1] - sDot0[1]] : [0, 0];
|
|
111
|
+
/** ∫₀ᵗ cos²(π τ / 2T_q) dτ, saturating at ±T_q/2. @param {number} t */
|
|
112
|
+
const iEnv = (t) => {
|
|
113
|
+
if (Tq <= 0) return 0;
|
|
114
|
+
if (Math.abs(t) >= Tq) return Math.sign(t) * Tq / 2;
|
|
115
|
+
return t / 2 + (Tq / (2 * Math.PI)) * Math.sin(Math.PI * t / Tq);
|
|
116
|
+
};
|
|
117
|
+
/** cos²(π t / 2T_q), 0 beyond |t| ≥ T_q — dI/dt. @param {number} t */
|
|
118
|
+
const env = (t) => (Tq <= 0 || Math.abs(t) >= Tq) ? 0 : Math.cos(Math.PI * t / (2 * Tq)) ** 2;
|
|
70
119
|
|
|
71
120
|
/** Earth's e at tYr years from J2000 (negative = past).
|
|
72
121
|
* @param {number} tYr @returns {number} */
|
|
73
122
|
function eccAt(tYr) {
|
|
74
123
|
const [x, y] = modeSum(tYr);
|
|
75
|
-
|
|
124
|
+
const I = iEnv(tYr);
|
|
125
|
+
return Math.hypot(x + R[0] + DZ[0] * I, y + R[1] + DZ[1] * I);
|
|
76
126
|
}
|
|
77
127
|
|
|
78
|
-
/** de/dyear — analytic
|
|
79
|
-
* @param {number} tYr @returns {number} */
|
|
128
|
+
/** de/dyear — analytic: d|z|/dt = (z·ż)/|z|, the slope anchor's
|
|
129
|
+
* tapered rate included. @param {number} tYr @returns {number} */
|
|
80
130
|
function eccRateAt(tYr) {
|
|
81
131
|
const [x0, y0] = modeSum(tYr);
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
dx += m.omegaRadPerYr * (-m.re * s - m.im * c);
|
|
87
|
-
dy += m.omegaRadPerYr * (m.re * c - m.im * s);
|
|
88
|
-
}
|
|
132
|
+
const I = iEnv(tYr), E = env(tYr);
|
|
133
|
+
const x = x0 + R[0] + DZ[0] * I, y = y0 + R[1] + DZ[1] * I;
|
|
134
|
+
const [dx0, dy0] = modeSumRate(tYr);
|
|
135
|
+
const dx = dx0 + DZ[0] * E, dy = dy0 + DZ[1] * E;
|
|
89
136
|
const r = Math.hypot(x, y);
|
|
90
137
|
return r === 0 ? 0 : (x * dx + y * dy) / r;
|
|
91
138
|
}
|
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
* emitted VERBATIM, plus the J2000 anchor pair (e, ϖ) joined from
|
|
8
8
|
* data/nbody-secular-frequencies.json j2000AnchorElements.earth — the
|
|
9
9
|
* anchor's ONE home, plus the per-planet leading proper ζ modes (″/yr,
|
|
10
|
-
* the C-4 s-lines for the zoom labels — doc 109 §19)
|
|
10
|
+
* the C-4 s-lines for the zoom labels — doc 109 §19), plus the J2000
|
|
11
|
+
* z-rate pair from data/nbody-secular-series.json (the slope anchor of
|
|
12
|
+
* the deep eccentricity channel) and its H/12 taper. Two gates guard
|
|
11
13
|
* the chain: check:artifacts pins artifact ↔ engine; generate.mjs
|
|
12
14
|
* check mode pins this embed ↔ artifact.
|
|
13
15
|
* CJS because the lunar-chain consumers are CommonJS modules.
|
|
@@ -16,6 +18,6 @@
|
|
|
16
18
|
|
|
17
19
|
const DEEP_MODES_ARTIFACT_HASH = "77e0baf779e85de5";
|
|
18
20
|
|
|
19
|
-
const DEEP_MODES_ARTIFACT = Object.freeze({"meta":{"integrator":"wh","order":2,"dtDays":2,"spanYears":20000000,"sampleDays":20000,"gr":true,"seed":"JPL Horizons J2000 heliocentric state vectors (tools/explore/j2000-state.mjs, the one home)","masses":"DE440 mass ratios (astro-reference physicalConstants)","runCommand":"node tools/explore/lattice-long-window-test.mjs years=20000000 integrator=wh dt=2 order=2 gr=1 frame=both sample=20000","dumpFile":"tools/explore/lattice-long-window-ecliptic-20000000-gr.local.json (untracked, 337 MB)","dumpSha256":"686d6af51a689f7bd64ac1e2d8b26c243a4beccdacd3167adfeeae078e8b990f","conservationMaxDE":1.2738960401328902e-8,"decimation":4,"naffTerms":18,"naffZetaTerms":16,"naffZetaTermsEra":8,"frame":"ecliptic-J2000 (z-modes for the lunar-chain e; ζ-modes for the Stage-C obliquity hybrid — the invariable-frame ζ table remains unbanked, no consumer)","laskarRef":"Laskar, J. et al. (2004), A&A 428, 261–285, Table 3 (theory reference labels)"},"verdict":{"strongestBeatPeriodKyr":405.625567477903,"strongestBeatArcsecPerYr":3.195064867479295,"la2004BeatPeriodKyr":405.6972922210049,"rockMetronomeKyr":405.6,"companion124Kyr":123.84617993487997,"companion95Kyr":94.87791796545507,"earthLeadingModesArcsecPerYr":[4.257358971029763,7.452423838509057,17.917017907389138,17.368946405872247],"topBeatLines":[{"periodKyr":405.625567477903,"productAmp":0.0003123310080848341},{"periodKyr":94.87791796545507,"productAmp":0.00024338439758855827},{"periodKyr":123.84617993487997,"productAmp":0.00020980875877847502},{"periodKyr":98.84386665157218,"productAmp":0.00016694824937892253},{"periodKyr":130.6909747037068,"productAmp":0.00014391721626151482},{"periodKyr":2364.6549700414625,"productAmp":0.00011214770251987629},{"periodKyr":972.3103697584877,"productAmp":0.00007218142389142678},{"periodKyr":695.9670418382926,"productAmp":0.00006222377072471454}],"note":"g5 matches La2004 to 0.0002 ″/yr; the beat gap vs 405.6 is g2 (chaotic-diffusion window sensitivity + omitted separate-Moon/asteroid terms) — the anatomy is the plan’s Stage-B record."},"earthZ":[{"omegaRadPerYr":0.000020640258745496456,"re":0.01640837548946667,"im":0.00964771830356857},{"omegaRadPerYr":0.00003613037034336034,"re":-0.015519645105303494,"im":-0.005327718511512781},{"omegaRadPerYr":0.00008686415406186803,"re":-0.011108307303646387,"im":0.0063324002417276355},{"omegaRadPerYr":0.00008420702844025169,"re":0.005504442820656899,"im":-0.006828487155118338},{"omegaRadPerYr":0.000027102377738159537,"re":0.0005990602912422896,"im":0.0037445139104202996},{"omegaRadPerYr":0.00008284690006982035,"re":0.002385900412412394,"im":0.0008687520930649916},{"omegaRadPerYr":0.00008551634076169395,"re":0.0012667960543480752,"im":0.001284547912075711},{"omegaRadPerYr":0.00008156882804453768,"re":-0.0003413759390549155,"im":0.0016823570425905205},{"omegaRadPerYr":0.000033456117700854,"re":-0.0012412588643094782,"im":0.0009318258971565654},{"omegaRadPerYr":0.00013693625799603712,"re":-0.0009261214276803977,"im":0.0011910509606790575},{"omegaRadPerYr":0.00008736463294475958,"re":0.0013199280789047622,"im":0.0009530586967429039},{"omegaRadPerYr":0.00008630679999141721,"re":-0.00038871245410104777,"im":0.0009912036911146165},{"omegaRadPerYr":0.000026453632677170472,"re":-0.00032615534646350156,"im":-0.0018102501817831135},{"omegaRadPerYr":0.000034145978925786535,"re":0.0009480778866315119,"im":-0.0008230502200947101},{"omegaRadPerYr":0.00003548085475024487,"re":-0.0013007947815593653,"im":-0.00042439393044846465},{"omegaRadPerYr":0.00008951127418467436,"re":-0.0010559339979945592,"im":-0.000005975184481501219},{"omegaRadPerYr":0.00008814769888639652,"re":-0.0003392982459796931,"im":-0.00126615007571311},{"omegaRadPerYr":0.000027692559180942054,"re":0.0004455147622140075,"im":0.0013147856084997915}],"earthZeta":[{"omegaRadPerYr":-6.480692835562015e-14,"re":-0.004134427250631887,"im":0.013144207689667023},{"omegaRadPerYr":-0.00009139020514696892,"re":-0.003762846299946732,"im":-0.007417313993526907},{"omegaRadPerYr":-0.00002707802193107254,"re":0.004228758817782956,"im":0.001552899971393225},{"omegaRadPerYr":-0.00008608086641122392,"re":0.0012161313006493822,"im":-0.0038454411181687697},{"omegaRadPerYr":-0.00003414305478233622,"re":-0.0030829972319892183,"im":0.002522672469285971},{"omegaRadPerYr":-0.00008873899569559657,"re":-0.00020769480131372744,"im":-0.0026850953462850356},{"omegaRadPerYr":-0.00003333897395226539,"re":0.0006468387853619108,"im":-0.0008212555187612507},{"omegaRadPerYr":-0.000034707554013716744,"re":0.0012115602030611985,"im":-0.0008603813396121053},{"omegaRadPerYr":-0.00009404694793046069,"re":0.001124843496312146,"im":0.0009724617908785189},{"omegaRadPerYr":-0.00002647193861971907,"re":0.001606075294689031,"im":0.0005931944911952478},{"omegaRadPerYr":-0.00003277702706161178,"re":0.0005051745779261483,"im":-0.0006705412769950699},{"omegaRadPerYr":-0.00012773805775388969,"re":-0.0008122347824469044,"im":0.0010593881606687687},{"omegaRadPerYr":-0.00009269956713813446,"re":-0.0006909282558950976,"im":0.0004135096481099148},{"omegaRadPerYr":-0.000014507597324441827,"re":-0.0006470785128404058,"im":0.00057746649029071},{"omegaRadPerYr":-0.000033761896788929335,"re":0.001157822428032179,"im":-0.000690971407290411},{"omegaRadPerYr":-0.000028297573329000286,"re":-0.0011184968821771682,"im":-0.0003885179122647609}],"earthZetaEra":[{"omegaRadPerYr":-6.480692835562015e-14,"re":-0.004136170228858843,"im":0.013147349898750587},{"omegaRadPerYr":-0.00009139020514696892,"re":-0.0037451120264298888,"im":-0.007367103224447289},{"omegaRadPerYr":-0.00002707802193107254,"re":0.004192460536906565,"im":0.0015465498581850507},{"omegaRadPerYr":-0.00008608086641122392,"re":0.0012039767467140353,"im":-0.0038572667358382287},{"omegaRadPerYr":-0.00003414305478233622,"re":-0.0032014533879969596,"im":0.0025701217059533803},{"omegaRadPerYr":-0.00008873899569559657,"re":-0.00021856508120855303,"im":-0.002669820778092242},{"omegaRadPerYr":-0.00003333897395226539,"re":0.0003478573166468341,"im":-0.0006130210720886913},{"omegaRadPerYr":-0.000034707554013716744,"re":0.0012188003710118757,"im":-0.000879354385952938}],"planetLeadingZetaArcsecPerYr":{"mercury":-5.583654095308831,"venus":-18.85062201283722,"earth":-18.850582957521933,"mars":-17.75551746317749,"jupiter":-26.34785064223289,"saturn":-26.34785063789155,"uranus":-2.992403454072025,"neptune":-0.6916261380439003},"planetZ":{"mercury":[{"omegaRadPerYr":0.000027101464787379005,"re":0.036443059874745144,"im":0.15312012416846857},{"omegaRadPerYr":0.00002645682320158395,"re":-0.014115236278813163,"im":-0.07933183704397909},{"omegaRadPerYr":0.000027695768774324655,"re":0.014883065162550294,"im":0.04770421699238349},{"omegaRadPerYr":0.000020608825679123343,"re":0.0339424735092415,"im":0.0205886131133393},{"omegaRadPerYr":0.00003613198806683821,"re":0.026373724217244415,"im":0.007998632845938181},{"omegaRadPerYr":0.000025943085765069145,"re":-0.00008287402030671245,"im":0.01382534867142278},{"omegaRadPerYr":0.000021259366308985905,"re":-0.010921101889740678,"im":-0.005391042758241112},{"omegaRadPerYr":0.000033442897144222473,"re":-0.006298873452719107,"im":0.004846731368887027},{"omegaRadPerYr":0.000027342847424225136,"re":-0.031441801079617394,"im":-0.0012828182325896284},{"omegaRadPerYr":0.000026863603353307064,"re":-0.0023658597755055214,"im":0.03845436133115692},{"omegaRadPerYr":0.000029077390952304336,"re":-0.0056672065762804385,"im":0.008668504999729803},{"omegaRadPerYr":0.000025324686199132127,"re":-0.005942232736715857,"im":-0.012274661661212959},{"omegaRadPerYr":0.00002979754974875923,"re":0.0008097924308674098,"im":-0.0064472013829302505},{"omegaRadPerYr":0.000019992412184743173,"re":0.012472217201012077,"im":0.00359833652112381},{"omegaRadPerYr":0.00002454697962536287,"re":0.0020556509667169235,"im":0.0009916346793612978},{"omegaRadPerYr":0.00002812715748715012,"re":-0.002051758629227311,"im":-0.0033287955771129805},{"omegaRadPerYr":0.000019449369227596397,"re":-0.0038021090567115627,"im":-0.0028426209995905025}],"venus":[{"omegaRadPerYr":0.00003613032718771122,"re":-0.020105324941805183,"im":-0.006917696377202324},{"omegaRadPerYr":0.000020639950705137238,"re":0.017068955357371025,"im":0.010006500628836495},{"omegaRadPerYr":0.00008686450325171618,"re":0.011426811376444728,"im":-0.006520605414974846},{"omegaRadPerYr":0.00008420762005329659,"re":-0.006892443369184228,"im":0.008472548929406779},{"omegaRadPerYr":0.000027101843398089462,"re":0.0009492363872320767,"im":0.005898626241129876},{"omegaRadPerYr":0.00008284929259321451,"re":-0.0030327325912061806,"im":-0.0010976776908548803},{"omegaRadPerYr":0.00008156590133143486,"re":0.0004654494107565469,"im":-0.002280587631810283},{"omegaRadPerYr":0.00003345630943302872,"re":-0.0017828402597892042,"im":0.0012954758789217673},{"omegaRadPerYr":0.00008551538095828359,"re":-0.0011609215700463195,"im":-0.0012677518151850962},{"omegaRadPerYr":0.00002645314323665865,"re":-0.0005187468879242992,"im":-0.0028561425016264542},{"omegaRadPerYr":0.000034145633629733906,"re":0.0012933573208605794,"im":-0.001139818586425855},{"omegaRadPerYr":0.00002769519215699273,"re":0.000692247567326856,"im":0.0020562801187020375},{"omegaRadPerYr":0.00003548134649993586,"re":-0.0017504367473210652,"im":-0.0005759353131695786},{"omegaRadPerYr":0.00008736396981192052,"re":-0.0013474628838071549,"im":-0.000992885318268049},{"omegaRadPerYr":0.00008630854715331631,"re":0.0003763610849158857,"im":-0.0010611470059873186},{"omegaRadPerYr":0.00003678579378710168,"re":0.0015965344500683718,"im":0.0003260227593096117},{"omegaRadPerYr":0.00008814539612129297,"re":0.00043027029421162,"im":0.0012698103607611786},{"omegaRadPerYr":0.00009215946508724939,"re":-0.0008157163462856423,"im":-0.0001752965015353975}],"mars":[{"omegaRadPerYr":0.00008686194427246272,"re":0.04150468181977603,"im":-0.02235805720891878},{"omegaRadPerYr":0.00008420997062723613,"re":0.024191159406394575,"im":-0.02897798440552211},{"omegaRadPerYr":0.000020640675066908026,"re":0.01752920390659033,"im":0.010379054381833624},{"omegaRadPerYr":0.00008155902048560256,"re":-0.005126487019269018,"im":0.017498780322239615},{"omegaRadPerYr":0.00008951470797098792,"re":0.012453460704855819,"im":-0.0011162639997386022},{"omegaRadPerYr":0.00008286071984936754,"re":0.012151786749976757,"im":0.005285572685028835},{"omegaRadPerYr":0.00008552376356754678,"re":-0.008207026797923043,"im":-0.006506174683766466},{"omegaRadPerYr":0.00013693612216296713,"re":-0.004303426290032767,"im":0.005495751915005897},{"omegaRadPerYr":0.0000863140674359666,"re":0.003378196925346155,"im":-0.0035707297870487854},{"omegaRadPerYr":0.00009216418711866517,"re":0.004180141329638833,"im":0.001239878529646219},{"omegaRadPerYr":0.00008815294634884687,"re":0.0015478422945863473,"im":0.005394318221250823},{"omegaRadPerYr":0.00008737006869414014,"re":-0.004859264335556832,"im":-0.002468706141182086},{"omegaRadPerYr":0.00008474936320624016,"re":-0.0037175110079883836,"im":0.0005712305102614905},{"omegaRadPerYr":0.00003613060911836741,"re":-0.002878165082426005,"im":-0.0009813871463689},{"omegaRadPerYr":0.00008323445042360793,"re":-0.0021030674464516,"im":0.002382835034113347},{"omegaRadPerYr":0.00008591714206468895,"re":0.00033705398396163035,"im":-0.0031641077910174956},{"omegaRadPerYr":0.00008022543440532314,"re":0.0014077256319658448,"im":0.00023992196561432362},{"omegaRadPerYr":0.0000900335871717643,"re":-0.0007652388036231974,"im":-0.0015581764537776826}],"jupiter":[{"omegaRadPerYr":0.00002064075395335189,"re":0.038028034576741906,"im":0.022474419029067216},{"omegaRadPerYr":0.00013693627466777967,"re":0.009616177715621049,"im":-0.012410735192913122},{"omegaRadPerYr":0.000014970699552264387,"re":-0.0009276176888746422,"im":0.0015645820896462246},{"omegaRadPerYr":0.00025323179539978545,"re":0.0004059157737100984,"im":0.00040456376985595945},{"omegaRadPerYr":0.0001312662749926737,"re":-0.00015614354905163857,"im":-0.00012183629827031596},{"omegaRadPerYr":0.0001426061431474546,"re":-0.00015326196073912603,"im":-0.00011811188348776635},{"omegaRadPerYr":0.00014000309579914057,"re":0.00010317940519689781,"im":0.00006505029768233116},{"omegaRadPerYr":0.00013386863466366606,"re":0.00007960628300069755,"im":0.0000757581826985722},{"omegaRadPerYr":0.0012496810113814863,"re":3.5498901583457483e-9,"im":7.528217439557287e-9}],"saturn":[{"omegaRadPerYr":0.00013693627469533272,"re":-0.02951381641782599,"im":0.038116342187048506},{"omegaRadPerYr":0.000020640753964721574,"re":0.028361784183640975,"im":0.016761738089661193},{"omegaRadPerYr":0.0002532317954411971,"re":-0.0013588658390314074,"im":-0.0013542513704600167},{"omegaRadPerYr":0.000014970698207898392,"re":-0.0007732461228524056,"im":0.0013033726384504506},{"omegaRadPerYr":0.00013126626734545323,"re":0.000471597345592877,"im":0.0003662972802790016},{"omegaRadPerYr":0.00014260613959102947,"re":0.00046558535071819594,"im":0.0003604428232502375},{"omegaRadPerYr":0.0012496810120112478,"re":-2.2413816213183782e-8,"im":-4.3761227707856587e-8}],"uranus":[{"omegaRadPerYr":0.000020640753931894893,"re":-0.03238248798724911,"im":-0.019137541918709554},{"omegaRadPerYr":0.00001497070511159062,"re":-0.014798949407797135,"im":0.024975442503237483},{"omegaRadPerYr":0.000003264464996922227,"re":0.00045075801975650074,"im":0.0016050091168723338},{"omegaRadPerYr":0.00013693627457864556,"re":0.0009471352229324553,"im":-0.0012234989208774374},{"omegaRadPerYr":0.00000929092310040761,"re":-0.0004015633445553787,"im":-0.0002340983045129561},{"omegaRadPerYr":0.00002631265778975313,"re":0.00022664443272842668,"im":-0.0003767093309339966},{"omegaRadPerYr":0.000014377069742263513,"re":0.00005819778777828242,"im":-0.00005910629719132463},{"omegaRadPerYr":0.000630109378889249,"re":-1.1513321171782036e-7,"im":2.121111820496366e-7}],"neptune":[{"omegaRadPerYr":0.000003264141494649585,"re":0.0024665853980857314,"im":0.008775596228059238},{"omegaRadPerYr":0.000014970655663003607,"re":0.0018888606403837439,"im":-0.0031894015693886913},{"omegaRadPerYr":0.00002064075339053921,"re":0.001629524897365034,"im":0.0009616466536353474},{"omegaRadPerYr":-0.00011593914172939557,"re":7.926785905418971e-8,"im":-4.6685992002385664e-8}]},"planetZeta":{"mercury":[{"omegaRadPerYr":-0.000027070318959890106,"re":0.03509799360084889,"im":0.012514361334229175},{"omegaRadPerYr":-0.000034136904111019706,"re":0.02695969560580955,"im":-0.02182848736661456},{"omegaRadPerYr":-0.000034710315380555884,"re":-0.012559168496773116,"im":0.008299078079729882},{"omegaRadPerYr":-0.00002646765287895232,"re":0.015448524016084493,"im":0.005987672372630069},{"omegaRadPerYr":-0.00003340798156431758,"re":-0.006455019023356067,"im":0.006226120154816196},{"omegaRadPerYr":5.384799590336571e-11,"re":-0.0039804878272654606,"im":0.013070100663895403},{"omegaRadPerYr":-0.000032847026422583094,"re":-0.0057003023891457685,"im":0.005259105004808747},{"omegaRadPerYr":-0.00003594792939956603,"re":-0.0012961241060881503,"im":0.0016159947697806383},{"omegaRadPerYr":-0.000025076126902622893,"re":0.0009463621131951934,"im":0.004877886245061111},{"omegaRadPerYr":-0.00003524962055187364,"re":0.0036108114629212922,"im":-0.004623693257308201},{"omegaRadPerYr":-0.000024475658963257535,"re":0.000022935888716433717,"im":-0.004353014017229704},{"omegaRadPerYr":-0.00003379278995294136,"re":-0.007806785352862373,"im":0.004006431979329447},{"omegaRadPerYr":-0.00003218755893963215,"re":-0.003704818024406685,"im":0.0011960062285103251},{"omegaRadPerYr":-0.000028313967733473683,"re":-0.007360063597313632,"im":-0.002796682485956438},{"omegaRadPerYr":-0.000027441506455909732,"re":0.005714284626147598,"im":-0.00031320953109534994},{"omegaRadPerYr":-0.000025718824169110346,"re":-0.00022772395090882533,"im":-0.00196911848110608}],"venus":[{"omegaRadPerYr":-1.6493179814802074e-12,"re":-0.0041316378307605294,"im":0.013147230899595441},{"omegaRadPerYr":-0.00009139039449248062,"re":0.004107318311959544,"im":0.008097727638340723},{"omegaRadPerYr":-0.000027077829093903624,"re":0.005723184464233101,"im":0.002103989760517981},{"omegaRadPerYr":-0.0000860809730098796,"re":-0.0017575781212555862,"im":0.005497182235759365},{"omegaRadPerYr":-0.00003414333446857137,"re":-0.0036683665695228925,"im":0.0029729549111848722},{"omegaRadPerYr":-0.0000887389845132903,"re":0.00017437292720263114,"im":0.002839346558623874},{"omegaRadPerYr":-0.00003332402755350087,"re":0.0008226456090349229,"im":-0.000990196523458664},{"omegaRadPerYr":-0.00003470699633273722,"re":0.0013981977987789472,"im":-0.0010036696718058783},{"omegaRadPerYr":-0.00002647213755615405,"re":0.002192723581813546,"im":0.0008156688371823413},{"omegaRadPerYr":-0.00009404722529229626,"re":-0.001310202146639285,"im":-0.0011534120915617934},{"omegaRadPerYr":-0.00003276165702381588,"re":0.0005497404769706646,"im":-0.0007663000693998108},{"omegaRadPerYr":-0.00009269906010008638,"re":0.000774314512799505,"im":-0.0004388675219967948},{"omegaRadPerYr":-0.00003375443573456643,"re":0.0014500491408612449,"im":-0.0008824349886108636},{"omegaRadPerYr":-0.000014507610514643914,"re":-0.0007092452594379532,"im":0.000644027430133631},{"omegaRadPerYr":-0.00002829966619518156,"re":-0.0015021530175610535,"im":-0.0005258063199032051},{"omegaRadPerYr":-0.00003214220556483202,"re":0.0006661181436053425,"im":-0.0002653316593905635}],"mars":[{"omegaRadPerYr":-0.00008608117781327729,"re":0.01021076871109231,"im":-0.03356452939087538},{"omegaRadPerYr":-0.00009138911102981668,"re":0.006448673929855857,"im":0.013039152420792278},{"omegaRadPerYr":4.816071417209985e-13,"re":-0.004136702437859971,"im":0.013131620521733377},{"omegaRadPerYr":-0.00008873924259238756,"re":0.000719141598532243,"im":0.006332417454417071},{"omegaRadPerYr":-0.00008342553512204505,"re":-0.003385387773112122,"im":0.004320169865314299},{"omegaRadPerYr":-0.00012773796958870522,"re":-0.002768952254262225,"im":0.0036533714419055593},{"omegaRadPerYr":-0.00008732462124121245,"re":0.002315330060230354,"im":0.00021373005960354581},{"omegaRadPerYr":-0.00008533729428600537,"re":0.0000662084835502976,"im":0.0014041635383156973},{"omegaRadPerYr":-0.0000927013779034122,"re":0.0012004630656653568,"im":-0.0007842461095443991},{"omegaRadPerYr":-0.00008675666306804544,"re":0.0007084511153542455,"im":-0.0008188292363296188},{"omegaRadPerYr":-0.00008568093272163965,"re":-0.0022269947606386804,"im":-0.0002915189256492408},{"omegaRadPerYr":-0.0000920127905544982,"re":-0.00012713738691022227,"im":0.0011838067237884178},{"omegaRadPerYr":-0.00008937418687447559,"re":-0.0002755627620382867,"im":0.0007026683188238479},{"omegaRadPerYr":-0.00002707848026399503,"re":0.0008884002528900317,"im":0.00034005750138313076},{"omegaRadPerYr":-0.00009092889696047022,"re":-0.00043281332848104276,"im":0.0003922132913606256},{"omegaRadPerYr":-0.00009004802546465118,"re":0.0008966966123701487,"im":-0.0005174229841345629}],"jupiter":[{"omegaRadPerYr":3.8532251623886294e-13,"re":-0.0041611376264940984,"im":0.013131043712311021},{"omegaRadPerYr":-0.0001277379845918518,"re":0.0019098261437600508,"im":-0.002505661007425496},{"omegaRadPerYr":-0.000003353110004279269,"re":0.0005277820779376669,"im":0.000232885172945674},{"omegaRadPerYr":-0.000014507601866590341,"re":-0.0003702089817814631,"im":0.00030787406163905093},{"omegaRadPerYr":-0.00013080293768331143,"re":-0.000017471248168841094,"im":-0.00001634692544524867},{"omegaRadPerYr":-0.000011442276716160314,"re":0.000012459821928796665,"im":0.00001269474660145274},{"omegaRadPerYr":0.0004016105340997148,"re":0.000008813036156379482,"im":-0.00001120905836048329},{"omegaRadPerYr":-0.00000882703119796523,"re":0.000007828457504338726,"im":0.000007811495266844502},{"omegaRadPerYr":-0.00002707681546885972,"re":-0.000009044718068424064,"im":-0.0000033400395822585094},{"omegaRadPerYr":-0.0000201768700641032,"re":0.000006156498033523465,"im":0.00000751705596830829},{"omegaRadPerYr":0.0002853150225305461,"re":0.000007292599938644516,"im":0.0000043773896212603925},{"omegaRadPerYr":-0.0002440335075107546,"re":0.000006274454282046377,"im":0.0000036485466831589452},{"omegaRadPerYr":0.00016901949668819092,"re":-0.000002519428503521004,"im":0.000005678550409035692},{"omegaRadPerYr":-0.0000027587103410433805,"re":0.000005899853582363865,"im":8.409148783838858e-7},{"omegaRadPerYr":-0.000034144381407487655,"re":0.000004719652715449978,"im":-0.0000037247689900126893},{"omegaRadPerYr":-0.00013340793710151563,"re":0.0000036153371332643194,"im":0.0000026473096931137383}],"saturn":[{"omegaRadPerYr":3.404546335777438e-13,"re":-0.004160815341357166,"im":0.01313037085706424},{"omegaRadPerYr":-0.0001277379845708044,"re":-0.004757531229884148,"im":0.0062418570697877025},{"omegaRadPerYr":-0.000003353103939425025,"re":0.0005082525979425591,"im":0.0002243582817470411},{"omegaRadPerYr":-0.000014507604683407504,"re":-0.0003003418401293427,"im":0.0002498658928695802},{"omegaRadPerYr":-0.00013080297316369022,"re":0.00004462521372870775,"im":0.00004172396328086738},{"omegaRadPerYr":0.0004016105342059343,"re":-0.000021890424766638027,"im":0.00002784479607678065},{"omegaRadPerYr":0.00028531501227593826,"re":-0.000016971705234483944,"im":-0.000010207779625167536},{"omegaRadPerYr":0.00016901949653661777,"re":0.000006353117499272568,"im":-0.000014464465864357296},{"omegaRadPerYr":-0.00002707712299185719,"re":-0.000011819853659803773,"im":-0.000004343694032290057},{"omegaRadPerYr":-0.00008608110335393078,"re":-0.0000038556316501964585,"im":0.000012260170759195859},{"omegaRadPerYr":-0.00013340770427701983,"re":-0.000008291647540272973,"im":-0.0000060449324319747485},{"omegaRadPerYr":-0.00012206708504485138,"re":-0.000007846468613598666,"im":-0.000006177485716796176},{"omegaRadPerYr":-0.000008827506775295263,"re":0.000006912239479621683,"im":0.0000070997530164759055},{"omegaRadPerYr":-0.00024403351156152198,"re":-0.000006770600853713768,"im":-0.000003936350447344142},{"omegaRadPerYr":-0.0009675113430843807,"re":-0.000004521653063656594,"im":-0.000006119593231226156},{"omegaRadPerYr":-0.000034143979713964837,"re":0.000006837682774689789,"im":-0.000005331591672335383}],"uranus":[{"omegaRadPerYr":1.609741252182826e-12,"re":-0.004160857683169045,"im":0.01312987468744944},{"omegaRadPerYr":-0.000014507581339335488,"re":0.006819771098312077,"im":-0.005674555448618447},{"omegaRadPerYr":-0.0000033533175354118582,"re":-0.0005101607663847248,"im":-0.00022431030942694354},{"omegaRadPerYr":-0.00012773798595007094,"re":0.00021390993605577627,"im":-0.00028068024741796866},{"omegaRadPerYr":-0.000011442390269999423,"re":-0.00021565535141600253,"im":-0.0002150430588126844},{"omegaRadPerYr":-0.000020175380767861024,"re":-0.00012178417740316124,"im":-0.0001456136848907788},{"omegaRadPerYr":-0.00000883157541584528,"re":-0.00012271282922940013,"im":-0.0001340577820362881},{"omegaRadPerYr":-0.000015103884918843288,"re":-0.00005803301762598432,"im":0.000026178909117342292},{"omegaRadPerYr":-0.000005772310491116802,"re":0.000018629424113074064,"im":-0.000018786863001070623},{"omegaRadPerYr":0.000055789019292025894,"re":-0.000003583719865681113,"im":0.00001877185158848246},{"omegaRadPerYr":0.00005011887511064967,"re":0.000011951449395631811,"im":0.000002279724016800827},{"omegaRadPerYr":-0.000027076655469348425,"re":0.000008609833687019483,"im":0.0000039638140159356984},{"omegaRadPerYr":-0.00013080298640432038,"re":-0.000007760607234183951,"im":-0.000007178734351197981},{"omegaRadPerYr":-0.000009192811893081681,"re":-0.000006996875336880973,"im":0.000009870536991923898},{"omegaRadPerYr":-0.000014175491386338482,"re":-0.00001270447511881092,"im":0.000007778091287202746},{"omegaRadPerYr":0.00010178796581047778,"re":-0.000004042702368549757,"im":-0.000006403994609904075}],"neptune":[{"omegaRadPerYr":-5.309966632404278e-12,"re":-0.004159721990836072,"im":0.013130987686676325},{"omegaRadPerYr":-0.000003353098139366354,"re":-0.005314734202759442,"im":-0.0023457634229809878},{"omegaRadPerYr":-0.000014507473764320118,"re":-0.0008167253455895104,"im":0.000679803323619701},{"omegaRadPerYr":-0.00001144267951307936,"re":0.00004103714819598339,"im":0.00004000434297961395},{"omegaRadPerYr":-0.0000027576446795887367,"re":-0.00006149846188777267,"im":-0.000008691440917605258},{"omegaRadPerYr":-0.000127737982036136,"re":0.000022941259364012485,"im":-0.000030013884419629694},{"omegaRadPerYr":-0.00002017340325592398,"re":0.00001785684479351327,"im":0.000021295006716797693},{"omegaRadPerYr":-0.000008980453563447026,"re":-0.0000018701512064522262,"im":0.000017342410863083055},{"omegaRadPerYr":0.0000022940676061081706,"re":-0.000008135256823034523,"im":0.0000159660700897465},{"omegaRadPerYr":-0.000005773430993827179,"re":-0.000010150670472290044,"im":0.000012347455189860531},{"omegaRadPerYr":-0.0000036886914876550886,"re":-0.000013289694939214323,"im":-0.000004967461981751487},{"omegaRadPerYr":-0.000015103364422159208,"re":0.000008447715112089554,"im":-0.0000038128138702162122},{"omegaRadPerYr":0.0000029055921239641946,"re":1.0991164784154305e-8,"im":-0.00000667040982519229},{"omegaRadPerYr":0.000050117959348442586,"re":-0.000005129825896938048,"im":-0.0000010095666431561402},{"omegaRadPerYr":0.0000389783728602118,"re":-0.000002068034832737985,"im":0.000002775618631657745}]},"anchorE":0.016702435651957018,"anchorPeriEclipticDeg":462.9179213996577,"anchorInclEclipticDeg":0.00010345820355474172,"anchorAscNodeEclipticDeg":140.29217988414328});
|
|
21
|
+
const DEEP_MODES_ARTIFACT = Object.freeze({"meta":{"integrator":"wh","order":2,"dtDays":2,"spanYears":20000000,"sampleDays":20000,"gr":true,"seed":"JPL Horizons J2000 heliocentric state vectors (tools/explore/j2000-state.mjs, the one home)","masses":"DE440 mass ratios (astro-reference physicalConstants)","runCommand":"node tools/explore/lattice-long-window-test.mjs years=20000000 integrator=wh dt=2 order=2 gr=1 frame=both sample=20000","dumpFile":"tools/explore/lattice-long-window-ecliptic-20000000-gr.local.json (untracked, 337 MB)","dumpSha256":"686d6af51a689f7bd64ac1e2d8b26c243a4beccdacd3167adfeeae078e8b990f","conservationMaxDE":1.2738960401328902e-8,"decimation":4,"naffTerms":18,"naffZetaTerms":16,"naffZetaTermsEra":8,"frame":"ecliptic-J2000 (z-modes for the lunar-chain e; ζ-modes for the Stage-C obliquity hybrid — the invariable-frame ζ table remains unbanked, no consumer)","laskarRef":"Laskar, J. et al. (2004), A&A 428, 261–285, Table 3 (theory reference labels)"},"verdict":{"strongestBeatPeriodKyr":405.625567477903,"strongestBeatArcsecPerYr":3.195064867479295,"la2004BeatPeriodKyr":405.6972922210049,"rockMetronomeKyr":405.6,"companion124Kyr":123.84617993487997,"companion95Kyr":94.87791796545507,"earthLeadingModesArcsecPerYr":[4.257358971029763,7.452423838509057,17.917017907389138,17.368946405872247],"topBeatLines":[{"periodKyr":405.625567477903,"productAmp":0.0003123310080848341},{"periodKyr":94.87791796545507,"productAmp":0.00024338439758855827},{"periodKyr":123.84617993487997,"productAmp":0.00020980875877847502},{"periodKyr":98.84386665157218,"productAmp":0.00016694824937892253},{"periodKyr":130.6909747037068,"productAmp":0.00014391721626151482},{"periodKyr":2364.6549700414625,"productAmp":0.00011214770251987629},{"periodKyr":972.3103697584877,"productAmp":0.00007218142389142678},{"periodKyr":695.9670418382926,"productAmp":0.00006222377072471454}],"note":"g5 matches La2004 to 0.0002 ″/yr; the beat gap vs 405.6 is g2 (chaotic-diffusion window sensitivity + omitted separate-Moon/asteroid terms) — the anatomy is the plan’s Stage-B record."},"earthZ":[{"omegaRadPerYr":0.000020640258745496456,"re":0.01640837548946667,"im":0.00964771830356857},{"omegaRadPerYr":0.00003613037034336034,"re":-0.015519645105303494,"im":-0.005327718511512781},{"omegaRadPerYr":0.00008686415406186803,"re":-0.011108307303646387,"im":0.0063324002417276355},{"omegaRadPerYr":0.00008420702844025169,"re":0.005504442820656899,"im":-0.006828487155118338},{"omegaRadPerYr":0.000027102377738159537,"re":0.0005990602912422896,"im":0.0037445139104202996},{"omegaRadPerYr":0.00008284690006982035,"re":0.002385900412412394,"im":0.0008687520930649916},{"omegaRadPerYr":0.00008551634076169395,"re":0.0012667960543480752,"im":0.001284547912075711},{"omegaRadPerYr":0.00008156882804453768,"re":-0.0003413759390549155,"im":0.0016823570425905205},{"omegaRadPerYr":0.000033456117700854,"re":-0.0012412588643094782,"im":0.0009318258971565654},{"omegaRadPerYr":0.00013693625799603712,"re":-0.0009261214276803977,"im":0.0011910509606790575},{"omegaRadPerYr":0.00008736463294475958,"re":0.0013199280789047622,"im":0.0009530586967429039},{"omegaRadPerYr":0.00008630679999141721,"re":-0.00038871245410104777,"im":0.0009912036911146165},{"omegaRadPerYr":0.000026453632677170472,"re":-0.00032615534646350156,"im":-0.0018102501817831135},{"omegaRadPerYr":0.000034145978925786535,"re":0.0009480778866315119,"im":-0.0008230502200947101},{"omegaRadPerYr":0.00003548085475024487,"re":-0.0013007947815593653,"im":-0.00042439393044846465},{"omegaRadPerYr":0.00008951127418467436,"re":-0.0010559339979945592,"im":-0.000005975184481501219},{"omegaRadPerYr":0.00008814769888639652,"re":-0.0003392982459796931,"im":-0.00126615007571311},{"omegaRadPerYr":0.000027692559180942054,"re":0.0004455147622140075,"im":0.0013147856084997915}],"earthZeta":[{"omegaRadPerYr":-6.480692835562015e-14,"re":-0.004134427250631887,"im":0.013144207689667023},{"omegaRadPerYr":-0.00009139020514696892,"re":-0.003762846299946732,"im":-0.007417313993526907},{"omegaRadPerYr":-0.00002707802193107254,"re":0.004228758817782956,"im":0.001552899971393225},{"omegaRadPerYr":-0.00008608086641122392,"re":0.0012161313006493822,"im":-0.0038454411181687697},{"omegaRadPerYr":-0.00003414305478233622,"re":-0.0030829972319892183,"im":0.002522672469285971},{"omegaRadPerYr":-0.00008873899569559657,"re":-0.00020769480131372744,"im":-0.0026850953462850356},{"omegaRadPerYr":-0.00003333897395226539,"re":0.0006468387853619108,"im":-0.0008212555187612507},{"omegaRadPerYr":-0.000034707554013716744,"re":0.0012115602030611985,"im":-0.0008603813396121053},{"omegaRadPerYr":-0.00009404694793046069,"re":0.001124843496312146,"im":0.0009724617908785189},{"omegaRadPerYr":-0.00002647193861971907,"re":0.001606075294689031,"im":0.0005931944911952478},{"omegaRadPerYr":-0.00003277702706161178,"re":0.0005051745779261483,"im":-0.0006705412769950699},{"omegaRadPerYr":-0.00012773805775388969,"re":-0.0008122347824469044,"im":0.0010593881606687687},{"omegaRadPerYr":-0.00009269956713813446,"re":-0.0006909282558950976,"im":0.0004135096481099148},{"omegaRadPerYr":-0.000014507597324441827,"re":-0.0006470785128404058,"im":0.00057746649029071},{"omegaRadPerYr":-0.000033761896788929335,"re":0.001157822428032179,"im":-0.000690971407290411},{"omegaRadPerYr":-0.000028297573329000286,"re":-0.0011184968821771682,"im":-0.0003885179122647609}],"earthZetaEra":[{"omegaRadPerYr":-6.480692835562015e-14,"re":-0.004136170228858843,"im":0.013147349898750587},{"omegaRadPerYr":-0.00009139020514696892,"re":-0.0037451120264298888,"im":-0.007367103224447289},{"omegaRadPerYr":-0.00002707802193107254,"re":0.004192460536906565,"im":0.0015465498581850507},{"omegaRadPerYr":-0.00008608086641122392,"re":0.0012039767467140353,"im":-0.0038572667358382287},{"omegaRadPerYr":-0.00003414305478233622,"re":-0.0032014533879969596,"im":0.0025701217059533803},{"omegaRadPerYr":-0.00008873899569559657,"re":-0.00021856508120855303,"im":-0.002669820778092242},{"omegaRadPerYr":-0.00003333897395226539,"re":0.0003478573166468341,"im":-0.0006130210720886913},{"omegaRadPerYr":-0.000034707554013716744,"re":0.0012188003710118757,"im":-0.000879354385952938}],"planetLeadingZetaArcsecPerYr":{"mercury":-5.583654095308831,"venus":-18.85062201283722,"earth":-18.850582957521933,"mars":-17.75551746317749,"jupiter":-26.34785064223289,"saturn":-26.34785063789155,"uranus":-2.992403454072025,"neptune":-0.6916261380439003},"planetZ":{"mercury":[{"omegaRadPerYr":0.000027101464787379005,"re":0.036443059874745144,"im":0.15312012416846857},{"omegaRadPerYr":0.00002645682320158395,"re":-0.014115236278813163,"im":-0.07933183704397909},{"omegaRadPerYr":0.000027695768774324655,"re":0.014883065162550294,"im":0.04770421699238349},{"omegaRadPerYr":0.000020608825679123343,"re":0.0339424735092415,"im":0.0205886131133393},{"omegaRadPerYr":0.00003613198806683821,"re":0.026373724217244415,"im":0.007998632845938181},{"omegaRadPerYr":0.000025943085765069145,"re":-0.00008287402030671245,"im":0.01382534867142278},{"omegaRadPerYr":0.000021259366308985905,"re":-0.010921101889740678,"im":-0.005391042758241112},{"omegaRadPerYr":0.000033442897144222473,"re":-0.006298873452719107,"im":0.004846731368887027},{"omegaRadPerYr":0.000027342847424225136,"re":-0.031441801079617394,"im":-0.0012828182325896284},{"omegaRadPerYr":0.000026863603353307064,"re":-0.0023658597755055214,"im":0.03845436133115692},{"omegaRadPerYr":0.000029077390952304336,"re":-0.0056672065762804385,"im":0.008668504999729803},{"omegaRadPerYr":0.000025324686199132127,"re":-0.005942232736715857,"im":-0.012274661661212959},{"omegaRadPerYr":0.00002979754974875923,"re":0.0008097924308674098,"im":-0.0064472013829302505},{"omegaRadPerYr":0.000019992412184743173,"re":0.012472217201012077,"im":0.00359833652112381},{"omegaRadPerYr":0.00002454697962536287,"re":0.0020556509667169235,"im":0.0009916346793612978},{"omegaRadPerYr":0.00002812715748715012,"re":-0.002051758629227311,"im":-0.0033287955771129805},{"omegaRadPerYr":0.000019449369227596397,"re":-0.0038021090567115627,"im":-0.0028426209995905025}],"venus":[{"omegaRadPerYr":0.00003613032718771122,"re":-0.020105324941805183,"im":-0.006917696377202324},{"omegaRadPerYr":0.000020639950705137238,"re":0.017068955357371025,"im":0.010006500628836495},{"omegaRadPerYr":0.00008686450325171618,"re":0.011426811376444728,"im":-0.006520605414974846},{"omegaRadPerYr":0.00008420762005329659,"re":-0.006892443369184228,"im":0.008472548929406779},{"omegaRadPerYr":0.000027101843398089462,"re":0.0009492363872320767,"im":0.005898626241129876},{"omegaRadPerYr":0.00008284929259321451,"re":-0.0030327325912061806,"im":-0.0010976776908548803},{"omegaRadPerYr":0.00008156590133143486,"re":0.0004654494107565469,"im":-0.002280587631810283},{"omegaRadPerYr":0.00003345630943302872,"re":-0.0017828402597892042,"im":0.0012954758789217673},{"omegaRadPerYr":0.00008551538095828359,"re":-0.0011609215700463195,"im":-0.0012677518151850962},{"omegaRadPerYr":0.00002645314323665865,"re":-0.0005187468879242992,"im":-0.0028561425016264542},{"omegaRadPerYr":0.000034145633629733906,"re":0.0012933573208605794,"im":-0.001139818586425855},{"omegaRadPerYr":0.00002769519215699273,"re":0.000692247567326856,"im":0.0020562801187020375},{"omegaRadPerYr":0.00003548134649993586,"re":-0.0017504367473210652,"im":-0.0005759353131695786},{"omegaRadPerYr":0.00008736396981192052,"re":-0.0013474628838071549,"im":-0.000992885318268049},{"omegaRadPerYr":0.00008630854715331631,"re":0.0003763610849158857,"im":-0.0010611470059873186},{"omegaRadPerYr":0.00003678579378710168,"re":0.0015965344500683718,"im":0.0003260227593096117},{"omegaRadPerYr":0.00008814539612129297,"re":0.00043027029421162,"im":0.0012698103607611786},{"omegaRadPerYr":0.00009215946508724939,"re":-0.0008157163462856423,"im":-0.0001752965015353975}],"mars":[{"omegaRadPerYr":0.00008686194427246272,"re":0.04150468181977603,"im":-0.02235805720891878},{"omegaRadPerYr":0.00008420997062723613,"re":0.024191159406394575,"im":-0.02897798440552211},{"omegaRadPerYr":0.000020640675066908026,"re":0.01752920390659033,"im":0.010379054381833624},{"omegaRadPerYr":0.00008155902048560256,"re":-0.005126487019269018,"im":0.017498780322239615},{"omegaRadPerYr":0.00008951470797098792,"re":0.012453460704855819,"im":-0.0011162639997386022},{"omegaRadPerYr":0.00008286071984936754,"re":0.012151786749976757,"im":0.005285572685028835},{"omegaRadPerYr":0.00008552376356754678,"re":-0.008207026797923043,"im":-0.006506174683766466},{"omegaRadPerYr":0.00013693612216296713,"re":-0.004303426290032767,"im":0.005495751915005897},{"omegaRadPerYr":0.0000863140674359666,"re":0.003378196925346155,"im":-0.0035707297870487854},{"omegaRadPerYr":0.00009216418711866517,"re":0.004180141329638833,"im":0.001239878529646219},{"omegaRadPerYr":0.00008815294634884687,"re":0.0015478422945863473,"im":0.005394318221250823},{"omegaRadPerYr":0.00008737006869414014,"re":-0.004859264335556832,"im":-0.002468706141182086},{"omegaRadPerYr":0.00008474936320624016,"re":-0.0037175110079883836,"im":0.0005712305102614905},{"omegaRadPerYr":0.00003613060911836741,"re":-0.002878165082426005,"im":-0.0009813871463689},{"omegaRadPerYr":0.00008323445042360793,"re":-0.0021030674464516,"im":0.002382835034113347},{"omegaRadPerYr":0.00008591714206468895,"re":0.00033705398396163035,"im":-0.0031641077910174956},{"omegaRadPerYr":0.00008022543440532314,"re":0.0014077256319658448,"im":0.00023992196561432362},{"omegaRadPerYr":0.0000900335871717643,"re":-0.0007652388036231974,"im":-0.0015581764537776826}],"jupiter":[{"omegaRadPerYr":0.00002064075395335189,"re":0.038028034576741906,"im":0.022474419029067216},{"omegaRadPerYr":0.00013693627466777967,"re":0.009616177715621049,"im":-0.012410735192913122},{"omegaRadPerYr":0.000014970699552264387,"re":-0.0009276176888746422,"im":0.0015645820896462246},{"omegaRadPerYr":0.00025323179539978545,"re":0.0004059157737100984,"im":0.00040456376985595945},{"omegaRadPerYr":0.0001312662749926737,"re":-0.00015614354905163857,"im":-0.00012183629827031596},{"omegaRadPerYr":0.0001426061431474546,"re":-0.00015326196073912603,"im":-0.00011811188348776635},{"omegaRadPerYr":0.00014000309579914057,"re":0.00010317940519689781,"im":0.00006505029768233116},{"omegaRadPerYr":0.00013386863466366606,"re":0.00007960628300069755,"im":0.0000757581826985722},{"omegaRadPerYr":0.0012496810113814863,"re":3.5498901583457483e-9,"im":7.528217439557287e-9}],"saturn":[{"omegaRadPerYr":0.00013693627469533272,"re":-0.02951381641782599,"im":0.038116342187048506},{"omegaRadPerYr":0.000020640753964721574,"re":0.028361784183640975,"im":0.016761738089661193},{"omegaRadPerYr":0.0002532317954411971,"re":-0.0013588658390314074,"im":-0.0013542513704600167},{"omegaRadPerYr":0.000014970698207898392,"re":-0.0007732461228524056,"im":0.0013033726384504506},{"omegaRadPerYr":0.00013126626734545323,"re":0.000471597345592877,"im":0.0003662972802790016},{"omegaRadPerYr":0.00014260613959102947,"re":0.00046558535071819594,"im":0.0003604428232502375},{"omegaRadPerYr":0.0012496810120112478,"re":-2.2413816213183782e-8,"im":-4.3761227707856587e-8}],"uranus":[{"omegaRadPerYr":0.000020640753931894893,"re":-0.03238248798724911,"im":-0.019137541918709554},{"omegaRadPerYr":0.00001497070511159062,"re":-0.014798949407797135,"im":0.024975442503237483},{"omegaRadPerYr":0.000003264464996922227,"re":0.00045075801975650074,"im":0.0016050091168723338},{"omegaRadPerYr":0.00013693627457864556,"re":0.0009471352229324553,"im":-0.0012234989208774374},{"omegaRadPerYr":0.00000929092310040761,"re":-0.0004015633445553787,"im":-0.0002340983045129561},{"omegaRadPerYr":0.00002631265778975313,"re":0.00022664443272842668,"im":-0.0003767093309339966},{"omegaRadPerYr":0.000014377069742263513,"re":0.00005819778777828242,"im":-0.00005910629719132463},{"omegaRadPerYr":0.000630109378889249,"re":-1.1513321171782036e-7,"im":2.121111820496366e-7}],"neptune":[{"omegaRadPerYr":0.000003264141494649585,"re":0.0024665853980857314,"im":0.008775596228059238},{"omegaRadPerYr":0.000014970655663003607,"re":0.0018888606403837439,"im":-0.0031894015693886913},{"omegaRadPerYr":0.00002064075339053921,"re":0.001629524897365034,"im":0.0009616466536353474},{"omegaRadPerYr":-0.00011593914172939557,"re":7.926785905418971e-8,"im":-4.6685992002385664e-8}]},"planetZeta":{"mercury":[{"omegaRadPerYr":-0.000027070318959890106,"re":0.03509799360084889,"im":0.012514361334229175},{"omegaRadPerYr":-0.000034136904111019706,"re":0.02695969560580955,"im":-0.02182848736661456},{"omegaRadPerYr":-0.000034710315380555884,"re":-0.012559168496773116,"im":0.008299078079729882},{"omegaRadPerYr":-0.00002646765287895232,"re":0.015448524016084493,"im":0.005987672372630069},{"omegaRadPerYr":-0.00003340798156431758,"re":-0.006455019023356067,"im":0.006226120154816196},{"omegaRadPerYr":5.384799590336571e-11,"re":-0.0039804878272654606,"im":0.013070100663895403},{"omegaRadPerYr":-0.000032847026422583094,"re":-0.0057003023891457685,"im":0.005259105004808747},{"omegaRadPerYr":-0.00003594792939956603,"re":-0.0012961241060881503,"im":0.0016159947697806383},{"omegaRadPerYr":-0.000025076126902622893,"re":0.0009463621131951934,"im":0.004877886245061111},{"omegaRadPerYr":-0.00003524962055187364,"re":0.0036108114629212922,"im":-0.004623693257308201},{"omegaRadPerYr":-0.000024475658963257535,"re":0.000022935888716433717,"im":-0.004353014017229704},{"omegaRadPerYr":-0.00003379278995294136,"re":-0.007806785352862373,"im":0.004006431979329447},{"omegaRadPerYr":-0.00003218755893963215,"re":-0.003704818024406685,"im":0.0011960062285103251},{"omegaRadPerYr":-0.000028313967733473683,"re":-0.007360063597313632,"im":-0.002796682485956438},{"omegaRadPerYr":-0.000027441506455909732,"re":0.005714284626147598,"im":-0.00031320953109534994},{"omegaRadPerYr":-0.000025718824169110346,"re":-0.00022772395090882533,"im":-0.00196911848110608}],"venus":[{"omegaRadPerYr":-1.6493179814802074e-12,"re":-0.0041316378307605294,"im":0.013147230899595441},{"omegaRadPerYr":-0.00009139039449248062,"re":0.004107318311959544,"im":0.008097727638340723},{"omegaRadPerYr":-0.000027077829093903624,"re":0.005723184464233101,"im":0.002103989760517981},{"omegaRadPerYr":-0.0000860809730098796,"re":-0.0017575781212555862,"im":0.005497182235759365},{"omegaRadPerYr":-0.00003414333446857137,"re":-0.0036683665695228925,"im":0.0029729549111848722},{"omegaRadPerYr":-0.0000887389845132903,"re":0.00017437292720263114,"im":0.002839346558623874},{"omegaRadPerYr":-0.00003332402755350087,"re":0.0008226456090349229,"im":-0.000990196523458664},{"omegaRadPerYr":-0.00003470699633273722,"re":0.0013981977987789472,"im":-0.0010036696718058783},{"omegaRadPerYr":-0.00002647213755615405,"re":0.002192723581813546,"im":0.0008156688371823413},{"omegaRadPerYr":-0.00009404722529229626,"re":-0.001310202146639285,"im":-0.0011534120915617934},{"omegaRadPerYr":-0.00003276165702381588,"re":0.0005497404769706646,"im":-0.0007663000693998108},{"omegaRadPerYr":-0.00009269906010008638,"re":0.000774314512799505,"im":-0.0004388675219967948},{"omegaRadPerYr":-0.00003375443573456643,"re":0.0014500491408612449,"im":-0.0008824349886108636},{"omegaRadPerYr":-0.000014507610514643914,"re":-0.0007092452594379532,"im":0.000644027430133631},{"omegaRadPerYr":-0.00002829966619518156,"re":-0.0015021530175610535,"im":-0.0005258063199032051},{"omegaRadPerYr":-0.00003214220556483202,"re":0.0006661181436053425,"im":-0.0002653316593905635}],"mars":[{"omegaRadPerYr":-0.00008608117781327729,"re":0.01021076871109231,"im":-0.03356452939087538},{"omegaRadPerYr":-0.00009138911102981668,"re":0.006448673929855857,"im":0.013039152420792278},{"omegaRadPerYr":4.816071417209985e-13,"re":-0.004136702437859971,"im":0.013131620521733377},{"omegaRadPerYr":-0.00008873924259238756,"re":0.000719141598532243,"im":0.006332417454417071},{"omegaRadPerYr":-0.00008342553512204505,"re":-0.003385387773112122,"im":0.004320169865314299},{"omegaRadPerYr":-0.00012773796958870522,"re":-0.002768952254262225,"im":0.0036533714419055593},{"omegaRadPerYr":-0.00008732462124121245,"re":0.002315330060230354,"im":0.00021373005960354581},{"omegaRadPerYr":-0.00008533729428600537,"re":0.0000662084835502976,"im":0.0014041635383156973},{"omegaRadPerYr":-0.0000927013779034122,"re":0.0012004630656653568,"im":-0.0007842461095443991},{"omegaRadPerYr":-0.00008675666306804544,"re":0.0007084511153542455,"im":-0.0008188292363296188},{"omegaRadPerYr":-0.00008568093272163965,"re":-0.0022269947606386804,"im":-0.0002915189256492408},{"omegaRadPerYr":-0.0000920127905544982,"re":-0.00012713738691022227,"im":0.0011838067237884178},{"omegaRadPerYr":-0.00008937418687447559,"re":-0.0002755627620382867,"im":0.0007026683188238479},{"omegaRadPerYr":-0.00002707848026399503,"re":0.0008884002528900317,"im":0.00034005750138313076},{"omegaRadPerYr":-0.00009092889696047022,"re":-0.00043281332848104276,"im":0.0003922132913606256},{"omegaRadPerYr":-0.00009004802546465118,"re":0.0008966966123701487,"im":-0.0005174229841345629}],"jupiter":[{"omegaRadPerYr":3.8532251623886294e-13,"re":-0.0041611376264940984,"im":0.013131043712311021},{"omegaRadPerYr":-0.0001277379845918518,"re":0.0019098261437600508,"im":-0.002505661007425496},{"omegaRadPerYr":-0.000003353110004279269,"re":0.0005277820779376669,"im":0.000232885172945674},{"omegaRadPerYr":-0.000014507601866590341,"re":-0.0003702089817814631,"im":0.00030787406163905093},{"omegaRadPerYr":-0.00013080293768331143,"re":-0.000017471248168841094,"im":-0.00001634692544524867},{"omegaRadPerYr":-0.000011442276716160314,"re":0.000012459821928796665,"im":0.00001269474660145274},{"omegaRadPerYr":0.0004016105340997148,"re":0.000008813036156379482,"im":-0.00001120905836048329},{"omegaRadPerYr":-0.00000882703119796523,"re":0.000007828457504338726,"im":0.000007811495266844502},{"omegaRadPerYr":-0.00002707681546885972,"re":-0.000009044718068424064,"im":-0.0000033400395822585094},{"omegaRadPerYr":-0.0000201768700641032,"re":0.000006156498033523465,"im":0.00000751705596830829},{"omegaRadPerYr":0.0002853150225305461,"re":0.000007292599938644516,"im":0.0000043773896212603925},{"omegaRadPerYr":-0.0002440335075107546,"re":0.000006274454282046377,"im":0.0000036485466831589452},{"omegaRadPerYr":0.00016901949668819092,"re":-0.000002519428503521004,"im":0.000005678550409035692},{"omegaRadPerYr":-0.0000027587103410433805,"re":0.000005899853582363865,"im":8.409148783838858e-7},{"omegaRadPerYr":-0.000034144381407487655,"re":0.000004719652715449978,"im":-0.0000037247689900126893},{"omegaRadPerYr":-0.00013340793710151563,"re":0.0000036153371332643194,"im":0.0000026473096931137383}],"saturn":[{"omegaRadPerYr":3.404546335777438e-13,"re":-0.004160815341357166,"im":0.01313037085706424},{"omegaRadPerYr":-0.0001277379845708044,"re":-0.004757531229884148,"im":0.0062418570697877025},{"omegaRadPerYr":-0.000003353103939425025,"re":0.0005082525979425591,"im":0.0002243582817470411},{"omegaRadPerYr":-0.000014507604683407504,"re":-0.0003003418401293427,"im":0.0002498658928695802},{"omegaRadPerYr":-0.00013080297316369022,"re":0.00004462521372870775,"im":0.00004172396328086738},{"omegaRadPerYr":0.0004016105342059343,"re":-0.000021890424766638027,"im":0.00002784479607678065},{"omegaRadPerYr":0.00028531501227593826,"re":-0.000016971705234483944,"im":-0.000010207779625167536},{"omegaRadPerYr":0.00016901949653661777,"re":0.000006353117499272568,"im":-0.000014464465864357296},{"omegaRadPerYr":-0.00002707712299185719,"re":-0.000011819853659803773,"im":-0.000004343694032290057},{"omegaRadPerYr":-0.00008608110335393078,"re":-0.0000038556316501964585,"im":0.000012260170759195859},{"omegaRadPerYr":-0.00013340770427701983,"re":-0.000008291647540272973,"im":-0.0000060449324319747485},{"omegaRadPerYr":-0.00012206708504485138,"re":-0.000007846468613598666,"im":-0.000006177485716796176},{"omegaRadPerYr":-0.000008827506775295263,"re":0.000006912239479621683,"im":0.0000070997530164759055},{"omegaRadPerYr":-0.00024403351156152198,"re":-0.000006770600853713768,"im":-0.000003936350447344142},{"omegaRadPerYr":-0.0009675113430843807,"re":-0.000004521653063656594,"im":-0.000006119593231226156},{"omegaRadPerYr":-0.000034143979713964837,"re":0.000006837682774689789,"im":-0.000005331591672335383}],"uranus":[{"omegaRadPerYr":1.609741252182826e-12,"re":-0.004160857683169045,"im":0.01312987468744944},{"omegaRadPerYr":-0.000014507581339335488,"re":0.006819771098312077,"im":-0.005674555448618447},{"omegaRadPerYr":-0.0000033533175354118582,"re":-0.0005101607663847248,"im":-0.00022431030942694354},{"omegaRadPerYr":-0.00012773798595007094,"re":0.00021390993605577627,"im":-0.00028068024741796866},{"omegaRadPerYr":-0.000011442390269999423,"re":-0.00021565535141600253,"im":-0.0002150430588126844},{"omegaRadPerYr":-0.000020175380767861024,"re":-0.00012178417740316124,"im":-0.0001456136848907788},{"omegaRadPerYr":-0.00000883157541584528,"re":-0.00012271282922940013,"im":-0.0001340577820362881},{"omegaRadPerYr":-0.000015103884918843288,"re":-0.00005803301762598432,"im":0.000026178909117342292},{"omegaRadPerYr":-0.000005772310491116802,"re":0.000018629424113074064,"im":-0.000018786863001070623},{"omegaRadPerYr":0.000055789019292025894,"re":-0.000003583719865681113,"im":0.00001877185158848246},{"omegaRadPerYr":0.00005011887511064967,"re":0.000011951449395631811,"im":0.000002279724016800827},{"omegaRadPerYr":-0.000027076655469348425,"re":0.000008609833687019483,"im":0.0000039638140159356984},{"omegaRadPerYr":-0.00013080298640432038,"re":-0.000007760607234183951,"im":-0.000007178734351197981},{"omegaRadPerYr":-0.000009192811893081681,"re":-0.000006996875336880973,"im":0.000009870536991923898},{"omegaRadPerYr":-0.000014175491386338482,"re":-0.00001270447511881092,"im":0.000007778091287202746},{"omegaRadPerYr":0.00010178796581047778,"re":-0.000004042702368549757,"im":-0.000006403994609904075}],"neptune":[{"omegaRadPerYr":-5.309966632404278e-12,"re":-0.004159721990836072,"im":0.013130987686676325},{"omegaRadPerYr":-0.000003353098139366354,"re":-0.005314734202759442,"im":-0.0023457634229809878},{"omegaRadPerYr":-0.000014507473764320118,"re":-0.0008167253455895104,"im":0.000679803323619701},{"omegaRadPerYr":-0.00001144267951307936,"re":0.00004103714819598339,"im":0.00004000434297961395},{"omegaRadPerYr":-0.0000027576446795887367,"re":-0.00006149846188777267,"im":-0.000008691440917605258},{"omegaRadPerYr":-0.000127737982036136,"re":0.000022941259364012485,"im":-0.000030013884419629694},{"omegaRadPerYr":-0.00002017340325592398,"re":0.00001785684479351327,"im":0.000021295006716797693},{"omegaRadPerYr":-0.000008980453563447026,"re":-0.0000018701512064522262,"im":0.000017342410863083055},{"omegaRadPerYr":0.0000022940676061081706,"re":-0.000008135256823034523,"im":0.0000159660700897465},{"omegaRadPerYr":-0.000005773430993827179,"re":-0.000010150670472290044,"im":0.000012347455189860531},{"omegaRadPerYr":-0.0000036886914876550886,"re":-0.000013289694939214323,"im":-0.000004967461981751487},{"omegaRadPerYr":-0.000015103364422159208,"re":0.000008447715112089554,"im":-0.0000038128138702162122},{"omegaRadPerYr":0.0000029055921239641946,"re":1.0991164784154305e-8,"im":-0.00000667040982519229},{"omegaRadPerYr":0.000050117959348442586,"re":-0.000005129825896938048,"im":-0.0000010095666431561402},{"omegaRadPerYr":0.0000389783728602118,"re":-0.000002068034832737985,"im":0.000002775618631657745}]},"anchorE":0.016702435651957018,"anchorPeriEclipticDeg":462.9179213996577,"anchorInclEclipticDeg":0.00010345820355474172,"anchorAscNodeEclipticDeg":140.29217988414328,"anchorZDotPerYr":[-8.21997e-7,-6.231489999999999e-7],"slopeTaperYears":27943.083333333332});
|
|
20
22
|
|
|
21
23
|
module.exports = { DEEP_MODES_ARTIFACT, DEEP_MODES_ARTIFACT_HASH };
|
package/src/moon/month-chain.cjs
CHANGED
|
@@ -58,6 +58,8 @@
|
|
|
58
58
|
* nNodalOfDateJ2000: number,
|
|
59
59
|
* moonApsidalJ2000Seconds: number,
|
|
60
60
|
* moonNodalJ2000Seconds: number,
|
|
61
|
+
* moonApsidalOfDateJ2000Seconds: number,
|
|
62
|
+
* moonNodalOfDateJ2000Seconds: number,
|
|
61
63
|
* moonSiderealMonthJ2000Seconds: number,
|
|
62
64
|
* sPerigee: number,
|
|
63
65
|
* sNode: number,
|
|
@@ -82,7 +84,9 @@ function createMoonMonthChain({ constants, fns }) {
|
|
|
82
84
|
gmEarthMoonM3PerS2, massRatioEarthMoon, moonSiderealMonthInputDays,
|
|
83
85
|
holisticYearJ2000, meanSiderealYearJ2000Seconds,
|
|
84
86
|
nApsidalOfDateJ2000, nNodalOfDateJ2000,
|
|
85
|
-
moonApsidalJ2000Seconds, moonNodalJ2000Seconds,
|
|
87
|
+
moonApsidalJ2000Seconds, moonNodalJ2000Seconds,
|
|
88
|
+
moonApsidalOfDateJ2000Seconds, moonNodalOfDateJ2000Seconds,
|
|
89
|
+
moonSiderealMonthJ2000Seconds,
|
|
86
90
|
sPerigee, sNode,
|
|
87
91
|
} = constants;
|
|
88
92
|
const { meanLodSecondsAtAge, meanSiderealYearSecondsAtAge, meanHAtAge, modulation } = fns;
|
|
@@ -161,22 +165,29 @@ function createMoonMonthChain({ constants, fns }) {
|
|
|
161
165
|
return nNodalOfDateJ2000 * Math.pow(hT / holisticYearJ2000, 2);
|
|
162
166
|
}
|
|
163
167
|
|
|
164
|
-
/**
|
|
168
|
+
/** The of-date period from the H² counter: N ∝ H² and period = H·T_yr/N
|
|
169
|
+
* ⇒ period ∝ T_yr / H, anchored on the engine's own of-date J2000 period
|
|
170
|
+
* (the t_Ma === 0 fast path returns it EXACTLY, as the star-referenced
|
|
171
|
+
* anchors do). UNIT FIX: the earlier form rebuilt the period as
|
|
172
|
+
* H × sidereal-year seconds / N while N was counted in mean-SOLAR-year
|
|
173
|
+
* days — the sidereal/solar ratio 1.0000388 put the J2000 perigee cycle
|
|
174
|
+
* 2.9 h and the node 6.2 h above the anchors (found by the Formula
|
|
175
|
+
* Verification Moon panels against Meeus). The year RATIO carries the
|
|
176
|
+
* evolution; the anchor carries the unit. @param {number} tMa
|
|
177
|
+
* @returns {number | null} */
|
|
165
178
|
function apsidalPrecessionSecondsOfDateAtAge(tMa) {
|
|
166
|
-
|
|
179
|
+
if (tMa === 0) return moonApsidalOfDateJ2000Seconds;
|
|
167
180
|
const hT = meanHAtAge(tMa);
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
return hT * tYrS / n; // H in years × seconds/year / N
|
|
181
|
+
if (hT === null) return null;
|
|
182
|
+
return moonApsidalOfDateJ2000Seconds * (meanSiderealYearSecondsAtAge(tMa) / meanSiderealYearJ2000Seconds) * (holisticYearJ2000 / hT);
|
|
171
183
|
}
|
|
172
184
|
|
|
173
185
|
/** @param {number} tMa @returns {number | null} */
|
|
174
186
|
function nodalPrecessionSecondsOfDateAtAge(tMa) {
|
|
175
|
-
|
|
187
|
+
if (tMa === 0) return moonNodalOfDateJ2000Seconds;
|
|
176
188
|
const hT = meanHAtAge(tMa);
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
return hT * tYrS / n;
|
|
189
|
+
if (hT === null) return null;
|
|
190
|
+
return moonNodalOfDateJ2000Seconds * (meanSiderealYearSecondsAtAge(tMa) / meanSiderealYearJ2000Seconds) * (holisticYearJ2000 / hT);
|
|
180
191
|
}
|
|
181
192
|
|
|
182
193
|
/** Perigee precession period in seconds — Brouwer–Clemence m² scaling ×
|
|
@@ -52,7 +52,8 @@
|
|
|
52
52
|
* A1-class correlated-subsample effect (the tracked events sit −1.6″
|
|
53
53
|
* below the +1.4″ fleet mean and sample the near-annual arguments at
|
|
54
54
|
* correlated phases; the era-split refutes anchor double-counting and
|
|
55
|
-
* the modern era improves most, 3.57 → 3.34). The
|
|
55
|
+
* the modern era improves most, 3.57 → 3.34). The api gate (8″ then; 12″
|
|
56
|
+
* since plan 06 R3 item 1 — the physical ΔT-convention floor) holds
|
|
56
57
|
* (max 6.2″). Coefficients are stored with the run→real argument
|
|
57
58
|
* mapping already applied (the extraction's heliocentric-planet vs
|
|
58
59
|
* geocentric-sun π-offset is folded into the signs).
|
package/src/moon/series.cjs
CHANGED
|
@@ -26,6 +26,13 @@
|
|
|
26
26
|
|
|
27
27
|
'use strict';
|
|
28
28
|
|
|
29
|
+
// Plan 06 R3 item 1: the DERIVED series-extension tail (the D2 planetary and
|
|
30
|
+
// node terms, moon/series-extension.cjs) is part of the ONE scene Moon —
|
|
31
|
+
// formerly added by the besselian tier alone, so the rendered Moon and the
|
|
32
|
+
// eclipse-location Moon were two different Moons. The truncated finder forms
|
|
33
|
+
// below stay bare by certified design.
|
|
34
|
+
const { moonSeriesExtensionDeg } = require('./series-extension.cjs');
|
|
35
|
+
|
|
29
36
|
/**
|
|
30
37
|
* @typedef {Array<[number, number, number, number, number]>} MeeusTermTable
|
|
31
38
|
*/
|
|
@@ -164,10 +171,17 @@ function createMoonSeries({ constants, fns }) {
|
|
|
164
171
|
* owns the UT→TT conversion — engine timing conventions differ).
|
|
165
172
|
* Returns everything the scene blocks write:
|
|
166
173
|
* thetaAddRad — the hierarchy θ increment (EoC-half-subtracted Σl);
|
|
167
|
-
* lonDeg — full ecliptic longitude
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
174
|
+
* lonDeg — full ecliptic longitude (GEOMETRIC, mean equinox of date)
|
|
175
|
+
* incl. the derived series-extension tail and moonMeeusLpCorrection
|
|
176
|
+
* (retired to 0 at plan 06 R3 item 1: measured against Horizons' apparent
|
|
177
|
+
* Moon over 1970–2049 the series needs no anchor, −1.0″ ± 1.5″ flat in
|
|
178
|
+
* elongation; the former +32.75″ was the eclipse tier's mean Sun
|
|
179
|
+
* compensated — its aberration κ, the I2 long inequality and the trend-ΔT
|
|
180
|
+
* offset — not a property of the Moon);
|
|
181
|
+
* latRad/latDeg — Σb with all six corrections plus the extension (BOTH
|
|
182
|
+
* computed from Σb directly: the browser stores radians, the Node engine
|
|
183
|
+
* degrees, and (x·D2R)/D2R is not bit-exactly x); distKm — two-term
|
|
184
|
+
* ellipse; T.
|
|
171
185
|
* @param {number} dDaysTT
|
|
172
186
|
* @returns {{thetaAddRad: number, lonDeg: number, latRad: number, latDeg: number, distKm: number, T: number}} */
|
|
173
187
|
function sceneEvalAt(dDaysTT) {
|
|
@@ -180,9 +194,11 @@ function createMoonSeries({ constants, fns }) {
|
|
|
180
194
|
const E = eFactorForD(d, T, T2);
|
|
181
195
|
const E2 = E * E;
|
|
182
196
|
const { A1, A2, A3 } = additionalArgs(T, d);
|
|
197
|
+
const ext = moonSeriesExtensionDeg(T); // derived tail, degrees → the tables' 1e-6° units
|
|
183
198
|
|
|
184
199
|
let Sl = sumTable(moonL, Dr, Mr, Mpr, Fr, E, E2);
|
|
185
200
|
Sl += 3958 * Math.sin(A1) + 1962 * Math.sin(Lp - Fr) + 318 * Math.sin(A2);
|
|
201
|
+
Sl += ext.dLonDeg * 1e6;
|
|
186
202
|
// Subtract the EoC portion the off-centre orbit geometry already provides.
|
|
187
203
|
const eocHalf = getEccentricityBase() / 2;
|
|
188
204
|
Sl -= (2 * eocHalf / D2R * 1e6) * Math.sin(Mpr);
|
|
@@ -193,6 +209,7 @@ function createMoonSeries({ constants, fns }) {
|
|
|
193
209
|
Sb += -2235 * Math.sin(Lp) + 382 * Math.sin(A3);
|
|
194
210
|
Sb += 175 * Math.sin(A1 - Fr) + 175 * Math.sin(A1 + Fr);
|
|
195
211
|
Sb += 127 * Math.sin(Lp - Mpr) - 115 * Math.sin(Lp + Mpr);
|
|
212
|
+
Sb += ext.dLatDeg * 1e6;
|
|
196
213
|
const latRad = Sb * 1e-6 * D2R;
|
|
197
214
|
const latDeg = Sb * 1e-6;
|
|
198
215
|
|