@essrt/physics 7.0.0 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/package.json +4 -2
- package/src/constants/coefficients.d.ts +1 -38
- package/src/constants/coefficients.js +2 -5
- package/src/constants/generated.d.ts +109 -25
- package/src/constants/generated.js +226 -96
- package/src/earth/deep-orbital-history.cjs +10 -0
- package/src/earth/frame-of-date.cjs +105 -0
- package/src/eclipse/besselian.cjs +41 -17
- package/src/eclipse/sun-planetary-completion.cjs +55 -14
- package/src/index.js +9 -1
- package/src/model.js +262 -124
- package/src/moon/apparent.cjs +45 -126
- package/src/moon/deep-ecc-channel.cjs +59 -12
- package/src/moon/deep-modes-artifact.cjs +4 -2
- package/src/moon/month-chain.cjs +21 -10
- package/src/moon/series-extension.cjs +2 -1
- package/src/moon/series.cjs +21 -4
- package/src/planets/chain-artifact.js +2 -2
- package/src/planets/fibonacci-laws.cjs +7 -42
- package/src/planets/model.cjs +10 -13
- package/src/planets/secular-shape.cjs +36 -0
- package/src/planets/spin-channel.cjs +391 -0
- package/types/constants/coefficients.d.ts +1 -38
- package/types/constants/generated.d.ts +109 -25
- package/types/earth/deep-orbital-history.d.cts +2 -0
- package/types/earth/frame-of-date.d.cts +37 -0
- package/types/eclipse/besselian.d.cts +5 -7
- package/types/eclipse/sun-planetary-completion.d.cts +14 -10
- package/types/index.d.ts +3 -1
- package/types/model.d.ts +26 -0
- package/types/moon/apparent.d.cts +7 -68
- package/types/moon/deep-ecc-channel.d.cts +31 -2
- package/types/moon/deep-modes-artifact.d.cts +2 -0
- package/types/moon/month-chain.d.cts +4 -0
- package/types/planets/fibonacci-laws.d.cts +0 -29
- package/types/planets/model.d.cts +10 -4
- package/types/planets/secular-shape.d.cts +30 -0
- package/types/planets/spin-channel.d.cts +193 -0
- package/src/planets/predict.cjs +0 -324
- package/types/planets/predict.d.cts +0 -88
|
@@ -2,14 +2,14 @@
|
|
|
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: "b9c4d78647577e67";
|
|
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: "b9c4d78647577e67";
|
|
13
13
|
readonly additionalBodies: {
|
|
14
14
|
"pluto": {
|
|
15
15
|
"name": string;
|
|
@@ -372,6 +372,113 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
372
372
|
"rotationPeriodDays": number;
|
|
373
373
|
};
|
|
374
374
|
};
|
|
375
|
+
readonly planetSpinPhysical: {
|
|
376
|
+
"mercury": {
|
|
377
|
+
"j2": number;
|
|
378
|
+
"j2ReferenceRadiusKm": number;
|
|
379
|
+
"momentOfInertiaFactor": number;
|
|
380
|
+
"momentOfInertiaFactorClass": string;
|
|
381
|
+
"rotationRateDegPerDay": number;
|
|
382
|
+
"poleRaJ2000Deg": number;
|
|
383
|
+
"poleDecJ2000Deg": number;
|
|
384
|
+
"cassiniLocked": boolean;
|
|
385
|
+
"satellites": unknown[];
|
|
386
|
+
};
|
|
387
|
+
"venus": {
|
|
388
|
+
"j2": number;
|
|
389
|
+
"j2ReferenceRadiusKm": number;
|
|
390
|
+
"momentOfInertiaFactor": number;
|
|
391
|
+
"momentOfInertiaFactorClass": string;
|
|
392
|
+
"rotationRateDegPerDay": number;
|
|
393
|
+
"poleRaJ2000Deg": number;
|
|
394
|
+
"poleDecJ2000Deg": number;
|
|
395
|
+
"cassiniLocked": boolean;
|
|
396
|
+
"satellites": unknown[];
|
|
397
|
+
};
|
|
398
|
+
"mars": {
|
|
399
|
+
"j2": number;
|
|
400
|
+
"j2ReferenceRadiusKm": number;
|
|
401
|
+
"momentOfInertiaFactor": number;
|
|
402
|
+
"momentOfInertiaFactorClass": string;
|
|
403
|
+
"rotationRateDegPerDay": number;
|
|
404
|
+
"poleRaJ2000Deg": number;
|
|
405
|
+
"poleDecJ2000Deg": number;
|
|
406
|
+
"cassiniLocked": boolean;
|
|
407
|
+
"satellites": Array<{
|
|
408
|
+
"name": string;
|
|
409
|
+
"gmKm3S2": number;
|
|
410
|
+
"semiMajorAxisKm": number;
|
|
411
|
+
"orbitalPeriodDays": number;
|
|
412
|
+
}>;
|
|
413
|
+
};
|
|
414
|
+
"jupiter": {
|
|
415
|
+
"j2": number;
|
|
416
|
+
"j2ReferenceRadiusKm": number;
|
|
417
|
+
"momentOfInertiaFactor": number;
|
|
418
|
+
"momentOfInertiaFactorClass": string;
|
|
419
|
+
"momentOfInertiaFactorAlternative": number;
|
|
420
|
+
"rotationRateDegPerDay": number;
|
|
421
|
+
"poleRaJ2000Deg": number;
|
|
422
|
+
"poleDecJ2000Deg": number;
|
|
423
|
+
"cassiniLocked": boolean;
|
|
424
|
+
"satellites": Array<{
|
|
425
|
+
"name": string;
|
|
426
|
+
"gmKm3S2": number;
|
|
427
|
+
"semiMajorAxisKm": number;
|
|
428
|
+
"orbitalPeriodDays": number;
|
|
429
|
+
}>;
|
|
430
|
+
};
|
|
431
|
+
"saturn": {
|
|
432
|
+
"j2": number;
|
|
433
|
+
"j2ReferenceRadiusKm": number;
|
|
434
|
+
"momentOfInertiaFactor": number;
|
|
435
|
+
"momentOfInertiaFactorClass": string;
|
|
436
|
+
"momentOfInertiaFactorAlternative": [number, number];
|
|
437
|
+
"rotationRateDegPerDay": number;
|
|
438
|
+
"poleRaJ2000Deg": number;
|
|
439
|
+
"poleDecJ2000Deg": number;
|
|
440
|
+
"cassiniLocked": boolean;
|
|
441
|
+
"satellites": Array<{
|
|
442
|
+
"name": string;
|
|
443
|
+
"gmKm3S2": number;
|
|
444
|
+
"semiMajorAxisKm": number;
|
|
445
|
+
"orbitalPeriodDays": number;
|
|
446
|
+
}>;
|
|
447
|
+
};
|
|
448
|
+
"uranus": {
|
|
449
|
+
"j2": number;
|
|
450
|
+
"j2ReferenceRadiusKm": number;
|
|
451
|
+
"momentOfInertiaFactor": number;
|
|
452
|
+
"momentOfInertiaFactorClass": string;
|
|
453
|
+
"rotationRateDegPerDay": number;
|
|
454
|
+
"poleRaJ2000Deg": number;
|
|
455
|
+
"poleDecJ2000Deg": number;
|
|
456
|
+
"cassiniLocked": boolean;
|
|
457
|
+
"satellites": Array<{
|
|
458
|
+
"name": string;
|
|
459
|
+
"gmKm3S2": number;
|
|
460
|
+
"semiMajorAxisKm": number;
|
|
461
|
+
"orbitalPeriodDays": number;
|
|
462
|
+
}>;
|
|
463
|
+
};
|
|
464
|
+
"neptune": {
|
|
465
|
+
"j2": number;
|
|
466
|
+
"j2ReferenceRadiusKm": number;
|
|
467
|
+
"momentOfInertiaFactor": number;
|
|
468
|
+
"momentOfInertiaFactorClass": string;
|
|
469
|
+
"rotationRateDegPerDay": number;
|
|
470
|
+
"poleRaJ2000Deg": number;
|
|
471
|
+
"poleDecJ2000Deg": number;
|
|
472
|
+
"cassiniLocked": boolean;
|
|
473
|
+
"satellites": Array<{
|
|
474
|
+
"name": string;
|
|
475
|
+
"gmKm3S2": number;
|
|
476
|
+
"semiMajorAxisKm": number;
|
|
477
|
+
"orbitalPeriodDays": number;
|
|
478
|
+
"retrograde": boolean;
|
|
479
|
+
}>;
|
|
480
|
+
};
|
|
481
|
+
};
|
|
375
482
|
readonly planets: {
|
|
376
483
|
"mercury": {
|
|
377
484
|
"name": string;
|
|
@@ -386,9 +493,6 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
386
493
|
"inclinationCycleAnchor": number;
|
|
387
494
|
"antiPhase": boolean;
|
|
388
495
|
"ascendingNodeCyclesIn8H": number;
|
|
389
|
-
"obliquityCycleFraction": [number, number];
|
|
390
|
-
"axialPrecessionFraction": [number, number];
|
|
391
|
-
"eccentricityCycleFraction": [number, number];
|
|
392
496
|
};
|
|
393
497
|
"venus": {
|
|
394
498
|
"name": string;
|
|
@@ -403,9 +507,6 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
403
507
|
"inclinationCycleAnchor": number;
|
|
404
508
|
"antiPhase": boolean;
|
|
405
509
|
"ascendingNodeCyclesIn8H": number;
|
|
406
|
-
"obliquityCycleFraction": null;
|
|
407
|
-
"axialPrecessionFraction": [number, number];
|
|
408
|
-
"eccentricityCycleFraction": [number, number];
|
|
409
510
|
};
|
|
410
511
|
"mars": {
|
|
411
512
|
"name": string;
|
|
@@ -420,9 +521,6 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
420
521
|
"inclinationCycleAnchor": number;
|
|
421
522
|
"antiPhase": boolean;
|
|
422
523
|
"ascendingNodeCyclesIn8H": number;
|
|
423
|
-
"obliquityCycleFraction": [number, number];
|
|
424
|
-
"axialPrecessionFraction": [number, number];
|
|
425
|
-
"eccentricityCycleFraction": [number, number];
|
|
426
524
|
};
|
|
427
525
|
"jupiter": {
|
|
428
526
|
"name": string;
|
|
@@ -437,9 +535,6 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
437
535
|
"inclinationCycleAnchor": number;
|
|
438
536
|
"antiPhase": boolean;
|
|
439
537
|
"ascendingNodeCyclesIn8H": number;
|
|
440
|
-
"obliquityCycleFraction": [number, number];
|
|
441
|
-
"axialPrecessionFraction": [number, number];
|
|
442
|
-
"eccentricityCycleFraction": [number, number];
|
|
443
538
|
};
|
|
444
539
|
"saturn": {
|
|
445
540
|
"name": string;
|
|
@@ -454,9 +549,6 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
454
549
|
"inclinationCycleAnchor": number;
|
|
455
550
|
"antiPhase": boolean;
|
|
456
551
|
"ascendingNodeCyclesIn8H": number;
|
|
457
|
-
"obliquityCycleFraction": [number, number];
|
|
458
|
-
"axialPrecessionFraction": [number, number];
|
|
459
|
-
"eccentricityCycleFraction": [number, number];
|
|
460
552
|
};
|
|
461
553
|
"uranus": {
|
|
462
554
|
"name": string;
|
|
@@ -471,10 +563,6 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
471
563
|
"inclinationCycleAnchor": number;
|
|
472
564
|
"antiPhase": boolean;
|
|
473
565
|
"ascendingNodeCyclesIn8H": number;
|
|
474
|
-
"obliquityCycleFraction": [number, number];
|
|
475
|
-
"axialPrecessionFraction": [number, number];
|
|
476
|
-
"eccentricityCycleFraction": [number, number];
|
|
477
|
-
"eccentricityCycleApprox": boolean;
|
|
478
566
|
};
|
|
479
567
|
"neptune": {
|
|
480
568
|
"name": string;
|
|
@@ -489,10 +577,6 @@ export declare const DEFAULT_CONSTANTS: {
|
|
|
489
577
|
"inclinationCycleAnchor": number;
|
|
490
578
|
"antiPhase": boolean;
|
|
491
579
|
"ascendingNodeCyclesIn8H": number;
|
|
492
|
-
"obliquityCycleFraction": null;
|
|
493
|
-
"axialPrecessionFraction": [number, number];
|
|
494
|
-
"eccentricityCycleFraction": [number, number];
|
|
495
|
-
"eccentricityCycleApprox": boolean;
|
|
496
580
|
};
|
|
497
581
|
};
|
|
498
582
|
readonly timeReference: {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
* carry it so a counterfactual is reproducible (§2d).
|
|
34
34
|
* @type {string}
|
|
35
35
|
*/
|
|
36
|
-
export const CONSTANTS_HASH = "
|
|
36
|
+
export const CONSTANTS_HASH = "b9c4d78647577e67";
|
|
37
37
|
|
|
38
38
|
/** Model version label — single source: public/input/model-version.json (§10 two-axis scheme). */
|
|
39
39
|
export const MODEL_VERSION = "v14.0";
|
|
@@ -43,7 +43,7 @@ export const PREPRINT_DOI = "10.21203/rs.3.rs-8758810/v4";
|
|
|
43
43
|
|
|
44
44
|
/** @type {Readonly<Record<string, unknown>>} */
|
|
45
45
|
export const DEFAULT_CONSTANTS = Object.freeze({
|
|
46
|
-
hash: "
|
|
46
|
+
hash: "b9c4d78647577e67",
|
|
47
47
|
additionalBodies: {
|
|
48
48
|
"pluto": {
|
|
49
49
|
"name": "Pluto",
|
|
@@ -171,10 +171,10 @@ export const DEFAULT_CONSTANTS = Object.freeze({
|
|
|
171
171
|
"eros": 16.84
|
|
172
172
|
},
|
|
173
173
|
cardinalPointAnchors: {
|
|
174
|
-
"SS": 2451716.
|
|
175
|
-
"WS": 2451900.
|
|
176
|
-
"VE": 2451623.
|
|
177
|
-
"AE": 2451810.
|
|
174
|
+
"SS": 2451716.575,
|
|
175
|
+
"WS": 2451900.0674,
|
|
176
|
+
"VE": 2451623.816,
|
|
177
|
+
"AE": 2451810.2271
|
|
178
178
|
},
|
|
179
179
|
deepTime: {
|
|
180
180
|
"alpha1PerMa": -0.000099375895103,
|
|
@@ -250,7 +250,7 @@ export const DEFAULT_CONSTANTS = Object.freeze({
|
|
|
250
250
|
"moonStartposApsidal": 347.5476,
|
|
251
251
|
"moonStartposNodal": 64.0435,
|
|
252
252
|
"moonStartposMoon": 67.8443,
|
|
253
|
-
"moonMeeusLpCorrection": 0
|
|
253
|
+
"moonMeeusLpCorrection": 0
|
|
254
254
|
},
|
|
255
255
|
moonMeeus: {
|
|
256
256
|
"elpW1T2Decomposition_arcsecPerCy2": {
|
|
@@ -430,6 +430,216 @@ export const DEFAULT_CONSTANTS = Object.freeze({
|
|
|
430
430
|
"rotationPeriodDays": 0.671300001591743
|
|
431
431
|
}
|
|
432
432
|
},
|
|
433
|
+
planetSpinPhysical: {
|
|
434
|
+
"mercury": {
|
|
435
|
+
"j2": 0.0000503,
|
|
436
|
+
"j2ReferenceRadiusKm": 2440,
|
|
437
|
+
"momentOfInertiaFactor": 0.346,
|
|
438
|
+
"momentOfInertiaFactorClass": "spin-inferred",
|
|
439
|
+
"rotationRateDegPerDay": 6.1385108,
|
|
440
|
+
"poleRaJ2000Deg": 281.0103,
|
|
441
|
+
"poleDecJ2000Deg": 61.4155,
|
|
442
|
+
"cassiniLocked": true,
|
|
443
|
+
"satellites": []
|
|
444
|
+
},
|
|
445
|
+
"venus": {
|
|
446
|
+
"j2": 0.0000044044,
|
|
447
|
+
"j2ReferenceRadiusKm": 6051,
|
|
448
|
+
"momentOfInertiaFactor": 0.337,
|
|
449
|
+
"momentOfInertiaFactorClass": "spin-inferred",
|
|
450
|
+
"rotationRateDegPerDay": -1.4813688,
|
|
451
|
+
"poleRaJ2000Deg": 272.76,
|
|
452
|
+
"poleDecJ2000Deg": 67.16,
|
|
453
|
+
"cassiniLocked": false,
|
|
454
|
+
"satellites": []
|
|
455
|
+
},
|
|
456
|
+
"mars": {
|
|
457
|
+
"j2": 0.001956608,
|
|
458
|
+
"j2ReferenceRadiusKm": 3396,
|
|
459
|
+
"momentOfInertiaFactor": 0.3644,
|
|
460
|
+
"momentOfInertiaFactorClass": "spin-inferred",
|
|
461
|
+
"rotationRateDegPerDay": 350.891982443297,
|
|
462
|
+
"poleRaJ2000Deg": 317.68143,
|
|
463
|
+
"poleDecJ2000Deg": 52.8865,
|
|
464
|
+
"cassiniLocked": false,
|
|
465
|
+
"satellites": [
|
|
466
|
+
{
|
|
467
|
+
"name": "Phobos",
|
|
468
|
+
"gmKm3S2": 0.0007087,
|
|
469
|
+
"semiMajorAxisKm": 9375,
|
|
470
|
+
"orbitalPeriodDays": 0.3187
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"name": "Deimos",
|
|
474
|
+
"gmKm3S2": 0.0000962,
|
|
475
|
+
"semiMajorAxisKm": 23457,
|
|
476
|
+
"orbitalPeriodDays": 1.2625
|
|
477
|
+
}
|
|
478
|
+
]
|
|
479
|
+
},
|
|
480
|
+
"jupiter": {
|
|
481
|
+
"j2": 0.014696572,
|
|
482
|
+
"j2ReferenceRadiusKm": 71492,
|
|
483
|
+
"momentOfInertiaFactor": 0.26393,
|
|
484
|
+
"momentOfInertiaFactorClass": "gravity-constrained",
|
|
485
|
+
"momentOfInertiaFactorAlternative": 0.2756,
|
|
486
|
+
"rotationRateDegPerDay": 870.536,
|
|
487
|
+
"poleRaJ2000Deg": 268.056595,
|
|
488
|
+
"poleDecJ2000Deg": 64.495303,
|
|
489
|
+
"cassiniLocked": false,
|
|
490
|
+
"satellites": [
|
|
491
|
+
{
|
|
492
|
+
"name": "Io",
|
|
493
|
+
"gmKm3S2": 5959.91547,
|
|
494
|
+
"semiMajorAxisKm": 421800,
|
|
495
|
+
"orbitalPeriodDays": 1.762732
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
"name": "Europa",
|
|
499
|
+
"gmKm3S2": 3202.7121,
|
|
500
|
+
"semiMajorAxisKm": 671100,
|
|
501
|
+
"orbitalPeriodDays": 3.525463
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
"name": "Ganymede",
|
|
505
|
+
"gmKm3S2": 9887.83275,
|
|
506
|
+
"semiMajorAxisKm": 1070400,
|
|
507
|
+
"orbitalPeriodDays": 7.155588
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
"name": "Callisto",
|
|
511
|
+
"gmKm3S2": 7179.2834,
|
|
512
|
+
"semiMajorAxisKm": 1882700,
|
|
513
|
+
"orbitalPeriodDays": 16.69044
|
|
514
|
+
}
|
|
515
|
+
]
|
|
516
|
+
},
|
|
517
|
+
"saturn": {
|
|
518
|
+
"j2": 0.016290573,
|
|
519
|
+
"j2ReferenceRadiusKm": 60330,
|
|
520
|
+
"momentOfInertiaFactor": 0.2181,
|
|
521
|
+
"momentOfInertiaFactorClass": "gravity-constrained",
|
|
522
|
+
"momentOfInertiaFactorAlternative": [
|
|
523
|
+
0.2257,
|
|
524
|
+
0.2438
|
|
525
|
+
],
|
|
526
|
+
"rotationRateDegPerDay": 810.7939024,
|
|
527
|
+
"poleRaJ2000Deg": 40.589,
|
|
528
|
+
"poleDecJ2000Deg": 83.537,
|
|
529
|
+
"cassiniLocked": false,
|
|
530
|
+
"satellites": [
|
|
531
|
+
{
|
|
532
|
+
"name": "Mimas",
|
|
533
|
+
"gmKm3S2": 2.50349,
|
|
534
|
+
"semiMajorAxisKm": 186000,
|
|
535
|
+
"orbitalPeriodDays": 0.942422
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"name": "Enceladus",
|
|
539
|
+
"gmKm3S2": 7.21037,
|
|
540
|
+
"semiMajorAxisKm": 238400,
|
|
541
|
+
"orbitalPeriodDays": 1.370218
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"name": "Tethys",
|
|
545
|
+
"gmKm3S2": 41.21353,
|
|
546
|
+
"semiMajorAxisKm": 295000,
|
|
547
|
+
"orbitalPeriodDays": 1.887802
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
"name": "Dione",
|
|
551
|
+
"gmKm3S2": 73.11607,
|
|
552
|
+
"semiMajorAxisKm": 377700,
|
|
553
|
+
"orbitalPeriodDays": 2.736916
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
"name": "Rhea",
|
|
557
|
+
"gmKm3S2": 153.94175,
|
|
558
|
+
"semiMajorAxisKm": 527200,
|
|
559
|
+
"orbitalPeriodDays": 4.517503
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
"name": "Titan",
|
|
563
|
+
"gmKm3S2": 8978.1371,
|
|
564
|
+
"semiMajorAxisKm": 1221900,
|
|
565
|
+
"orbitalPeriodDays": 15.945448
|
|
566
|
+
},
|
|
567
|
+
{
|
|
568
|
+
"name": "Iapetus",
|
|
569
|
+
"gmKm3S2": 120.51511,
|
|
570
|
+
"semiMajorAxisKm": 3561700,
|
|
571
|
+
"orbitalPeriodDays": 79.331002
|
|
572
|
+
}
|
|
573
|
+
]
|
|
574
|
+
},
|
|
575
|
+
"uranus": {
|
|
576
|
+
"j2": 0.00351068,
|
|
577
|
+
"j2ReferenceRadiusKm": 25559,
|
|
578
|
+
"momentOfInertiaFactor": 0.225,
|
|
579
|
+
"momentOfInertiaFactorClass": "interior-model",
|
|
580
|
+
"rotationRateDegPerDay": -501.1600928,
|
|
581
|
+
"poleRaJ2000Deg": 257.311,
|
|
582
|
+
"poleDecJ2000Deg": -15.175,
|
|
583
|
+
"cassiniLocked": false,
|
|
584
|
+
"satellites": [
|
|
585
|
+
{
|
|
586
|
+
"name": "Miranda",
|
|
587
|
+
"gmKm3S2": 4.3,
|
|
588
|
+
"semiMajorAxisKm": 129846,
|
|
589
|
+
"orbitalPeriodDays": 1.413479
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
"name": "Ariel",
|
|
593
|
+
"gmKm3S2": 83.5,
|
|
594
|
+
"semiMajorAxisKm": 190929,
|
|
595
|
+
"orbitalPeriodDays": 2.520379
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"name": "Umbriel",
|
|
599
|
+
"gmKm3S2": 85.1,
|
|
600
|
+
"semiMajorAxisKm": 265986,
|
|
601
|
+
"orbitalPeriodDays": 4.144177
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
"name": "Titania",
|
|
605
|
+
"gmKm3S2": 226.9,
|
|
606
|
+
"semiMajorAxisKm": 436298,
|
|
607
|
+
"orbitalPeriodDays": 8.705869
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
"name": "Oberon",
|
|
611
|
+
"gmKm3S2": 205.3,
|
|
612
|
+
"semiMajorAxisKm": 583511,
|
|
613
|
+
"orbitalPeriodDays": 13.463237
|
|
614
|
+
}
|
|
615
|
+
]
|
|
616
|
+
},
|
|
617
|
+
"neptune": {
|
|
618
|
+
"j2": 0.00340843,
|
|
619
|
+
"j2ReferenceRadiusKm": 25225,
|
|
620
|
+
"momentOfInertiaFactor": 0.23,
|
|
621
|
+
"momentOfInertiaFactorClass": "interior-model",
|
|
622
|
+
"rotationRateDegPerDay": 541.1397757,
|
|
623
|
+
"poleRaJ2000Deg": 299.36,
|
|
624
|
+
"poleDecJ2000Deg": 43.46,
|
|
625
|
+
"cassiniLocked": false,
|
|
626
|
+
"satellites": [
|
|
627
|
+
{
|
|
628
|
+
"name": "Triton",
|
|
629
|
+
"gmKm3S2": 1428.49546,
|
|
630
|
+
"semiMajorAxisKm": 354800,
|
|
631
|
+
"orbitalPeriodDays": 5.876994,
|
|
632
|
+
"retrograde": true
|
|
633
|
+
},
|
|
634
|
+
{
|
|
635
|
+
"name": "Proteus",
|
|
636
|
+
"gmKm3S2": 2.58342,
|
|
637
|
+
"semiMajorAxisKm": 117600,
|
|
638
|
+
"orbitalPeriodDays": 1.122315
|
|
639
|
+
}
|
|
640
|
+
]
|
|
641
|
+
}
|
|
642
|
+
},
|
|
433
643
|
planets: {
|
|
434
644
|
"mercury": {
|
|
435
645
|
"name": "Mercury",
|
|
@@ -446,19 +656,7 @@ export const DEFAULT_CONSTANTS = Object.freeze({
|
|
|
446
656
|
"ascendingNodeInvPlane": 32.83,
|
|
447
657
|
"inclinationCycleAnchor": 234.52,
|
|
448
658
|
"antiPhase": false,
|
|
449
|
-
"ascendingNodeCyclesIn8H": 9
|
|
450
|
-
"obliquityCycleFraction": [
|
|
451
|
-
8,
|
|
452
|
-
3
|
|
453
|
-
],
|
|
454
|
-
"axialPrecessionFraction": [
|
|
455
|
-
-8,
|
|
456
|
-
9
|
|
457
|
-
],
|
|
458
|
-
"eccentricityCycleFraction": [
|
|
459
|
-
2,
|
|
460
|
-
21
|
|
461
|
-
]
|
|
659
|
+
"ascendingNodeCyclesIn8H": 9
|
|
462
660
|
},
|
|
463
661
|
"venus": {
|
|
464
662
|
"name": "Venus",
|
|
@@ -475,16 +673,7 @@ export const DEFAULT_CONSTANTS = Object.freeze({
|
|
|
475
673
|
"ascendingNodeInvPlane": 54.7,
|
|
476
674
|
"inclinationCycleAnchor": 218.64,
|
|
477
675
|
"antiPhase": false,
|
|
478
|
-
"ascendingNodeCyclesIn8H": 1
|
|
479
|
-
"obliquityCycleFraction": null,
|
|
480
|
-
"axialPrecessionFraction": [
|
|
481
|
-
8,
|
|
482
|
-
91
|
|
483
|
-
],
|
|
484
|
-
"eccentricityCycleFraction": [
|
|
485
|
-
8,
|
|
486
|
-
19
|
|
487
|
-
]
|
|
676
|
+
"ascendingNodeCyclesIn8H": 1
|
|
488
677
|
},
|
|
489
678
|
"mars": {
|
|
490
679
|
"name": "Mars",
|
|
@@ -501,19 +690,7 @@ export const DEFAULT_CONSTANTS = Object.freeze({
|
|
|
501
690
|
"ascendingNodeInvPlane": 354.87,
|
|
502
691
|
"inclinationCycleAnchor": 236.07,
|
|
503
692
|
"antiPhase": false,
|
|
504
|
-
"ascendingNodeCyclesIn8H": 64
|
|
505
|
-
"obliquityCycleFraction": [
|
|
506
|
-
8,
|
|
507
|
-
21
|
|
508
|
-
],
|
|
509
|
-
"axialPrecessionFraction": [
|
|
510
|
-
-1,
|
|
511
|
-
2
|
|
512
|
-
],
|
|
513
|
-
"eccentricityCycleFraction": [
|
|
514
|
-
8,
|
|
515
|
-
52
|
|
516
|
-
]
|
|
693
|
+
"ascendingNodeCyclesIn8H": 64
|
|
517
694
|
},
|
|
518
695
|
"jupiter": {
|
|
519
696
|
"name": "Jupiter",
|
|
@@ -530,19 +707,7 @@ export const DEFAULT_CONSTANTS = Object.freeze({
|
|
|
530
707
|
"ascendingNodeInvPlane": 312.89,
|
|
531
708
|
"inclinationCycleAnchor": 287.06,
|
|
532
709
|
"antiPhase": false,
|
|
533
|
-
"ascendingNodeCyclesIn8H": 36
|
|
534
|
-
"obliquityCycleFraction": [
|
|
535
|
-
1,
|
|
536
|
-
2
|
|
537
|
-
],
|
|
538
|
-
"axialPrecessionFraction": [
|
|
539
|
-
-8,
|
|
540
|
-
21
|
|
541
|
-
],
|
|
542
|
-
"eccentricityCycleFraction": [
|
|
543
|
-
8,
|
|
544
|
-
44
|
|
545
|
-
]
|
|
710
|
+
"ascendingNodeCyclesIn8H": 36
|
|
546
711
|
},
|
|
547
712
|
"saturn": {
|
|
548
713
|
"name": "Saturn",
|
|
@@ -559,19 +724,7 @@ export const DEFAULT_CONSTANTS = Object.freeze({
|
|
|
559
724
|
"ascendingNodeInvPlane": 118.81,
|
|
560
725
|
"inclinationCycleAnchor": 116.26,
|
|
561
726
|
"antiPhase": true,
|
|
562
|
-
"ascendingNodeCyclesIn8H": 36
|
|
563
|
-
"obliquityCycleFraction": [
|
|
564
|
-
1,
|
|
565
|
-
3
|
|
566
|
-
],
|
|
567
|
-
"axialPrecessionFraction": [
|
|
568
|
-
-4,
|
|
569
|
-
3
|
|
570
|
-
],
|
|
571
|
-
"eccentricityCycleFraction": [
|
|
572
|
-
8,
|
|
573
|
-
163
|
|
574
|
-
]
|
|
727
|
+
"ascendingNodeCyclesIn8H": 36
|
|
575
728
|
},
|
|
576
729
|
"uranus": {
|
|
577
730
|
"name": "Uranus",
|
|
@@ -588,20 +741,7 @@ export const DEFAULT_CONSTANTS = Object.freeze({
|
|
|
588
741
|
"ascendingNodeInvPlane": 307.8,
|
|
589
742
|
"inclinationCycleAnchor": 21.33,
|
|
590
743
|
"antiPhase": false,
|
|
591
|
-
"ascendingNodeCyclesIn8H": 11
|
|
592
|
-
"obliquityCycleFraction": [
|
|
593
|
-
1,
|
|
594
|
-
2
|
|
595
|
-
],
|
|
596
|
-
"axialPrecessionFraction": [
|
|
597
|
-
610,
|
|
598
|
-
1
|
|
599
|
-
],
|
|
600
|
-
"eccentricityCycleFraction": [
|
|
601
|
-
1,
|
|
602
|
-
10
|
|
603
|
-
],
|
|
604
|
-
"eccentricityCycleApprox": true
|
|
744
|
+
"ascendingNodeCyclesIn8H": 11
|
|
605
745
|
},
|
|
606
746
|
"neptune": {
|
|
607
747
|
"name": "Neptune",
|
|
@@ -618,17 +758,7 @@ export const DEFAULT_CONSTANTS = Object.freeze({
|
|
|
618
758
|
"ascendingNodeInvPlane": 192.04,
|
|
619
759
|
"inclinationCycleAnchor": 174.04,
|
|
620
760
|
"antiPhase": false,
|
|
621
|
-
"ascendingNodeCyclesIn8H": 3
|
|
622
|
-
"obliquityCycleFraction": null,
|
|
623
|
-
"axialPrecessionFraction": [
|
|
624
|
-
-68,
|
|
625
|
-
1
|
|
626
|
-
],
|
|
627
|
-
"eccentricityCycleFraction": [
|
|
628
|
-
2,
|
|
629
|
-
25
|
|
630
|
-
],
|
|
631
|
-
"eccentricityCycleApprox": true
|
|
761
|
+
"ascendingNodeCyclesIn8H": 3
|
|
632
762
|
}
|
|
633
763
|
},
|
|
634
764
|
timeReference: {
|
|
@@ -766,8 +896,8 @@ export const REFERENCE_DATA = Object.freeze({
|
|
|
766
896
|
"sunModelTrueErrorDeg": 0.003,
|
|
767
897
|
"sunTropicalYearDiffSeconds": 0.1,
|
|
768
898
|
"sunSiderealYearDiffSeconds": 0.02,
|
|
769
|
-
"frameworkSunVsJplRmsArcsec":
|
|
770
|
-
"meeusCh25SunVsJplRmsArcsec": 1.
|
|
899
|
+
"frameworkSunVsJplRmsArcsec": 1.03,
|
|
900
|
+
"meeusCh25SunVsJplRmsArcsec": 1.02,
|
|
771
901
|
"moonSeriesLonVsJplRmsArcsec": 2.84,
|
|
772
902
|
"moonSeriesLatVsJplRmsArcsec": 0.35,
|
|
773
903
|
"mercuryNewtonianArcsecCy": 532,
|
|
@@ -320,6 +320,14 @@ function createDeepOrbitalHistory({
|
|
|
320
320
|
eSinPeri: e * Math.sin(periOfDateDeg * D2R),
|
|
321
321
|
eCosPeri: e * Math.cos(periOfDateDeg * D2R),
|
|
322
322
|
inclEclDeg: i * R2D,
|
|
323
|
+
// The orbit normal's in-plane components in the J2000 ecliptic frame
|
|
324
|
+
// (n̂ = (sin i sin Ω, −sin i cos Ω, cos i); the third component follows).
|
|
325
|
+
// With epsDeg and equinoxLonJ2000Deg these reconstruct the FULL Earth
|
|
326
|
+
// frame of date — n̂, the equinox ĝ and the spin axis ŝ — for the scene
|
|
327
|
+
// (earth/frame-of-date.cjs). Smooth and small (47″/cy): linear
|
|
328
|
+
// interpolation on the grid is exact to the ζ series' own resolution.
|
|
329
|
+
orbitNormalX: n[0],
|
|
330
|
+
orbitNormalY: n[1],
|
|
323
331
|
// The equinox node (ŝ×n̂) longitude in the J2000 ecliptic frame —
|
|
324
332
|
// its year-over-year retrograde advance IS the general precession of
|
|
325
333
|
// date, wobble included (the n̂(t) geometry generates the equinox
|
|
@@ -420,6 +428,8 @@ function createDeepOrbitalHistory({
|
|
|
420
428
|
eSinPeri: lerp(a.eSinPeri, b.eSinPeri),
|
|
421
429
|
eCosPeri: lerp(a.eCosPeri, b.eCosPeri),
|
|
422
430
|
inclEclDeg: lerp(a.inclEclDeg, b.inclEclDeg),
|
|
431
|
+
orbitNormalX: lerp(a.orbitNormalX, b.orbitNormalX),
|
|
432
|
+
orbitNormalY: lerp(a.orbitNormalY, b.orbitNormalY),
|
|
423
433
|
// C1 (cubic Hermite) — linear interpolation here made the
|
|
424
434
|
// realized equinox RATE piecewise-constant per grid cell (the
|
|
425
435
|
// measured per-year precession staircase). Node rates come from
|