@essrt/physics 23.3.3 → 24.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/package.json +2 -2
- package/src/cardinal/one-source-structure.cjs +3 -1
- package/src/constants/coefficients.d.ts +5 -1
- package/src/constants/coefficients.js +3 -2
- package/src/constants/generated.d.ts +13 -14
- package/src/constants/generated.js +14 -15
- package/src/constants/units.cjs +4 -1
- package/src/deltat/deep-time.cjs +37 -72
- package/src/earth/deep-orbital-history.cjs +48 -34
- package/src/earth/year-lengths.cjs +2 -1
- package/src/eclipse/besselian.cjs +24 -11
- package/src/index.js +30 -48
- package/src/model/cardinal-instants.js +101 -0
- package/src/model/context.js +54 -0
- package/src/model/deep-time-chain.js +79 -0
- package/src/model/delta-t.js +38 -0
- package/src/model/derived-constants.js +58 -0
- package/src/model/earth-scalars.js +47 -0
- package/src/model/inv-plane-elements.js +56 -0
- package/src/model/lunar-theory.js +216 -0
- package/src/model/moon-epoch.js +28 -0
- package/src/model/one-source-movement.js +192 -0
- package/src/model/planet-elements-of-date.js +61 -0
- package/src/model/planet-records.js +63 -0
- package/src/model/planet-spin-channel.js +41 -0
- package/src/model/published-periods.js +38 -0
- package/src/model/sun-and-eclipses.js +199 -0
- package/src/model/surface.js +332 -0
- package/src/model/time-axis.js +24 -0
- package/src/model/year-day-lengths.js +42 -0
- package/src/model.js +62 -1612
- package/src/moon/arguments.cjs +27 -43
- package/src/planets/chain-artifact.js +2 -2
- package/src/planets/keplerian-chain.cjs +3 -3
- package/src/planets/model.cjs +2 -2
- package/types/constants/coefficients.d.ts +5 -1
- package/types/constants/generated.d.ts +13 -14
- package/types/constants/units.d.cts +3 -0
- package/types/deltat/deep-time.d.cts +18 -24
- package/types/earth/deep-orbital-history.d.cts +23 -0
- package/types/eclipse/besselian.d.cts +37 -18
- package/types/index.d.ts +1 -1
- package/types/model/cardinal-instants.d.ts +14 -0
- package/types/model/context.d.ts +87 -0
- package/types/model/deep-time-chain.d.ts +288 -0
- package/types/model/delta-t.d.ts +11 -0
- package/types/model/derived-constants.d.ts +25 -0
- package/types/model/earth-scalars.d.ts +14 -0
- package/types/model/inv-plane-elements.d.ts +6 -0
- package/types/model/lunar-theory.d.ts +72 -0
- package/types/model/moon-epoch.d.ts +10 -0
- package/types/model/one-source-movement.d.ts +74 -0
- package/types/model/planet-elements-of-date.d.ts +9 -0
- package/types/model/planet-records.d.ts +7 -0
- package/types/model/planet-spin-channel.d.ts +29 -0
- package/types/model/published-periods.d.ts +7 -0
- package/types/model/sun-and-eclipses.d.ts +53 -0
- package/types/model/surface.d.ts +281 -0
- package/types/model/time-axis.d.ts +12 -0
- package/types/model/year-day-lengths.d.ts +8 -0
- package/types/model.d.ts +10 -81
- package/types/moon/arguments.d.cts +5 -11
- package/types/planets/keplerian-chain.d.cts +4 -2
- package/types/planets/model.d.cts +3 -3
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
// Gives the TypeScript website full type safety at the boundary (§2g) while
|
|
3
3
|
// packages/physics stays JavaScript.
|
|
4
4
|
|
|
5
|
-
export declare const CONSTANTS_HASH: "
|
|
5
|
+
export declare const CONSTANTS_HASH: "da713fc2d846767d";
|
|
6
6
|
|
|
7
7
|
export declare const MODEL_VERSION: string;
|
|
8
8
|
|
|
9
9
|
export declare const PREPRINT_DOI: string;
|
|
10
10
|
|
|
11
11
|
export declare const DEFAULT_CONSTANTS: {
|
|
12
|
-
readonly hash: "
|
|
12
|
+
readonly hash: "da713fc2d846767d";
|
|
13
13
|
readonly additionalBodiesReference: {
|
|
14
14
|
"pluto": {
|
|
15
|
-
"
|
|
15
|
+
"orbitalPeriodInputDays": number;
|
|
16
16
|
"orbitalEccentricityJ2000": number;
|
|
17
17
|
"eclipticInclinationJ2000": number;
|
|
18
18
|
"invPlaneInclinationJ2000": number;
|
|
@@ -25,7 +25,7 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
25
25
|
"ascendingNodeInvPlaneClosedForm": number;
|
|
26
26
|
};
|
|
27
27
|
"halleys": {
|
|
28
|
-
"
|
|
28
|
+
"orbitalPeriodInputDays": number;
|
|
29
29
|
"orbitalEccentricityJ2000": number;
|
|
30
30
|
"eclipticInclinationJ2000": number;
|
|
31
31
|
"invPlaneInclinationJ2000": number;
|
|
@@ -37,7 +37,7 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
37
37
|
"rotationPeriodDays": number;
|
|
38
38
|
};
|
|
39
39
|
"eros": {
|
|
40
|
-
"
|
|
40
|
+
"orbitalPeriodInputDays": number;
|
|
41
41
|
"orbitalEccentricityJ2000": number;
|
|
42
42
|
"eclipticInclinationJ2000": number;
|
|
43
43
|
"invPlaneInclinationJ2000": number;
|
|
@@ -49,7 +49,7 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
49
49
|
"rotationPeriodDays": number;
|
|
50
50
|
};
|
|
51
51
|
"ceres": {
|
|
52
|
-
"
|
|
52
|
+
"orbitalPeriodInputDays": number;
|
|
53
53
|
"orbitalEccentricityJ2000": number;
|
|
54
54
|
"eclipticInclinationJ2000": number;
|
|
55
55
|
"invPlaneInclinationJ2000": number;
|
|
@@ -105,7 +105,6 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
105
105
|
"perihelionPassageJ2000_JD": number;
|
|
106
106
|
"earthInclinationJ2000_deg": number;
|
|
107
107
|
"earthInclinationRate_arcsecPerCentury": number;
|
|
108
|
-
"deltaTStart": number;
|
|
109
108
|
"sunTilt": number;
|
|
110
109
|
};
|
|
111
110
|
readonly giaCoxChaoPeltier: {
|
|
@@ -201,7 +200,7 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
201
200
|
};
|
|
202
201
|
readonly planetOrbitalElements: {
|
|
203
202
|
"mercury": {
|
|
204
|
-
"
|
|
203
|
+
"orbitalPeriodInputDays": number;
|
|
205
204
|
"orbitalEccentricityJ2000": number;
|
|
206
205
|
"axialTiltJ2000": number;
|
|
207
206
|
"eclipticInclinationJ2000": number;
|
|
@@ -213,7 +212,7 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
213
212
|
"ascendingNodeInvPlaneClosedForm": number;
|
|
214
213
|
};
|
|
215
214
|
"venus": {
|
|
216
|
-
"
|
|
215
|
+
"orbitalPeriodInputDays": number;
|
|
217
216
|
"orbitalEccentricityJ2000": number;
|
|
218
217
|
"axialTiltJ2000": number;
|
|
219
218
|
"eclipticInclinationJ2000": number;
|
|
@@ -226,7 +225,7 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
226
225
|
"ascendingNodeInvPlaneClosedForm": number;
|
|
227
226
|
};
|
|
228
227
|
"mars": {
|
|
229
|
-
"
|
|
228
|
+
"orbitalPeriodInputDays": number;
|
|
230
229
|
"orbitalEccentricityJ2000": number;
|
|
231
230
|
"axialTiltJ2000": number;
|
|
232
231
|
"eclipticInclinationJ2000": number;
|
|
@@ -239,7 +238,7 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
239
238
|
"ascendingNodeInvPlaneClosedForm": number;
|
|
240
239
|
};
|
|
241
240
|
"jupiter": {
|
|
242
|
-
"
|
|
241
|
+
"orbitalPeriodInputDays": number;
|
|
243
242
|
"orbitalEccentricityJ2000": number;
|
|
244
243
|
"axialTiltJ2000": number;
|
|
245
244
|
"eclipticInclinationJ2000": number;
|
|
@@ -252,7 +251,7 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
252
251
|
"ascendingNodeInvPlaneClosedForm": number;
|
|
253
252
|
};
|
|
254
253
|
"saturn": {
|
|
255
|
-
"
|
|
254
|
+
"orbitalPeriodInputDays": number;
|
|
256
255
|
"orbitalEccentricityJ2000": number;
|
|
257
256
|
"axialTiltJ2000": number;
|
|
258
257
|
"eclipticInclinationJ2000": number;
|
|
@@ -265,7 +264,7 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
265
264
|
"ascendingNodeInvPlaneClosedForm": number;
|
|
266
265
|
};
|
|
267
266
|
"uranus": {
|
|
268
|
-
"
|
|
267
|
+
"orbitalPeriodInputDays": number;
|
|
269
268
|
"orbitalEccentricityJ2000": number;
|
|
270
269
|
"axialTiltJ2000": number;
|
|
271
270
|
"eclipticInclinationJ2000": number;
|
|
@@ -278,7 +277,7 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
278
277
|
"ascendingNodeInvPlaneClosedForm": number;
|
|
279
278
|
};
|
|
280
279
|
"neptune": {
|
|
281
|
-
"
|
|
280
|
+
"orbitalPeriodInputDays": number;
|
|
282
281
|
"orbitalEccentricityJ2000": number;
|
|
283
282
|
"axialTiltJ2000": number;
|
|
284
283
|
"eclipticInclinationJ2000": number;
|
|
@@ -6,3 +6,6 @@ export const DAYS_PER_JULIAN_YEAR: 365.25;
|
|
|
6
6
|
export const JULIAN_CENTURY_DAYS: 36525;
|
|
7
7
|
/** The Julian year, SI seconds. */
|
|
8
8
|
export const SECONDS_PER_JULIAN_YEAR: number;
|
|
9
|
+
/** J2000.0 — 2000 Jan 1.5 TT as a Julian Day (plan 14 step 2: ONE home; it had been
|
|
10
|
+
* declared locally in model.js, keplerian-chain.cjs, tools/lib/constants.js and three gates). */
|
|
11
|
+
export const J2000_JD: 2451545;
|
|
@@ -27,14 +27,14 @@ export type DeepTimeLodConstants = {
|
|
|
27
27
|
*/
|
|
28
28
|
alpha1PerMa: number;
|
|
29
29
|
/**
|
|
30
|
-
* - ω₀, the J2000 day length (the SI day
|
|
30
|
+
* - ω₀, the J2000 day length (the SI day; identifier kept)
|
|
31
31
|
*/
|
|
32
32
|
lodNowH13Seconds: number;
|
|
33
33
|
meanSiderealYearJ2000Seconds: number;
|
|
34
34
|
solarMassLossFracPerYear: number;
|
|
35
35
|
/**
|
|
36
36
|
* - f_S, the solar fraction of the J2000
|
|
37
|
-
* precession torque (derive-params) — the
|
|
37
|
+
* precession torque (derive-params) — the composed precession rate needs it
|
|
38
38
|
*/
|
|
39
39
|
precessionSolarShareJ2000: number;
|
|
40
40
|
};
|
|
@@ -61,10 +61,9 @@ export type DeepTimeLodDeps = {
|
|
|
61
61
|
*/
|
|
62
62
|
swingLodRateAt: (year: number) => number;
|
|
63
63
|
/**
|
|
64
|
-
* - the model's
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* reading; the same anchor the hybrid obliquity self-anchors on). Read
|
|
64
|
+
* - the model's J2000 axial
|
|
65
|
+
* precession period, 1,296,000/p_A = 25,771.575 yr (the IAU 2006 general
|
|
66
|
+
* precession; the same anchor the hybrid obliquity self-anchors on). Read
|
|
68
67
|
* LAZILY on the first composed-rate use, never at construction: every
|
|
69
68
|
* runtime's year laws read THIS factory's bases.
|
|
70
69
|
*/
|
|
@@ -74,16 +73,14 @@ export type DeepTimeLodDeps = {
|
|
|
74
73
|
* plane's nodal regression on the invariable plane, 1,296,000/|s₃| with s₃
|
|
75
74
|
* the dominant ζ mode of the banked deep secular modes (≈ 68,751 yr). An
|
|
76
75
|
* ORBITAL quantity (μ-tier: it does not follow Earth's spin), the reference
|
|
77
|
-
* the solar day's "ecliptic missing motion" term rides
|
|
78
|
-
*
|
|
79
|
-
* spin at deep time). Lazy, like the precession anchor.
|
|
76
|
+
* the solar day's "ecliptic missing motion" term rides. Lazy, like the
|
|
77
|
+
* precession anchor.
|
|
80
78
|
*/
|
|
81
79
|
nodalPeriodYearsFn: () => number;
|
|
82
80
|
/**
|
|
83
81
|
* - OPTIONAL time-dependent
|
|
84
82
|
* Earth-Moon angular momentum. Absent → the J2000 constant: conservation
|
|
85
|
-
* (
|
|
86
|
-
* measured: conservation on the cited history reproduces Farhat's own LOD
|
|
83
|
+
* (measured: conservation on the cited history reproduces Farhat's own LOD
|
|
87
84
|
* to 0.01 h at 100 Ma, 0.14 h at 2.46 Ga).
|
|
88
85
|
*/
|
|
89
86
|
lEmAtAgeKgm2S?: ((tMa: number) => number) | undefined;
|
|
@@ -98,7 +95,7 @@ export type DeepTimeLodDeps = {
|
|
|
98
95
|
* -
|
|
99
96
|
* OPTIONAL cos ε̄(t)/cos ε̄(0) of the cited mean obliquity (earth/mean-
|
|
100
97
|
* obliquity-history) — the factor the precession RATE of date carries on the
|
|
101
|
-
* constant
|
|
98
|
+
* constant; absent → 1, the constant alone, bit-identical.
|
|
102
99
|
*/
|
|
103
100
|
meanObliquityCosRatioAtAge?: ((tMa: number) => number | null) | undefined;
|
|
104
101
|
};
|
|
@@ -113,11 +110,11 @@ export type DeepTimeLodDeps = {
|
|
|
113
110
|
* @property {number} aLockMetres - tidal-lock distance (LOD denominator → 0)
|
|
114
111
|
* @property {number} aMoonNowMetres - Farhat polynomial anchor
|
|
115
112
|
* @property {number} alpha1PerMa - the LLR recession rate (the J2000 slope of the cited history)
|
|
116
|
-
* @property {number} lodNowH13Seconds - ω₀, the J2000 day length (the SI day
|
|
113
|
+
* @property {number} lodNowH13Seconds - ω₀, the J2000 day length (the SI day; identifier kept)
|
|
117
114
|
* @property {number} meanSiderealYearJ2000Seconds
|
|
118
115
|
* @property {number} solarMassLossFracPerYear
|
|
119
116
|
* @property {number} precessionSolarShareJ2000 - f_S, the solar fraction of the J2000
|
|
120
|
-
* precession torque (derive-params) — the
|
|
117
|
+
* precession torque (derive-params) — the composed precession rate needs it
|
|
121
118
|
*/
|
|
122
119
|
/**
|
|
123
120
|
* @typedef {Object} DeepTimeLodDeps
|
|
@@ -127,23 +124,20 @@ export type DeepTimeLodDeps = {
|
|
|
127
124
|
* @property {(year: number) => number} cycleLodSumAt - gated δLOD sum (incl. swing)
|
|
128
125
|
* @property {(year: number) => number} swingLodAt - gated swing δLOD alone
|
|
129
126
|
* @property {(year: number) => number} swingLodRateAt - gated analytic swing rate
|
|
130
|
-
* @property {() => number} precessionPeriodJ2000YearsFn - the model's
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
* reading; the same anchor the hybrid obliquity self-anchors on). Read
|
|
127
|
+
* @property {() => number} precessionPeriodJ2000YearsFn - the model's J2000 axial
|
|
128
|
+
* precession period, 1,296,000/p_A = 25,771.575 yr (the IAU 2006 general
|
|
129
|
+
* precession; the same anchor the hybrid obliquity self-anchors on). Read
|
|
134
130
|
* LAZILY on the first composed-rate use, never at construction: every
|
|
135
131
|
* runtime's year laws read THIS factory's bases.
|
|
136
132
|
* @property {() => number} nodalPeriodYearsFn - the period of Earth's orbit
|
|
137
133
|
* plane's nodal regression on the invariable plane, 1,296,000/|s₃| with s₃
|
|
138
134
|
* the dominant ζ mode of the banked deep secular modes (≈ 68,751 yr). An
|
|
139
135
|
* ORBITAL quantity (μ-tier: it does not follow Earth's spin), the reference
|
|
140
|
-
* the solar day's "ecliptic missing motion" term rides
|
|
141
|
-
*
|
|
142
|
-
* spin at deep time). Lazy, like the precession anchor.
|
|
136
|
+
* the solar day's "ecliptic missing motion" term rides. Lazy, like the
|
|
137
|
+
* precession anchor.
|
|
143
138
|
* @property {(tMa: number) => number} [lEmAtAgeKgm2S] - OPTIONAL time-dependent
|
|
144
139
|
* Earth-Moon angular momentum. Absent → the J2000 constant: conservation
|
|
145
|
-
* (
|
|
146
|
-
* measured: conservation on the cited history reproduces Farhat's own LOD
|
|
140
|
+
* (measured: conservation on the cited history reproduces Farhat's own LOD
|
|
147
141
|
* to 0.01 h at 100 Ma, 0.14 h at 2.46 Ga).
|
|
148
142
|
* @property {(tMa: number) => number|null} [moonDistanceSlopeMetresPerMaAtAge] -
|
|
149
143
|
* OPTIONAL analytic slope of the distance history (metres per Ma, positive
|
|
@@ -152,7 +146,7 @@ export type DeepTimeLodDeps = {
|
|
|
152
146
|
* @property {(tMa: number) => number|null} [meanObliquityCosRatioAtAge] -
|
|
153
147
|
* OPTIONAL cos ε̄(t)/cos ε̄(0) of the cited mean obliquity (earth/mean-
|
|
154
148
|
* obliquity-history) — the factor the precession RATE of date carries on the
|
|
155
|
-
* constant
|
|
149
|
+
* constant; absent → 1, the constant alone, bit-identical.
|
|
156
150
|
*/
|
|
157
151
|
/** @param {DeepTimeLodDeps} deps */
|
|
158
152
|
export function createDeepTimeLod(deps: DeepTimeLodDeps): {
|
|
@@ -98,3 +98,26 @@ export function createDeepOrbitalHistory({ zModes, zetaModes, zetaSeries, zSerie
|
|
|
98
98
|
ellipticity: number;
|
|
99
99
|
};
|
|
100
100
|
};
|
|
101
|
+
/**
|
|
102
|
+
* The CO-ROTATING anchored mode sum — the z-side evaluator of the history
|
|
103
|
+
* (the ϖ̇ fix, measured): the plain DC anchor residual is a spurious
|
|
104
|
+
* zero-frequency mode that preserves the J2000 VALUE but dilutes the local
|
|
105
|
+
* argument rate by |sum(0)|/|anchor| (z: 11.47 → 7.93″/yr, a 92 s-class
|
|
106
|
+
* anomalistic-year bias in the mode tier). Here the residual ROTATES at the
|
|
107
|
+
* raw sum's own local arg-rate g* = Im(ż·z̄)/|z|² (analytic), so at t = 0
|
|
108
|
+
* both the value AND the rate are exact, and at depth the residual is one
|
|
109
|
+
* |R|-amplitude term at a physical frequency instead of a DC offset (deep
|
|
110
|
+
* envelope measured unchanged: [0.0001, 0.0672] → [0.0003, 0.0678] over
|
|
111
|
+
* 10–50 Myr). Exported: e(t) = hypot(sum(t)) needs no spin integration,
|
|
112
|
+
* so a fixture can read a deep eccentricity node here (bit-identical at the
|
|
113
|
+
* grid nodes; the published surface is the grid's linear interpolation and
|
|
114
|
+
* stays on the history).
|
|
115
|
+
* @param {ReadonlyArray<{omegaRadPerYr: number, re: number, im: number}>} modes
|
|
116
|
+
* @param {[number, number]} anchor the J2000 value (q, p) the sum is pinned to
|
|
117
|
+
* @returns {(t: number) => [number, number]} t in years from J2000
|
|
118
|
+
*/
|
|
119
|
+
export function createCoRotatingAnchoredModeSum(modes: ReadonlyArray<{
|
|
120
|
+
omegaRadPerYr: number;
|
|
121
|
+
re: number;
|
|
122
|
+
im: number;
|
|
123
|
+
}>, anchor: [number, number]): (t: number) => [number, number];
|
|
@@ -54,24 +54,6 @@ export type BesselianDeps = {
|
|
|
54
54
|
speedOfLightKmS: number;
|
|
55
55
|
};
|
|
56
56
|
};
|
|
57
|
-
/**
|
|
58
|
-
* @typedef {Object} BesselianDeps
|
|
59
|
-
* @property {(dDaysTT: number) => {lonDeg: number, latDeg: number, distKm: number}} moonFullAtDaysTT
|
|
60
|
-
* full-series Moon: ecliptic-of-date longitude/latitude (deg) + distance (km), TT axis (days since J2000)
|
|
61
|
-
* @property {(jdUT: number) => number} sunLonDegAt - geometric mean sun longitude (deg), JD(UT) axis with the finder's internal ΔT
|
|
62
|
-
* @property {(T: number) => number} sunCompletionDeg - planetary completion (deg) at T centuries TT, SUBTRACTED from the finder sun (see eclipse/sun-planetary-completion.cjs; the finders deliberately stay without it — their fitted anchors and certified canon statistics were produced on the bare form, and elongation-class timing absorbs the omission into the fitted phases)
|
|
63
|
-
* @property {(year: number) => number} sunAberrationDegAt - the Sun's derived planetary aberration κ (deg) at calendar year, SUBTRACTED from the geometric Sun longitude (the apparent Sun; see the header)
|
|
64
|
-
* @property {(jd: number) => number} deltaTSecondsAt - framework ΔT (J2000-zeroed convention)
|
|
65
|
-
* @property {(year: number) => number} obliquityDegAt - framework obliquity (deg) at calendar year
|
|
66
|
-
* @property {(year: number) => number} eccentricityAt - framework Earth-orbit eccentricity at calendar year
|
|
67
|
-
* @property {(year: number) => number} perihelionLongitudeDegAt - framework perihelion longitude (deg) at calendar year
|
|
68
|
-
* @property {(jd: number) => number} yearFromJD - the model's own JD → calendar-year conversion
|
|
69
|
-
* @property {{ j2000JD: number, julianCenturyDays: number, earthDiameterKm: number,
|
|
70
|
-
* moonDiameterKm: number, sunDiameterKm: number, sunDistanceKm: number,
|
|
71
|
-
* earthFlatteningInverse: number, ttBridgeSeconds: number,
|
|
72
|
-
* gmstMeanSiderealT0Deg: number, gmstMeanSiderealRateDegPerDay: number,
|
|
73
|
-
* gmstMeanSiderealT2Deg: number, speedOfLightKmS: number }} constants
|
|
74
|
-
*/
|
|
75
57
|
/** @param {BesselianDeps} deps */
|
|
76
58
|
export function createBesselian(deps: BesselianDeps): {
|
|
77
59
|
umbraGroundAt: (jdUT: number) => {
|
|
@@ -96,4 +78,41 @@ export function createBesselian(deps: BesselianDeps): {
|
|
|
96
78
|
};
|
|
97
79
|
centralDurationSeconds: number | null;
|
|
98
80
|
};
|
|
81
|
+
gmstDeg: (jdUT: number) => number;
|
|
99
82
|
};
|
|
83
|
+
/**
|
|
84
|
+
* @typedef {Object} BesselianDeps
|
|
85
|
+
* @property {(dDaysTT: number) => {lonDeg: number, latDeg: number, distKm: number}} moonFullAtDaysTT
|
|
86
|
+
* full-series Moon: ecliptic-of-date longitude/latitude (deg) + distance (km), TT axis (days since J2000)
|
|
87
|
+
* @property {(jdUT: number) => number} sunLonDegAt - geometric mean sun longitude (deg), JD(UT) axis with the finder's internal ΔT
|
|
88
|
+
* @property {(T: number) => number} sunCompletionDeg - planetary completion (deg) at T centuries TT, SUBTRACTED from the finder sun (see eclipse/sun-planetary-completion.cjs; the finders deliberately stay without it — their fitted anchors and certified canon statistics were produced on the bare form, and elongation-class timing absorbs the omission into the fitted phases)
|
|
89
|
+
* @property {(year: number) => number} sunAberrationDegAt - the Sun's derived planetary aberration κ (deg) at calendar year, SUBTRACTED from the geometric Sun longitude (the apparent Sun; see the header)
|
|
90
|
+
* @property {(jd: number) => number} deltaTSecondsAt - framework ΔT (J2000-zeroed convention)
|
|
91
|
+
* @property {(year: number) => number} obliquityDegAt - framework obliquity (deg) at calendar year
|
|
92
|
+
* @property {(year: number) => number} eccentricityAt - framework Earth-orbit eccentricity at calendar year
|
|
93
|
+
* @property {(year: number) => number} perihelionLongitudeDegAt - framework perihelion longitude (deg) at calendar year
|
|
94
|
+
* @property {(jd: number) => number} yearFromJD - the model's own JD → calendar-year conversion
|
|
95
|
+
* @property {{ j2000JD: number, julianCenturyDays: number, earthDiameterKm: number,
|
|
96
|
+
* moonDiameterKm: number, sunDiameterKm: number, sunDistanceKm: number,
|
|
97
|
+
* earthFlatteningInverse: number, ttBridgeSeconds: number,
|
|
98
|
+
* gmstMeanSiderealT0Deg: number, gmstMeanSiderealRateDegPerDay: number,
|
|
99
|
+
* gmstMeanSiderealT2Deg: number, speedOfLightKmS: number }} constants
|
|
100
|
+
*/
|
|
101
|
+
/** Mean sidereal time at Greenwich, degrees (mean equinox — pairs with the
|
|
102
|
+
* mean-of-date body longitudes; coefficients single-sourced from
|
|
103
|
+
* astro-reference.json physicalConstants). THE ONE GMST of the model: the
|
|
104
|
+
* eclipse location tier, the API's observer tier, the eclipse and lunar
|
|
105
|
+
* audits and the browser's diagnostics all read it. Meeus 12.4's
|
|
106
|
+
* cubic term (−T³/38,710,000) is deliberately absent: it is 0.9″ in the
|
|
107
|
+
* eclipse canon and at most 93″ (6 s of time) at the edge of the observer
|
|
108
|
+
* era, and every recorded eclipse and lunar value was measured without it.
|
|
109
|
+
* @param {number} jdUT
|
|
110
|
+
* @param {{ j2000JD: number, julianCenturyDays: number, gmstMeanSiderealT0Deg: number, gmstMeanSiderealRateDegPerDay: number, gmstMeanSiderealT2Deg: number }} K
|
|
111
|
+
* @returns {number} */
|
|
112
|
+
export function computeGmstDeg(jdUT: number, K: {
|
|
113
|
+
j2000JD: number;
|
|
114
|
+
julianCenturyDays: number;
|
|
115
|
+
gmstMeanSiderealT0Deg: number;
|
|
116
|
+
gmstMeanSiderealRateDegPerDay: number;
|
|
117
|
+
gmstMeanSiderealT2Deg: number;
|
|
118
|
+
}): number;
|
package/types/index.d.ts
CHANGED
|
@@ -66,7 +66,7 @@ export { computeMassChainJ2000, computeMoonPeriodsJ2000 } from "./earth/mass-cha
|
|
|
66
66
|
export { SECONDS_PER_DAY, DAYS_PER_JULIAN_YEAR, JULIAN_CENTURY_DAYS, SECONDS_PER_JULIAN_YEAR } from "./constants/units.cjs";
|
|
67
67
|
export { computeEarthFrameOfDate, solveWheelAngleForLongitude, computeSceneWorldFrameJ2000, SCENE_EQUINOX_VIEW_AZIMUTH_DEG } from "./earth/frame-of-date.cjs";
|
|
68
68
|
export { derivePlanetGeometry, scaffoldOrbitInputs } from "./planets/geometry.cjs";
|
|
69
|
-
export { buildPlanetChainsFromArtifactData, computePlanetElementsAtYear, computeHeliocentricEclipticFromElements, computePoissonArgRad, computeOsculatingElements, solveKeplerRad,
|
|
69
|
+
export { buildPlanetChainsFromArtifactData, computePlanetElementsAtYear, computeHeliocentricEclipticFromElements, computePoissonArgRad, computeOsculatingElements, solveKeplerRad, computeApsidalTangentDegPerYr, ANCHOR_EPOCH_YEAR, ANCHOR_EPOCH_JD } from "./planets/keplerian-chain.cjs";
|
|
70
70
|
export { computeEquatorNodeOriginSFrameDeg, convertNodeSFrameToEquatorOriginDeg } from "./planets/inv-plane-frame.cjs";
|
|
71
71
|
export { computePlanetPrecessionConstant, createPlanetSpinChannel, createPlanetSpinChannelFromArtifacts, computeObliquityJ2000Deg } from "./planets/spin-channel.cjs";
|
|
72
72
|
export { CHAIN_ARTIFACT, CHAIN_ARTIFACT_HASH } from "./planets/chain-artifact.js";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cardinal instants — the apparent Sun (completed, aberrated, nutated) and the Newton crossings.
|
|
3
|
+
*
|
|
4
|
+
* One slice of `assembleModel` (../model.js): receives the context the earlier slices built, returns the bindings the later ones read.
|
|
5
|
+
*/
|
|
6
|
+
/** @param {import('./published-periods.js').Ctx} ctx @returns the bindings the later slices read */
|
|
7
|
+
export function assembleCardinalInstants(ctx: import("./published-periods.js").Ctx): {
|
|
8
|
+
cardinalCrossingJdUT: (year: number, type: string) => number;
|
|
9
|
+
cardinalCrossingNearJdUT: (jdSeedUT: number, type: string) => number;
|
|
10
|
+
cardinalTargetDeg: (type: string) => number;
|
|
11
|
+
sunAberrationArcsecAt: (year: number) => number;
|
|
12
|
+
sunApparentLonDegAtJdUT: (jdUT: number) => number;
|
|
13
|
+
};
|
|
14
|
+
export type Ctx = import("./published-periods.js").Ctx & ReturnType<typeof assembleCardinalInstants>;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RESEARCH OVERRIDES for Earth's orbit laws (doc 109 §7): an alternative e(t), de/dt(t) and
|
|
3
|
+
* ϖ_of-date(t) flow through every consumer (the eclipse Sun, the Moon's E-factor, the cardinal
|
|
4
|
+
* points) exactly as the shipped laws do. `{}` = the shipped laws. Not a counterfactual in the §2d
|
|
5
|
+
* sense (no hash change) — callers must say when they used it; the generators refuse to --write
|
|
6
|
+
* under an override.
|
|
7
|
+
*/
|
|
8
|
+
export type Laws = {
|
|
9
|
+
eccentricityAt?: (year: number) => number;
|
|
10
|
+
eccentricityRateAt?: (year: number) => number;
|
|
11
|
+
perihelionLongitudeDegAt?: (year: number) => number;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* `giaEllipticityOfDate: false` builds the one-source history WITHOUT the J₂(t)/J₂₀ factor of date
|
|
15
|
+
* (the ice-driven GIA channel, which rides the climate formula's own post-MPT layer): the orbital
|
|
16
|
+
* FORCING alone. The T1 exporter derives the climate lines' obliquity rate on it, so the lines
|
|
17
|
+
* cannot depend on their own fit (v23.0; measured 3e-5 of the rate, 2–3 yr of period). Default true =
|
|
18
|
+
* the shipped physics.
|
|
19
|
+
*/
|
|
20
|
+
export type Options = {
|
|
21
|
+
giaEllipticityOfDate?: boolean;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* The forward bindings — what an early slice reads at call time from a later one. Typed by the
|
|
25
|
+
* members actually read, so the composer's assignment is checked against each owner's surface.
|
|
26
|
+
*/
|
|
27
|
+
export type LateBindings = {
|
|
28
|
+
/**
|
|
29
|
+
* owner: year-day-lengths — read by deep-time-chain
|
|
30
|
+
*/
|
|
31
|
+
certifiedAxialPrecessionJ2000Years: () => number;
|
|
32
|
+
/**
|
|
33
|
+
* owner: one-source-movement — read by deep-time-chain and earth-scalars
|
|
34
|
+
*/
|
|
35
|
+
oneSourceM: {
|
|
36
|
+
epsAt(year: number): number;
|
|
37
|
+
eAt(year: number): number;
|
|
38
|
+
periOfDateDegAt(year: number): number;
|
|
39
|
+
precessionOfDateFactorsAt(year: number): {
|
|
40
|
+
solarTorque: number;
|
|
41
|
+
ellipticity: number;
|
|
42
|
+
};
|
|
43
|
+
axialPrecessionYearsLunisolarJ2000: number;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* owner: one-source-movement — read by year-day-lengths
|
|
47
|
+
*/
|
|
48
|
+
yearLengthsM: {
|
|
49
|
+
anomalisticYearSecondsAtYear(year: number): number;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* owner: sun-and-eclipses — read by lunar-theory (the arguments' Sun)
|
|
53
|
+
*/
|
|
54
|
+
sunMeanLongitudeDegAt: (year: number) => number;
|
|
55
|
+
/**
|
|
56
|
+
* owner: published-periods — read by lunar-theory (the dynamical rate of date)
|
|
57
|
+
*/
|
|
58
|
+
publishedAxialPrecessionYearsAtYear: (year: number) => number;
|
|
59
|
+
/**
|
|
60
|
+
* owner: published-periods — read by year-day-lengths
|
|
61
|
+
*/
|
|
62
|
+
publishedSiderealYearSecondsAtYear: (year: number) => number;
|
|
63
|
+
/**
|
|
64
|
+
* owner: cardinal-instants — read by sun-and-eclipses (the besselian's apparent Sun)
|
|
65
|
+
*/
|
|
66
|
+
sunAberrationArcsecAt: (year: number) => number;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* The composer's inputs — the first slice's context.
|
|
70
|
+
*/
|
|
71
|
+
export type ModelInputs = {
|
|
72
|
+
/**
|
|
73
|
+
* the frozen constants context
|
|
74
|
+
*/
|
|
75
|
+
C: Readonly<Record<string, any>>;
|
|
76
|
+
/**
|
|
77
|
+
* the fitted coefficients
|
|
78
|
+
*/
|
|
79
|
+
F: Readonly<Record<string, any>>;
|
|
80
|
+
laws: Laws;
|
|
81
|
+
/**
|
|
82
|
+
* the governed N-body secular series (the API/Node path; null for the bare package)
|
|
83
|
+
*/
|
|
84
|
+
secularSeriesArtifact: any;
|
|
85
|
+
options: Options;
|
|
86
|
+
late: LateBindings;
|
|
87
|
+
};
|