@essrt/physics 4.0.0 → 4.2.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/package.json +5 -1
- package/src/constants/generated.d.ts +9 -0
- package/src/constants/generated.js +10 -0
- package/src/earth/deep-orbital-history.cjs +190 -0
- package/src/index.js +8 -0
- package/src/model.js +31 -10
- package/src/moon/deep-ecc-channel.cjs +132 -0
- package/src/moon/deep-modes-artifact.cjs +19 -0
- package/src/moon/ecc-channel.cjs +11 -8
- package/src/planets/chain-artifact.js +2 -2
- package/src/planets/inv-plane-frame.cjs +103 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@essrt/physics",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"description": "ESSRT (Expanding Solar System Resonance Theory) physics core \u2014 pure, injectable-constants, no I/O, no globals, no DOM. The complete model incl. fitted coefficients; every published version immutably ships one recorded model identity.",
|
|
5
5
|
"essrt": {
|
|
6
6
|
"modelVersion": "v13.0",
|
|
@@ -32,6 +32,9 @@
|
|
|
32
32
|
"./phase": "./src/phase/index.cjs",
|
|
33
33
|
"./cardinal": "./src/cardinal/index.cjs",
|
|
34
34
|
"./moon/ecc-channel": "./src/moon/ecc-channel.cjs",
|
|
35
|
+
"./moon/deep-ecc-channel": "./src/moon/deep-ecc-channel.cjs",
|
|
36
|
+
"./moon/deep-modes-artifact": "./src/moon/deep-modes-artifact.cjs",
|
|
37
|
+
"./earth/deep-orbital-history": "./src/earth/deep-orbital-history.cjs",
|
|
35
38
|
"./moon/month-chain": "./src/moon/month-chain.cjs",
|
|
36
39
|
"./chain-cycles": "./src/chain-cycles/index.cjs",
|
|
37
40
|
"./moon/arguments": "./src/moon/arguments.cjs",
|
|
@@ -45,6 +48,7 @@
|
|
|
45
48
|
"./planets/asc-node-integrator": "./src/planets/asc-node-integrator.cjs",
|
|
46
49
|
"./planets/orbit-chain": "./src/planets/orbit-chain.cjs",
|
|
47
50
|
"./planets/keplerian-chain": "./src/planets/keplerian-chain.cjs",
|
|
51
|
+
"./planets/inv-plane-frame": "./src/planets/inv-plane-frame.cjs",
|
|
48
52
|
"./planets/predict": "./src/planets/predict.cjs",
|
|
49
53
|
"./planets/model": "./src/planets/model.cjs",
|
|
50
54
|
"./deltat/cycles": "./src/deltat/cycles.cjs",
|
|
@@ -741,4 +741,13 @@ export declare const REFERENCE_DATA: {
|
|
|
741
741
|
"max": number;
|
|
742
742
|
};
|
|
743
743
|
};
|
|
744
|
+
readonly planetSpinObserved: {
|
|
745
|
+
"marsSpinPrecessionArcsecPerYr": number;
|
|
746
|
+
"jupiterSpinPrecessionApproxArcsecPerYr": number;
|
|
747
|
+
"saturnSpinPrecessionPresentArcsecPerYr": number;
|
|
748
|
+
"saturnPresentToLongTermFraction": number;
|
|
749
|
+
"marsObliquityJ2000Deg": number;
|
|
750
|
+
"jupiterObliquityJ2000Deg": number;
|
|
751
|
+
"saturnObliquityJ2000Deg": number;
|
|
752
|
+
};
|
|
744
753
|
};
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* moonGrailWilliams2014 target
|
|
15
15
|
* giaCoxChaoPeltier target
|
|
16
16
|
* obliquityChapront2002 target
|
|
17
|
+
* planetSpinObserved target
|
|
17
18
|
* ascendingNodesSouamiSouchay target
|
|
18
19
|
* laplaceLagrangeBounds target
|
|
19
20
|
* jplEclipticInclinationTrends target
|
|
@@ -913,4 +914,13 @@ export const REFERENCE_DATA = Object.freeze({
|
|
|
913
914
|
"max": 200
|
|
914
915
|
}
|
|
915
916
|
},
|
|
917
|
+
planetSpinObserved: {
|
|
918
|
+
"marsSpinPrecessionArcsecPerYr": -7.606,
|
|
919
|
+
"jupiterSpinPrecessionApproxArcsecPerYr": -2.8,
|
|
920
|
+
"saturnSpinPrecessionPresentArcsecPerYr": -0.45,
|
|
921
|
+
"saturnPresentToLongTermFraction": 0.68,
|
|
922
|
+
"marsObliquityJ2000Deg": 25.19,
|
|
923
|
+
"jupiterObliquityJ2000Deg": 3.13,
|
|
924
|
+
"saturnObliquityJ2000Deg": 26.73
|
|
925
|
+
},
|
|
916
926
|
});
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE DEEP ORBITAL HISTORY FACTORY — the ONE home for the Stage-C hybrid
|
|
3
|
+
* mathematics (plan 02 §8, C-3): Earth's deep-time orbital quantities from
|
|
4
|
+
* the engine's own governed mode tables, and the obliquity hybrid
|
|
5
|
+
*
|
|
6
|
+
* ds/dt = α (ŝ·n̂)(ŝ×n̂), α = ψ̇_J2000 / cos ε₀
|
|
7
|
+
*
|
|
8
|
+
* with the orbit normal n̂(t) from an anchored ζ mode-sum and ψ̇_J2000 the
|
|
9
|
+
* injected engine-K anchor (the equinox-precession rate measured from the
|
|
10
|
+
* engine's own year lengths). ZERO fitted constants; the J2000 celestial
|
|
11
|
+
* pole sits at ecliptic longitude +90° (s₀ = (0, +sin ε₀, cos ε₀) — the
|
|
12
|
+
* −90° choice anti-correlates perfectly, the recorded convention catch).
|
|
13
|
+
*
|
|
14
|
+
* Consumers (each injecting its own certified surfaces, cross-engine
|
|
15
|
+
* matched): the Stage-C lab / verdict generator (both ζ tiers), the Node
|
|
16
|
+
* shim tools/lib/deep-orbital-history.js (the deep insolation extractor),
|
|
17
|
+
* and the browser's published ε surfaces (VFP chart, Earth-panel row) via
|
|
18
|
+
* the generated deep-modes embed. The ERA machinery (frame conversions,
|
|
19
|
+
* lunar D5, besselian, the scene's A-solve and Step 6b) stays on the
|
|
20
|
+
* certified fitted law — measured: the hybrid differs from it by 5″ rms in
|
|
21
|
+
* 1900–2100 / 19.5″ in 1600–2400, mostly hybrid-side there — the same
|
|
22
|
+
* certification split as e and ϖ.
|
|
23
|
+
*
|
|
24
|
+
* The climatic precession is the PHYSICAL of-date angle from the moving
|
|
25
|
+
* equinox γ = unit(ŝ×n̂) to the perihelion direction, measured in the orbit
|
|
26
|
+
* plane about n̂ — no linear-precession approximation at any epoch
|
|
27
|
+
* (validated: reproduces the J2000 ecliptic longitude and La2004's
|
|
28
|
+
* e·sin ϖ̃ exactly at t = 0).
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
'use strict';
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @param {{
|
|
35
|
+
* zModes: ReadonlyArray<{omegaRadPerYr: number, re: number, im: number}>,
|
|
36
|
+
* zetaModes: ReadonlyArray<{omegaRadPerYr: number, re: number, im: number}>,
|
|
37
|
+
* anchorE: number,
|
|
38
|
+
* anchorPeriEclipticDeg: number,
|
|
39
|
+
* anchorInclEclipticDeg: number,
|
|
40
|
+
* anchorAscNodeEclipticDeg: number,
|
|
41
|
+
* axialPrecessionYearsJ2000: number,
|
|
42
|
+
* obliquityJ2000Deg: number,
|
|
43
|
+
* }} deps — mode tables from the governed deep artifact (choose the ζ tier
|
|
44
|
+
* per consumer: era = its own 8-term extraction, deep = the 16-term
|
|
45
|
+
* table; NEVER a slice); anchors from the chain artifact's one home; the
|
|
46
|
+
* axial-precession years and ε₀ from the injecting engine's certified
|
|
47
|
+
* surfaces.
|
|
48
|
+
*/
|
|
49
|
+
function createDeepOrbitalHistory({
|
|
50
|
+
zModes, zetaModes,
|
|
51
|
+
anchorE, anchorPeriEclipticDeg, anchorInclEclipticDeg, anchorAscNodeEclipticDeg,
|
|
52
|
+
axialPrecessionYearsJ2000, obliquityJ2000Deg,
|
|
53
|
+
}) {
|
|
54
|
+
const D2R = Math.PI / 180, R2D = 180 / Math.PI;
|
|
55
|
+
|
|
56
|
+
const mkAnchored = (
|
|
57
|
+
/** @type {ReadonlyArray<{omegaRadPerYr: number, re: number, im: number}>} */ modes,
|
|
58
|
+
/** @type {[number, number]} */ anchor,
|
|
59
|
+
) => {
|
|
60
|
+
const sum = (/** @type {number} */ t) => {
|
|
61
|
+
let re = 0, im = 0;
|
|
62
|
+
for (const m of modes) {
|
|
63
|
+
const c = Math.cos(m.omegaRadPerYr * t), s = Math.sin(m.omegaRadPerYr * t);
|
|
64
|
+
re += m.re * c - m.im * s;
|
|
65
|
+
im += m.re * s + m.im * c;
|
|
66
|
+
}
|
|
67
|
+
return [re, im];
|
|
68
|
+
};
|
|
69
|
+
const s0 = sum(0), R = [anchor[0] - s0[0], anchor[1] - s0[1]];
|
|
70
|
+
return (/** @type {number} */ t) => { const [x, y] = sum(t); return [x + R[0], y + R[1]]; };
|
|
71
|
+
};
|
|
72
|
+
const s2h = Math.sin(anchorInclEclipticDeg / 2 * D2R);
|
|
73
|
+
const zetaAt = mkAnchored(zetaModes,
|
|
74
|
+
[s2h * Math.cos(anchorAscNodeEclipticDeg * D2R), s2h * Math.sin(anchorAscNodeEclipticDeg * D2R)]);
|
|
75
|
+
const zAt = mkAnchored(zModes,
|
|
76
|
+
[anchorE * Math.cos(anchorPeriEclipticDeg * D2R), anchorE * Math.sin(anchorPeriEclipticDeg * D2R)]);
|
|
77
|
+
|
|
78
|
+
/** @param {number} t */
|
|
79
|
+
const inclNode = (t) => {
|
|
80
|
+
const [q, p] = zetaAt(t);
|
|
81
|
+
return { i: 2 * Math.asin(Math.min(1, Math.hypot(q, p))), Om: Math.atan2(p, q) };
|
|
82
|
+
};
|
|
83
|
+
/** @param {number} t */
|
|
84
|
+
const orbitNormal = (t) => {
|
|
85
|
+
const { i, Om } = inclNode(t);
|
|
86
|
+
return [Math.sin(i) * Math.sin(Om), -Math.sin(i) * Math.cos(Om), Math.cos(i)];
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
const psiDot = (2 * Math.PI) / axialPrecessionYearsJ2000;
|
|
90
|
+
const EPS0 = obliquityJ2000Deg * D2R;
|
|
91
|
+
const ALPHA = psiDot / Math.cos(EPS0);
|
|
92
|
+
|
|
93
|
+
const cross = (/** @type {number[]} */ a, /** @type {number[]} */ b) =>
|
|
94
|
+
[a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];
|
|
95
|
+
const dot = (/** @type {number[]} */ a, /** @type {number[]} */ b) => a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
|
|
96
|
+
const deriv = (/** @type {number[]} */ s, /** @type {number} */ t) => {
|
|
97
|
+
const n = orbitNormal(t);
|
|
98
|
+
const k = ALPHA * dot(s, n);
|
|
99
|
+
const c = cross(s, n);
|
|
100
|
+
return [k * c[0], k * c[1], k * c[2]];
|
|
101
|
+
};
|
|
102
|
+
const rk4 = (/** @type {number[]} */ s, /** @type {number} */ t, /** @type {number} */ h) => {
|
|
103
|
+
const k1 = deriv(s, t);
|
|
104
|
+
const k2 = deriv([s[0] + h / 2 * k1[0], s[1] + h / 2 * k1[1], s[2] + h / 2 * k1[2]], t + h / 2);
|
|
105
|
+
const k3 = deriv([s[0] + h / 2 * k2[0], s[1] + h / 2 * k2[1], s[2] + h / 2 * k2[2]], t + h / 2);
|
|
106
|
+
const k4 = deriv([s[0] + h * k3[0], s[1] + h * k3[1], s[2] + h * k3[2]], t + h);
|
|
107
|
+
const o = [0, 1, 2].map((i) => s[i] + h / 6 * (k1[i] + 2 * k2[i] + 2 * k3[i] + k4[i]));
|
|
108
|
+
const r = Math.hypot(o[0], o[1], o[2]);
|
|
109
|
+
return [o[0] / r, o[1] / r, o[2] / r];
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
/** One quantity bundle at time t (years from J2000) from spin axis s. */
|
|
113
|
+
function sampleAt(/** @type {number[]} */ s, /** @type {number} */ t) {
|
|
114
|
+
const n = orbitNormal(t);
|
|
115
|
+
const { i, Om } = inclNode(t);
|
|
116
|
+
const [zx, zy] = zAt(t);
|
|
117
|
+
const e = Math.hypot(zx, zy);
|
|
118
|
+
const w = Math.atan2(zy, zx) - Om;
|
|
119
|
+
const ph = [
|
|
120
|
+
Math.cos(Om) * Math.cos(w) - Math.sin(Om) * Math.sin(w) * Math.cos(i),
|
|
121
|
+
Math.sin(Om) * Math.cos(w) + Math.cos(Om) * Math.sin(w) * Math.cos(i),
|
|
122
|
+
Math.sin(w) * Math.sin(i),
|
|
123
|
+
];
|
|
124
|
+
const g = cross(s, n);
|
|
125
|
+
const gn = Math.hypot(g[0], g[1], g[2]);
|
|
126
|
+
const gu = [g[0] / gn, g[1] / gn, g[2] / gn];
|
|
127
|
+
const cosA = dot(gu, ph);
|
|
128
|
+
const sinA = dot(n, cross(gu, ph));
|
|
129
|
+
const periOfDateDeg = ((Math.atan2(sinA, cosA) * R2D) % 360 + 360) % 360;
|
|
130
|
+
return {
|
|
131
|
+
epsDeg: Math.acos(Math.max(-1, Math.min(1, dot(s, n)))) * R2D,
|
|
132
|
+
e,
|
|
133
|
+
periOfDateDeg,
|
|
134
|
+
eSinPeri: e * Math.sin(periOfDateDeg * D2R),
|
|
135
|
+
eCosPeri: e * Math.cos(periOfDateDeg * D2R),
|
|
136
|
+
inclEclDeg: i * R2D,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Integrate once over [min(t0,t1,0), max(t0,t1,0)] and return a sampler
|
|
142
|
+
* on a stepYr grid (linear interpolation; angles interpolated on the
|
|
143
|
+
* wrapped difference). t in years from J2000, negative = past.
|
|
144
|
+
* @param {number} t0Yr @param {number} t1Yr @param {number} stepYr
|
|
145
|
+
*/
|
|
146
|
+
function build(t0Yr, t1Yr, stepYr) {
|
|
147
|
+
const tMin = Math.min(t0Yr, t1Yr, 0), tMax = Math.max(t0Yr, t1Yr, 0);
|
|
148
|
+
const grid = new Map();
|
|
149
|
+
const S0 = [0, Math.sin(EPS0), Math.cos(EPS0)];
|
|
150
|
+
const H_STEP = 5;
|
|
151
|
+
for (const dir of [-1, +1]) {
|
|
152
|
+
let s = S0, t = 0;
|
|
153
|
+
grid.set(0, sampleAt(s, 0));
|
|
154
|
+
const end = dir < 0 ? tMin : tMax;
|
|
155
|
+
while (dir < 0 ? t > end : t < end) {
|
|
156
|
+
s = rk4(s, t, dir * H_STEP);
|
|
157
|
+
t += dir * H_STEP;
|
|
158
|
+
// Store ONLY at true step multiples: an end-of-range sample under a
|
|
159
|
+
// ROUNDED key collides with a real grid node (measured during C-3:
|
|
160
|
+
// build(+200, …, 1000) stored ε(+200) under key 0, clobbering the
|
|
161
|
+
// t = 0 sample by 94″ — the verdict generator's rms caught it).
|
|
162
|
+
// Partial edge segments are covered by at()'s a-side fallback.
|
|
163
|
+
if (Math.abs(t % stepYr) < H_STEP / 2) grid.set(Math.round(t / stepYr) * stepYr, sampleAt(s, t));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
/** @param {number} tYr */
|
|
168
|
+
at(tYr) {
|
|
169
|
+
const k0 = Math.floor(tYr / stepYr) * stepYr, k1 = k0 + stepYr;
|
|
170
|
+
const a = grid.get(k0), b = grid.get(k1) ?? a;
|
|
171
|
+
if (!a) throw new Error(`deep-orbital-history: ${tYr} outside the built range`);
|
|
172
|
+
const f = (tYr - k0) / stepYr;
|
|
173
|
+
const lerp = (/** @type {number} */ x, /** @type {number} */ y) => x + (y - x) * f;
|
|
174
|
+
const dAng = (/** @type {number} */ x, /** @type {number} */ y) => x + (((y - x + 540) % 360) - 180) * f;
|
|
175
|
+
return {
|
|
176
|
+
epsDeg: lerp(a.epsDeg, b.epsDeg),
|
|
177
|
+
e: lerp(a.e, b.e),
|
|
178
|
+
periOfDateDeg: ((dAng(a.periOfDateDeg, b.periOfDateDeg) % 360) + 360) % 360,
|
|
179
|
+
eSinPeri: lerp(a.eSinPeri, b.eSinPeri),
|
|
180
|
+
eCosPeri: lerp(a.eCosPeri, b.eCosPeri),
|
|
181
|
+
inclEclDeg: lerp(a.inclEclDeg, b.inclEclDeg),
|
|
182
|
+
};
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
return { build, alphaArcsecPerYr: ALPHA * R2D * 3600 };
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
module.exports = { createDeepOrbitalHistory };
|
package/src/index.js
CHANGED
|
@@ -120,7 +120,15 @@ export * as planetOrbitChain from './planets/orbit-chain.cjs';
|
|
|
120
120
|
// P5/K4.6c — the engine-D Keplerian chain (pure evaluator + the embedded
|
|
121
121
|
// governed artifact; the browser flag path consumes exactly these).
|
|
122
122
|
export { buildPlanetChainsFromArtifactData, computePlanetElementsAtYear, computeHeliocentricEclipticFromElements, computePoissonArgRad, computeOsculatingElements, solveKeplerRad, ANCHOR_EPOCH_YEAR, ANCHOR_EPOCH_JD } from './planets/keplerian-chain.cjs';
|
|
123
|
+
export { computeEquatorNodeOriginSFrameDeg, convertNodeSFrameToEquatorOriginDeg } from './planets/inv-plane-frame.cjs';
|
|
123
124
|
export { CHAIN_ARTIFACT, CHAIN_ARTIFACT_HASH } from './planets/chain-artifact.js';
|
|
125
|
+
// Engine-switch Stage B, T5d-(d): the deep-time Earth-z channel (the deep
|
|
126
|
+
// lunar-chain modulation rides it; era consumers stay on the H/3 channel).
|
|
127
|
+
export { createDeepEccChannel } from './moon/deep-ecc-channel.cjs';
|
|
128
|
+
export { DEEP_MODES_ARTIFACT, DEEP_MODES_ARTIFACT_HASH } from './moon/deep-modes-artifact.cjs';
|
|
129
|
+
// Stage C-3: the ONE home of the obliquity-hybrid / deep-orbital-history
|
|
130
|
+
// mathematics (published-ε surfaces + the deep insolation features).
|
|
131
|
+
export { createDeepOrbitalHistory } from './earth/deep-orbital-history.cjs';
|
|
124
132
|
export { createPredictivePrecession, calcPlanetPerihelionLongDeg } from './planets/predict.cjs';
|
|
125
133
|
// L10 — the composition front door: one law set, N body records. Thin by
|
|
126
134
|
// design; engines keep their direct call sites (see planets/model.cjs).
|
package/src/model.js
CHANGED
|
@@ -27,6 +27,8 @@ import { createDeepTimeLod } from './deltat/deep-time.cjs';
|
|
|
27
27
|
import { createMoonRecessionHistory, createSolarChannelBudget } from './deltat/recession-history.cjs';
|
|
28
28
|
import { evalClimateL1OrbitalPermil } from './climate/l1-orbital.cjs';
|
|
29
29
|
import { createMoonEccChannel } from './moon/ecc-channel.cjs';
|
|
30
|
+
import { createDeepEccChannel } from './moon/deep-ecc-channel.cjs';
|
|
31
|
+
import { DEEP_MODES_ARTIFACT } from './moon/deep-modes-artifact.cjs';
|
|
30
32
|
import { createMoonMonthChain } from './moon/month-chain.cjs';
|
|
31
33
|
import { createChainCycleIntegrator } from './chain-cycles/index.cjs';
|
|
32
34
|
import { createMoonArguments, jdToDecimalYear } from './moon/arguments.cjs';
|
|
@@ -333,9 +335,13 @@ export function assembleModel(C, F, laws = {}) {
|
|
|
333
335
|
// measured, the H/16 law's present ė (−0.84e-5/cy) is 5× below the
|
|
334
336
|
// observed −4.20e-5 while this law reads −4.31e-5 (Phase-0 record:
|
|
335
337
|
// tools/explore/fq7s-h3-law-candidate.mjs; JPL Sun 1.49″, registry 0.80″,
|
|
336
|
-
// syzygy 3.72″). Consumers
|
|
337
|
-
//
|
|
338
|
-
// and the cardinal-point braid —
|
|
338
|
+
// syzygy 3.72″). Consumers (engine-switch decision (ii) restatement,
|
|
339
|
+
// plan 02 §8): the eclipse Sun (equation of centre), the besselian Sun
|
|
340
|
+
// distance and the cardinal-point braid — the CLOCK-side machinery. The
|
|
341
|
+
// LUNAR chain (E-factor, perigee/node modulation/T², argument Δe² and
|
|
342
|
+
// of-date rates) rides the ONE deep e (deep-ecc-channel.cjs — the
|
|
343
|
+
// engine's own ±10-Myr z-vector); this H/3 line is its epoch-local
|
|
344
|
+
// tangent (E18), agreeing within 4.2e-5 across the historical era.
|
|
339
345
|
// ONE implementation for all three runtimes: moon/ecc-channel.cjs (the
|
|
340
346
|
// Node engine's deep-time.js and the browser's script.js instantiate the
|
|
341
347
|
// same channel with the same inputs). Its phase counter runs from J2000
|
|
@@ -349,6 +355,14 @@ export function assembleModel(C, F, laws = {}) {
|
|
|
349
355
|
inclinationCycleAnchorDeg: C.earthOrbital.earthInclinationCycleAnchor,
|
|
350
356
|
eccentricityJ2000: C.earthOrbital.earthEccentricityJ2000,
|
|
351
357
|
});
|
|
358
|
+
// Engine-switch decision (ii) (plan 02 §8): the ONE deep e — the engine's
|
|
359
|
+
// own ±10-Myr mode table, anchored form — feeds the ENTIRE lunar chain
|
|
360
|
+
// (modulation, cycle counts, arguments eccAt/channelIntegral, E-factor).
|
|
361
|
+
// The Sun/clock machinery (eclipse Sun EoC, besselian Sun distance,
|
|
362
|
+
// cardinal braid) stays on the H/3 channel above — a certification
|
|
363
|
+
// split, not a physics one (the two agree within 4.2e-5 in-era). The
|
|
364
|
+
// laws hook deliberately does NOT reach this channel.
|
|
365
|
+
const deepEcc = createDeepEccChannel(DEEP_MODES_ARTIFACT);
|
|
352
366
|
/** @param {number} year @returns {number} */
|
|
353
367
|
const eccentricityAt = laws.eccentricityAt ?? ((year) => moonEcc.eccAt(year - 2000));
|
|
354
368
|
/** de/dyear of the one law — the cardinal braid's equation-of-centre
|
|
@@ -682,7 +696,13 @@ export function assembleModel(C, F, laws = {}) {
|
|
|
682
696
|
meanLodSecondsAtAge: /** @param {number} tMa */ (tMa) => deepLod.lodSecondsAtAge(tMa),
|
|
683
697
|
meanSiderealYearSecondsAtAge: /** @param {number} tMa */ (tMa) => deepLod.siderealYearSecondsAtAge(tMa),
|
|
684
698
|
meanHAtAge: /** @param {number} tMa */ (tMa) => deepLod.hAtAge(tMa),
|
|
685
|
-
|
|
699
|
+
// Decision (ii) (owner-approved MODEL CHANGE, plan 02 §8): the whole
|
|
700
|
+
// lunar chain — this modulation, the integrated cycle counts it
|
|
701
|
+
// drives, the arguments' eccAt/channelIntegral and the E-factor —
|
|
702
|
+
// reads the ONE deep e. The era shift in the ancient eclipse stack is
|
|
703
|
+
// accepted and rebaselined with its explanation (deep e is
|
|
704
|
+
// La2004-corroborated in-era).
|
|
705
|
+
modulation: /** @param {number} tMa @param {number} s */ (tMa, s) => deepEcc.modulation(tMa, s),
|
|
686
706
|
distanceMetresAtAge: moonDistanceMetresAtAge,
|
|
687
707
|
},
|
|
688
708
|
});
|
|
@@ -757,11 +777,12 @@ export function assembleModel(C, F, laws = {}) {
|
|
|
757
777
|
eccentricityDotDotJ2000: C.earthOrbital.earthEccentricityDotDotJ2000,
|
|
758
778
|
elpEarthFigureJ2ArcsecPerCy2: C.moonMeeus.elpW1T2Decomposition_arcsecPerCy2.earthFigureJ2,
|
|
759
779
|
elpGeneralPrecessionPA_T2ArcsecPerCy2: C.moonMeeus.elpW1T2Decomposition_arcsecPerCy2.generalPrecessionPA_T2_Lieske1976,
|
|
760
|
-
|
|
780
|
+
// Decision (ii): the lunar chain reads ONE deep e end to end
|
|
781
|
+
eccE0: deepEcc.e0,
|
|
761
782
|
},
|
|
762
783
|
fns: {
|
|
763
|
-
eccAt: /** @param {number} tYr */ (tYr) =>
|
|
764
|
-
channelIntegral: /** @param {number} T @param {number} s */ (T, s) =>
|
|
784
|
+
eccAt: /** @param {number} tYr */ (tYr) => deepEcc.eccAt(tYr),
|
|
785
|
+
channelIntegral: /** @param {number} T @param {number} s */ (T, s) => deepEcc.channelIntegral(T, s),
|
|
765
786
|
computeObliquityEarth: obliquitySnapshotDeg,
|
|
766
787
|
jdToSIyear: yearFromJD,
|
|
767
788
|
tropicalOrbitsBetween: mcTropical,
|
|
@@ -809,10 +830,10 @@ export function assembleModel(C, F, laws = {}) {
|
|
|
809
830
|
return Number.isFinite(dT) ? dT : 0;
|
|
810
831
|
};
|
|
811
832
|
|
|
812
|
-
// Bounded Meeus E-factor from the
|
|
813
|
-
//
|
|
833
|
+
// Bounded Meeus E-factor from the ONE deep e (decision (ii); the
|
|
834
|
+
// pure-Meeus polynomial A/B branch stays engine-local)
|
|
814
835
|
/** @param {number} dDays @returns {number} */
|
|
815
|
-
const fwEFactor = (dDays) =>
|
|
836
|
+
const fwEFactor = (dDays) => deepEcc.eFactorAt(dDays / C.foundational.inputmeanlengthsolaryearindays);
|
|
816
837
|
|
|
817
838
|
// D2 derived additional-argument rates (deg/cy, J2000 8H-lattice months;
|
|
818
839
|
// record: tools/explore/derive-a1a2a3.js)
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The DEEP Earth-eccentricity channel — engine-switch Stage B, the T5d-(d)
|
|
3
|
+
* decision (ii) (plan 02 §8, owner-approved MODEL CHANGE, pre-registered
|
|
4
|
+
* acceptance in the same record).
|
|
5
|
+
*
|
|
6
|
+
* Evaluates Earth's e(t) from the engine's own ±10-Myr NAFF mode table
|
|
7
|
+
* (data/nbody-deep-secular-modes.json, embedded verbatim by generate.mjs as
|
|
8
|
+
* deep-modes-artifact.cjs) in the ANCHORED form the era chain also uses:
|
|
9
|
+
*
|
|
10
|
+
* z(t) = Σ (re + i·im)·e^{iωt} + (z_J2000 − Σ(0)), e = |z|
|
|
11
|
+
*
|
|
12
|
+
* — the constant remainder pins the unresolved short/ultra-long content at
|
|
13
|
+
* the JPL J2000 seed anchor, so e(J2000) is exact by construction.
|
|
14
|
+
*
|
|
15
|
+
* DOMAIN (decision (ii), proper physics — no mixed device): the ENTIRE
|
|
16
|
+
* lunar chain reads THIS channel — eccAt (the Δe² argument terms),
|
|
17
|
+
* channelIntegral (perigee/node of-date rates), modulation (the
|
|
18
|
+
* month/precession chain and its integrated cycle counts), eFactorAt (the
|
|
19
|
+
* Meeus E-factor). The Sun/clock machinery (eclipse Sun equation of
|
|
20
|
+
* centre, besselian Sun distance, cardinal braid) stays on the H/3 law
|
|
21
|
+
* (moon/ecc-channel.cjs) — a CERTIFICATION split, not a physics one: the
|
|
22
|
+
* two e's agree within 4.2e-5 wherever the domains overlap, and the H/3
|
|
23
|
+
* line keeps its E18 role as the epoch-local tangent inside the fitted
|
|
24
|
+
* clock stack.
|
|
25
|
+
*
|
|
26
|
+
* MEASURED at adoption (banked in the plan record): vs the H/3 law the
|
|
27
|
+
* attractor-mean modulation shifts are +2,526 ppm (perigee channel,
|
|
28
|
+
* s = 2.407) and +1,067 ppm (node, s = 1.018) — month/LOD shifts of
|
|
29
|
+
* ~10–25 ppm class, all 41 paleo anchors in bands; the ancient eclipse
|
|
30
|
+
* stack's cycle counts shift (χ² IMPROVES — recorded with its
|
|
31
|
+
* explanation: this e is La2004-corroborated in-era, 3× closer than the
|
|
32
|
+
* H/3 line; theory-corroborated, never tuned). Beyond ~5 Myr the table is
|
|
33
|
+
* spectrum-class (phases decohere) — the quasi-periodic ATTRACTOR (mean e
|
|
34
|
+
* and the 405-kyr-class beat structure) is the claim, never a pointwise
|
|
35
|
+
* ephemeris.
|
|
36
|
+
*
|
|
37
|
+
* LOAD-BEARING conventions (carried VERBATIM from the era channel —
|
|
38
|
+
* moon/ecc-channel.cjs — so the certified numerics match):
|
|
39
|
+
* - channelIntegral uses composite Simpson with step ≤ ~4,000 yr
|
|
40
|
+
* (N ≥ 2, even);
|
|
41
|
+
* - modulation(tMa, s) takes age in Myr, positive = past, ≡ 1 at J2000;
|
|
42
|
+
* - eFactorAt(tYr) = eccAt(tYr) / e0, ≡ 1 at J2000.
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
'use strict';
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @param {{
|
|
49
|
+
* earthZ: ReadonlyArray<{omegaRadPerYr: number, re: number, im: number}>,
|
|
50
|
+
* anchorE: number,
|
|
51
|
+
* anchorPeriEclipticDeg: number,
|
|
52
|
+
* }} artifact — the embedded deep-modes artifact (earth z-modes + the J2000
|
|
53
|
+
* anchor pair joined from the chain artifact's one home).
|
|
54
|
+
*/
|
|
55
|
+
function createDeepEccChannel({ earthZ, anchorE, anchorPeriEclipticDeg }) {
|
|
56
|
+
const D2R = Math.PI / 180;
|
|
57
|
+
const zA = [anchorE * Math.cos(anchorPeriEclipticDeg * D2R), anchorE * Math.sin(anchorPeriEclipticDeg * D2R)];
|
|
58
|
+
/** @param {number} tYr @returns {[number, number]} */
|
|
59
|
+
const modeSum = (tYr) => {
|
|
60
|
+
let re = 0, im = 0;
|
|
61
|
+
for (const m of earthZ) {
|
|
62
|
+
const c = Math.cos(m.omegaRadPerYr * tYr), s = Math.sin(m.omegaRadPerYr * tYr);
|
|
63
|
+
re += m.re * c - m.im * s;
|
|
64
|
+
im += m.re * s + m.im * c;
|
|
65
|
+
}
|
|
66
|
+
return [re, im];
|
|
67
|
+
};
|
|
68
|
+
const s0 = modeSum(0);
|
|
69
|
+
const R = [zA[0] - s0[0], zA[1] - s0[1]]; // the constant remainder
|
|
70
|
+
|
|
71
|
+
/** Earth's e at tYr years from J2000 (negative = past).
|
|
72
|
+
* @param {number} tYr @returns {number} */
|
|
73
|
+
function eccAt(tYr) {
|
|
74
|
+
const [x, y] = modeSum(tYr);
|
|
75
|
+
return Math.hypot(x + R[0], y + R[1]);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** de/dyear — analytic from the mode sum: d|z|/dt = (z·ż)/|z|.
|
|
79
|
+
* @param {number} tYr @returns {number} */
|
|
80
|
+
function eccRateAt(tYr) {
|
|
81
|
+
const [x0, y0] = modeSum(tYr);
|
|
82
|
+
const x = x0 + R[0], y = y0 + R[1];
|
|
83
|
+
let dx = 0, dy = 0;
|
|
84
|
+
for (const m of earthZ) {
|
|
85
|
+
const c = Math.cos(m.omegaRadPerYr * tYr), s = Math.sin(m.omegaRadPerYr * tYr);
|
|
86
|
+
dx += m.omegaRadPerYr * (-m.re * s - m.im * c);
|
|
87
|
+
dy += m.omegaRadPerYr * (m.re * c - m.im * s);
|
|
88
|
+
}
|
|
89
|
+
const r = Math.hypot(x, y);
|
|
90
|
+
return r === 0 ? 0 : (x * dx + y * dy) / r;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const e0 = eccAt(0); // ≡ anchorE by construction
|
|
94
|
+
const g0 = Math.pow(1 - e0 * e0, -1.5);
|
|
95
|
+
|
|
96
|
+
/** [g(e(t))/g₀]^s — the perigee/node rate modulation, ≡ 1 at J2000.
|
|
97
|
+
* tMa is age in Myr (positive = past, the deep-time chain convention).
|
|
98
|
+
* @param {number} tMa @param {number} s @returns {number} */
|
|
99
|
+
function modulation(tMa, s) {
|
|
100
|
+
if (tMa === 0) return 1;
|
|
101
|
+
const e = eccAt(-tMa * 1e6);
|
|
102
|
+
return Math.pow(Math.pow(1 - e * e, -1.5) / g0, s);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/** ∫₀ᵀ [(g(e(t′))/g₀)^s − 1] dt′ in Julian centuries — the phase-aware
|
|
106
|
+
* channel-rate integral. Composite Simpson, step ≤ ~4 kyr (the era
|
|
107
|
+
* channel's certified discretization, verbatim).
|
|
108
|
+
* @param {number} T @param {number} s @returns {number} */
|
|
109
|
+
function channelIntegral(T, s) {
|
|
110
|
+
if (T === 0) return 0;
|
|
111
|
+
/** @param {number} t */
|
|
112
|
+
const f = (t) => {
|
|
113
|
+
const e = eccAt(t * 100); // t in cy → years
|
|
114
|
+
return Math.pow(Math.pow(1 - e * e, -1.5) / g0, s) - 1;
|
|
115
|
+
};
|
|
116
|
+
const N = Math.max(2, 2 * Math.ceil(Math.abs(T) * 100 / 8000));
|
|
117
|
+
const h = T / N;
|
|
118
|
+
let sum = f(0) + f(T);
|
|
119
|
+
for (let i = 1; i < N; i++) sum += f(i * h) * (i % 2 ? 4 : 2);
|
|
120
|
+
return sum * h / 3;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/** Bounded Meeus E-factor: E ≡ e(t)/e(J2000), ≡ 1 at J2000.
|
|
124
|
+
* @param {number} tYr @returns {number} */
|
|
125
|
+
function eFactorAt(tYr) {
|
|
126
|
+
return eccAt(tYr) / e0;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return { eccAt, eccRateAt, modulation, channelIntegral, eFactorAt, e0, g0 };
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
module.exports = { createDeepEccChannel };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GENERATED — do not edit. Regenerate:
|
|
3
|
+
* node tools/constants/generate.mjs --write
|
|
4
|
+
*
|
|
5
|
+
* Source: data/nbody-deep-secular-modes.json (the governed deep-time
|
|
6
|
+
* Earth-z mode table, engine-switch Stage B), earth z-modes + verdict
|
|
7
|
+
* emitted VERBATIM, plus the J2000 anchor pair (e, ϖ) joined from
|
|
8
|
+
* data/nbody-secular-frequencies.json j2000AnchorElements.earth — the
|
|
9
|
+
* anchor's ONE home. Two gates guard the chain: check:artifacts pins
|
|
10
|
+
* artifact ↔ engine; generate.mjs check mode pins this embed ↔ artifact.
|
|
11
|
+
* CJS because the lunar-chain consumers are CommonJS modules.
|
|
12
|
+
*/
|
|
13
|
+
'use strict';
|
|
14
|
+
|
|
15
|
+
const DEEP_MODES_ARTIFACT_HASH = "b74be2d9b00a3460";
|
|
16
|
+
|
|
17
|
+
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":"c6f37b93f8f53c5b72d9e2935085145820d384ed61ecdf69f3831895d5f0a516","conservationMaxDE":1.3523274883097007e-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":409.398962153882,"strongestBeatArcsecPerYr":3.165616232101899,"la2004BeatPeriodKyr":405.6972922210049,"rockMetronomeKyr":405.6,"companion124Kyr":123.63439229002236,"companion95Kyr":94.95801992141148,"earthLeadingModesArcsecPerYr":[4.257339363798321,7.422955595900221,17.905475677851488,17.35600814229943],"topBeatLines":[{"periodKyr":409.398962153882,"productAmp":0.0003189871275662614},{"periodKyr":94.95801992141148,"productAmp":0.00023593726318903166},{"periodKyr":123.63439229002236,"productAmp":0.0002021269449318684},{"periodKyr":98.94135212634195,"productAmp":0.0001820123713850866},{"periodKyr":130.4734867701679,"productAmp":0.00015592960633097004},{"periodKyr":2358.6470831218417,"productAmp":0.00011533256795834209},{"periodKyr":974.251698194696,"productAmp":0.00007391281237249426},{"periodKyr":706.1267630803258,"productAmp":0.00006332094707822819}],"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.000020640163686955943,"re":0.01663782532735386,"im":0.009773828910268845},{"omegaRadPerYr":0.00003598750427161015,"re":-0.0155511555977695,"im":-0.005606883657279738},{"omegaRadPerYr":0.00008680819575396443,"re":-0.011017310146969267,"im":0.005302931248387234},{"omegaRadPerYr":0.00008414430196835267,"re":0.005902460235142885,"im":-0.0073575521441138925},{"omegaRadPerYr":0.000027089406032463197,"re":0.0003820712762735637,"im":0.00381132243985138},{"omegaRadPerYr":0.00008287265957255809,"re":0.0018740756883102302,"im":0.0007570047078217853},{"omegaRadPerYr":0.00008556055947193001,"re":0.00065046714460136,"im":0.001636722269192129},{"omegaRadPerYr":0.00003343872861356042,"re":-0.0015906877043739744,"im":0.0008131867314299489},{"omegaRadPerYr":0.00008733249835491452,"re":0.0019695845162428804,"im":0.0007638996859228755},{"omegaRadPerYr":0.00008624160326238742,"re":-0.0007912287558015328,"im":0.0008454083667608703},{"omegaRadPerYr":0.00013693637603446235,"re":-0.00091728504412424,"im":0.0011947455784994275},{"omegaRadPerYr":0.00008149221104720623,"re":-0.0002919323858022318,"im":0.0013378769276789224},{"omegaRadPerYr":0.000035340366616489944,"re":-0.0014017009332458236,"im":-0.0005418283702703829},{"omegaRadPerYr":0.00003411910644328693,"re":0.0009644062512081837,"im":-0.0009278208477004621},{"omegaRadPerYr":0.000026443547751027787,"re":-0.0003484265086069058,"im":-0.0019049634588757702},{"omegaRadPerYr":0.00008946536777652535,"re":-0.0010363626781434278,"im":-0.00021237189770655706},{"omegaRadPerYr":0.000027681653760243513,"re":0.00026309559235420505,"im":0.0013827244513428105},{"omegaRadPerYr":0.00003665339440166644,"re":0.001341581161662452,"im":0.00035305205249495507}],"earthZeta":[{"omegaRadPerYr":-2.96732779276946e-14,"re":-0.004153530797421736,"im":0.013136287139943213},{"omegaRadPerYr":-0.00009139185627510659,"re":-0.0039341668744113665,"im":-0.007077440344808186},{"omegaRadPerYr":-0.000027083329194200705,"re":0.0041703974742109,"im":0.0016342020564862083},{"omegaRadPerYr":-0.00008606223132085272,"re":0.0015441443378585364,"im":-0.0036871518361985415},{"omegaRadPerYr":-0.00003413935334637193,"re":-0.002956817542124509,"im":0.0024359440436811054},{"omegaRadPerYr":-0.00008872604497912732,"re":-0.00013216158559522037,"im":-0.002797304033559708},{"omegaRadPerYr":-0.00003326020694677573,"re":0.0008627085184454156,"im":-0.0008468691172706413},{"omegaRadPerYr":-0.00003470927143831441,"re":0.0013226438289662852,"im":-0.0011121945465339342},{"omegaRadPerYr":-0.00009406049953471362,"re":0.001297329508193755,"im":0.0008926331980509192},{"omegaRadPerYr":-0.00002648259433928881,"re":0.001695647505347929,"im":0.0006707872920285527},{"omegaRadPerYr":-0.00012773804995598164,"re":-0.0008156188441322624,"im":0.0010583300732716742},{"omegaRadPerYr":-0.00003267570575865712,"re":0.00028878599128559593,"im":-0.0004498471691632459},{"omegaRadPerYr":-0.000033725843136033775,"re":0.0012152922715564112,"im":-0.0007872735440399818},{"omegaRadPerYr":-0.000014507526525427572,"re":-0.00064166716018201,"im":0.0005786259131500737},{"omegaRadPerYr":-0.00009265988888533535,"re":-0.0005654435501795496,"im":0.00014913577755089046},{"omegaRadPerYr":-0.000003353112962211696,"re":0.0006060116994915085,"im":0.00025189133351366343}],"earthZetaEra":[{"omegaRadPerYr":-2.96732779276946e-14,"re":-0.0041400895842324354,"im":0.01314865914923023},{"omegaRadPerYr":-0.00009139185627510659,"re":-0.0038874970989988566,"im":-0.0070425256250290546},{"omegaRadPerYr":-0.000027083329194200705,"re":0.004075700185805294,"im":0.0016137774467260707},{"omegaRadPerYr":-0.00008606223132085272,"re":0.0015261120191598105,"im":-0.0036992031256430353},{"omegaRadPerYr":-0.00003413935334637193,"re":-0.0031492966403078486,"im":0.002570649693650614},{"omegaRadPerYr":-0.00008872604497912732,"re":-0.00014686941549255626,"im":-0.0027917154781614112},{"omegaRadPerYr":-0.00003326020694677573,"re":0.0005693304183459907,"im":-0.0006693278314130071},{"omegaRadPerYr":-0.00003470927143831441,"re":0.0012956912361530007,"im":-0.0010932966486614268}],"anchorE":0.016702435651957018,"anchorPeriEclipticDeg":462.9179213996577,"anchorInclEclipticDeg":0.00010345820355474172,"anchorAscNodeEclipticDeg":140.29217988414328});
|
|
18
|
+
|
|
19
|
+
module.exports = { DEEP_MODES_ARTIFACT, DEEP_MODES_ARTIFACT_HASH };
|
package/src/moon/ecc-channel.cjs
CHANGED
|
@@ -8,14 +8,17 @@
|
|
|
8
8
|
* max. The observed J2000 e (−0.86%), ė (+1.7%) and the sign of ë are
|
|
9
9
|
* PREDICTIONS of this line, not inputs.
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
* eclipse Sun's equation of centre
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* (
|
|
17
|
-
*
|
|
18
|
-
*
|
|
11
|
+
* DOMAIN (engine-switch decision (ii) restatement, plan 02 §8): this H/3
|
|
12
|
+
* line is the CLOCK-side e — the eclipse Sun's equation of centre (FQ-7-Sun
|
|
13
|
+
* option C-small, doc 66 §5), the besselian Sun distance, the cardinal
|
|
14
|
+
* braid and the scene machinery ride it. The LUNAR chain (E-factor,
|
|
15
|
+
* modulation, channelIntegral, argument Δe²) rides the ONE deep e
|
|
16
|
+
* (deep-ecc-channel.cjs — the engine's own ±10-Myr z-vector); the two
|
|
17
|
+
* agree within 4.2e-5 across the historical era, and this line keeps its
|
|
18
|
+
* E18 role as the epoch-local tangent. Eccentricity remains
|
|
19
|
+
* frame-invariant (fixed-frame periods only); the H/16 perihelion cycle
|
|
20
|
+
* (the H/3 rotation seen from the H/13 equinox, 13 + 3 = 16) belongs to
|
|
21
|
+
* ϖ, not e (doc 108).
|
|
19
22
|
*
|
|
20
23
|
* Extracted VERBATIM from src/script.js (_FW_ECC, _fwEarthEcc,
|
|
21
24
|
* _eCompModulation, _fwChannelIntegral, the framework branch of _fwEFactor),
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
/** @type {string} */
|
|
14
|
-
export const CHAIN_ARTIFACT_HASH = "
|
|
14
|
+
export const CHAIN_ARTIFACT_HASH = "ac23b3048f0fd06f";
|
|
15
15
|
|
|
16
16
|
/** @type {Readonly<Record<string, unknown>>} */
|
|
17
|
-
export const CHAIN_ARTIFACT = Object.freeze({"_description":"Engine-D secular frequencies from the model’s own N-body pipeline (WH 1-Myr, 1PN on, NAFF), the 1800–2100 window rates (B), the Keplerian chain’s governed inputs (K2.1/P5: windowElementRates + j2000AnchorElements — era-typed window values and the t=0 anchor, the chain’s ONE home), the derived instantaneous 1PN apsidal supplement, and the K4.5/K4.7b derived periodic-term layer (periodicTerms: λ̄/a/z/ζ lines + era window affine, engine-measured — tools/explore/k45e-amplitude-solve.mjs). Frames: g ecliptic-J2000 z-modes, s INVARIABLE-plane ζ-modes. Laskar 2004 values are external reference labels (theory), never inputs. See tools/verify/nbody-secular.js for the assertions carried.","meta":{"integrator":"wh","order":2,"dtDays":2,"spanYears":1000000,"sampleDays":1000,"gr":true,"seed":"JPL Horizons J2000 heliocentric state vectors (tools/explore/j2000-state.mjs, the one home)","masses":"DE440 mass ratios (astro-reference physicalConstants)","naffTerms":8,"windowYears":[1800,2100],"laskarRef":"Laskar, J. et al. (2004), A&A 428, 261–285, Table 3","conservationMaxDE":1.1113907520896154e-8,"note1PN":"Mercury eigen-level 1PN shift ≈ +0.473 ″/yr (cycle-average of 1/(1−e²)) vs +0.430 instantaneous — not a discrepancy; only the instantaneous value is asserted (P8b).","periodicTermsMethod":"k45e era-centered LSQ (self-seeded prewhitening, golden-refined frequencies; K4.7b)","periodicTermsSpanYr":2500,"periodicTermsCadenceYr":0.1},"g":{"mercury":{"arcsecPerYr":5.575712797823945,"amplitude":0.17545096694269685,"nearestLaskar":{"mode":"g1","arcsecPerYr":5.5965}},"venus":{"arcsecPerYr":7.405845742227483,"amplitude":0.022570769830788477,"nearestLaskar":{"mode":"g2","arcsecPerYr":7.4555}},"earth":{"arcsecPerYr":4.346410041032439,"amplitude":0.019341964493845513,"nearestLaskar":{"mode":"g5","arcsecPerYr":4.2575}},"mars":{"arcsecPerYr":17.916696630844026,"amplitude":0.08882914197372903,"nearestLaskar":{"mode":"g4","arcsecPerYr":17.9159}},"jupiter":{"arcsecPerYr":4.256769523195223,"amplitude":0.044182672664934045,"nearestLaskar":{"mode":"g5","arcsecPerYr":4.2575}},"saturn":{"arcsecPerYr":28.245581358956457,"amplitude":0.04819349426795283,"nearestLaskar":{"mode":"g6","arcsecPerYr":28.2455}},"uranus":{"arcsecPerYr":3.921148698318919,"amplitude":0.0332189082697614,"nearestLaskar":{"mode":"g5","arcsecPerYr":4.2575}},"neptune":{"arcsecPerYr":0.6065154396549126,"amplitude":0.009569000717364112,"nearestLaskar":{"mode":"g8","arcsecPerYr":0.673}}},"s":{"mercury":{"arcsecPerYr":-5.586173808637174,"amplitude":0.059409340430501154,"nearestLaskar":{"mode":"s1","arcsecPerYr":-5.6197}},"venus":{"arcsecPerYr":-18.3363903851603,"amplitude":0.013576723462640201,"nearestLaskar":{"mode":"s3","arcsecPerYr":-18.8506}},"earth":{"arcsecPerYr":-18.39611848918824,"amplitude":0.01184463735421656,"nearestLaskar":{"mode":"s3","arcsecPerYr":-18.8506}},"mars":{"arcsecPerYr":-17.545402434182556,"amplitude":0.021473581268835227,"nearestLaskar":{"mode":"s4","arcsecPerYr":-17.7553}},"jupiter":{"arcsecPerYr":-26.347747510182444,"amplitude":0.0031511446932465333,"nearestLaskar":{"mode":"s6","arcsecPerYr":-26.3475}},"saturn":{"arcsecPerYr":-26.34770515585438,"amplitude":0.007853480398801458,"nearestLaskar":{"mode":"s6","arcsecPerYr":-26.3475}},"uranus":{"arcsecPerYr":-2.999782557988895,"amplitude":0.008744980387074497,"nearestLaskar":{"mode":"s7","arcsecPerYr":-2.9927}},"neptune":{"arcsecPerYr":-0.7119237190344891,"amplitude":0.005960579851589255,"nearestLaskar":{"mode":"s8","arcsecPerYr":-0.6919}}},"secularModes":{"mercury":{"z":[{"omegaRadPerYr":0.000027031818463225768,"re":0.0061578259451980115,"im":0.17534287262605214},{"omegaRadPerYr":0.00003762575562965475,"re":0.022801391439964295,"im":0.008306970885650663},{"omegaRadPerYr":0.00001819756010161927,"re":0.019634392385947316,"im":0.014089365629220058},{"omegaRadPerYr":0.000011448057114609211,"re":-0.005593515523159691,"im":-0.0029052231145468826},{"omegaRadPerYr":0.00004414416237516322,"re":-0.0058059195322990535,"im":-0.0014204432190273834}],"zeta":[{"omegaRadPerYr":-0.000027080770518521117,"re":0.058209232182515294,"im":0.011937299831838749},{"omegaRadPerYr":-0.00003532228218977498,"re":0.004745715778503308,"im":0.009067515752921801},{"omegaRadPerYr":6.775714890718091e-8,"re":-0.0039039071253357234,"im":0.013489752627573397},{"omegaRadPerYr":-0.000014531803306709756,"re":-0.0027805829079540424,"im":0.001873307195814228},{"omegaRadPerYr":-0.00008871641521465394,"re":-0.00011206141890946473,"im":-0.0024785290535285108},{"omegaRadPerYr":-0.00004086484773308675,"re":-0.0009298161832617493,"im":0.0013601243172003264},{"omegaRadPerYr":-0.0000320673476361423,"re":-0.013260807519741909,"im":0.010385681846746578}]},"venus":{"z":[{"omegaRadPerYr":0.000035904553360186896,"re":-0.0211984643558249,"im":-0.007750145786322514},{"omegaRadPerYr":0.000021373474422862907,"re":0.016886761236088624,"im":0.011238461694226397},{"omegaRadPerYr":0.0000891126674473552,"re":0.0050874946506860065,"im":-0.005109367673184332},{"omegaRadPerYr":0.00002871637284884016,"re":-0.0017393876896891237,"im":0.005587660035943027},{"omegaRadPerYr":0.0000799342923050964,"re":-0.0044448366327981305,"im":-0.0000503440797393948},{"omegaRadPerYr":0.000012541690188563,"re":0.0004535723363856848,"im":0.0009117376424311817}],"zeta":[{"omegaRadPerYr":-0.00008889595040236661,"re":0.0014429354865157266,"im":0.013492668736937167},{"omegaRadPerYr":-2.9208356071391507e-8,"re":-0.0038419612953034085,"im":0.01343833962446885},{"omegaRadPerYr":-0.000027486544944080902,"re":0.008423422326469315,"im":0.0009256786850090009},{"omegaRadPerYr":-0.000035402171418589797,"re":0.0007435050926828158,"im":-0.0028971907452019956},{"omegaRadPerYr":-0.0000816605133107709,"re":-0.0010567171844393416,"im":0.0017536585345055515},{"omegaRadPerYr":-0.00009527377513796924,"re":0.001562527173160095,"im":0.00142794192883987},{"omegaRadPerYr":-0.000022714283438616226,"re":0.0006900663832152563,"im":0.0009409483713469917},{"omegaRadPerYr":-0.000012901293108561725,"re":-0.0007909153616483306,"im":0.0007730683997926797}]},"earth":{"z":[{"omegaRadPerYr":0.000021071990516043863,"re":0.016301183796398024,"im":0.010410715504576574},{"omegaRadPerYr":0.000035854880135688966,"re":-0.016689300824841616,"im":-0.00587694407980285},{"omegaRadPerYr":0.00008867935711133655,"re":-0.006205359589321793,"im":0.0059045379227095785},{"omegaRadPerYr":0.00007976873965068339,"re":0.003442662776173624,"im":0.00018161801434096533},{"omegaRadPerYr":0.000028440629463153055,"re":-0.0007693818323351555,"im":0.0036759836693912766},{"omegaRadPerYr":0.0001368996733554364,"re":-0.0008112549290125483,"im":0.0011800841029160098}],"zeta":[{"omegaRadPerYr":-2.789132719584616e-8,"re":-0.003980175066603849,"im":0.01346535718722163},{"omegaRadPerYr":-0.00008918684866422754,"re":-0.0017818272301117842,"im":-0.01171473788270621},{"omegaRadPerYr":-0.000027565953011645597,"re":0.005837345967007995,"im":0.0005767264828698533},{"omegaRadPerYr":-0.000035436881992393566,"re":0.0005316599469742484,"im":-0.002298310523068399},{"omegaRadPerYr":-0.00012766579969759884,"re":-0.0006080730450000734,"im":0.0011811620431347754},{"omegaRadPerYr":-0.00008175633290332968,"re":0.0008468767179477169,"im":-0.0014453751935461902},{"omegaRadPerYr":-0.00009544829395201416,"re":-0.0013543922729998166,"im":-0.0011678254911581005},{"omegaRadPerYr":-0.000022618656478089485,"re":0.0008212474154199974,"im":0.0007376186464093101}]},"mars":{"z":[{"omegaRadPerYr":0.00008686259646922313,"re":0.06413361286031954,"im":-0.061461338785219796},{"omegaRadPerYr":0.000020710599293705756,"re":0.0168815770314768,"im":0.010181016750981363},{"omegaRadPerYr":0.00013701274439308748,"re":-0.004154546031788784,"im":0.0052484404204072264},{"omegaRadPerYr":0.00007830364627518509,"re":0.006610030627920962,"im":0.00716773876788036},{"omegaRadPerYr":0.0000967464223286991,"re":0.00669811842776162,"im":-0.0005917424234258758},{"omegaRadPerYr":0.00003622387429863297,"re":-0.0037118530783633074,"im":-0.001197130016454561},{"omegaRadPerYr":0.00007107828755070232,"re":-0.0030272556571569256,"im":-0.0021089438693236047}],"zeta":[{"omegaRadPerYr":-0.00008506290699879281,"re":0.007775523866870005,"im":-0.02001096343618598},{"omegaRadPerYr":-0.00009339911610380382,"re":0.009574153430346467,"im":0.01499249567600023},{"omegaRadPerYr":-2.1361701870262538e-8,"re":-0.003652982290513836,"im":0.013619195708169822},{"omegaRadPerYr":-0.00012775359218502626,"re":-0.0023045039444621073,"im":0.0035319422124707343},{"omegaRadPerYr":-0.00007647491607131078,"re":0.0003559447186960134,"im":0.00225681738420922},{"omegaRadPerYr":-0.00009952035224595763,"re":-0.002686141523001369,"im":-0.0032247663817401412}]},"jupiter":{"z":[{"omegaRadPerYr":0.000020637401021751606,"re":0.03775130376392058,"im":0.022955339856793808},{"omegaRadPerYr":0.0001369384796979771,"re":0.009695326488717567,"im":-0.012378818304894155},{"omegaRadPerYr":0.00001285183951543766,"re":-0.0008196553575553386,"im":0.0013298147968340598},{"omegaRadPerYr":0.0002532450446505381,"re":0.00041541273181667615,"im":0.0003999550758746959},{"omegaRadPerYr":0.000006063027991986138,"re":0.00018743032373578906,"im":-0.0002594778854773961},{"omegaRadPerYr":0.000031414566802098374,"re":-0.00014101517848288215,"im":0.00024144519615503003}],"zeta":[{"omegaRadPerYr":-2.1490404832806168e-8,"re":-0.0036895385366188783,"im":0.013265898846260308},{"omegaRadPerYr":-0.0001277374796658874,"re":0.0018884354550522274,"im":-0.00251606466916287},{"omegaRadPerYr":-0.000015175434386812629,"re":-0.0004021019571492075,"im":0.0003117907932519991},{"omegaRadPerYr":-0.000006632717903107953,"re":0.0003009472423168709,"im":0.0001317099906824581},{"omegaRadPerYr":0.000003955724900485721,"re":-0.0002689226108809528,"im":2.564175400368284e-7},{"omegaRadPerYr":-0.000020525770532327617,"re":0.00010370417805463956,"im":-0.000024424616444032364}]},"saturn":{"z":[{"omegaRadPerYr":0.0001369384427371457,"re":-0.02960653952726686,"im":0.03802717064120847},{"omegaRadPerYr":0.00002063674100262723,"re":0.028150073232470787,"im":0.01709774750149962},{"omegaRadPerYr":0.00025324837081694125,"re":-0.0013606989653353102,"im":-0.0013821126035298548},{"omegaRadPerYr":0.000012847385779998076,"re":-0.0006853047928644228,"im":0.0011218181664192914},{"omegaRadPerYr":0.00012770394549879298,"re":0.00030532747308216533,"im":0.00020649598646880408},{"omegaRadPerYr":0.00014631533310756968,"re":0.0002679684896809784,"im":0.00022796694930874033},{"omegaRadPerYr":-0.00009568507237176567,"re":-0.000049572612945519304,"im":0.00011688249888045971}],"zeta":[{"omegaRadPerYr":-1.9284984538258004e-8,"re":-0.003708721248959303,"im":0.013267262775914458},{"omegaRadPerYr":-0.0001277372896899594,"re":-0.00473585842558015,"im":0.006270978893125488},{"omegaRadPerYr":-0.000015325638313367067,"re":-0.000342091983477944,"im":0.0002459194020261331},{"omegaRadPerYr":-0.0000065831107802777746,"re":0.0002849200201049732,"im":0.00012107400921002766},{"omegaRadPerYr":0.000003999922886015977,"re":-0.00025809587923422754,"im":-0.000010818807501830861},{"omegaRadPerYr":-0.000020373996231109695,"re":0.00011127740663504409,"im":-0.00002191187386888525}]},"uranus":{"z":[{"omegaRadPerYr":0.000019010265346098605,"re":-0.033200286080063916,"im":0.0011121469492544251},{"omegaRadPerYr":0.000012033775574177009,"re":-0.008077561115556027,"im":0.02293125999571007},{"omegaRadPerYr":0.000023775733149813484,"re":-0.008710621833115826,"im":-0.016095355591969604},{"omegaRadPerYr":0.000007822007075432675,"re":0.0016021840612059168,"im":-0.009621969113692156},{"omegaRadPerYr":0.00002952547228417886,"re":0.0016566445996550965,"im":0.006018707505057967},{"omegaRadPerYr":0.00013694007244464723,"re":0.0009292339240691288,"im":-0.0016372467645427197}],"zeta":[{"omegaRadPerYr":7.599421366412143e-8,"re":-0.004660490353585718,"im":0.01324646340758287},{"omegaRadPerYr":-0.000014567449496838837,"re":0.006613328514408994,"im":-0.005878235417711313},{"omegaRadPerYr":-0.000007051181231496491,"re":-0.0004558064482609971,"im":-0.00031393562385899923},{"omegaRadPerYr":0.000003329914022932244,"re":0.0003411959761619822,"im":-0.0003305440071371085},{"omegaRadPerYr":-0.0001277295137673612,"re":0.00021735572403603482,"im":-0.00029463734768672754},{"omegaRadPerYr":-0.00002335403426632458,"re":-0.00006477073255467024,"im":-0.00008547519620498973}]},"neptune":{"z":[{"omegaRadPerYr":0.0000029404698294886683,"re":0.002583276204603991,"im":0.009213710369858697},{"omegaRadPerYr":0.000015819958189246093,"re":0.002410719467240076,"im":-0.0028958675920111618},{"omegaRadPerYr":0.00002325097119532629,"re":0.001159396623354508,"im":0.001106111966705049},{"omegaRadPerYr":-0.0000035890886114523422,"re":-0.00020879605377416773,"im":-0.0006167290950842672},{"omegaRadPerYr":0.000030374670292163826,"re":-0.0002774301776095828,"im":-0.0002388641303570229}],"zeta":[{"omegaRadPerYr":-3.301733513849372e-7,"re":-0.008762838168102518,"im":0.010494876534409803},{"omegaRadPerYr":-0.000007353421929989998,"re":-0.0024807316856027294,"im":-0.0014503561615380218},{"omegaRadPerYr":0.000004080233598697059,"re":0.0018281727993976064,"im":0.002054509738245118},{"omegaRadPerYr":-0.000014881778065736648,"re":-0.00013356695251210882,"im":0.0011500105634289276},{"omegaRadPerYr":0.00001160480877156738,"re":-0.0005630431963197903,"im":-0.0005345014452666219},{"omegaRadPerYr":-0.000020788597979173094,"re":-0.0005111003177756488,"im":-0.00044451839396914716}]}},"windowRatesArcsecCy":{"gr":{"mercury":572.0163954148283,"venus":22.72580010599836,"earth":1154.4288756665303,"mars":1597.8081246982024,"jupiter":488.52901897634354,"saturn":-1576.6419790262526,"uranus":806.6031271547791,"neptune":9101.672820143169},"newton":{"mercury":529.0318184207404,"venus":14.090631090521121,"earth":1150.5947011086469,"mars":1596.4568002639046,"jupiter":488.4665375503103,"saturn":-1576.655982201358,"uranus":806.6007460587327,"neptune":9101.678202054029}},"windowElementRates":{"mercury":{"meanMotionDegPerYr":1494.7257434850626,"nodeRateArcsecCy":-451.23114506979533,"eccDotPerCy":0.000020426777739608027,"inclDotArcsecCy":-21.43063243338586},"venus":{"meanMotionDegPerYr":585.1779096296486,"nodeRateArcsecCy":-1000.3062148126329,"eccDotPerCy":-0.00004798428729899649,"inclDotArcsecCy":-2.9741785335138227},"earth":{"meanMotionDegPerYr":359.9936510408777,"nodeRateArcsecCy":287648.7600662079,"eccDotPerCy":-0.00004200482595462892,"inclDotArcsecCy":-22.64742397865307},"mars":{"meanMotionDegPerYr":191.40299923220516,"nodeRateArcsecCy":-1059.1798892427676,"eccDotPerCy":0.0000917178876575738,"inclDotArcsecCy":-29.268508116285304},"jupiter":{"meanMotionDegPerYr":30.347302970895168,"nodeRateArcsecCy":724.7057759408735,"eccDotPerCy":-0.0000876138498378255,"inclDotArcsecCy":-7.070016683580993},"saturn":{"meanMotionDegPerYr":12.225441692771112,"nodeRateArcsecCy":-1041.0659036365291,"eccDotPerCy":-0.00027446940576446793,"inclDotArcsecCy":8.397686122084723},"uranus":{"meanMotionDegPerYr":4.284939547595869,"nodeRateArcsecCy":114.5093750648986,"eccDotPerCy":-0.00009620843043291943,"inclDotArcsecCy":-8.163218561711115},"neptune":{"meanMotionDegPerYr":2.184556718701332,"nodeRateArcsecCy":-12.96633501054956,"eccDotPerCy":0.00038317519496411644,"inclDotArcsecCy":1.294056435039746}},"j2000AnchorElements":{"mercury":{"aAU":0.3870982306507114,"e":0.20563023607048908,"inclEclipticDeg":7.005014303274938,"ascNodeEclipticDeg":48.33053855197437,"lonPeriEclipticDeg":77.45482144099158,"meanLonEclipticDeg":252.25070308850388},"venus":{"aAU":0.723326980236553,"e":0.006755832524369414,"inclEclipticDeg":3.3945896490801655,"ascNodeEclipticDeg":76.67837411646671,"lonPeriEclipticDeg":131.86481574575365,"meanLonEclipticDeg":181.97911300917644},"earth":{"aAU":0.9999965019964896,"e":0.016702435651957018,"inclEclipticDeg":0.00010345820355474172,"ascNodeEclipticDeg":140.29217988414328,"lonPeriEclipticDeg":462.9179213996577,"meanLonEclipticDeg":100.46313620647612},"mars":{"aAU":1.5236791234560592,"e":0.09331517469683501,"inclEclipticDeg":1.8498764556630205,"ascNodeEclipticDeg":49.56200645402683,"lonPeriEclipticDeg":336.0994054433697,"meanLonEclipticDeg":355.4558712806536},"jupiter":{"aAU":5.204267043121455,"e":0.04877494875045604,"inclEclipticDeg":1.304625372772227,"ascNodeEclipticDeg":100.49162135259076,"lonPeriEclipticDeg":375.5576634246116,"meanLonEclipticDeg":34.37610122976946},"saturn":{"aAU":9.582017927199528,"e":0.05572345073837687,"inclEclipticDeg":2.4852504409844323,"ascNodeEclipticDeg":113.64296212519966,"lonPeriEclipticDeg":449.65653541437854,"meanLonEclipticDeg":50.00443784290724},"uranus":{"aAU":19.22941789809548,"e":0.04440546894120367,"inclEclipticDeg":0.7725675263742898,"ascNodeEclipticDeg":73.98941630128037,"lonPeriEclipticDeg":170.53113765495846,"meanLonEclipticDeg":313.4868371274142},"neptune":{"aAU":30.103641823294048,"e":0.01121513931197063,"inclEclipticDeg":1.7679863485740834,"ascNodeEclipticDeg":131.79386605766496,"lonPeriEclipticDeg":397.44244290669224,"meanLonEclipticDeg":305.20853660850446}},"invariablePlane":{"inclEclipticDeg":1.5785089212841052,"ascNodeEclipticDeg":107.5823599360674},"relativisticSupplementArcsecCy":{"mercury":42.98142753750674,"venus":8.624988679409013,"earth":3.838964853078437,"mars":1.3510691613456707,"jupiter":0.06243854269534776,"saturn":0.013727538363259385,"uranus":0.0023997870642552053,"neptune":0.0007833188044413818},"checks":{"mercuryClosureArcsecCy":{"measuredWindowDelta":42.98457699408789,"derivedInstantaneous":42.98142753750674,"diff":0.003149456581148513,"tolerance":0.1},"earthMeanMotionVsSiderealAnchor":{"engineDegPerYr":359.9936510408777,"modelSiderealDegPerYr":359.9937285652708,"diffArcsecPerYr":-0.279087815283674,"tolerance":2},"saturnG6":{"measured":28.245581358956457,"laskar":28.2455},"jupiterG5":{"measured":4.256769523195223,"laskar":4.2575}},"inputs":{"generator":"node tools/verify/nbody-secular.js --write","files":{"packages/physics/src/planets/keplerian-chain.cjs":"sha256:ac48a70bef8668b8cde7e2ef28f398d96cf03cf46bc4ba742f60c315c5cbeb52","public/input/astro-reference.json":"sha256:0e61f5bec0ee3c44016781599498db75067070e74aeddc89b2f5bd6bc2782918","tools/explore/j2000-state.mjs":"sha256:ef15efde06948b36b589e3f790e6c5ccda64b8c1e1899cb4ff1e5f1571149611","tools/explore/k45-residual-naff.mjs":"sha256:228eb4874adca9171d61c1697ffbbaac3ce82891476a34762bf882840ccae406","tools/explore/k45e-amplitude-solve.mjs":"sha256:d5ce9f8d3e38d49988b089542882833dd4c631125b5b4e21eff13b119eee45e8","tools/explore/lattice-long-window-test.mjs":"sha256:d45dea6a754b8ab6502432ecb0cd463ef2d5780418b0fecd694ac1d5c1bed11f","tools/explore/naff-frequencies.mjs":"sha256:85178139faf0894c8cf62a7aa0a92395dab7afa6ab33efee93b63712ef257ed2","tools/explore/nbody-wh.mjs":"sha256:42947b7492e81dd412a97e0a794412706d16d6a42f2fde38310877fd1051c777","tools/lib/keplerian-chain.js":"sha256:7be1a96b20174d8c2726ec984250646093a847a5cf7e06d8e1e2ffae926ff5c9","tools/verify/nbody-secular.js":"sha256:95873972aab80bc156ec4c709e6a4e197699a7c0d2f4db1159a08178ffc3e3d8"}},"periodicTerms":{"mercury":{"mlonArcsec":[{"omegaRadPerYr":1.1094782578638633,"cos":0.4283393261961084,"sin":-7.326527509234423},{"omegaRadPerYr":5.661360380927949,"cos":-2.042649039570386,"sin":2.931772290428614}],"aPpm":[],"z":[],"zeta":[],"windowAffine":{"mlon":{"off":-3.0393736875871302,"slope":2.841277225316435},"a":{"off":0.2758746522782975,"slope":-7.212979068927238e-8},"k":{"off":-0.000010308133413000659,"slope":-3.078102566616934e-7},"h":{"off":-0.000016422197583177168,"slope":3.7560192853821967e-7},"q":{"off":0.000010395164103761334,"slope":-1.838228216218485e-7},"p":{"off":-0.0000045514783478873524,"slope":-4.54454512200622e-8}}},"venus":{"mlonArcsec":[],"aPpm":[],"z":[{"omegaRadPerYr":1.5773449192709434,"re":5.7688362360462365e-8,"im":5.534221828564653e-8},{"omegaRadPerYr":-1.5773449192709434,"re":0.000010314865584099027,"im":-0.0000198748787238016}],"zeta":[],"windowAffine":{"mlon":{"off":3.5948127312304887,"slope":0.5465947510597761},"a":{"off":4.008943004747135,"slope":7.075860643009611e-7},"k":{"off":0.00001907619455854608,"slope":-1.3082845363477187e-8},"h":{"off":0.00003129559857960834,"slope":-1.441522288917906e-8},"q":{"off":0.00000369074550376789,"slope":-5.1716895028481445e-8},"p":{"off":0.000005182645310723055,"slope":4.982987600455474e-8}}},"mars":{"mlonArcsec":[{"omegaRadPerYr":0.003412137087635026,"cos":53.66134652943842,"sin":17.0702224095311},{"omegaRadPerYr":0.19158768233986423,"cos":4.119097641894965,"sin":-4.748875287824893},{"omegaRadPerYr":0.39807082074986866,"cos":12.712294840261926,"sin":-4.8937042567324385},{"omegaRadPerYr":0.7961398668364265,"cos":1.4218153844689059,"sin":4.144231910196455}],"aPpm":[],"z":[{"omegaRadPerYr":0.3981475229837692,"re":-0.000006022352586612927,"im":-0.000016334865019193796},{"omegaRadPerYr":-0.3981475229837692,"re":-1.906831770330436e-7,"im":-4.274257222159089e-7},{"omegaRadPerYr":0.5296892164591163,"re":-0.00003701074387998172,"im":-0.000026873075674723054},{"omegaRadPerYr":-0.5296892164591163,"re":-4.860521864995133e-7,"im":3.4682346833132817e-7}],"zeta":[],"windowAffine":{"mlon":{"off":-83.40368679689061,"slope":-0.1308571754299822},"a":{"off":0.22572896074793633,"slope":0.00002462826981976612},"k":{"off":0.000055581565502195474,"slope":-3.330033606281005e-7},"h":{"off":-0.00011828467060704684,"slope":8.036921269251493e-8},"q":{"off":-0.000004188215333238016,"slope":1.6809402416370802e-7},"p":{"off":-0.000015868506481068194,"slope":-5.921860993754493e-8}}},"jupiter":{"mlonArcsec":[{"omegaRadPerYr":0.0006208681133576669,"cos":193.3832216620771,"sin":380.597621447694},{"omegaRadPerYr":0.0012063073379189023,"cos":-3.9274841583289564,"sin":-80.09301290875467},{"omegaRadPerYr":0.004160979269962051,"cos":-1.69943829568573,"sin":10.726068111658648},{"omegaRadPerYr":0.005711423877210773,"cos":58.571129321431584,"sin":-126.86137607602102},{"omegaRadPerYr":0.0060611490662863445,"cos":-197.7236817832274,"sin":527.5745834567023},{"omegaRadPerYr":0.006400320486794552,"cos":379.14030538693584,"sin":-996.4275081012628},{"omegaRadPerYr":0.006927123132186677,"cos":-96.86651973973018,"sin":-625.8640378432207},{"omegaRadPerYr":0.00734753548346981,"cos":8.43825109969694,"sin":46.700085406090466},{"omegaRadPerYr":0.013416263751242975,"cos":2.917377177432902,"sin":-10.573630606149845},{"omegaRadPerYr":0.10286332259410932,"cos":-55.41328203440606,"sin":28.51871156692714},{"omegaRadPerYr":0.10341539484729162,"cos":-77.12097788008923,"sin":9.202995253429414},{"omegaRadPerYr":0.1100425288520466,"cos":3.899298688610127,"sin":-10.215251943431543},{"omegaRadPerYr":0.20645396403363098,"cos":-12.573442445414853,"sin":6.295822342082753},{"omegaRadPerYr":0.21316426593910423,"cos":10.054032585538861,"sin":-1.4152085169745214},{"omegaRadPerYr":0.3163921030750765,"cos":14.356082594113289,"sin":-47.02291299274492},{"omegaRadPerYr":0.4196206573492547,"cos":-18.86823087866421,"sin":-20.24646022413696},{"omegaRadPerYr":0.5228460556683714,"cos":-3.4375496090271564,"sin":0.6151505966978332},{"omegaRadPerYr":0.5295794256693848,"cos":3.217907378493207,"sin":1.975307816916936},{"omegaRadPerYr":0.6327839673705462,"cos":35.3349228950653,"sin":-56.4049785284849},{"omegaRadPerYr":0.7360122252144383,"cos":-4.7168510713684295,"sin":-9.5724698724},{"omegaRadPerYr":0.949175502963057,"cos":17.822449799701438,"sin":-16.382728937959474},{"omegaRadPerYr":1.2655672106357103,"cos":8.87498412842184,"sin":-4.569657084971597}],"aPpm":[{"omegaRadPerYr":0.006719118472690749,"cos":48.57374276056867,"sin":5.718778591306203},{"omegaRadPerYr":0.10316587166928487,"cos":-20.64279315909391,"sin":-58.4592094563138},{"omegaRadPerYr":0.31639212053382026,"cos":37.85268365288874,"sin":11.814375674076771},{"omegaRadPerYr":0.4196197886355212,"cos":32.19572358006155,"sin":-26.99428023819792},{"omegaRadPerYr":0.6327837640748681,"cos":112.58712391466997,"sin":70.37241144145064},{"omegaRadPerYr":0.7360111762024295,"cos":20.869632878207252,"sin":-9.118091922845995},{"omegaRadPerYr":0.9491754071485186,"cos":40.75667943910494,"sin":43.811460605574815}],"z":[{"omegaRadPerYr":-0.0006207787083493434,"re":-0.000007760801206480335,"im":0.0000016579719102905573},{"omegaRadPerYr":0.0006207787083493449,"re":-0.000008695682534227633,"im":-0.000006359405183752185},{"omegaRadPerYr":-0.004432186705238992,"re":3.2207615300300247e-7,"im":-6.196347944817902e-7},{"omegaRadPerYr":0.006185044486880686,"re":-0.000004731941541673283,"im":-0.0000017729858354297809},{"omegaRadPerYr":0.006526633569639799,"re":0.00004150382284636084,"im":0.000017534400952133703},{"omegaRadPerYr":0.006841730692169909,"re":-0.0002026998234541423,"im":0.0003233646880686746},{"omegaRadPerYr":0.007470533994347621,"re":-0.0000049281296015436406,"im":-0.0000012002820271097082},{"omegaRadPerYr":0.013548716908851125,"re":-0.000002377738793176193,"im":0.000006656435245445941},{"omegaRadPerYr":-0.0963835641459155,"re":0.000004243818371947522,"im":0.000006318732294994447},{"omegaRadPerYr":-0.10309304895354462,"re":0.0002599772038145943,"im":0.0005935193398974658},{"omegaRadPerYr":0.10334256718399279,"re":0.00001068106998793681,"im":-7.548205310553664e-7},{"omegaRadPerYr":-0.10355795380749366,"re":-2.1154636946827e-7,"im":-5.390710095107589e-8},{"omegaRadPerYr":0.10974751126305515,"re":0.0000011302669198675927,"im":0.000006702466721595302},{"omegaRadPerYr":-0.10980538631044515,"re":-0.000002866815045583102,"im":-0.000009885070817152992},{"omegaRadPerYr":0.11007006680531065,"re":-0.00013061727670124666,"im":0.000009881348055011194},{"omegaRadPerYr":0.20631979856483246,"re":5.04298118741976e-7,"im":2.480806224515503e-7},{"omegaRadPerYr":-0.20631979856483246,"re":0.00006341492203955716,"im":0.000011273250168154838},{"omegaRadPerYr":0.2132961022923942,"re":-0.00005065824330209699,"im":-0.00006271190037317963},{"omegaRadPerYr":-0.2132961022923942,"re":-0.000004406921581341513,"im":-0.0000016060783929656262},{"omegaRadPerYr":-0.30955001412647276,"re":0.0000056019124603202195,"im":-0.000005441874625394522},{"omegaRadPerYr":0.41948265838592674,"re":-9.509570952152945e-8,"im":-0.0000012590269907950825},{"omegaRadPerYr":-0.41948265838592674,"re":0.000014641220619062486,"im":0.00010495558350565439},{"omegaRadPerYr":0.426466505091871,"re":-0.0000064497978114164694,"im":0.000013430976495086736},{"omegaRadPerYr":-0.426466505091871,"re":-1.7392937473622375e-8,"im":-0.000002543548554022179},{"omegaRadPerYr":0.5227123063902634,"re":-6.493200167943617e-8,"im":-1.9428718738465597e-7},{"omegaRadPerYr":-0.5227123063902634,"re":0.00001824269392489439,"im":0.00000906975764089715},{"omegaRadPerYr":0.5296909646421464,"re":-0.000023988048624019953,"im":-0.000016305548718652476},{"omegaRadPerYr":0.7358764924026054,"re":-5.772321676657591e-7,"im":-9.031194308086103e-8},{"omegaRadPerYr":-0.7358764924026054,"re":-0.000004926448326111552,"im":0.00003725847350296657}],"zeta":[{"omegaRadPerYr":-0.0006207787083493432,"re":0.0000017148670408172224,"im":-1.1979774717324106e-7},{"omegaRadPerYr":0.0006207787083493434,"re":0.0000073648358837529556,"im":-0.000001424067731329963},{"omegaRadPerYr":0.0011047092477748065,"re":-7.000878721120519e-7,"im":-2.3731715104835338e-7},{"omegaRadPerYr":0.0071090112684356,"re":-0.000003975092067696403,"im":0.0000075798744823925934}],"windowAffine":{"mlon":{"off":-276.6789283580293,"slope":6.146016597905851},"a":{"off":-319.6050905273606,"slope":0.0007796076926885039},"k":{"off":0.000014289210688706095,"slope":2.880479286878237e-8},"h":{"off":-0.001073832363366988,"slope":-2.534500776380545e-8},"q":{"off":-0.0000010335341247600158,"slope":1.4914208056557646e-9},"p":{"off":-0.000008818002194016852,"slope":3.0856264717746908e-9}}},"saturn":{"mlonArcsec":[{"omegaRadPerYr":0.0006208681133576669,"cos":-451.253615891754,"sin":145.98152908438132},{"omegaRadPerYr":0.004165525534002769,"cos":5.787274939055933,"sin":-12.703810065013153},{"omegaRadPerYr":0.005711612505032101,"cos":-189.54704549967167,"sin":-160.138901914935},{"omegaRadPerYr":0.006061128582866573,"cos":603.7466010253094,"sin":-8.700856030526818},{"omegaRadPerYr":0.0064003167157022246,"cos":-1037.3698907699634,"sin":1226.0959465379547},{"omegaRadPerYr":0.006927098454757736,"cos":279.6703017478956,"sin":2098.4367623243365},{"omegaRadPerYr":0.007347527790309774,"cos":-31.43305366096744,"sin":-283.15643985756446},{"omegaRadPerYr":0.009480611716879448,"cos":-0.4507335945350436,"sin":4.79424382361373},{"omegaRadPerYr":0.010945707057204556,"cos":25.998025191315012,"sin":6.51039808953889},{"omegaRadPerYr":0.01341613162135763,"cos":-7.425964486999675,"sin":26.129189937928867},{"omegaRadPerYr":0.06380203049325128,"cos":-4.956781443209341,"sin":-5.857273277892975},{"omegaRadPerYr":0.09641501836240508,"cos":1.093655918412904,"sin":-3.2100722037931555},{"omegaRadPerYr":0.10286386181613702,"cos":99.08099439180381,"sin":-63.162454954986316},{"omegaRadPerYr":0.10333438844615983,"cos":212.53124729979737,"sin":-24.123206548331538},{"omegaRadPerYr":0.11004419279928404,"cos":-8.76642821816064,"sin":25.14155702073091},{"omegaRadPerYr":0.1384221456508977,"cos":-4.142308935304489,"sin":0.3359277714106255},{"omegaRadPerYr":0.2064531916682817,"cos":30.963724773182314,"sin":-15.259788419608947},{"omegaRadPerYr":0.2131887934790523,"cos":-24.29491341571394,"sin":-6.982168144064149},{"omegaRadPerYr":0.2770241887124282,"cos":1.4543542593835515,"sin":6.3793376087284965},{"omegaRadPerYr":0.31639189446899674,"cos":-148.12974553923905,"sin":514.8691214437579},{"omegaRadPerYr":0.3231050733335511,"cos":2.178111128712694,"sin":-4.849441591870168},{"omegaRadPerYr":0.41962101131042784,"cos":43.79639605758242,"sin":47.62049382853528},{"omegaRadPerYr":0.4263384811647367,"cos":-1.9599761156575544,"sin":-4.910375543643042},{"omegaRadPerYr":0.5228461938866507,"cos":7.6492352759963484,"sin":-1.4042408711820147},{"omegaRadPerYr":0.5296206925660197,"cos":20.82311358880523,"sin":-21.723522060178187},{"omegaRadPerYr":0.6327839463508664,"cos":-77.8067933782241,"sin":124.58143011814512},{"omegaRadPerYr":0.7360122996869195,"cos":11.252910261739688,"sin":22.663624511588285},{"omegaRadPerYr":0.8460438288764272,"cos":1.8113799261773025,"sin":20.756673170052206},{"omegaRadPerYr":0.9491754962353995,"cos":-40.339539075190224,"sin":37.047932328557295},{"omegaRadPerYr":1.2655672066097283,"cos":-20.25042369756606,"sin":10.420773654426046}],"aPpm":[{"omegaRadPerYr":0.006719059935042215,"cos":-298.1739213236028,"sin":-35.65492072514902},{"omegaRadPerYr":0.10311278023647517,"cos":329.05242810267646,"sin":168.2053446152665},{"omegaRadPerYr":0.1099870935042278,"cos":-80.20082859738086,"sin":25.677992848453474},{"omegaRadPerYr":0.20645076221400505,"cos":22.365346624696144,"sin":52.11596047023494},{"omegaRadPerYr":0.21316470395286807,"cos":22.417376358933,"sin":148.19540823121667},{"omegaRadPerYr":0.3096741611131529,"cos":40.76320120805859,"sin":6.028630477781981},{"omegaRadPerYr":0.31639181272876266,"cos":3380.8172681042483,"sin":952.19154868527},{"omegaRadPerYr":0.41962072059820554,"cos":-117.61845886216751,"sin":102.62640456035058},{"omegaRadPerYr":0.522848349625552,"cos":2.3692526123597575,"sin":25.55482510964822},{"omegaRadPerYr":0.6327843055552796,"cos":-267.8385275274031,"sin":-178.81334724872872},{"omegaRadPerYr":0.7360113200820578,"cos":-70.20882189811421,"sin":30.840529284060356},{"omegaRadPerYr":0.8460447241275829,"cos":152.71397931748962,"sin":-11.548664498369881},{"omegaRadPerYr":0.9491754312473957,"cos":-100.97703552341146,"sin":-108.78710325854236},{"omegaRadPerYr":1.265567050136826,"cos":-32.69042937836259,"sin":-61.98759537925285}],"z":[{"omegaRadPerYr":-0.004358110846151278,"re":-0.000002445279424852449,"im":0.0000017621954362468656},{"omegaRadPerYr":0.006181644107420951,"re":0.000019239809643427013,"im":0.000026302645815428275},{"omegaRadPerYr":0.006525673611358515,"re":-0.00017162207988757243,"im":-0.00012381490122963492},{"omegaRadPerYr":0.006842443147971666,"re":0.0008160379290510822,"im":-0.0012855611879206686},{"omegaRadPerYr":0.007464263599308896,"re":0.000012700556847236648,"im":-0.000011961876101686816},{"omegaRadPerYr":0.011038687923256879,"re":-0.000039869855044714435,"im":0.00003195328235370556},{"omegaRadPerYr":0.013549298871283269,"re":0.000009801001526091865,"im":-0.000026447688535276757},{"omegaRadPerYr":-0.06373626925966255,"re":-0.00003596115998384089,"im":-0.000028529187552461677},{"omegaRadPerYr":-0.09638538445927783,"re":0.000015535362203103386,"im":0.000026853064771238423},{"omegaRadPerYr":-0.10309247938025248,"re":0.0002905044325100417,"im":0.0006021956537131266},{"omegaRadPerYr":0.10334344954127525,"re":-0.000019533843400768672,"im":0.000010878621921404595},{"omegaRadPerYr":0.10921440834492788,"re":-0.00003560780226338562,"im":0.000008050131621592458},{"omegaRadPerYr":-0.10921440834492788,"re":0.0000017934499315039944,"im":0.00000405315797293809},{"omegaRadPerYr":0.10975358535397606,"re":0.00017369831673455462,"im":-0.00007535465148308143},{"omegaRadPerYr":-0.10975358535397606,"re":-0.000004563988896924535,"im":-0.0000154375327254865},{"omegaRadPerYr":0.11042109885467918,"re":0.00018688710085717507,"im":-0.00012925303231366497},{"omegaRadPerYr":0.1107948956846119,"re":-0.00005742819467953064,"im":0.00002446019747635651},{"omegaRadPerYr":-0.1107948956846119,"re":3.2507064761096937e-7,"im":0.0000014893262878712717},{"omegaRadPerYr":0.2063193110741841,"re":-0.000012094578924974436,"im":-0.000015066272817853064},{"omegaRadPerYr":-0.2063193110741841,"re":-0.0002645706853712598,"im":-0.000043660297027029056},{"omegaRadPerYr":0.2130228704680447,"re":0.0007392110656689748,"im":0.0008891228393192088},{"omegaRadPerYr":-0.2130228704680447,"re":0.000018380819773470427,"im":0.000004389860388892079},{"omegaRadPerYr":-0.30955014898803845,"re":-0.000024631815470831895,"im":0.00002635073382218204},{"omegaRadPerYr":0.3161372566474592,"re":0.000010638067732514132,"im":0.00002903644464320735},{"omegaRadPerYr":-0.3161372566474592,"re":0.000044785364090127505,"im":-0.00007235123203278041},{"omegaRadPerYr":0.3232395099583198,"re":-0.0000030767740423315698,"im":-0.00002580327386509728},{"omegaRadPerYr":-0.3232395099583198,"re":-8.037783708694097e-7,"im":0.0000013792616646490144},{"omegaRadPerYr":0.41948429875117665,"re":-0.0000024400754535557023,"im":8.894450263194997e-7},{"omegaRadPerYr":-0.41948429875117665,"re":-0.00005542845317142494,"im":-0.00044582635037752926},{"omegaRadPerYr":0.42644865463819764,"re":0.00007629843791169079,"im":-0.00004431512896241777},{"omegaRadPerYr":-0.42644865463819764,"re":-3.142917811194328e-7,"im":0.000010823856186704562},{"omegaRadPerYr":0.5227089862323508,"re":0.000003410979417831606,"im":0.0000030363670326161395},{"omegaRadPerYr":-0.5227089862323508,"re":-0.00007781393434095757,"im":-0.000038627649196321925},{"omegaRadPerYr":0.5296908859098071,"re":0.0016272720362705665,"im":0.0011111321002679347},{"omegaRadPerYr":-0.6327562885720048,"re":0.000029869908761550486,"im":0.00004153187994553486},{"omegaRadPerYr":0.7358761721222311,"re":0.000002104902323996618,"im":-5.169275046806296e-7},{"omegaRadPerYr":-0.7358761721222311,"re":0.00002159732009990703,"im":-0.00016115133722286416},{"omegaRadPerYr":0.8391031676474132,"re":-3.2200579003446994e-7,"im":-1.921602155098948e-7},{"omegaRadPerYr":-0.8391031676474132,"re":-0.000029573064620902294,"im":-0.00002687687857849615},{"omegaRadPerYr":0.8460633253903981,"re":-0.0000182912621724972,"im":-0.000004960467884280318},{"omegaRadPerYr":-0.8460633253903981,"re":0.000002270968484351811,"im":-4.1450617474219755e-7},{"omegaRadPerYr":1.0522678070946976,"re":0.000002112495108837071,"im":-6.772836661571395e-7},{"omegaRadPerYr":-1.0522678070946976,"re":0.000026798123887720964,"im":-0.00006313630230370938},{"omegaRadPerYr":1.0593357383703628,"re":0.000055178325520269776,"im":0.00007541106198902492},{"omegaRadPerYr":-1.0593357383703628,"re":-0.0000011488133127119404,"im":0.0000024971143397116498}],"zeta":[{"omegaRadPerYr":-0.0006207787083493432,"re":-8.436595912367323e-7,"im":0.000001633263627834134},{"omegaRadPerYr":0.0006207787083493434,"re":-0.000021424440269056364,"im":0.00000406741893133285},{"omegaRadPerYr":0.0011035308302650994,"re":0.0000028014305555000514,"im":3.03429131598728e-7},{"omegaRadPerYr":0.007110979736486372,"re":0.000009782653039468542,"im":-0.000018356544025335236},{"omegaRadPerYr":0.11036111149309716,"re":0.0000053050503083409155,"im":-7.394158520138554e-7},{"omegaRadPerYr":-0.11036111149309716,"re":-1.2281150228540698e-7,"im":-3.07875979063758e-7},{"omegaRadPerYr":0.31648864888649864,"re":5.930263050595727e-7,"im":-0.0000017212036515675988},{"omegaRadPerYr":-0.31648864888649864,"re":0.000006094478957977664,"im":-0.0000045938972600486}],"windowAffine":{"mlon":{"off":709.9722654779956,"slope":-15.579934294638058},"a":{"off":-2829.2103263877525,"slope":-0.004510524074380032},"k":{"off":-0.0032950974609698065,"slope":-2.0051399643096954e-8},"h":{"off":-0.0002907698308219252,"slope":-1.3596818437416563e-8},"q":{"off":-0.0000010497861227947909,"slope":-1.844836227990879e-9},"p":{"off":0.00001949409542224931,"slope":-8.310665514904321e-10}}},"uranus":{"mlonArcsec":[{"omegaRadPerYr":0.0006208681133576669,"cos":1801.9688215276547,"sin":3696.0402015231675},{"omegaRadPerYr":0.0011579316488608284,"cos":-2487.6534406001147,"sin":-459.55088689711397},{"omegaRadPerYr":0.0016224830408352498,"cos":-1220.2966969515146,"sin":1099.2432996165028},{"omegaRadPerYr":0.002935118567074053,"cos":-86.83674347331831,"sin":-108.24685231024809},{"omegaRadPerYr":0.004155546482813653,"cos":7.118744517059694,"sin":23.57760406645599},{"omegaRadPerYr":0.009315002243089728,"cos":3.7516023313568363,"sin":7.101267898351473},{"omegaRadPerYr":0.010640504204457963,"cos":-45.57910944323328,"sin":-40.20883229440988},{"omegaRadPerYr":0.01119673478710359,"cos":-81.22235365041975,"sin":1.901281748995162},{"omegaRadPerYr":0.012145759710583907,"cos":6.889745560125585,"sin":0.1337542919867262},{"omegaRadPerYr":0.03510485087576988,"cos":-13.688922570681836,"sin":-0.13357807007057396},{"omegaRadPerYr":0.036426329598293165,"cos":-5.668712161443024,"sin":-24.347642616449427},{"omegaRadPerYr":0.03764711514559774,"cos":1.138953309753275,"sin":-6.871151194186152},{"omegaRadPerYr":0.06379838901039833,"cos":20.403291982312666,"sin":27.239956687524646},{"omegaRadPerYr":0.07318148932273885,"cos":-9.790209397106063,"sin":-27.80021241193281},{"omegaRadPerYr":0.07471215976498653,"cos":7.902379642110793,"sin":-0.774442117625175},{"omegaRadPerYr":0.10992640338436127,"cos":-5.939904215836388,"sin":-10.882753324742827},{"omegaRadPerYr":0.1385175392010205,"cos":155.21118912477402,"sin":-15.812055598809634},{"omegaRadPerYr":0.14663782569970274,"cos":-3.7488763779317598,"sin":-4.791075382227249},{"omegaRadPerYr":0.18317858258233016,"cos":-2.2663688645635784,"sin":-2.0807781596480717},{"omegaRadPerYr":0.20224498577277328,"cos":8.906763705097376,"sin":0.1380298652243485},{"omegaRadPerYr":0.21324964619950887,"cos":7.79719866947626,"sin":3.241509288620873},{"omegaRadPerYr":0.2770253845805853,"cos":-5.372427211086557,"sin":-26.160552277645316},{"omegaRadPerYr":0.34075769983231263,"cos":-0.34413062425412416,"sin":-3.4023598781892685},{"omegaRadPerYr":0.35171296920155715,"cos":6.530654205490572,"sin":4.862791616448076},{"omegaRadPerYr":0.3801532980579145,"cos":-10.061663279866217,"sin":6.615060134886086},{"omegaRadPerYr":0.4155393874689375,"cos":-8.765446247114845,"sin":2.7918680516072425},{"omegaRadPerYr":0.4549044622840928,"cos":693.1080948896936,"sin":120.18474838738872},{"omegaRadPerYr":0.45610432617458596,"cos":1.4784723033153024,"sin":-4.600733971723476},{"omegaRadPerYr":0.5296580495362411,"cos":25.53148607890865,"sin":29.126214483562098},{"omegaRadPerYr":0.9098120073368585,"cos":1.5179157507850387,"sin":-4.917034352655555},{"omegaRadPerYr":0.9845575209673397,"cos":34.71485095170867,"sin":-6.198872286264103}],"aPpm":[{"omegaRadPerYr":0.0015195464620650877,"cos":-97.92780120015847,"sin":-170.5428140152202},{"omegaRadPerYr":0.010971188991961797,"cos":15.922068967567228,"sin":-63.432796546205935},{"omegaRadPerYr":0.036210324842414696,"cos":16.212587942173556,"sin":-6.129790120421755},{"omegaRadPerYr":0.0638251399824393,"cos":10.100213421265115,"sin":75.06714450826473},{"omegaRadPerYr":0.0733720075467266,"cos":42.98239259300776,"sin":-17.9418140413923},{"omegaRadPerYr":0.07480628721946354,"cos":-98.25061077714025,"sin":-132.202002201576},{"omegaRadPerYr":0.10992773337349732,"cos":23.527834427275085,"sin":-13.195939312161588},{"omegaRadPerYr":0.13851260798083515,"cos":-111.93654476921755,"sin":-1070.016527121048},{"omegaRadPerYr":0.20224432811824086,"cos":-1.6198240173862555,"sin":23.993058869923644},{"omegaRadPerYr":0.2770277343049128,"cos":61.913236841972406,"sin":-9.835654134674343},{"omegaRadPerYr":0.35171020655145807,"cos":33.74734368162499,"sin":-41.87577534787228},{"omegaRadPerYr":0.38014999979161623,"cos":101.22109160185427,"sin":184.81826525347103},{"omegaRadPerYr":0.4155326059030616,"cos":-8.50929116085849,"sin":-24.32921998914257},{"omegaRadPerYr":0.45490446743623597,"cos":713.139927237936,"sin":-4114.6325172160405},{"omegaRadPerYr":0.4561160600364418,"cos":-27.913180144325082,"sin":-8.624546428335371},{"omegaRadPerYr":0.984557509897134,"cos":-33.18844015424147,"sin":-186.75405236611599}],"z":[{"omegaRadPerYr":-0.0006207787083493432,"re":-0.0010010271541711772,"im":0.0018777044315025746},{"omegaRadPerYr":0.0006207787083493464,"re":0.004669404370945987,"im":-0.009340747389266558},{"omegaRadPerYr":0.0009435296146423852,"re":-0.002693731244410169,"im":0.005515123870617622},{"omegaRadPerYr":-0.0011535901883012222,"re":0.00014035425010575732,"im":-0.00024989373718838423},{"omegaRadPerYr":0.0014837575606668784,"re":-0.00045779885526748995,"im":0.001029220718337651},{"omegaRadPerYr":0.0029527987688873665,"re":0.00009183113654454647,"im":0.00014226780874768813},{"omegaRadPerYr":0.004292938112541269,"re":0.00002604331453241119,"im":-0.0000026087586213451956},{"omegaRadPerYr":0.009597120283040226,"re":-0.000007669844938360622,"im":0.000021294192837364352},{"omegaRadPerYr":-0.009597120283040226,"re":-3.9726713006760554e-7,"im":6.855988059585005e-7},{"omegaRadPerYr":0.010674384178493406,"re":-0.000010533262678437352,"im":-0.0001455148230309594},{"omegaRadPerYr":0.011227739550618343,"re":0.00006715354281438808,"im":-0.00012622016168569206},{"omegaRadPerYr":0.03372910794138875,"re":-5.792844472104949e-7,"im":2.4314285495180073e-7},{"omegaRadPerYr":-0.03372910794138875,"re":-0.00000880378752168949,"im":-0.000006800427022328312},{"omegaRadPerYr":-0.03516446737018353,"re":0.000017036805195683028,"im":-0.00006576383803542369},{"omegaRadPerYr":0.03813277064323463,"re":-0.000014411793574417915,"im":0.000021543930065801352},{"omegaRadPerYr":0.03956799170730824,"re":0.0000060071290961077885,"im":0.000009377006777274802},{"omegaRadPerYr":-0.03956799170730824,"re":2.6935210872742854e-7,"im":-4.916863023382216e-8},{"omegaRadPerYr":0.05268030494966354,"re":-4.237037805796693e-8,"im":-2.2749652861175358e-7},{"omegaRadPerYr":-0.05268030494966354,"re":-0.00001162431242526334,"im":0.000006194880630876984},{"omegaRadPerYr":-0.06373512207652907,"re":-0.00022367795746631777,"im":-0.00017316839062164822},{"omegaRadPerYr":0.07165168074871991,"re":0.0000017015187480928225,"im":7.242338771966972e-7},{"omegaRadPerYr":-0.07165168074871991,"re":0.0000022253065719657005,"im":-0.0000239819546465497},{"omegaRadPerYr":0.07478159870524997,"re":0.0009483157794586808,"im":-0.0009764231771624703},{"omegaRadPerYr":0.10845808945136469,"re":-3.004883965295506e-7,"im":1.7055087357327652e-7},{"omegaRadPerYr":-0.10845808945136469,"re":-9.064387638229779e-7,"im":-0.000011385527941028099},{"omegaRadPerYr":-0.12747767226472656,"re":0.000021699265157246156,"im":0.00002376114754738344},{"omegaRadPerYr":0.13850950308176996,"re":-0.0000010910229098697519,"im":-0.000007886168725902355},{"omegaRadPerYr":-0.13850950308176996,"re":-0.000001434320086571384,"im":-0.00001963808508671571},{"omegaRadPerYr":0.1495497617854712,"re":0.000014732954282267382,"im":0.00008515250779883778},{"omegaRadPerYr":0.20222937823935716,"re":-1.1385591675988417e-7,"im":7.147831866493965e-7},{"omegaRadPerYr":-0.20222937823935716,"re":0.00004353415832027236,"im":-0.00006511784459661798},{"omegaRadPerYr":0.21329897373317086,"re":0.0003933511417178107,"im":0.00047058009044412887},{"omegaRadPerYr":-0.21329897373317086,"re":2.8327811431341513e-7,"im":-3.560359246154832e-7},{"omegaRadPerYr":0.2769038067800174,"re":-6.922779079018568e-7,"im":-0.0000013818132165140064},{"omegaRadPerYr":-0.2769038067800174,"re":-2.3494785512648875e-7,"im":-0.000016621555907303974},{"omegaRadPerYr":0.3053633220183532,"re":-3.828674197691803e-8,"im":-3.0064823844297327e-8},{"omegaRadPerYr":-0.3053633220183532,"re":0.00007882762566993446,"im":0.0000236123586415603},{"omegaRadPerYr":0.3407483470470682,"re":-1.3758316558774432e-7,"im":-2.4367154579582864e-7},{"omegaRadPerYr":-0.3407483470470682,"re":-0.000024185839542396282,"im":-0.000011566031399227259},{"omegaRadPerYr":0.38011803010191847,"re":-5.112230464978982e-8,"im":3.5576083426589514e-7},{"omegaRadPerYr":-0.38011803010191847,"re":-0.000683808108807156,"im":-0.0009409743748576826},{"omegaRadPerYr":0.38132830185858746,"re":-5.8177806967052385e-8,"im":1.6800244502590846e-7},{"omegaRadPerYr":-0.38132830185858746,"re":-0.000014034035119495699,"im":0.000007393494708343985},{"omegaRadPerYr":0.4264958876223484,"re":0.000033536519266374154,"im":0.0000032361816570982316},{"omegaRadPerYr":-0.4264958876223484,"re":2.1135509106302237e-9,"im":-2.2152515698741622e-7},{"omegaRadPerYr":0.4548421909364264,"re":-0.000006897616144456808,"im":-0.00002246641860475243},{"omegaRadPerYr":-0.4548421909364264,"re":0.00000407137788831569,"im":-0.00007288075699841603},{"omegaRadPerYr":0.5296909155630158,"re":0.0022676944652803236,"im":0.0015486566265643551},{"omegaRadPerYr":0.6044398037682881,"re":0.00001772821682494471,"im":-0.000001325745633927324},{"omegaRadPerYr":-0.6044398037682881,"re":1.8671243007549463e-7,"im":5.135484152882108e-9},{"omegaRadPerYr":0.8350185854831645,"re":1.3389962716219148e-7,"im":4.84551878795857e-8},{"omegaRadPerYr":-0.8350185854831645,"re":0.000018812120588273927,"im":-0.000007750077895326201},{"omegaRadPerYr":0.9097702890415831,"re":-5.782380719892394e-7,"im":1.9729873306333605e-7},{"omegaRadPerYr":-0.9097702890415831,"re":-0.00004113467597080967,"im":-0.000028046600646821318},{"omegaRadPerYr":1.0593442234385404,"re":0.00007767832087815946,"im":0.00010783753098964789},{"omegaRadPerYr":-1.0593442234385404,"re":-1.3556647669744362e-9,"im":3.814197973272324e-8}],"zeta":[{"omegaRadPerYr":-0.0006207787083493432,"re":0.000009629466068512008,"im":-0.00002700542307681737},{"omegaRadPerYr":0.0006207787083493434,"re":-0.000049798841708766556,"im":0.00013244063973719405},{"omegaRadPerYr":0.0009514858307923093,"re":0.000026789231695805917,"im":-0.00007644359257728086},{"omegaRadPerYr":0.0014527887892821479,"re":-0.0000023897704328165434,"im":0.000013648719577168508},{"omegaRadPerYr":-0.0014792753244575146,"re":0.000002151034415423666,"im":0.000005190682098271777},{"omegaRadPerYr":0.0029820480249223872,"re":-0.0000013160358614767749,"im":-0.000005115909165770176},{"omegaRadPerYr":0.00445001839713232,"re":-6.717165830591991e-7,"im":9.251686604741414e-9},{"omegaRadPerYr":0.011102305337337318,"re":-0.000004628968123150622,"im":-0.0000046908160229297634},{"omegaRadPerYr":0.03663431002433444,"re":-6.097607617781723e-7,"im":9.248254018616485e-8},{"omegaRadPerYr":-0.036662600049736954,"re":4.790966947907778e-7,"im":-2.7030397322901033e-7},{"omegaRadPerYr":-0.1385862814842433,"re":0.0000034400542443838532,"im":0.0000021585069767270156},{"omegaRadPerYr":0.1496020811421664,"re":8.15990123336191e-7,"im":-7.942505016386517e-7},{"omegaRadPerYr":0.2881502651212958,"re":-0.0000010962716988804577,"im":-0.0000016121125699103533},{"omegaRadPerYr":0.45486894002023015,"re":-2.2992966985781707e-8,"im":-9.354657471556091e-9},{"omegaRadPerYr":-0.45486894002023015,"re":0.0000041579007491430415,"im":0.000004891978906915924},{"omegaRadPerYr":0.6044418164850311,"re":-0.0000037738318413916955,"im":-0.0000030151035436098662},{"omegaRadPerYr":-0.6044418164850311,"re":-7.35866162994619e-11,"im":-1.0864146466816922e-9}],"windowAffine":{"mlon":{"off":1210.0916981086646,"slope":-2.356561618102263},"a":{"off":-570.5850928990467,"slope":-0.008328826998351968},"k":{"off":-0.00366228365357873,"slope":-0.000002706626332717455},"h":{"off":0.0013833912074699532,"slope":-0.0000013941565327430463},"q":{"off":0.000017812451313420837,"slope":4.3356058040235435e-8},"p":{"off":-0.00003762382414202915,"slope":1.7014936480391533e-8}}},"neptune":{"mlonArcsec":[{"omegaRadPerYr":0.0006208681133576669,"cos":1064.212149451297,"sin":-18540.652753959734},{"omegaRadPerYr":0.0010884207287489497,"cos":-924.0362482426459,"sin":8383.82201986771},{"omegaRadPerYr":0.0014542551964391568,"cos":2226.955694353464,"sin":-3270.274366253071},{"omegaRadPerYr":0.0029389628530379795,"cos":48.078439095229676,"sin":94.12365761816456},{"omegaRadPerYr":0.035319889560920095,"cos":9.257473045853379,"sin":2.0734856552080676},{"omegaRadPerYr":0.03664876565539879,"cos":4.7094553822663965,"sin":32.60593260837659},{"omegaRadPerYr":0.0379634784712963,"cos":2.9744193339631977,"sin":2.513917234979188},{"omegaRadPerYr":0.07185421776935363,"cos":2.8052710744993297,"sin":0.02846273088874038},{"omegaRadPerYr":0.0732973641270625,"cos":6.1965389050552835,"sin":17.0773714633508},{"omegaRadPerYr":0.10987969317187546,"cos":3.60363735367916,"sin":6.863360280812679},{"omegaRadPerYr":0.1465411070471313,"cos":2.3029358223686502,"sin":2.954488343602723},{"omegaRadPerYr":0.17516600735395105,"cos":184.4413301288469,"sin":-52.32109605114765},{"omegaRadPerYr":0.35033794653247485,"cos":-1.7861093063080808,"sin":-2.9405528996126975},{"omegaRadPerYr":0.38836651611040063,"cos":9.70081182993168,"sin":5.3192582532981545},{"omegaRadPerYr":0.4915611841446312,"cos":911.0889137852095,"sin":-1.0510799754510758},{"omegaRadPerYr":0.49279773384983616,"cos":-0.5592399822047331,"sin":3.9702700781104827},{"omegaRadPerYr":0.5297024373268707,"cos":2.40320968051373,"sin":-9.399068768105197},{"omegaRadPerYr":1.021214758421749,"cos":42.2020577057518,"sin":-15.309967518050174}],"aPpm":[{"omegaRadPerYr":0.0015262400589186877,"cos":128.59464307443753,"sin":231.15748494462574},{"omegaRadPerYr":0.0028522808070564833,"cos":-21.37258121508621,"sin":10.41064755989285},{"omegaRadPerYr":0.03669498740393444,"cos":151.68816464488373,"sin":-28.109847919847983},{"omegaRadPerYr":0.0732428963963061,"cos":-33.097418893495544,"sin":11.320551289859745},{"omegaRadPerYr":0.11007776654950899,"cos":-15.641429019477593,"sin":8.577259144710313},{"omegaRadPerYr":0.17516937472508654,"cos":-326.96669731853905,"sin":-1149.3821777931403},{"omegaRadPerYr":0.38836651718787407,"cos":29.53675612865252,"sin":-54.13457963760843},{"omegaRadPerYr":0.4534159750526987,"cos":-46.68270557697238,"sin":11.759966469069417},{"omegaRadPerYr":0.49156118009313077,"cos":-5.290056175958509,"sin":-4922.302879177644},{"omegaRadPerYr":0.4928261722960873,"cos":22.10668376967481,"sin":2.1304175891318873},{"omegaRadPerYr":1.0212147268897795,"cos":-78.57315117147935,"sin":-216.34180136813907}],"z":[{"omegaRadPerYr":-0.0006207787083493432,"re":0.00000822910599695662,"im":0.00000566645788782689},{"omegaRadPerYr":0.0006207787083493453,"re":-0.0000033482623738817215,"im":-0.000011998582333036538},{"omegaRadPerYr":0.0014837734825010177,"re":0.0002465285902965811,"im":-0.000542946526804817},{"omegaRadPerYr":0.002952491806788975,"re":-0.00011247629571556469,"im":-0.00011171907883842821},{"omegaRadPerYr":-0.004414051602461347,"re":-1.1949180023376013e-8,"im":-5.895393912563796e-8},{"omegaRadPerYr":0.00441745151969733,"re":-0.000011139829747812603,"im":0.000005957961387581304},{"omegaRadPerYr":-0.0336947851363493,"re":0.000008788563557474915,"im":0.0000066100893572258815},{"omegaRadPerYr":-0.03516438841507151,"re":-0.000016831823497116864,"im":0.00006611363801678594},{"omegaRadPerYr":0.03666424259143439,"re":0.0000067161349630566706,"im":8.5863061450533e-7},{"omegaRadPerYr":0.03813296419381759,"re":0.0007689836932573089,"im":-0.0011245762260255845},{"omegaRadPerYr":-0.07181296843697238,"re":-0.0000023474904524169503,"im":0.000024443385640750307},{"omegaRadPerYr":0.07478167259300009,"re":0.00006051155974368794,"im":-0.00006241188917030075},{"omegaRadPerYr":0.08068029609791652,"re":-2.1385174933710793e-7,"im":9.47807650713311e-8},{"omegaRadPerYr":0.10840999361006448,"re":-2.1894562976651773e-8,"im":-1.842804538376415e-8},{"omegaRadPerYr":-0.10840999361006448,"re":5.153826226655718e-7,"im":0.000011407506356300657},{"omegaRadPerYr":-0.13703303990304816,"re":-0.0003233037620025506,"im":-0.00010732690949601281},{"omegaRadPerYr":0.21329898735568126,"re":0.00048778689719744165,"im":0.0005843247148884207},{"omegaRadPerYr":-0.3121996849254518,"re":2.6584347616665e-7,"im":-0.000009497238475246992},{"omegaRadPerYr":0.3502350293271937,"re":4.843040927610671e-8,"im":-1.0702237146150716e-7},{"omegaRadPerYr":-0.3502350293271937,"re":-0.000007616440459433557,"im":-0.000014833156682859016},{"omegaRadPerYr":0.41529137321236287,"re":1.442005878816463e-7,"im":-3.484512197119509e-7},{"omegaRadPerYr":-0.41529137321236287,"re":-0.00000707795193580432,"im":0.00001836075632727175},{"omegaRadPerYr":0.42649606358473324,"re":0.00004218844308149576,"im":0.000004227571689777453},{"omegaRadPerYr":-0.42649606358473324,"re":-5.658292052953387e-8,"im":-6.845099901226937e-8},{"omegaRadPerYr":0.45343148629777286,"re":-5.680507946629673e-8,"im":-9.841661999629342e-8},{"omegaRadPerYr":-0.45343148629777286,"re":-0.0010841004899122212,"im":-0.000736390221813403},{"omegaRadPerYr":0.4546133901012304,"re":6.67914668314911e-8,"im":6.897609009672202e-8},{"omegaRadPerYr":-0.4546133901012304,"re":0.00000818929299076697,"im":-0.000008038397570237945},{"omegaRadPerYr":0.4915675955310438,"re":-0.000004083522353726188,"im":0.000003744270434963885},{"omegaRadPerYr":-0.4915675955310438,"re":-0.000012301739812453286,"im":0.000010686366413055363},{"omegaRadPerYr":0.5296909041466622,"re":0.002839613383622111,"im":0.0019403577470709873},{"omegaRadPerYr":0.9830852238230905,"re":-6.720721583920492e-8,"im":3.425816645371005e-8},{"omegaRadPerYr":-0.9830852238230905,"re":-0.00005758151994324185,"im":-0.000014754794069635932},{"omegaRadPerYr":1.0593442030083966,"re":0.00009721226174654751,"im":0.0001350049744357107},{"omegaRadPerYr":-1.0593442030083966,"re":-4.1559879847366785e-8,"im":9.802298292992387e-9}],"zeta":[{"omegaRadPerYr":-0.0006207787083493432,"re":-5.057373983794714e-7,"im":0.0000031433152031555667},{"omegaRadPerYr":0.0006207787083493438,"re":0.0000029115733404898485,"im":-0.000004309627443672908},{"omegaRadPerYr":0.0014366584800648346,"re":-0.0000013572071156821169,"im":-0.000001020104238423996},{"omegaRadPerYr":-0.001480323771534016,"re":-0.0000011783259528824155,"im":-0.0000018211874549353222},{"omegaRadPerYr":0.002982469348844243,"re":9.458475398560309e-7,"im":0.000003122123819843002},{"omegaRadPerYr":0.0044510414024656955,"re":3.971188256100343e-7,"im":2.94455272695886e-8},{"omegaRadPerYr":0.03663380433896722,"re":3.593149192869475e-7,"im":-5.5827146617815774e-8},{"omegaRadPerYr":-0.17494555869955136,"re":9.099409535530744e-7,"im":-9.024205485759674e-7},{"omegaRadPerYr":-0.17549754071699553,"re":0.000001505121306046405,"im":-3.070442234723798e-7},{"omegaRadPerYr":0.49159407636236985,"re":4.796686684990757e-9,"im":3.358344123813994e-10},{"omegaRadPerYr":-0.49159407636236985,"re":-3.98804489842816e-7,"im":-0.00001005615352417885},{"omegaRadPerYr":0.5676217845108422,"re":0.000004880876845321145,"im":-0.0000023244672855910403},{"omegaRadPerYr":0.5681730424584401,"re":0.000003985093304959338,"im":-7.238476904721648e-7}],"windowAffine":{"mlon":{"off":-3600.978375847875,"slope":6.706848240846746},"a":{"off":228.34220468445073,"slope":0.013417433557641792},"k":{"off":-0.0029101681444154044,"slope":2.5117803834315305e-9},"h":{"off":-0.00012102457242531213,"slope":1.8162297961597065e-8},"q":{"off":-0.000011703165443191566,"slope":-2.5174396402677695e-9},"p":{"off":0.00001578707593265369,"slope":-1.0378417602521395e-8}}}}});
|
|
17
|
+
export const CHAIN_ARTIFACT = Object.freeze({"_description":"Engine-D secular frequencies from the model’s own N-body pipeline (WH 1-Myr, 1PN on, NAFF), the 1800–2100 window rates (B), the Keplerian chain’s governed inputs (K2.1/P5: windowElementRates + j2000AnchorElements — era-typed window values and the t=0 anchor, the chain’s ONE home), the derived instantaneous 1PN apsidal supplement, and the K4.5/K4.7b derived periodic-term layer (periodicTerms: λ̄/a/z/ζ lines + era window affine, engine-measured — tools/explore/k45e-amplitude-solve.mjs). Frames: g ecliptic-J2000 z-modes, s INVARIABLE-plane ζ-modes. Laskar 2004 values are external reference labels (theory), never inputs. See tools/verify/nbody-secular.js for the assertions carried.","meta":{"integrator":"wh","order":2,"dtDays":2,"spanYears":1000000,"sampleDays":1000,"gr":true,"seed":"JPL Horizons J2000 heliocentric state vectors (tools/explore/j2000-state.mjs, the one home)","masses":"DE440 mass ratios (astro-reference physicalConstants)","naffTerms":8,"windowYears":[1800,2100],"laskarRef":"Laskar, J. et al. (2004), A&A 428, 261–285, Table 3","conservationMaxDE":1.1113907520896154e-8,"note1PN":"Mercury eigen-level 1PN shift ≈ +0.473 ″/yr (cycle-average of 1/(1−e²)) vs +0.430 instantaneous — not a discrepancy; only the instantaneous value is asserted (P8b).","periodicTermsMethod":"k45e era-centered LSQ (self-seeded prewhitening, golden-refined frequencies; K4.7b)","periodicTermsSpanYr":2500,"periodicTermsCadenceYr":0.1},"g":{"mercury":{"arcsecPerYr":5.575712797823945,"amplitude":0.17545096694269685,"nearestLaskar":{"mode":"g1","arcsecPerYr":5.5965}},"venus":{"arcsecPerYr":7.405845742227483,"amplitude":0.022570769830788477,"nearestLaskar":{"mode":"g2","arcsecPerYr":7.4555}},"earth":{"arcsecPerYr":4.346410041032439,"amplitude":0.019341964493845513,"nearestLaskar":{"mode":"g5","arcsecPerYr":4.2575}},"mars":{"arcsecPerYr":17.916696630844026,"amplitude":0.08882914197372903,"nearestLaskar":{"mode":"g4","arcsecPerYr":17.9159}},"jupiter":{"arcsecPerYr":4.256769523195223,"amplitude":0.044182672664934045,"nearestLaskar":{"mode":"g5","arcsecPerYr":4.2575}},"saturn":{"arcsecPerYr":28.245581358956457,"amplitude":0.04819349426795283,"nearestLaskar":{"mode":"g6","arcsecPerYr":28.2455}},"uranus":{"arcsecPerYr":3.921148698318919,"amplitude":0.0332189082697614,"nearestLaskar":{"mode":"g5","arcsecPerYr":4.2575}},"neptune":{"arcsecPerYr":0.6065154396549126,"amplitude":0.009569000717364112,"nearestLaskar":{"mode":"g8","arcsecPerYr":0.673}}},"s":{"mercury":{"arcsecPerYr":-5.586173808637174,"amplitude":0.059409340430501154,"nearestLaskar":{"mode":"s1","arcsecPerYr":-5.6197}},"venus":{"arcsecPerYr":-18.3363903851603,"amplitude":0.013576723462640201,"nearestLaskar":{"mode":"s3","arcsecPerYr":-18.8506}},"earth":{"arcsecPerYr":-18.39611848918824,"amplitude":0.01184463735421656,"nearestLaskar":{"mode":"s3","arcsecPerYr":-18.8506}},"mars":{"arcsecPerYr":-17.545402434182556,"amplitude":0.021473581268835227,"nearestLaskar":{"mode":"s4","arcsecPerYr":-17.7553}},"jupiter":{"arcsecPerYr":-26.347747510182444,"amplitude":0.0031511446932465333,"nearestLaskar":{"mode":"s6","arcsecPerYr":-26.3475}},"saturn":{"arcsecPerYr":-26.34770515585438,"amplitude":0.007853480398801458,"nearestLaskar":{"mode":"s6","arcsecPerYr":-26.3475}},"uranus":{"arcsecPerYr":-2.999782557988895,"amplitude":0.008744980387074497,"nearestLaskar":{"mode":"s7","arcsecPerYr":-2.9927}},"neptune":{"arcsecPerYr":-0.7119237190344891,"amplitude":0.005960579851589255,"nearestLaskar":{"mode":"s8","arcsecPerYr":-0.6919}}},"secularModes":{"mercury":{"z":[{"omegaRadPerYr":0.000027031818463225768,"re":0.0061578259451980115,"im":0.17534287262605214},{"omegaRadPerYr":0.00003762575562965475,"re":0.022801391439964295,"im":0.008306970885650663},{"omegaRadPerYr":0.00001819756010161927,"re":0.019634392385947316,"im":0.014089365629220058},{"omegaRadPerYr":0.000011448057114609211,"re":-0.005593515523159691,"im":-0.0029052231145468826},{"omegaRadPerYr":0.00004414416237516322,"re":-0.0058059195322990535,"im":-0.0014204432190273834}],"zeta":[{"omegaRadPerYr":-0.000027080770518521117,"re":0.058209232182515294,"im":0.011937299831838749},{"omegaRadPerYr":-0.00003532228218977498,"re":0.004745715778503308,"im":0.009067515752921801},{"omegaRadPerYr":6.775714890718091e-8,"re":-0.0039039071253357234,"im":0.013489752627573397},{"omegaRadPerYr":-0.000014531803306709756,"re":-0.0027805829079540424,"im":0.001873307195814228},{"omegaRadPerYr":-0.00008871641521465394,"re":-0.00011206141890946473,"im":-0.0024785290535285108},{"omegaRadPerYr":-0.00004086484773308675,"re":-0.0009298161832617493,"im":0.0013601243172003264},{"omegaRadPerYr":-0.0000320673476361423,"re":-0.013260807519741909,"im":0.010385681846746578}]},"venus":{"z":[{"omegaRadPerYr":0.000035904553360186896,"re":-0.0211984643558249,"im":-0.007750145786322514},{"omegaRadPerYr":0.000021373474422862907,"re":0.016886761236088624,"im":0.011238461694226397},{"omegaRadPerYr":0.0000891126674473552,"re":0.0050874946506860065,"im":-0.005109367673184332},{"omegaRadPerYr":0.00002871637284884016,"re":-0.0017393876896891237,"im":0.005587660035943027},{"omegaRadPerYr":0.0000799342923050964,"re":-0.0044448366327981305,"im":-0.0000503440797393948},{"omegaRadPerYr":0.000012541690188563,"re":0.0004535723363856848,"im":0.0009117376424311817}],"zeta":[{"omegaRadPerYr":-0.00008889595040236661,"re":0.0014429354865157266,"im":0.013492668736937167},{"omegaRadPerYr":-2.9208356071391507e-8,"re":-0.0038419612953034085,"im":0.01343833962446885},{"omegaRadPerYr":-0.000027486544944080902,"re":0.008423422326469315,"im":0.0009256786850090009},{"omegaRadPerYr":-0.000035402171418589797,"re":0.0007435050926828158,"im":-0.0028971907452019956},{"omegaRadPerYr":-0.0000816605133107709,"re":-0.0010567171844393416,"im":0.0017536585345055515},{"omegaRadPerYr":-0.00009527377513796924,"re":0.001562527173160095,"im":0.00142794192883987},{"omegaRadPerYr":-0.000022714283438616226,"re":0.0006900663832152563,"im":0.0009409483713469917},{"omegaRadPerYr":-0.000012901293108561725,"re":-0.0007909153616483306,"im":0.0007730683997926797}]},"earth":{"z":[{"omegaRadPerYr":0.000021071990516043863,"re":0.016301183796398024,"im":0.010410715504576574},{"omegaRadPerYr":0.000035854880135688966,"re":-0.016689300824841616,"im":-0.00587694407980285},{"omegaRadPerYr":0.00008867935711133655,"re":-0.006205359589321793,"im":0.0059045379227095785},{"omegaRadPerYr":0.00007976873965068339,"re":0.003442662776173624,"im":0.00018161801434096533},{"omegaRadPerYr":0.000028440629463153055,"re":-0.0007693818323351555,"im":0.0036759836693912766},{"omegaRadPerYr":0.0001368996733554364,"re":-0.0008112549290125483,"im":0.0011800841029160098}],"zeta":[{"omegaRadPerYr":-2.789132719584616e-8,"re":-0.003980175066603849,"im":0.01346535718722163},{"omegaRadPerYr":-0.00008918684866422754,"re":-0.0017818272301117842,"im":-0.01171473788270621},{"omegaRadPerYr":-0.000027565953011645597,"re":0.005837345967007995,"im":0.0005767264828698533},{"omegaRadPerYr":-0.000035436881992393566,"re":0.0005316599469742484,"im":-0.002298310523068399},{"omegaRadPerYr":-0.00012766579969759884,"re":-0.0006080730450000734,"im":0.0011811620431347754},{"omegaRadPerYr":-0.00008175633290332968,"re":0.0008468767179477169,"im":-0.0014453751935461902},{"omegaRadPerYr":-0.00009544829395201416,"re":-0.0013543922729998166,"im":-0.0011678254911581005},{"omegaRadPerYr":-0.000022618656478089485,"re":0.0008212474154199974,"im":0.0007376186464093101}]},"mars":{"z":[{"omegaRadPerYr":0.00008686259646922313,"re":0.06413361286031954,"im":-0.061461338785219796},{"omegaRadPerYr":0.000020710599293705756,"re":0.0168815770314768,"im":0.010181016750981363},{"omegaRadPerYr":0.00013701274439308748,"re":-0.004154546031788784,"im":0.0052484404204072264},{"omegaRadPerYr":0.00007830364627518509,"re":0.006610030627920962,"im":0.00716773876788036},{"omegaRadPerYr":0.0000967464223286991,"re":0.00669811842776162,"im":-0.0005917424234258758},{"omegaRadPerYr":0.00003622387429863297,"re":-0.0037118530783633074,"im":-0.001197130016454561},{"omegaRadPerYr":0.00007107828755070232,"re":-0.0030272556571569256,"im":-0.0021089438693236047}],"zeta":[{"omegaRadPerYr":-0.00008506290699879281,"re":0.007775523866870005,"im":-0.02001096343618598},{"omegaRadPerYr":-0.00009339911610380382,"re":0.009574153430346467,"im":0.01499249567600023},{"omegaRadPerYr":-2.1361701870262538e-8,"re":-0.003652982290513836,"im":0.013619195708169822},{"omegaRadPerYr":-0.00012775359218502626,"re":-0.0023045039444621073,"im":0.0035319422124707343},{"omegaRadPerYr":-0.00007647491607131078,"re":0.0003559447186960134,"im":0.00225681738420922},{"omegaRadPerYr":-0.00009952035224595763,"re":-0.002686141523001369,"im":-0.0032247663817401412}]},"jupiter":{"z":[{"omegaRadPerYr":0.000020637401021751606,"re":0.03775130376392058,"im":0.022955339856793808},{"omegaRadPerYr":0.0001369384796979771,"re":0.009695326488717567,"im":-0.012378818304894155},{"omegaRadPerYr":0.00001285183951543766,"re":-0.0008196553575553386,"im":0.0013298147968340598},{"omegaRadPerYr":0.0002532450446505381,"re":0.00041541273181667615,"im":0.0003999550758746959},{"omegaRadPerYr":0.000006063027991986138,"re":0.00018743032373578906,"im":-0.0002594778854773961},{"omegaRadPerYr":0.000031414566802098374,"re":-0.00014101517848288215,"im":0.00024144519615503003}],"zeta":[{"omegaRadPerYr":-2.1490404832806168e-8,"re":-0.0036895385366188783,"im":0.013265898846260308},{"omegaRadPerYr":-0.0001277374796658874,"re":0.0018884354550522274,"im":-0.00251606466916287},{"omegaRadPerYr":-0.000015175434386812629,"re":-0.0004021019571492075,"im":0.0003117907932519991},{"omegaRadPerYr":-0.000006632717903107953,"re":0.0003009472423168709,"im":0.0001317099906824581},{"omegaRadPerYr":0.000003955724900485721,"re":-0.0002689226108809528,"im":2.564175400368284e-7},{"omegaRadPerYr":-0.000020525770532327617,"re":0.00010370417805463956,"im":-0.000024424616444032364}]},"saturn":{"z":[{"omegaRadPerYr":0.0001369384427371457,"re":-0.02960653952726686,"im":0.03802717064120847},{"omegaRadPerYr":0.00002063674100262723,"re":0.028150073232470787,"im":0.01709774750149962},{"omegaRadPerYr":0.00025324837081694125,"re":-0.0013606989653353102,"im":-0.0013821126035298548},{"omegaRadPerYr":0.000012847385779998076,"re":-0.0006853047928644228,"im":0.0011218181664192914},{"omegaRadPerYr":0.00012770394549879298,"re":0.00030532747308216533,"im":0.00020649598646880408},{"omegaRadPerYr":0.00014631533310756968,"re":0.0002679684896809784,"im":0.00022796694930874033},{"omegaRadPerYr":-0.00009568507237176567,"re":-0.000049572612945519304,"im":0.00011688249888045971}],"zeta":[{"omegaRadPerYr":-1.9284984538258004e-8,"re":-0.003708721248959303,"im":0.013267262775914458},{"omegaRadPerYr":-0.0001277372896899594,"re":-0.00473585842558015,"im":0.006270978893125488},{"omegaRadPerYr":-0.000015325638313367067,"re":-0.000342091983477944,"im":0.0002459194020261331},{"omegaRadPerYr":-0.0000065831107802777746,"re":0.0002849200201049732,"im":0.00012107400921002766},{"omegaRadPerYr":0.000003999922886015977,"re":-0.00025809587923422754,"im":-0.000010818807501830861},{"omegaRadPerYr":-0.000020373996231109695,"re":0.00011127740663504409,"im":-0.00002191187386888525}]},"uranus":{"z":[{"omegaRadPerYr":0.000019010265346098605,"re":-0.033200286080063916,"im":0.0011121469492544251},{"omegaRadPerYr":0.000012033775574177009,"re":-0.008077561115556027,"im":0.02293125999571007},{"omegaRadPerYr":0.000023775733149813484,"re":-0.008710621833115826,"im":-0.016095355591969604},{"omegaRadPerYr":0.000007822007075432675,"re":0.0016021840612059168,"im":-0.009621969113692156},{"omegaRadPerYr":0.00002952547228417886,"re":0.0016566445996550965,"im":0.006018707505057967},{"omegaRadPerYr":0.00013694007244464723,"re":0.0009292339240691288,"im":-0.0016372467645427197}],"zeta":[{"omegaRadPerYr":7.599421366412143e-8,"re":-0.004660490353585718,"im":0.01324646340758287},{"omegaRadPerYr":-0.000014567449496838837,"re":0.006613328514408994,"im":-0.005878235417711313},{"omegaRadPerYr":-0.000007051181231496491,"re":-0.0004558064482609971,"im":-0.00031393562385899923},{"omegaRadPerYr":0.000003329914022932244,"re":0.0003411959761619822,"im":-0.0003305440071371085},{"omegaRadPerYr":-0.0001277295137673612,"re":0.00021735572403603482,"im":-0.00029463734768672754},{"omegaRadPerYr":-0.00002335403426632458,"re":-0.00006477073255467024,"im":-0.00008547519620498973}]},"neptune":{"z":[{"omegaRadPerYr":0.0000029404698294886683,"re":0.002583276204603991,"im":0.009213710369858697},{"omegaRadPerYr":0.000015819958189246093,"re":0.002410719467240076,"im":-0.0028958675920111618},{"omegaRadPerYr":0.00002325097119532629,"re":0.001159396623354508,"im":0.001106111966705049},{"omegaRadPerYr":-0.0000035890886114523422,"re":-0.00020879605377416773,"im":-0.0006167290950842672},{"omegaRadPerYr":0.000030374670292163826,"re":-0.0002774301776095828,"im":-0.0002388641303570229}],"zeta":[{"omegaRadPerYr":-3.301733513849372e-7,"re":-0.008762838168102518,"im":0.010494876534409803},{"omegaRadPerYr":-0.000007353421929989998,"re":-0.0024807316856027294,"im":-0.0014503561615380218},{"omegaRadPerYr":0.000004080233598697059,"re":0.0018281727993976064,"im":0.002054509738245118},{"omegaRadPerYr":-0.000014881778065736648,"re":-0.00013356695251210882,"im":0.0011500105634289276},{"omegaRadPerYr":0.00001160480877156738,"re":-0.0005630431963197903,"im":-0.0005345014452666219},{"omegaRadPerYr":-0.000020788597979173094,"re":-0.0005111003177756488,"im":-0.00044451839396914716}]}},"windowRatesArcsecCy":{"gr":{"mercury":572.0163954148283,"venus":22.72580010599836,"earth":1154.4288756665303,"mars":1597.8081246982024,"jupiter":488.52901897634354,"saturn":-1576.6419790262526,"uranus":806.6031271547791,"neptune":9101.672820143169},"newton":{"mercury":529.0318184207404,"venus":14.090631090521121,"earth":1150.5947011086469,"mars":1596.4568002639046,"jupiter":488.4665375503103,"saturn":-1576.655982201358,"uranus":806.6007460587327,"neptune":9101.678202054029}},"windowElementRates":{"mercury":{"meanMotionDegPerYr":1494.7257434850626,"nodeRateArcsecCy":-451.23114506979533,"eccDotPerCy":0.000020426777739608027,"inclDotArcsecCy":-21.43063243338586},"venus":{"meanMotionDegPerYr":585.1779096296486,"nodeRateArcsecCy":-1000.3062148126329,"eccDotPerCy":-0.00004798428729899649,"inclDotArcsecCy":-2.9741785335138227},"earth":{"meanMotionDegPerYr":359.9936510408777,"nodeRateArcsecCy":287648.7600662079,"eccDotPerCy":-0.00004200482595462892,"inclDotArcsecCy":-22.64742397865307},"mars":{"meanMotionDegPerYr":191.40299923220516,"nodeRateArcsecCy":-1059.1798892427676,"eccDotPerCy":0.0000917178876575738,"inclDotArcsecCy":-29.268508116285304},"jupiter":{"meanMotionDegPerYr":30.347302970895168,"nodeRateArcsecCy":724.7057759408735,"eccDotPerCy":-0.0000876138498378255,"inclDotArcsecCy":-7.070016683580993},"saturn":{"meanMotionDegPerYr":12.225441692771112,"nodeRateArcsecCy":-1041.0659036365291,"eccDotPerCy":-0.00027446940576446793,"inclDotArcsecCy":8.397686122084723},"uranus":{"meanMotionDegPerYr":4.284939547595869,"nodeRateArcsecCy":114.5093750648986,"eccDotPerCy":-0.00009620843043291943,"inclDotArcsecCy":-8.163218561711115},"neptune":{"meanMotionDegPerYr":2.184556718701332,"nodeRateArcsecCy":-12.96633501054956,"eccDotPerCy":0.00038317519496411644,"inclDotArcsecCy":1.294056435039746}},"j2000AnchorElements":{"mercury":{"aAU":0.3870982306507114,"e":0.20563023607048908,"inclEclipticDeg":7.005014303274938,"ascNodeEclipticDeg":48.33053855197437,"lonPeriEclipticDeg":77.45482144099158,"meanLonEclipticDeg":252.25070308850388},"venus":{"aAU":0.723326980236553,"e":0.006755832524369414,"inclEclipticDeg":3.3945896490801655,"ascNodeEclipticDeg":76.67837411646671,"lonPeriEclipticDeg":131.86481574575365,"meanLonEclipticDeg":181.97911300917644},"earth":{"aAU":0.9999965019964896,"e":0.016702435651957018,"inclEclipticDeg":0.00010345820355474172,"ascNodeEclipticDeg":140.29217988414328,"lonPeriEclipticDeg":462.9179213996577,"meanLonEclipticDeg":100.46313620647612},"mars":{"aAU":1.5236791234560592,"e":0.09331517469683501,"inclEclipticDeg":1.8498764556630205,"ascNodeEclipticDeg":49.56200645402683,"lonPeriEclipticDeg":336.0994054433697,"meanLonEclipticDeg":355.4558712806536},"jupiter":{"aAU":5.204267043121455,"e":0.04877494875045604,"inclEclipticDeg":1.304625372772227,"ascNodeEclipticDeg":100.49162135259076,"lonPeriEclipticDeg":375.5576634246116,"meanLonEclipticDeg":34.37610122976946},"saturn":{"aAU":9.582017927199528,"e":0.05572345073837687,"inclEclipticDeg":2.4852504409844323,"ascNodeEclipticDeg":113.64296212519966,"lonPeriEclipticDeg":449.65653541437854,"meanLonEclipticDeg":50.00443784290724},"uranus":{"aAU":19.22941789809548,"e":0.04440546894120367,"inclEclipticDeg":0.7725675263742898,"ascNodeEclipticDeg":73.98941630128037,"lonPeriEclipticDeg":170.53113765495846,"meanLonEclipticDeg":313.4868371274142},"neptune":{"aAU":30.103641823294048,"e":0.01121513931197063,"inclEclipticDeg":1.7679863485740834,"ascNodeEclipticDeg":131.79386605766496,"lonPeriEclipticDeg":397.44244290669224,"meanLonEclipticDeg":305.20853660850446}},"invariablePlane":{"inclEclipticDeg":1.5785089212841052,"ascNodeEclipticDeg":107.5823599360674},"relativisticSupplementArcsecCy":{"mercury":42.98142753750674,"venus":8.624988679409013,"earth":3.838964853078437,"mars":1.3510691613456707,"jupiter":0.06243854269534776,"saturn":0.013727538363259385,"uranus":0.0023997870642552053,"neptune":0.0007833188044413818},"checks":{"mercuryClosureArcsecCy":{"measuredWindowDelta":42.98457699408789,"derivedInstantaneous":42.98142753750674,"diff":0.003149456581148513,"tolerance":0.1},"earthMeanMotionVsSiderealAnchor":{"engineDegPerYr":359.9936510408777,"modelSiderealDegPerYr":359.9937285652708,"diffArcsecPerYr":-0.279087815283674,"tolerance":2},"saturnG6":{"measured":28.245581358956457,"laskar":28.2455},"jupiterG5":{"measured":4.256769523195223,"laskar":4.2575}},"inputs":{"generator":"node tools/verify/nbody-secular.js --write","files":{"packages/physics/src/planets/keplerian-chain.cjs":"sha256:ac48a70bef8668b8cde7e2ef28f398d96cf03cf46bc4ba742f60c315c5cbeb52","public/input/astro-reference.json":"sha256:f6ae6039bb99affc6ba02952373ba052ca980a267c6d7faa6d7a9abae65102b9","tools/explore/j2000-state.mjs":"sha256:ef15efde06948b36b589e3f790e6c5ccda64b8c1e1899cb4ff1e5f1571149611","tools/explore/k45-residual-naff.mjs":"sha256:228eb4874adca9171d61c1697ffbbaac3ce82891476a34762bf882840ccae406","tools/explore/k45e-amplitude-solve.mjs":"sha256:d5ce9f8d3e38d49988b089542882833dd4c631125b5b4e21eff13b119eee45e8","tools/explore/lattice-long-window-test.mjs":"sha256:d45dea6a754b8ab6502432ecb0cd463ef2d5780418b0fecd694ac1d5c1bed11f","tools/explore/naff-frequencies.mjs":"sha256:d875f65e0346346bde09402a0620f8109e3d0fc90e052ce8900b6f4af4ac0e5f","tools/explore/nbody-wh.mjs":"sha256:42947b7492e81dd412a97e0a794412706d16d6a42f2fde38310877fd1051c777","tools/lib/keplerian-chain.js":"sha256:7be1a96b20174d8c2726ec984250646093a847a5cf7e06d8e1e2ffae926ff5c9","tools/verify/nbody-secular.js":"sha256:95873972aab80bc156ec4c709e6a4e197699a7c0d2f4db1159a08178ffc3e3d8"}},"periodicTerms":{"mercury":{"mlonArcsec":[{"omegaRadPerYr":1.1094782578638633,"cos":0.4283393261961084,"sin":-7.326527509234423},{"omegaRadPerYr":5.661360380927949,"cos":-2.042649039570386,"sin":2.931772290428614}],"aPpm":[],"z":[],"zeta":[],"windowAffine":{"mlon":{"off":-3.0393736875871302,"slope":2.841277225316435},"a":{"off":0.2758746522782975,"slope":-7.212979068927238e-8},"k":{"off":-0.000010308133413000659,"slope":-3.078102566616934e-7},"h":{"off":-0.000016422197583177168,"slope":3.7560192853821967e-7},"q":{"off":0.000010395164103761334,"slope":-1.838228216218485e-7},"p":{"off":-0.0000045514783478873524,"slope":-4.54454512200622e-8}}},"venus":{"mlonArcsec":[],"aPpm":[],"z":[{"omegaRadPerYr":1.5773449192709434,"re":5.7688362360462365e-8,"im":5.534221828564653e-8},{"omegaRadPerYr":-1.5773449192709434,"re":0.000010314865584099027,"im":-0.0000198748787238016}],"zeta":[],"windowAffine":{"mlon":{"off":3.5948127312304887,"slope":0.5465947510597761},"a":{"off":4.008943004747135,"slope":7.075860643009611e-7},"k":{"off":0.00001907619455854608,"slope":-1.3082845363477187e-8},"h":{"off":0.00003129559857960834,"slope":-1.441522288917906e-8},"q":{"off":0.00000369074550376789,"slope":-5.1716895028481445e-8},"p":{"off":0.000005182645310723055,"slope":4.982987600455474e-8}}},"mars":{"mlonArcsec":[{"omegaRadPerYr":0.003412137087635026,"cos":53.66134652943842,"sin":17.0702224095311},{"omegaRadPerYr":0.19158768233986423,"cos":4.119097641894965,"sin":-4.748875287824893},{"omegaRadPerYr":0.39807082074986866,"cos":12.712294840261926,"sin":-4.8937042567324385},{"omegaRadPerYr":0.7961398668364265,"cos":1.4218153844689059,"sin":4.144231910196455}],"aPpm":[],"z":[{"omegaRadPerYr":0.3981475229837692,"re":-0.000006022352586612927,"im":-0.000016334865019193796},{"omegaRadPerYr":-0.3981475229837692,"re":-1.906831770330436e-7,"im":-4.274257222159089e-7},{"omegaRadPerYr":0.5296892164591163,"re":-0.00003701074387998172,"im":-0.000026873075674723054},{"omegaRadPerYr":-0.5296892164591163,"re":-4.860521864995133e-7,"im":3.4682346833132817e-7}],"zeta":[],"windowAffine":{"mlon":{"off":-83.40368679689061,"slope":-0.1308571754299822},"a":{"off":0.22572896074793633,"slope":0.00002462826981976612},"k":{"off":0.000055581565502195474,"slope":-3.330033606281005e-7},"h":{"off":-0.00011828467060704684,"slope":8.036921269251493e-8},"q":{"off":-0.000004188215333238016,"slope":1.6809402416370802e-7},"p":{"off":-0.000015868506481068194,"slope":-5.921860993754493e-8}}},"jupiter":{"mlonArcsec":[{"omegaRadPerYr":0.0006208681133576669,"cos":193.3832216620771,"sin":380.597621447694},{"omegaRadPerYr":0.0012063073379189023,"cos":-3.9274841583289564,"sin":-80.09301290875467},{"omegaRadPerYr":0.004160979269962051,"cos":-1.69943829568573,"sin":10.726068111658648},{"omegaRadPerYr":0.005711423877210773,"cos":58.571129321431584,"sin":-126.86137607602102},{"omegaRadPerYr":0.0060611490662863445,"cos":-197.7236817832274,"sin":527.5745834567023},{"omegaRadPerYr":0.006400320486794552,"cos":379.14030538693584,"sin":-996.4275081012628},{"omegaRadPerYr":0.006927123132186677,"cos":-96.86651973973018,"sin":-625.8640378432207},{"omegaRadPerYr":0.00734753548346981,"cos":8.43825109969694,"sin":46.700085406090466},{"omegaRadPerYr":0.013416263751242975,"cos":2.917377177432902,"sin":-10.573630606149845},{"omegaRadPerYr":0.10286332259410932,"cos":-55.41328203440606,"sin":28.51871156692714},{"omegaRadPerYr":0.10341539484729162,"cos":-77.12097788008923,"sin":9.202995253429414},{"omegaRadPerYr":0.1100425288520466,"cos":3.899298688610127,"sin":-10.215251943431543},{"omegaRadPerYr":0.20645396403363098,"cos":-12.573442445414853,"sin":6.295822342082753},{"omegaRadPerYr":0.21316426593910423,"cos":10.054032585538861,"sin":-1.4152085169745214},{"omegaRadPerYr":0.3163921030750765,"cos":14.356082594113289,"sin":-47.02291299274492},{"omegaRadPerYr":0.4196206573492547,"cos":-18.86823087866421,"sin":-20.24646022413696},{"omegaRadPerYr":0.5228460556683714,"cos":-3.4375496090271564,"sin":0.6151505966978332},{"omegaRadPerYr":0.5295794256693848,"cos":3.217907378493207,"sin":1.975307816916936},{"omegaRadPerYr":0.6327839673705462,"cos":35.3349228950653,"sin":-56.4049785284849},{"omegaRadPerYr":0.7360122252144383,"cos":-4.7168510713684295,"sin":-9.5724698724},{"omegaRadPerYr":0.949175502963057,"cos":17.822449799701438,"sin":-16.382728937959474},{"omegaRadPerYr":1.2655672106357103,"cos":8.87498412842184,"sin":-4.569657084971597}],"aPpm":[{"omegaRadPerYr":0.006719118472690749,"cos":48.57374276056867,"sin":5.718778591306203},{"omegaRadPerYr":0.10316587166928487,"cos":-20.64279315909391,"sin":-58.4592094563138},{"omegaRadPerYr":0.31639212053382026,"cos":37.85268365288874,"sin":11.814375674076771},{"omegaRadPerYr":0.4196197886355212,"cos":32.19572358006155,"sin":-26.99428023819792},{"omegaRadPerYr":0.6327837640748681,"cos":112.58712391466997,"sin":70.37241144145064},{"omegaRadPerYr":0.7360111762024295,"cos":20.869632878207252,"sin":-9.118091922845995},{"omegaRadPerYr":0.9491754071485186,"cos":40.75667943910494,"sin":43.811460605574815}],"z":[{"omegaRadPerYr":-0.0006207787083493434,"re":-0.000007760801206480335,"im":0.0000016579719102905573},{"omegaRadPerYr":0.0006207787083493449,"re":-0.000008695682534227633,"im":-0.000006359405183752185},{"omegaRadPerYr":-0.004432186705238992,"re":3.2207615300300247e-7,"im":-6.196347944817902e-7},{"omegaRadPerYr":0.006185044486880686,"re":-0.000004731941541673283,"im":-0.0000017729858354297809},{"omegaRadPerYr":0.006526633569639799,"re":0.00004150382284636084,"im":0.000017534400952133703},{"omegaRadPerYr":0.006841730692169909,"re":-0.0002026998234541423,"im":0.0003233646880686746},{"omegaRadPerYr":0.007470533994347621,"re":-0.0000049281296015436406,"im":-0.0000012002820271097082},{"omegaRadPerYr":0.013548716908851125,"re":-0.000002377738793176193,"im":0.000006656435245445941},{"omegaRadPerYr":-0.0963835641459155,"re":0.000004243818371947522,"im":0.000006318732294994447},{"omegaRadPerYr":-0.10309304895354462,"re":0.0002599772038145943,"im":0.0005935193398974658},{"omegaRadPerYr":0.10334256718399279,"re":0.00001068106998793681,"im":-7.548205310553664e-7},{"omegaRadPerYr":-0.10355795380749366,"re":-2.1154636946827e-7,"im":-5.390710095107589e-8},{"omegaRadPerYr":0.10974751126305515,"re":0.0000011302669198675927,"im":0.000006702466721595302},{"omegaRadPerYr":-0.10980538631044515,"re":-0.000002866815045583102,"im":-0.000009885070817152992},{"omegaRadPerYr":0.11007006680531065,"re":-0.00013061727670124666,"im":0.000009881348055011194},{"omegaRadPerYr":0.20631979856483246,"re":5.04298118741976e-7,"im":2.480806224515503e-7},{"omegaRadPerYr":-0.20631979856483246,"re":0.00006341492203955716,"im":0.000011273250168154838},{"omegaRadPerYr":0.2132961022923942,"re":-0.00005065824330209699,"im":-0.00006271190037317963},{"omegaRadPerYr":-0.2132961022923942,"re":-0.000004406921581341513,"im":-0.0000016060783929656262},{"omegaRadPerYr":-0.30955001412647276,"re":0.0000056019124603202195,"im":-0.000005441874625394522},{"omegaRadPerYr":0.41948265838592674,"re":-9.509570952152945e-8,"im":-0.0000012590269907950825},{"omegaRadPerYr":-0.41948265838592674,"re":0.000014641220619062486,"im":0.00010495558350565439},{"omegaRadPerYr":0.426466505091871,"re":-0.0000064497978114164694,"im":0.000013430976495086736},{"omegaRadPerYr":-0.426466505091871,"re":-1.7392937473622375e-8,"im":-0.000002543548554022179},{"omegaRadPerYr":0.5227123063902634,"re":-6.493200167943617e-8,"im":-1.9428718738465597e-7},{"omegaRadPerYr":-0.5227123063902634,"re":0.00001824269392489439,"im":0.00000906975764089715},{"omegaRadPerYr":0.5296909646421464,"re":-0.000023988048624019953,"im":-0.000016305548718652476},{"omegaRadPerYr":0.7358764924026054,"re":-5.772321676657591e-7,"im":-9.031194308086103e-8},{"omegaRadPerYr":-0.7358764924026054,"re":-0.000004926448326111552,"im":0.00003725847350296657}],"zeta":[{"omegaRadPerYr":-0.0006207787083493432,"re":0.0000017148670408172224,"im":-1.1979774717324106e-7},{"omegaRadPerYr":0.0006207787083493434,"re":0.0000073648358837529556,"im":-0.000001424067731329963},{"omegaRadPerYr":0.0011047092477748065,"re":-7.000878721120519e-7,"im":-2.3731715104835338e-7},{"omegaRadPerYr":0.0071090112684356,"re":-0.000003975092067696403,"im":0.0000075798744823925934}],"windowAffine":{"mlon":{"off":-276.6789283580293,"slope":6.146016597905851},"a":{"off":-319.6050905273606,"slope":0.0007796076926885039},"k":{"off":0.000014289210688706095,"slope":2.880479286878237e-8},"h":{"off":-0.001073832363366988,"slope":-2.534500776380545e-8},"q":{"off":-0.0000010335341247600158,"slope":1.4914208056557646e-9},"p":{"off":-0.000008818002194016852,"slope":3.0856264717746908e-9}}},"saturn":{"mlonArcsec":[{"omegaRadPerYr":0.0006208681133576669,"cos":-451.253615891754,"sin":145.98152908438132},{"omegaRadPerYr":0.004165525534002769,"cos":5.787274939055933,"sin":-12.703810065013153},{"omegaRadPerYr":0.005711612505032101,"cos":-189.54704549967167,"sin":-160.138901914935},{"omegaRadPerYr":0.006061128582866573,"cos":603.7466010253094,"sin":-8.700856030526818},{"omegaRadPerYr":0.0064003167157022246,"cos":-1037.3698907699634,"sin":1226.0959465379547},{"omegaRadPerYr":0.006927098454757736,"cos":279.6703017478956,"sin":2098.4367623243365},{"omegaRadPerYr":0.007347527790309774,"cos":-31.43305366096744,"sin":-283.15643985756446},{"omegaRadPerYr":0.009480611716879448,"cos":-0.4507335945350436,"sin":4.79424382361373},{"omegaRadPerYr":0.010945707057204556,"cos":25.998025191315012,"sin":6.51039808953889},{"omegaRadPerYr":0.01341613162135763,"cos":-7.425964486999675,"sin":26.129189937928867},{"omegaRadPerYr":0.06380203049325128,"cos":-4.956781443209341,"sin":-5.857273277892975},{"omegaRadPerYr":0.09641501836240508,"cos":1.093655918412904,"sin":-3.2100722037931555},{"omegaRadPerYr":0.10286386181613702,"cos":99.08099439180381,"sin":-63.162454954986316},{"omegaRadPerYr":0.10333438844615983,"cos":212.53124729979737,"sin":-24.123206548331538},{"omegaRadPerYr":0.11004419279928404,"cos":-8.76642821816064,"sin":25.14155702073091},{"omegaRadPerYr":0.1384221456508977,"cos":-4.142308935304489,"sin":0.3359277714106255},{"omegaRadPerYr":0.2064531916682817,"cos":30.963724773182314,"sin":-15.259788419608947},{"omegaRadPerYr":0.2131887934790523,"cos":-24.29491341571394,"sin":-6.982168144064149},{"omegaRadPerYr":0.2770241887124282,"cos":1.4543542593835515,"sin":6.3793376087284965},{"omegaRadPerYr":0.31639189446899674,"cos":-148.12974553923905,"sin":514.8691214437579},{"omegaRadPerYr":0.3231050733335511,"cos":2.178111128712694,"sin":-4.849441591870168},{"omegaRadPerYr":0.41962101131042784,"cos":43.79639605758242,"sin":47.62049382853528},{"omegaRadPerYr":0.4263384811647367,"cos":-1.9599761156575544,"sin":-4.910375543643042},{"omegaRadPerYr":0.5228461938866507,"cos":7.6492352759963484,"sin":-1.4042408711820147},{"omegaRadPerYr":0.5296206925660197,"cos":20.82311358880523,"sin":-21.723522060178187},{"omegaRadPerYr":0.6327839463508664,"cos":-77.8067933782241,"sin":124.58143011814512},{"omegaRadPerYr":0.7360122996869195,"cos":11.252910261739688,"sin":22.663624511588285},{"omegaRadPerYr":0.8460438288764272,"cos":1.8113799261773025,"sin":20.756673170052206},{"omegaRadPerYr":0.9491754962353995,"cos":-40.339539075190224,"sin":37.047932328557295},{"omegaRadPerYr":1.2655672066097283,"cos":-20.25042369756606,"sin":10.420773654426046}],"aPpm":[{"omegaRadPerYr":0.006719059935042215,"cos":-298.1739213236028,"sin":-35.65492072514902},{"omegaRadPerYr":0.10311278023647517,"cos":329.05242810267646,"sin":168.2053446152665},{"omegaRadPerYr":0.1099870935042278,"cos":-80.20082859738086,"sin":25.677992848453474},{"omegaRadPerYr":0.20645076221400505,"cos":22.365346624696144,"sin":52.11596047023494},{"omegaRadPerYr":0.21316470395286807,"cos":22.417376358933,"sin":148.19540823121667},{"omegaRadPerYr":0.3096741611131529,"cos":40.76320120805859,"sin":6.028630477781981},{"omegaRadPerYr":0.31639181272876266,"cos":3380.8172681042483,"sin":952.19154868527},{"omegaRadPerYr":0.41962072059820554,"cos":-117.61845886216751,"sin":102.62640456035058},{"omegaRadPerYr":0.522848349625552,"cos":2.3692526123597575,"sin":25.55482510964822},{"omegaRadPerYr":0.6327843055552796,"cos":-267.8385275274031,"sin":-178.81334724872872},{"omegaRadPerYr":0.7360113200820578,"cos":-70.20882189811421,"sin":30.840529284060356},{"omegaRadPerYr":0.8460447241275829,"cos":152.71397931748962,"sin":-11.548664498369881},{"omegaRadPerYr":0.9491754312473957,"cos":-100.97703552341146,"sin":-108.78710325854236},{"omegaRadPerYr":1.265567050136826,"cos":-32.69042937836259,"sin":-61.98759537925285}],"z":[{"omegaRadPerYr":-0.004358110846151278,"re":-0.000002445279424852449,"im":0.0000017621954362468656},{"omegaRadPerYr":0.006181644107420951,"re":0.000019239809643427013,"im":0.000026302645815428275},{"omegaRadPerYr":0.006525673611358515,"re":-0.00017162207988757243,"im":-0.00012381490122963492},{"omegaRadPerYr":0.006842443147971666,"re":0.0008160379290510822,"im":-0.0012855611879206686},{"omegaRadPerYr":0.007464263599308896,"re":0.000012700556847236648,"im":-0.000011961876101686816},{"omegaRadPerYr":0.011038687923256879,"re":-0.000039869855044714435,"im":0.00003195328235370556},{"omegaRadPerYr":0.013549298871283269,"re":0.000009801001526091865,"im":-0.000026447688535276757},{"omegaRadPerYr":-0.06373626925966255,"re":-0.00003596115998384089,"im":-0.000028529187552461677},{"omegaRadPerYr":-0.09638538445927783,"re":0.000015535362203103386,"im":0.000026853064771238423},{"omegaRadPerYr":-0.10309247938025248,"re":0.0002905044325100417,"im":0.0006021956537131266},{"omegaRadPerYr":0.10334344954127525,"re":-0.000019533843400768672,"im":0.000010878621921404595},{"omegaRadPerYr":0.10921440834492788,"re":-0.00003560780226338562,"im":0.000008050131621592458},{"omegaRadPerYr":-0.10921440834492788,"re":0.0000017934499315039944,"im":0.00000405315797293809},{"omegaRadPerYr":0.10975358535397606,"re":0.00017369831673455462,"im":-0.00007535465148308143},{"omegaRadPerYr":-0.10975358535397606,"re":-0.000004563988896924535,"im":-0.0000154375327254865},{"omegaRadPerYr":0.11042109885467918,"re":0.00018688710085717507,"im":-0.00012925303231366497},{"omegaRadPerYr":0.1107948956846119,"re":-0.00005742819467953064,"im":0.00002446019747635651},{"omegaRadPerYr":-0.1107948956846119,"re":3.2507064761096937e-7,"im":0.0000014893262878712717},{"omegaRadPerYr":0.2063193110741841,"re":-0.000012094578924974436,"im":-0.000015066272817853064},{"omegaRadPerYr":-0.2063193110741841,"re":-0.0002645706853712598,"im":-0.000043660297027029056},{"omegaRadPerYr":0.2130228704680447,"re":0.0007392110656689748,"im":0.0008891228393192088},{"omegaRadPerYr":-0.2130228704680447,"re":0.000018380819773470427,"im":0.000004389860388892079},{"omegaRadPerYr":-0.30955014898803845,"re":-0.000024631815470831895,"im":0.00002635073382218204},{"omegaRadPerYr":0.3161372566474592,"re":0.000010638067732514132,"im":0.00002903644464320735},{"omegaRadPerYr":-0.3161372566474592,"re":0.000044785364090127505,"im":-0.00007235123203278041},{"omegaRadPerYr":0.3232395099583198,"re":-0.0000030767740423315698,"im":-0.00002580327386509728},{"omegaRadPerYr":-0.3232395099583198,"re":-8.037783708694097e-7,"im":0.0000013792616646490144},{"omegaRadPerYr":0.41948429875117665,"re":-0.0000024400754535557023,"im":8.894450263194997e-7},{"omegaRadPerYr":-0.41948429875117665,"re":-0.00005542845317142494,"im":-0.00044582635037752926},{"omegaRadPerYr":0.42644865463819764,"re":0.00007629843791169079,"im":-0.00004431512896241777},{"omegaRadPerYr":-0.42644865463819764,"re":-3.142917811194328e-7,"im":0.000010823856186704562},{"omegaRadPerYr":0.5227089862323508,"re":0.000003410979417831606,"im":0.0000030363670326161395},{"omegaRadPerYr":-0.5227089862323508,"re":-0.00007781393434095757,"im":-0.000038627649196321925},{"omegaRadPerYr":0.5296908859098071,"re":0.0016272720362705665,"im":0.0011111321002679347},{"omegaRadPerYr":-0.6327562885720048,"re":0.000029869908761550486,"im":0.00004153187994553486},{"omegaRadPerYr":0.7358761721222311,"re":0.000002104902323996618,"im":-5.169275046806296e-7},{"omegaRadPerYr":-0.7358761721222311,"re":0.00002159732009990703,"im":-0.00016115133722286416},{"omegaRadPerYr":0.8391031676474132,"re":-3.2200579003446994e-7,"im":-1.921602155098948e-7},{"omegaRadPerYr":-0.8391031676474132,"re":-0.000029573064620902294,"im":-0.00002687687857849615},{"omegaRadPerYr":0.8460633253903981,"re":-0.0000182912621724972,"im":-0.000004960467884280318},{"omegaRadPerYr":-0.8460633253903981,"re":0.000002270968484351811,"im":-4.1450617474219755e-7},{"omegaRadPerYr":1.0522678070946976,"re":0.000002112495108837071,"im":-6.772836661571395e-7},{"omegaRadPerYr":-1.0522678070946976,"re":0.000026798123887720964,"im":-0.00006313630230370938},{"omegaRadPerYr":1.0593357383703628,"re":0.000055178325520269776,"im":0.00007541106198902492},{"omegaRadPerYr":-1.0593357383703628,"re":-0.0000011488133127119404,"im":0.0000024971143397116498}],"zeta":[{"omegaRadPerYr":-0.0006207787083493432,"re":-8.436595912367323e-7,"im":0.000001633263627834134},{"omegaRadPerYr":0.0006207787083493434,"re":-0.000021424440269056364,"im":0.00000406741893133285},{"omegaRadPerYr":0.0011035308302650994,"re":0.0000028014305555000514,"im":3.03429131598728e-7},{"omegaRadPerYr":0.007110979736486372,"re":0.000009782653039468542,"im":-0.000018356544025335236},{"omegaRadPerYr":0.11036111149309716,"re":0.0000053050503083409155,"im":-7.394158520138554e-7},{"omegaRadPerYr":-0.11036111149309716,"re":-1.2281150228540698e-7,"im":-3.07875979063758e-7},{"omegaRadPerYr":0.31648864888649864,"re":5.930263050595727e-7,"im":-0.0000017212036515675988},{"omegaRadPerYr":-0.31648864888649864,"re":0.000006094478957977664,"im":-0.0000045938972600486}],"windowAffine":{"mlon":{"off":709.9722654779956,"slope":-15.579934294638058},"a":{"off":-2829.2103263877525,"slope":-0.004510524074380032},"k":{"off":-0.0032950974609698065,"slope":-2.0051399643096954e-8},"h":{"off":-0.0002907698308219252,"slope":-1.3596818437416563e-8},"q":{"off":-0.0000010497861227947909,"slope":-1.844836227990879e-9},"p":{"off":0.00001949409542224931,"slope":-8.310665514904321e-10}}},"uranus":{"mlonArcsec":[{"omegaRadPerYr":0.0006208681133576669,"cos":1801.9688215276547,"sin":3696.0402015231675},{"omegaRadPerYr":0.0011579316488608284,"cos":-2487.6534406001147,"sin":-459.55088689711397},{"omegaRadPerYr":0.0016224830408352498,"cos":-1220.2966969515146,"sin":1099.2432996165028},{"omegaRadPerYr":0.002935118567074053,"cos":-86.83674347331831,"sin":-108.24685231024809},{"omegaRadPerYr":0.004155546482813653,"cos":7.118744517059694,"sin":23.57760406645599},{"omegaRadPerYr":0.009315002243089728,"cos":3.7516023313568363,"sin":7.101267898351473},{"omegaRadPerYr":0.010640504204457963,"cos":-45.57910944323328,"sin":-40.20883229440988},{"omegaRadPerYr":0.01119673478710359,"cos":-81.22235365041975,"sin":1.901281748995162},{"omegaRadPerYr":0.012145759710583907,"cos":6.889745560125585,"sin":0.1337542919867262},{"omegaRadPerYr":0.03510485087576988,"cos":-13.688922570681836,"sin":-0.13357807007057396},{"omegaRadPerYr":0.036426329598293165,"cos":-5.668712161443024,"sin":-24.347642616449427},{"omegaRadPerYr":0.03764711514559774,"cos":1.138953309753275,"sin":-6.871151194186152},{"omegaRadPerYr":0.06379838901039833,"cos":20.403291982312666,"sin":27.239956687524646},{"omegaRadPerYr":0.07318148932273885,"cos":-9.790209397106063,"sin":-27.80021241193281},{"omegaRadPerYr":0.07471215976498653,"cos":7.902379642110793,"sin":-0.774442117625175},{"omegaRadPerYr":0.10992640338436127,"cos":-5.939904215836388,"sin":-10.882753324742827},{"omegaRadPerYr":0.1385175392010205,"cos":155.21118912477402,"sin":-15.812055598809634},{"omegaRadPerYr":0.14663782569970274,"cos":-3.7488763779317598,"sin":-4.791075382227249},{"omegaRadPerYr":0.18317858258233016,"cos":-2.2663688645635784,"sin":-2.0807781596480717},{"omegaRadPerYr":0.20224498577277328,"cos":8.906763705097376,"sin":0.1380298652243485},{"omegaRadPerYr":0.21324964619950887,"cos":7.79719866947626,"sin":3.241509288620873},{"omegaRadPerYr":0.2770253845805853,"cos":-5.372427211086557,"sin":-26.160552277645316},{"omegaRadPerYr":0.34075769983231263,"cos":-0.34413062425412416,"sin":-3.4023598781892685},{"omegaRadPerYr":0.35171296920155715,"cos":6.530654205490572,"sin":4.862791616448076},{"omegaRadPerYr":0.3801532980579145,"cos":-10.061663279866217,"sin":6.615060134886086},{"omegaRadPerYr":0.4155393874689375,"cos":-8.765446247114845,"sin":2.7918680516072425},{"omegaRadPerYr":0.4549044622840928,"cos":693.1080948896936,"sin":120.18474838738872},{"omegaRadPerYr":0.45610432617458596,"cos":1.4784723033153024,"sin":-4.600733971723476},{"omegaRadPerYr":0.5296580495362411,"cos":25.53148607890865,"sin":29.126214483562098},{"omegaRadPerYr":0.9098120073368585,"cos":1.5179157507850387,"sin":-4.917034352655555},{"omegaRadPerYr":0.9845575209673397,"cos":34.71485095170867,"sin":-6.198872286264103}],"aPpm":[{"omegaRadPerYr":0.0015195464620650877,"cos":-97.92780120015847,"sin":-170.5428140152202},{"omegaRadPerYr":0.010971188991961797,"cos":15.922068967567228,"sin":-63.432796546205935},{"omegaRadPerYr":0.036210324842414696,"cos":16.212587942173556,"sin":-6.129790120421755},{"omegaRadPerYr":0.0638251399824393,"cos":10.100213421265115,"sin":75.06714450826473},{"omegaRadPerYr":0.0733720075467266,"cos":42.98239259300776,"sin":-17.9418140413923},{"omegaRadPerYr":0.07480628721946354,"cos":-98.25061077714025,"sin":-132.202002201576},{"omegaRadPerYr":0.10992773337349732,"cos":23.527834427275085,"sin":-13.195939312161588},{"omegaRadPerYr":0.13851260798083515,"cos":-111.93654476921755,"sin":-1070.016527121048},{"omegaRadPerYr":0.20224432811824086,"cos":-1.6198240173862555,"sin":23.993058869923644},{"omegaRadPerYr":0.2770277343049128,"cos":61.913236841972406,"sin":-9.835654134674343},{"omegaRadPerYr":0.35171020655145807,"cos":33.74734368162499,"sin":-41.87577534787228},{"omegaRadPerYr":0.38014999979161623,"cos":101.22109160185427,"sin":184.81826525347103},{"omegaRadPerYr":0.4155326059030616,"cos":-8.50929116085849,"sin":-24.32921998914257},{"omegaRadPerYr":0.45490446743623597,"cos":713.139927237936,"sin":-4114.6325172160405},{"omegaRadPerYr":0.4561160600364418,"cos":-27.913180144325082,"sin":-8.624546428335371},{"omegaRadPerYr":0.984557509897134,"cos":-33.18844015424147,"sin":-186.75405236611599}],"z":[{"omegaRadPerYr":-0.0006207787083493432,"re":-0.0010010271541711772,"im":0.0018777044315025746},{"omegaRadPerYr":0.0006207787083493464,"re":0.004669404370945987,"im":-0.009340747389266558},{"omegaRadPerYr":0.0009435296146423852,"re":-0.002693731244410169,"im":0.005515123870617622},{"omegaRadPerYr":-0.0011535901883012222,"re":0.00014035425010575732,"im":-0.00024989373718838423},{"omegaRadPerYr":0.0014837575606668784,"re":-0.00045779885526748995,"im":0.001029220718337651},{"omegaRadPerYr":0.0029527987688873665,"re":0.00009183113654454647,"im":0.00014226780874768813},{"omegaRadPerYr":0.004292938112541269,"re":0.00002604331453241119,"im":-0.0000026087586213451956},{"omegaRadPerYr":0.009597120283040226,"re":-0.000007669844938360622,"im":0.000021294192837364352},{"omegaRadPerYr":-0.009597120283040226,"re":-3.9726713006760554e-7,"im":6.855988059585005e-7},{"omegaRadPerYr":0.010674384178493406,"re":-0.000010533262678437352,"im":-0.0001455148230309594},{"omegaRadPerYr":0.011227739550618343,"re":0.00006715354281438808,"im":-0.00012622016168569206},{"omegaRadPerYr":0.03372910794138875,"re":-5.792844472104949e-7,"im":2.4314285495180073e-7},{"omegaRadPerYr":-0.03372910794138875,"re":-0.00000880378752168949,"im":-0.000006800427022328312},{"omegaRadPerYr":-0.03516446737018353,"re":0.000017036805195683028,"im":-0.00006576383803542369},{"omegaRadPerYr":0.03813277064323463,"re":-0.000014411793574417915,"im":0.000021543930065801352},{"omegaRadPerYr":0.03956799170730824,"re":0.0000060071290961077885,"im":0.000009377006777274802},{"omegaRadPerYr":-0.03956799170730824,"re":2.6935210872742854e-7,"im":-4.916863023382216e-8},{"omegaRadPerYr":0.05268030494966354,"re":-4.237037805796693e-8,"im":-2.2749652861175358e-7},{"omegaRadPerYr":-0.05268030494966354,"re":-0.00001162431242526334,"im":0.000006194880630876984},{"omegaRadPerYr":-0.06373512207652907,"re":-0.00022367795746631777,"im":-0.00017316839062164822},{"omegaRadPerYr":0.07165168074871991,"re":0.0000017015187480928225,"im":7.242338771966972e-7},{"omegaRadPerYr":-0.07165168074871991,"re":0.0000022253065719657005,"im":-0.0000239819546465497},{"omegaRadPerYr":0.07478159870524997,"re":0.0009483157794586808,"im":-0.0009764231771624703},{"omegaRadPerYr":0.10845808945136469,"re":-3.004883965295506e-7,"im":1.7055087357327652e-7},{"omegaRadPerYr":-0.10845808945136469,"re":-9.064387638229779e-7,"im":-0.000011385527941028099},{"omegaRadPerYr":-0.12747767226472656,"re":0.000021699265157246156,"im":0.00002376114754738344},{"omegaRadPerYr":0.13850950308176996,"re":-0.0000010910229098697519,"im":-0.000007886168725902355},{"omegaRadPerYr":-0.13850950308176996,"re":-0.000001434320086571384,"im":-0.00001963808508671571},{"omegaRadPerYr":0.1495497617854712,"re":0.000014732954282267382,"im":0.00008515250779883778},{"omegaRadPerYr":0.20222937823935716,"re":-1.1385591675988417e-7,"im":7.147831866493965e-7},{"omegaRadPerYr":-0.20222937823935716,"re":0.00004353415832027236,"im":-0.00006511784459661798},{"omegaRadPerYr":0.21329897373317086,"re":0.0003933511417178107,"im":0.00047058009044412887},{"omegaRadPerYr":-0.21329897373317086,"re":2.8327811431341513e-7,"im":-3.560359246154832e-7},{"omegaRadPerYr":0.2769038067800174,"re":-6.922779079018568e-7,"im":-0.0000013818132165140064},{"omegaRadPerYr":-0.2769038067800174,"re":-2.3494785512648875e-7,"im":-0.000016621555907303974},{"omegaRadPerYr":0.3053633220183532,"re":-3.828674197691803e-8,"im":-3.0064823844297327e-8},{"omegaRadPerYr":-0.3053633220183532,"re":0.00007882762566993446,"im":0.0000236123586415603},{"omegaRadPerYr":0.3407483470470682,"re":-1.3758316558774432e-7,"im":-2.4367154579582864e-7},{"omegaRadPerYr":-0.3407483470470682,"re":-0.000024185839542396282,"im":-0.000011566031399227259},{"omegaRadPerYr":0.38011803010191847,"re":-5.112230464978982e-8,"im":3.5576083426589514e-7},{"omegaRadPerYr":-0.38011803010191847,"re":-0.000683808108807156,"im":-0.0009409743748576826},{"omegaRadPerYr":0.38132830185858746,"re":-5.8177806967052385e-8,"im":1.6800244502590846e-7},{"omegaRadPerYr":-0.38132830185858746,"re":-0.000014034035119495699,"im":0.000007393494708343985},{"omegaRadPerYr":0.4264958876223484,"re":0.000033536519266374154,"im":0.0000032361816570982316},{"omegaRadPerYr":-0.4264958876223484,"re":2.1135509106302237e-9,"im":-2.2152515698741622e-7},{"omegaRadPerYr":0.4548421909364264,"re":-0.000006897616144456808,"im":-0.00002246641860475243},{"omegaRadPerYr":-0.4548421909364264,"re":0.00000407137788831569,"im":-0.00007288075699841603},{"omegaRadPerYr":0.5296909155630158,"re":0.0022676944652803236,"im":0.0015486566265643551},{"omegaRadPerYr":0.6044398037682881,"re":0.00001772821682494471,"im":-0.000001325745633927324},{"omegaRadPerYr":-0.6044398037682881,"re":1.8671243007549463e-7,"im":5.135484152882108e-9},{"omegaRadPerYr":0.8350185854831645,"re":1.3389962716219148e-7,"im":4.84551878795857e-8},{"omegaRadPerYr":-0.8350185854831645,"re":0.000018812120588273927,"im":-0.000007750077895326201},{"omegaRadPerYr":0.9097702890415831,"re":-5.782380719892394e-7,"im":1.9729873306333605e-7},{"omegaRadPerYr":-0.9097702890415831,"re":-0.00004113467597080967,"im":-0.000028046600646821318},{"omegaRadPerYr":1.0593442234385404,"re":0.00007767832087815946,"im":0.00010783753098964789},{"omegaRadPerYr":-1.0593442234385404,"re":-1.3556647669744362e-9,"im":3.814197973272324e-8}],"zeta":[{"omegaRadPerYr":-0.0006207787083493432,"re":0.000009629466068512008,"im":-0.00002700542307681737},{"omegaRadPerYr":0.0006207787083493434,"re":-0.000049798841708766556,"im":0.00013244063973719405},{"omegaRadPerYr":0.0009514858307923093,"re":0.000026789231695805917,"im":-0.00007644359257728086},{"omegaRadPerYr":0.0014527887892821479,"re":-0.0000023897704328165434,"im":0.000013648719577168508},{"omegaRadPerYr":-0.0014792753244575146,"re":0.000002151034415423666,"im":0.000005190682098271777},{"omegaRadPerYr":0.0029820480249223872,"re":-0.0000013160358614767749,"im":-0.000005115909165770176},{"omegaRadPerYr":0.00445001839713232,"re":-6.717165830591991e-7,"im":9.251686604741414e-9},{"omegaRadPerYr":0.011102305337337318,"re":-0.000004628968123150622,"im":-0.0000046908160229297634},{"omegaRadPerYr":0.03663431002433444,"re":-6.097607617781723e-7,"im":9.248254018616485e-8},{"omegaRadPerYr":-0.036662600049736954,"re":4.790966947907778e-7,"im":-2.7030397322901033e-7},{"omegaRadPerYr":-0.1385862814842433,"re":0.0000034400542443838532,"im":0.0000021585069767270156},{"omegaRadPerYr":0.1496020811421664,"re":8.15990123336191e-7,"im":-7.942505016386517e-7},{"omegaRadPerYr":0.2881502651212958,"re":-0.0000010962716988804577,"im":-0.0000016121125699103533},{"omegaRadPerYr":0.45486894002023015,"re":-2.2992966985781707e-8,"im":-9.354657471556091e-9},{"omegaRadPerYr":-0.45486894002023015,"re":0.0000041579007491430415,"im":0.000004891978906915924},{"omegaRadPerYr":0.6044418164850311,"re":-0.0000037738318413916955,"im":-0.0000030151035436098662},{"omegaRadPerYr":-0.6044418164850311,"re":-7.35866162994619e-11,"im":-1.0864146466816922e-9}],"windowAffine":{"mlon":{"off":1210.0916981086646,"slope":-2.356561618102263},"a":{"off":-570.5850928990467,"slope":-0.008328826998351968},"k":{"off":-0.00366228365357873,"slope":-0.000002706626332717455},"h":{"off":0.0013833912074699532,"slope":-0.0000013941565327430463},"q":{"off":0.000017812451313420837,"slope":4.3356058040235435e-8},"p":{"off":-0.00003762382414202915,"slope":1.7014936480391533e-8}}},"neptune":{"mlonArcsec":[{"omegaRadPerYr":0.0006208681133576669,"cos":1064.212149451297,"sin":-18540.652753959734},{"omegaRadPerYr":0.0010884207287489497,"cos":-924.0362482426459,"sin":8383.82201986771},{"omegaRadPerYr":0.0014542551964391568,"cos":2226.955694353464,"sin":-3270.274366253071},{"omegaRadPerYr":0.0029389628530379795,"cos":48.078439095229676,"sin":94.12365761816456},{"omegaRadPerYr":0.035319889560920095,"cos":9.257473045853379,"sin":2.0734856552080676},{"omegaRadPerYr":0.03664876565539879,"cos":4.7094553822663965,"sin":32.60593260837659},{"omegaRadPerYr":0.0379634784712963,"cos":2.9744193339631977,"sin":2.513917234979188},{"omegaRadPerYr":0.07185421776935363,"cos":2.8052710744993297,"sin":0.02846273088874038},{"omegaRadPerYr":0.0732973641270625,"cos":6.1965389050552835,"sin":17.0773714633508},{"omegaRadPerYr":0.10987969317187546,"cos":3.60363735367916,"sin":6.863360280812679},{"omegaRadPerYr":0.1465411070471313,"cos":2.3029358223686502,"sin":2.954488343602723},{"omegaRadPerYr":0.17516600735395105,"cos":184.4413301288469,"sin":-52.32109605114765},{"omegaRadPerYr":0.35033794653247485,"cos":-1.7861093063080808,"sin":-2.9405528996126975},{"omegaRadPerYr":0.38836651611040063,"cos":9.70081182993168,"sin":5.3192582532981545},{"omegaRadPerYr":0.4915611841446312,"cos":911.0889137852095,"sin":-1.0510799754510758},{"omegaRadPerYr":0.49279773384983616,"cos":-0.5592399822047331,"sin":3.9702700781104827},{"omegaRadPerYr":0.5297024373268707,"cos":2.40320968051373,"sin":-9.399068768105197},{"omegaRadPerYr":1.021214758421749,"cos":42.2020577057518,"sin":-15.309967518050174}],"aPpm":[{"omegaRadPerYr":0.0015262400589186877,"cos":128.59464307443753,"sin":231.15748494462574},{"omegaRadPerYr":0.0028522808070564833,"cos":-21.37258121508621,"sin":10.41064755989285},{"omegaRadPerYr":0.03669498740393444,"cos":151.68816464488373,"sin":-28.109847919847983},{"omegaRadPerYr":0.0732428963963061,"cos":-33.097418893495544,"sin":11.320551289859745},{"omegaRadPerYr":0.11007776654950899,"cos":-15.641429019477593,"sin":8.577259144710313},{"omegaRadPerYr":0.17516937472508654,"cos":-326.96669731853905,"sin":-1149.3821777931403},{"omegaRadPerYr":0.38836651718787407,"cos":29.53675612865252,"sin":-54.13457963760843},{"omegaRadPerYr":0.4534159750526987,"cos":-46.68270557697238,"sin":11.759966469069417},{"omegaRadPerYr":0.49156118009313077,"cos":-5.290056175958509,"sin":-4922.302879177644},{"omegaRadPerYr":0.4928261722960873,"cos":22.10668376967481,"sin":2.1304175891318873},{"omegaRadPerYr":1.0212147268897795,"cos":-78.57315117147935,"sin":-216.34180136813907}],"z":[{"omegaRadPerYr":-0.0006207787083493432,"re":0.00000822910599695662,"im":0.00000566645788782689},{"omegaRadPerYr":0.0006207787083493453,"re":-0.0000033482623738817215,"im":-0.000011998582333036538},{"omegaRadPerYr":0.0014837734825010177,"re":0.0002465285902965811,"im":-0.000542946526804817},{"omegaRadPerYr":0.002952491806788975,"re":-0.00011247629571556469,"im":-0.00011171907883842821},{"omegaRadPerYr":-0.004414051602461347,"re":-1.1949180023376013e-8,"im":-5.895393912563796e-8},{"omegaRadPerYr":0.00441745151969733,"re":-0.000011139829747812603,"im":0.000005957961387581304},{"omegaRadPerYr":-0.0336947851363493,"re":0.000008788563557474915,"im":0.0000066100893572258815},{"omegaRadPerYr":-0.03516438841507151,"re":-0.000016831823497116864,"im":0.00006611363801678594},{"omegaRadPerYr":0.03666424259143439,"re":0.0000067161349630566706,"im":8.5863061450533e-7},{"omegaRadPerYr":0.03813296419381759,"re":0.0007689836932573089,"im":-0.0011245762260255845},{"omegaRadPerYr":-0.07181296843697238,"re":-0.0000023474904524169503,"im":0.000024443385640750307},{"omegaRadPerYr":0.07478167259300009,"re":0.00006051155974368794,"im":-0.00006241188917030075},{"omegaRadPerYr":0.08068029609791652,"re":-2.1385174933710793e-7,"im":9.47807650713311e-8},{"omegaRadPerYr":0.10840999361006448,"re":-2.1894562976651773e-8,"im":-1.842804538376415e-8},{"omegaRadPerYr":-0.10840999361006448,"re":5.153826226655718e-7,"im":0.000011407506356300657},{"omegaRadPerYr":-0.13703303990304816,"re":-0.0003233037620025506,"im":-0.00010732690949601281},{"omegaRadPerYr":0.21329898735568126,"re":0.00048778689719744165,"im":0.0005843247148884207},{"omegaRadPerYr":-0.3121996849254518,"re":2.6584347616665e-7,"im":-0.000009497238475246992},{"omegaRadPerYr":0.3502350293271937,"re":4.843040927610671e-8,"im":-1.0702237146150716e-7},{"omegaRadPerYr":-0.3502350293271937,"re":-0.000007616440459433557,"im":-0.000014833156682859016},{"omegaRadPerYr":0.41529137321236287,"re":1.442005878816463e-7,"im":-3.484512197119509e-7},{"omegaRadPerYr":-0.41529137321236287,"re":-0.00000707795193580432,"im":0.00001836075632727175},{"omegaRadPerYr":0.42649606358473324,"re":0.00004218844308149576,"im":0.000004227571689777453},{"omegaRadPerYr":-0.42649606358473324,"re":-5.658292052953387e-8,"im":-6.845099901226937e-8},{"omegaRadPerYr":0.45343148629777286,"re":-5.680507946629673e-8,"im":-9.841661999629342e-8},{"omegaRadPerYr":-0.45343148629777286,"re":-0.0010841004899122212,"im":-0.000736390221813403},{"omegaRadPerYr":0.4546133901012304,"re":6.67914668314911e-8,"im":6.897609009672202e-8},{"omegaRadPerYr":-0.4546133901012304,"re":0.00000818929299076697,"im":-0.000008038397570237945},{"omegaRadPerYr":0.4915675955310438,"re":-0.000004083522353726188,"im":0.000003744270434963885},{"omegaRadPerYr":-0.4915675955310438,"re":-0.000012301739812453286,"im":0.000010686366413055363},{"omegaRadPerYr":0.5296909041466622,"re":0.002839613383622111,"im":0.0019403577470709873},{"omegaRadPerYr":0.9830852238230905,"re":-6.720721583920492e-8,"im":3.425816645371005e-8},{"omegaRadPerYr":-0.9830852238230905,"re":-0.00005758151994324185,"im":-0.000014754794069635932},{"omegaRadPerYr":1.0593442030083966,"re":0.00009721226174654751,"im":0.0001350049744357107},{"omegaRadPerYr":-1.0593442030083966,"re":-4.1559879847366785e-8,"im":9.802298292992387e-9}],"zeta":[{"omegaRadPerYr":-0.0006207787083493432,"re":-5.057373983794714e-7,"im":0.0000031433152031555667},{"omegaRadPerYr":0.0006207787083493438,"re":0.0000029115733404898485,"im":-0.000004309627443672908},{"omegaRadPerYr":0.0014366584800648346,"re":-0.0000013572071156821169,"im":-0.000001020104238423996},{"omegaRadPerYr":-0.001480323771534016,"re":-0.0000011783259528824155,"im":-0.0000018211874549353222},{"omegaRadPerYr":0.002982469348844243,"re":9.458475398560309e-7,"im":0.000003122123819843002},{"omegaRadPerYr":0.0044510414024656955,"re":3.971188256100343e-7,"im":2.94455272695886e-8},{"omegaRadPerYr":0.03663380433896722,"re":3.593149192869475e-7,"im":-5.5827146617815774e-8},{"omegaRadPerYr":-0.17494555869955136,"re":9.099409535530744e-7,"im":-9.024205485759674e-7},{"omegaRadPerYr":-0.17549754071699553,"re":0.000001505121306046405,"im":-3.070442234723798e-7},{"omegaRadPerYr":0.49159407636236985,"re":4.796686684990757e-9,"im":3.358344123813994e-10},{"omegaRadPerYr":-0.49159407636236985,"re":-3.98804489842816e-7,"im":-0.00001005615352417885},{"omegaRadPerYr":0.5676217845108422,"re":0.000004880876845321145,"im":-0.0000023244672855910403},{"omegaRadPerYr":0.5681730424584401,"re":0.000003985093304959338,"im":-7.238476904721648e-7}],"windowAffine":{"mlon":{"off":-3600.978375847875,"slope":6.706848240846746},"a":{"off":228.34220468445073,"slope":0.013417433557641792},"k":{"off":-0.0029101681444154044,"slope":2.5117803834315305e-9},"h":{"off":-0.00012102457242531213,"slope":1.8162297961597065e-8},"q":{"off":-0.000011703165443191566,"slope":-2.5174396402677695e-9},"p":{"off":0.00001578707593265369,"slope":-1.0378417602521395e-8}}}}});
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Invariable-plane node-origin conversion — the K5c node-origin DERIVATION
|
|
3
|
+
* (plan 02: "derive the origin definition and apply the exact conversion —
|
|
4
|
+
* a derivation, not a fit").
|
|
5
|
+
*
|
|
6
|
+
* THE TWO CONVENTIONS. The K5c evaluator (keplerian-chain.cjs) outputs node
|
|
7
|
+
* longitudes in the engine's own s-frame: origin = ecliptic-X (the equinox)
|
|
8
|
+
* projected into the artifact-banked invariable plane — the NAFF extraction
|
|
9
|
+
* convention. Souami & Souchay (2012, A&A 543, A133) Table 2 quote node
|
|
10
|
+
* longitudes from a different origin on the same plane: the invariable
|
|
11
|
+
* plane's ASCENDING NODE ON THE ICRF EQUATOR. This module derives that
|
|
12
|
+
* origin's s-frame longitude from nothing but the banked plane orientation
|
|
13
|
+
* and the J2000 mean obliquity — zero fitted constants.
|
|
14
|
+
*
|
|
15
|
+
* VERIFICATION (measured on derivation, 2026-09): the derived node direction
|
|
16
|
+
* reproduces S&S's published equator node RA 3°51′9.4″ = 3.8526° to
|
|
17
|
+
* 0.4 mdeg, and converting the chain's eight J2000 s-frame nodes collapses
|
|
18
|
+
* the apparent per-planet offsets (1.7–10.2°) to the element-class residual
|
|
19
|
+
* (chain elements-of-date vs S&S mean elements), which scales as
|
|
20
|
+
* 1/sin(i_inv) exactly as the K5c i_inv probe's ≤0.05° representation band
|
|
21
|
+
* predicts. The legacy Appendix-C "calibrated" nodes independently agree
|
|
22
|
+
* with the converted values (mostly ≤1°) — the old calibration was
|
|
23
|
+
* compensating for exactly this origin difference plus the of-date element
|
|
24
|
+
* state. Gate: tools/explore/k5c-invplane-probe.mjs.
|
|
25
|
+
*
|
|
26
|
+
* Dependency-injected like the rest of the .cjs leaves: callers supply the
|
|
27
|
+
* banked plane (artifact `invariablePlane`) and their certified J2000 mean
|
|
28
|
+
* obliquity in degrees (the ecliptic↔ICRF rotation constant, e.g.
|
|
29
|
+
* earthOrbital.obliquityJ2000_deg).
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
'use strict';
|
|
33
|
+
|
|
34
|
+
const D2R = Math.PI / 180;
|
|
35
|
+
|
|
36
|
+
/** @typedef {{ inclEclipticDeg: number, ascNodeEclipticDeg: number }} InvariablePlane */
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* The s-frame basis of the banked invariable plane in ecliptic-J2000
|
|
40
|
+
* coordinates — the SAME construction as the K5c evaluator rotation in
|
|
41
|
+
* keplerian-chain.cjs (x̂ = ecliptic-X projected into the plane); kept in
|
|
42
|
+
* lockstep with it (matched-pair rule).
|
|
43
|
+
* @param {InvariablePlane} invariablePlane the artifact-banked plane
|
|
44
|
+
* @returns {{ xf: number[], yf: number[], zf: number[] }} unit basis vectors
|
|
45
|
+
*/
|
|
46
|
+
function computeSFrameBasis(invariablePlane) {
|
|
47
|
+
const fi = invariablePlane.inclEclipticDeg * D2R;
|
|
48
|
+
const fO = invariablePlane.ascNodeEclipticDeg * D2R;
|
|
49
|
+
const zf = [Math.sin(fi) * Math.sin(fO), -Math.sin(fi) * Math.cos(fO), Math.cos(fi)];
|
|
50
|
+
let xf = [1 - zf[0] * zf[0], -zf[0] * zf[1], -zf[0] * zf[2]];
|
|
51
|
+
const xn = Math.hypot(xf[0], xf[1], xf[2]);
|
|
52
|
+
xf = [xf[0] / xn, xf[1] / xn, xf[2] / xn];
|
|
53
|
+
const yf = [
|
|
54
|
+
zf[1] * xf[2] - zf[2] * xf[1],
|
|
55
|
+
zf[2] * xf[0] - zf[0] * xf[2],
|
|
56
|
+
zf[0] * xf[1] - zf[1] * xf[0],
|
|
57
|
+
];
|
|
58
|
+
return { xf, yf, zf };
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* S-frame longitude of the invariable plane's ascending node on the ICRF
|
|
63
|
+
* equator — the Souami & Souchay (2012) longitude origin. Subtracting this
|
|
64
|
+
* from a K5c s-frame node longitude expresses it in the S&S convention.
|
|
65
|
+
* J2000-fixed (banked plane + J2000 mean obliquity).
|
|
66
|
+
* @param {InvariablePlane} invariablePlane the artifact-banked plane
|
|
67
|
+
* @param {number} obliquityJ2000Deg J2000 mean obliquity (ecliptic↔ICRF), degrees
|
|
68
|
+
* @returns {number} s-frame longitude of the origin, degrees in [0, 360)
|
|
69
|
+
*/
|
|
70
|
+
function computeEquatorNodeOriginSFrameDeg(invariablePlane, obliquityJ2000Deg) {
|
|
71
|
+
const { xf, yf, zf } = computeSFrameBasis(invariablePlane);
|
|
72
|
+
const eps = obliquityJ2000Deg * D2R;
|
|
73
|
+
// ICRF equatorial pole in ecliptic-J2000 coordinates
|
|
74
|
+
const zeq = [0, Math.sin(eps), Math.cos(eps)];
|
|
75
|
+
// ascending node of the invariable plane on the equator: ẑ_eq × ẑ_inv
|
|
76
|
+
const n = [
|
|
77
|
+
zeq[1] * zf[2] - zeq[2] * zf[1],
|
|
78
|
+
zeq[2] * zf[0] - zeq[0] * zf[2],
|
|
79
|
+
zeq[0] * zf[1] - zeq[1] * zf[0],
|
|
80
|
+
];
|
|
81
|
+
const a = Math.atan2(
|
|
82
|
+
n[0] * yf[0] + n[1] * yf[1] + n[2] * yf[2],
|
|
83
|
+
n[0] * xf[0] + n[1] * xf[1] + n[2] * xf[2]
|
|
84
|
+
) / D2R;
|
|
85
|
+
return ((a % 360) + 360) % 360;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Convert a K5c s-frame node longitude to the equator-node origin (the
|
|
90
|
+
* Souami & Souchay 2012 convention).
|
|
91
|
+
* @param {number} sFrameDeg node longitude in the engine s-frame, degrees
|
|
92
|
+
* @param {number} originSFrameDeg from computeEquatorNodeOriginSFrameDeg, degrees
|
|
93
|
+
* @returns {number} node longitude in the S&S convention, degrees in [0, 360)
|
|
94
|
+
*/
|
|
95
|
+
function convertNodeSFrameToEquatorOriginDeg(sFrameDeg, originSFrameDeg) {
|
|
96
|
+
return (((sFrameDeg - originSFrameDeg) % 360) + 360) % 360;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
module.exports = {
|
|
100
|
+
computeSFrameBasis,
|
|
101
|
+
computeEquatorNodeOriginSFrameDeg,
|
|
102
|
+
convertNodeSFrameToEquatorOriginDeg,
|
|
103
|
+
};
|