ootk 6.0.0-rc.4 → 6.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/dist/main.cjs +29551 -0
- package/dist/main.d.cts +16961 -0
- package/dist/main.d.ts +16940 -32
- package/dist/main.js +29243 -35
- package/package.json +38 -25
- package/.claude/PROMPT.md +0 -13
- package/.claude/hooks/post-tool-use.ts +0 -33
- package/.claude/hooks/user-prompt-submit.ts +0 -138
- package/.claude/settings.local.json +0 -21
- package/.claude/skill-rules.json +0 -11
- package/.claude/skills/ootk-dev/SKILL.md +0 -16
- package/ADVANCED_FEATURES_GUIDE.md +0 -1025
- package/CHANGELOG.md +0 -511
- package/CLAUDE.md +0 -67
- package/FUTURE-WORK.md +0 -325
- package/dist/body/CelestialBody.d.ts +0 -155
- package/dist/body/CelestialBody.js +0 -207
- package/dist/body/CelestialBody.js.map +0 -1
- package/dist/body/CelestialBodyType.d.ts +0 -41
- package/dist/body/CelestialBodyType.js +0 -55
- package/dist/body/CelestialBodyType.js.map +0 -1
- package/dist/body/Earth.d.ts +0 -68
- package/dist/body/Earth.js +0 -198
- package/dist/body/Earth.js.map +0 -1
- package/dist/body/EphemerisBody.d.ts +0 -153
- package/dist/body/EphemerisBody.js +0 -235
- package/dist/body/EphemerisBody.js.map +0 -1
- package/dist/body/MoonBody.d.ts +0 -200
- package/dist/body/MoonBody.js +0 -414
- package/dist/body/MoonBody.js.map +0 -1
- package/dist/body/NutationAngles.d.ts +0 -38
- package/dist/body/NutationAngles.js +0 -24
- package/dist/body/NutationAngles.js.map +0 -1
- package/dist/body/PlanetBody.d.ts +0 -130
- package/dist/body/PlanetBody.js +0 -293
- package/dist/body/PlanetBody.js.map +0 -1
- package/dist/body/PrecessionAngles.d.ts +0 -29
- package/dist/body/PrecessionAngles.js +0 -24
- package/dist/body/PrecessionAngles.js.map +0 -1
- package/dist/body/SolarSystem.d.ts +0 -124
- package/dist/body/SolarSystem.js +0 -218
- package/dist/body/SolarSystem.js.map +0 -1
- package/dist/body/SunBody.d.ts +0 -253
- package/dist/body/SunBody.js +0 -433
- package/dist/body/SunBody.js.map +0 -1
- package/dist/body/index.d.ts +0 -36
- package/dist/body/index.js +0 -39
- package/dist/body/index.js.map +0 -1
- package/dist/comm/Antenna.d.ts +0 -112
- package/dist/comm/Antenna.js +0 -173
- package/dist/comm/Antenna.js.map +0 -1
- package/dist/comm/Beacon.d.ts +0 -141
- package/dist/comm/Beacon.js +0 -268
- package/dist/comm/Beacon.js.map +0 -1
- package/dist/comm/CommTypes.d.ts +0 -181
- package/dist/comm/CommTypes.js +0 -115
- package/dist/comm/CommTypes.js.map +0 -1
- package/dist/comm/CommunicationDevice.d.ts +0 -115
- package/dist/comm/CommunicationDevice.js +0 -142
- package/dist/comm/CommunicationDevice.js.map +0 -1
- package/dist/comm/Receiver.d.ts +0 -139
- package/dist/comm/Receiver.js +0 -219
- package/dist/comm/Receiver.js.map +0 -1
- package/dist/comm/Transmitter.d.ts +0 -136
- package/dist/comm/Transmitter.js +0 -273
- package/dist/comm/Transmitter.js.map +0 -1
- package/dist/comm/Transponder.d.ts +0 -154
- package/dist/comm/Transponder.js +0 -281
- package/dist/comm/Transponder.js.map +0 -1
- package/dist/comm/index.d.ts +0 -30
- package/dist/comm/index.js +0 -26
- package/dist/comm/index.js.map +0 -1
- package/dist/conjunction/CatalogScreener.d.ts +0 -134
- package/dist/conjunction/CatalogScreener.js +0 -213
- package/dist/conjunction/CatalogScreener.js.map +0 -1
- package/dist/conjunction/ConjunctionAssessment.d.ts +0 -149
- package/dist/conjunction/ConjunctionAssessment.js +0 -288
- package/dist/conjunction/ConjunctionAssessment.js.map +0 -1
- package/dist/conjunction/ConjunctionEvent.d.ts +0 -110
- package/dist/conjunction/ConjunctionEvent.js +0 -154
- package/dist/conjunction/ConjunctionEvent.js.map +0 -1
- package/dist/conjunction/CovarianceRealism.d.ts +0 -189
- package/dist/conjunction/CovarianceRealism.js +0 -348
- package/dist/conjunction/CovarianceRealism.js.map +0 -1
- package/dist/conjunction/ProbabilityOfCollision.d.ts +0 -102
- package/dist/conjunction/ProbabilityOfCollision.js +0 -242
- package/dist/conjunction/ProbabilityOfCollision.js.map +0 -1
- package/dist/conjunction/ScreeningFilter.d.ts +0 -112
- package/dist/conjunction/ScreeningFilter.js +0 -160
- package/dist/conjunction/ScreeningFilter.js.map +0 -1
- package/dist/conjunction/index.d.ts +0 -22
- package/dist/conjunction/index.js +0 -23
- package/dist/conjunction/index.js.map +0 -1
- package/dist/constellation/ConstellationGenerator.d.ts +0 -137
- package/dist/constellation/ConstellationGenerator.js +0 -270
- package/dist/constellation/ConstellationGenerator.js.map +0 -1
- package/dist/constellation/index.d.ts +0 -17
- package/dist/constellation/index.js +0 -18
- package/dist/constellation/index.js.map +0 -1
- package/dist/coordinate/ClassicalElements.d.ts +0 -170
- package/dist/coordinate/ClassicalElements.js +0 -334
- package/dist/coordinate/ClassicalElements.js.map +0 -1
- package/dist/coordinate/EquinoctialElements.d.ts +0 -114
- package/dist/coordinate/EquinoctialElements.js +0 -172
- package/dist/coordinate/EquinoctialElements.js.map +0 -1
- package/dist/coordinate/FormatTle.d.ts +0 -95
- package/dist/coordinate/FormatTle.js +0 -188
- package/dist/coordinate/FormatTle.js.map +0 -1
- package/dist/coordinate/Geodetic.d.ts +0 -110
- package/dist/coordinate/Geodetic.js +0 -164
- package/dist/coordinate/Geodetic.js.map +0 -1
- package/dist/coordinate/Hill.d.ts +0 -49
- package/dist/coordinate/Hill.js +0 -222
- package/dist/coordinate/Hill.js.map +0 -1
- package/dist/coordinate/ITRF.d.ts +0 -75
- package/dist/coordinate/ITRF.js +0 -135
- package/dist/coordinate/ITRF.js.map +0 -1
- package/dist/coordinate/J2000.d.ts +0 -65
- package/dist/coordinate/J2000.js +0 -120
- package/dist/coordinate/J2000.js.map +0 -1
- package/dist/coordinate/RIC.d.ts +0 -64
- package/dist/coordinate/RIC.js +0 -79
- package/dist/coordinate/RIC.js.map +0 -1
- package/dist/coordinate/RelativeState.d.ts +0 -70
- package/dist/coordinate/RelativeState.js +0 -79
- package/dist/coordinate/RelativeState.js.map +0 -1
- package/dist/coordinate/StateVector.d.ts +0 -76
- package/dist/coordinate/StateVector.js +0 -97
- package/dist/coordinate/StateVector.js.map +0 -1
- package/dist/coordinate/TEME.d.ts +0 -57
- package/dist/coordinate/TEME.js +0 -89
- package/dist/coordinate/TEME.js.map +0 -1
- package/dist/coordinate/Tle.d.ts +0 -429
- package/dist/coordinate/Tle.js +0 -866
- package/dist/coordinate/Tle.js.map +0 -1
- package/dist/coordinate/index.d.ts +0 -12
- package/dist/coordinate/index.js +0 -13
- package/dist/coordinate/index.js.map +0 -1
- package/dist/coordinate/tle-format-data.d.ts +0 -41
- package/dist/coordinate/tle-format-data.js +0 -46
- package/dist/coordinate/tle-format-data.js.map +0 -1
- package/dist/covariance/CovarianceSample.d.ts +0 -46
- package/dist/covariance/CovarianceSample.js +0 -221
- package/dist/covariance/CovarianceSample.js.map +0 -1
- package/dist/covariance/StateCovariance.d.ts +0 -42
- package/dist/covariance/StateCovariance.js +0 -65
- package/dist/covariance/StateCovariance.js.map +0 -1
- package/dist/covariance/index.d.ts +0 -2
- package/dist/covariance/index.js +0 -3
- package/dist/covariance/index.js.map +0 -1
- package/dist/data/DataHandler.d.ts +0 -66
- package/dist/data/DataHandler.js +0 -80
- package/dist/data/DataHandler.js.map +0 -1
- package/dist/data/values/Egm96Data.d.ts +0 -37
- package/dist/data/values/Egm96Data.js +0 -63
- package/dist/data/values/Egm96Data.js.map +0 -1
- package/dist/data/values/HpAtmosphereData.d.ts +0 -33
- package/dist/data/values/HpAtmosphereData.js +0 -58
- package/dist/data/values/HpAtmosphereData.js.map +0 -1
- package/dist/data/values/HpAtmosphereResult.d.ts +0 -29
- package/dist/data/values/HpAtmosphereResult.js +0 -38
- package/dist/data/values/HpAtmosphereResult.js.map +0 -1
- package/dist/data/values/Iau1980Data.d.ts +0 -36
- package/dist/data/values/Iau1980Data.js +0 -52
- package/dist/data/values/Iau1980Data.js.map +0 -1
- package/dist/data/values/LeapSecond.d.ts +0 -27
- package/dist/data/values/LeapSecond.js +0 -35
- package/dist/data/values/LeapSecond.js.map +0 -1
- package/dist/data/values/LeapSecondData.d.ts +0 -41
- package/dist/data/values/LeapSecondData.js +0 -103
- package/dist/data/values/LeapSecondData.js.map +0 -1
- package/dist/data/values/egm96.d.ts +0 -24
- package/dist/data/values/egm96.js +0 -726
- package/dist/data/values/egm96.js.map +0 -1
- package/dist/data/values/hpAtmosphere.d.ts +0 -24
- package/dist/data/values/hpAtmosphere.js +0 -76
- package/dist/data/values/hpAtmosphere.js.map +0 -1
- package/dist/data/values/iau1980.d.ts +0 -24
- package/dist/data/values/iau1980.js +0 -30
- package/dist/data/values/iau1980.js.map +0 -1
- package/dist/enums/AngularDiameterMethod.d.ts +0 -27
- package/dist/enums/AngularDiameterMethod.js +0 -29
- package/dist/enums/AngularDiameterMethod.js.map +0 -1
- package/dist/enums/AngularDistanceMethod.d.ts +0 -27
- package/dist/enums/AngularDistanceMethod.js +0 -29
- package/dist/enums/AngularDistanceMethod.js.map +0 -1
- package/dist/enums/CatalogSource.d.ts +0 -10
- package/dist/enums/CatalogSource.js +0 -12
- package/dist/enums/CatalogSource.js.map +0 -1
- package/dist/enums/CommLink.d.ts +0 -7
- package/dist/enums/CommLink.js +0 -9
- package/dist/enums/CommLink.js.map +0 -1
- package/dist/enums/FovFrame.d.ts +0 -25
- package/dist/enums/FovFrame.js +0 -27
- package/dist/enums/FovFrame.js.map +0 -1
- package/dist/enums/FovShape.d.ts +0 -25
- package/dist/enums/FovShape.js +0 -27
- package/dist/enums/FovShape.js.map +0 -1
- package/dist/enums/OrbitRegime.d.ts +0 -30
- package/dist/enums/OrbitRegime.js +0 -32
- package/dist/enums/OrbitRegime.js.map +0 -1
- package/dist/enums/PassType.d.ts +0 -28
- package/dist/enums/PassType.js +0 -30
- package/dist/enums/PassType.js.map +0 -1
- package/dist/enums/SensorType.d.ts +0 -33
- package/dist/enums/SensorType.js +0 -35
- package/dist/enums/SensorType.js.map +0 -1
- package/dist/enums/Sgp4OpsMode.d.ts +0 -26
- package/dist/enums/Sgp4OpsMode.js +0 -28
- package/dist/enums/Sgp4OpsMode.js.map +0 -1
- package/dist/enums/index.d.ts +0 -10
- package/dist/enums/index.js +0 -11
- package/dist/enums/index.js.map +0 -1
- package/dist/errors/index.d.ts +0 -153
- package/dist/errors/index.js +0 -179
- package/dist/errors/index.js.map +0 -1
- package/dist/force/AtmosphericDrag.d.ts +0 -50
- package/dist/force/AtmosphericDrag.js +0 -92
- package/dist/force/AtmosphericDrag.js.map +0 -1
- package/dist/force/EarthGravity.d.ts +0 -53
- package/dist/force/EarthGravity.js +0 -142
- package/dist/force/EarthGravity.js.map +0 -1
- package/dist/force/Force.d.ts +0 -26
- package/dist/force/Force.js +0 -22
- package/dist/force/Force.js.map +0 -1
- package/dist/force/ForceModel.d.ts +0 -45
- package/dist/force/ForceModel.js +0 -83
- package/dist/force/ForceModel.js.map +0 -1
- package/dist/force/Gravity.d.ts +0 -38
- package/dist/force/Gravity.js +0 -47
- package/dist/force/Gravity.js.map +0 -1
- package/dist/force/SolarRadiationPressure.d.ts +0 -26
- package/dist/force/SolarRadiationPressure.js +0 -45
- package/dist/force/SolarRadiationPressure.js.map +0 -1
- package/dist/force/ThirdBodyGravity.d.ts +0 -26
- package/dist/force/ThirdBodyGravity.js +0 -59
- package/dist/force/ThirdBodyGravity.js.map +0 -1
- package/dist/force/Thrust.d.ts +0 -34
- package/dist/force/Thrust.js +0 -58
- package/dist/force/Thrust.js.map +0 -1
- package/dist/force/index.d.ts +0 -8
- package/dist/force/index.js +0 -9
- package/dist/force/index.js.map +0 -1
- package/dist/interfaces/BaseObjectParams.d.ts +0 -30
- package/dist/interfaces/BaseObjectParams.js +0 -24
- package/dist/interfaces/BaseObjectParams.js.map +0 -1
- package/dist/interfaces/ClassicalElementsParams.d.ts +0 -33
- package/dist/interfaces/ClassicalElementsParams.js +0 -24
- package/dist/interfaces/ClassicalElementsParams.js.map +0 -1
- package/dist/interfaces/EquinoctialElementsParams.d.ts +0 -35
- package/dist/interfaces/EquinoctialElementsParams.js +0 -24
- package/dist/interfaces/EquinoctialElementsParams.js.map +0 -1
- package/dist/interfaces/GroundPositionParams.d.ts +0 -28
- package/dist/interfaces/GroundPositionParams.js +0 -24
- package/dist/interfaces/GroundPositionParams.js.map +0 -1
- package/dist/interfaces/OmmFormat.d.ts +0 -62
- package/dist/interfaces/OmmFormat.js +0 -2
- package/dist/interfaces/OmmFormat.js.map +0 -1
- package/dist/interfaces/OptionsParams.d.ts +0 -3
- package/dist/interfaces/OptionsParams.js +0 -2
- package/dist/interfaces/OptionsParams.js.map +0 -1
- package/dist/interfaces/SatelliteParams.d.ts +0 -38
- package/dist/interfaces/SatelliteParams.js +0 -2
- package/dist/interfaces/SatelliteParams.js.map +0 -1
- package/dist/interfaces/StarObjectParams.d.ts +0 -10
- package/dist/interfaces/StarObjectParams.js +0 -2
- package/dist/interfaces/StarObjectParams.js.map +0 -1
- package/dist/interfaces/TimeVariables.d.ts +0 -6
- package/dist/interfaces/TimeVariables.js +0 -2
- package/dist/interfaces/TimeVariables.js.map +0 -1
- package/dist/interfaces/index.d.ts +0 -7
- package/dist/interfaces/index.js +0 -2
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interpolator/ChebyshevCoefficients.d.ts +0 -50
- package/dist/interpolator/ChebyshevCoefficients.js +0 -94
- package/dist/interpolator/ChebyshevCoefficients.js.map +0 -1
- package/dist/interpolator/ChebyshevInterpolator.d.ts +0 -38
- package/dist/interpolator/ChebyshevInterpolator.js +0 -71
- package/dist/interpolator/ChebyshevInterpolator.js.map +0 -1
- package/dist/interpolator/CubicSpline.d.ts +0 -35
- package/dist/interpolator/CubicSpline.js +0 -69
- package/dist/interpolator/CubicSpline.js.map +0 -1
- package/dist/interpolator/CubicSplineInterpolator.d.ts +0 -36
- package/dist/interpolator/CubicSplineInterpolator.js +0 -80
- package/dist/interpolator/CubicSplineInterpolator.js.map +0 -1
- package/dist/interpolator/FieldInterpolator.d.ts +0 -28
- package/dist/interpolator/FieldInterpolator.js +0 -24
- package/dist/interpolator/FieldInterpolator.js.map +0 -1
- package/dist/interpolator/Interpolator.d.ts +0 -22
- package/dist/interpolator/Interpolator.js +0 -47
- package/dist/interpolator/Interpolator.js.map +0 -1
- package/dist/interpolator/LagrangeInterpolator.d.ts +0 -40
- package/dist/interpolator/LagrangeInterpolator.js +0 -159
- package/dist/interpolator/LagrangeInterpolator.js.map +0 -1
- package/dist/interpolator/StateInterpolator.d.ts +0 -27
- package/dist/interpolator/StateInterpolator.js +0 -27
- package/dist/interpolator/StateInterpolator.js.map +0 -1
- package/dist/interpolator/VerletBlendInterpolator.d.ts +0 -43
- package/dist/interpolator/VerletBlendInterpolator.js +0 -118
- package/dist/interpolator/VerletBlendInterpolator.js.map +0 -1
- package/dist/interpolator/index.d.ts +0 -31
- package/dist/interpolator/index.js +0 -32
- package/dist/interpolator/index.js.map +0 -1
- package/dist/main.js.map +0 -1
- package/dist/maneuver/TwoBurnOrbitTransfer.d.ts +0 -41
- package/dist/maneuver/TwoBurnOrbitTransfer.js +0 -65
- package/dist/maneuver/TwoBurnOrbitTransfer.js.map +0 -1
- package/dist/maneuver/Waypoint.d.ts +0 -91
- package/dist/maneuver/Waypoint.js +0 -179
- package/dist/maneuver/Waypoint.js.map +0 -1
- package/dist/maneuver/index.d.ts +0 -24
- package/dist/maneuver/index.js +0 -25
- package/dist/maneuver/index.js.map +0 -1
- package/dist/objects/AccessCalculator.d.ts +0 -112
- package/dist/objects/AccessCalculator.js +0 -268
- package/dist/objects/AccessCalculator.js.map +0 -1
- package/dist/objects/AccessWindow.d.ts +0 -95
- package/dist/objects/AccessWindow.js +0 -69
- package/dist/objects/AccessWindow.js.map +0 -1
- package/dist/objects/BaseObject.d.ts +0 -119
- package/dist/objects/BaseObject.js +0 -203
- package/dist/objects/BaseObject.js.map +0 -1
- package/dist/objects/CenterBody.d.ts +0 -41
- package/dist/objects/CenterBody.js +0 -85
- package/dist/objects/CenterBody.js.map +0 -1
- package/dist/objects/DynamicGroundObject.d.ts +0 -309
- package/dist/objects/DynamicGroundObject.js +0 -758
- package/dist/objects/DynamicGroundObject.js.map +0 -1
- package/dist/objects/EphemerisSatellite.d.ts +0 -209
- package/dist/objects/EphemerisSatellite.js +0 -480
- package/dist/objects/EphemerisSatellite.js.map +0 -1
- package/dist/objects/GroundObject.d.ts +0 -124
- package/dist/objects/GroundObject.js +0 -192
- package/dist/objects/GroundObject.js.map +0 -1
- package/dist/objects/GroundStation.d.ts +0 -60
- package/dist/objects/GroundStation.js +0 -113
- package/dist/objects/GroundStation.js.map +0 -1
- package/dist/objects/History.d.ts +0 -101
- package/dist/objects/History.js +0 -180
- package/dist/objects/History.js.map +0 -1
- package/dist/objects/InterpolatorType.d.ts +0 -39
- package/dist/objects/InterpolatorType.js +0 -41
- package/dist/objects/InterpolatorType.js.map +0 -1
- package/dist/objects/LandObject.d.ts +0 -38
- package/dist/objects/LandObject.js +0 -48
- package/dist/objects/LandObject.js.map +0 -1
- package/dist/objects/Marker.d.ts +0 -24
- package/dist/objects/Marker.js +0 -30
- package/dist/objects/Marker.js.map +0 -1
- package/dist/objects/ObjectTypes.d.ts +0 -60
- package/dist/objects/ObjectTypes.js +0 -18
- package/dist/objects/ObjectTypes.js.map +0 -1
- package/dist/objects/Satellite.d.ts +0 -443
- package/dist/objects/Satellite.js +0 -843
- package/dist/objects/Satellite.js.map +0 -1
- package/dist/objects/SpaceObject.d.ts +0 -205
- package/dist/objects/SpaceObject.js +0 -149
- package/dist/objects/SpaceObject.js.map +0 -1
- package/dist/objects/Star.d.ts +0 -44
- package/dist/objects/Star.js +0 -95
- package/dist/objects/Star.js.map +0 -1
- package/dist/objects/VisualizationHelpers.d.ts +0 -148
- package/dist/objects/VisualizationHelpers.js +0 -218
- package/dist/objects/VisualizationHelpers.js.map +0 -1
- package/dist/objects/index.d.ts +0 -24
- package/dist/objects/index.js +0 -16
- package/dist/objects/index.js.map +0 -1
- package/dist/observation/Observation.d.ts +0 -89
- package/dist/observation/Observation.js +0 -51
- package/dist/observation/Observation.js.map +0 -1
- package/dist/observation/ObservationOptical.d.ts +0 -48
- package/dist/observation/ObservationOptical.js +0 -105
- package/dist/observation/ObservationOptical.js.map +0 -1
- package/dist/observation/ObservationRadar.d.ts +0 -46
- package/dist/observation/ObservationRadar.js +0 -96
- package/dist/observation/ObservationRadar.js.map +0 -1
- package/dist/observation/ObservationUtils.d.ts +0 -22
- package/dist/observation/ObservationUtils.js +0 -46
- package/dist/observation/ObservationUtils.js.map +0 -1
- package/dist/observation/PropagatorPairs.d.ts +0 -32
- package/dist/observation/PropagatorPairs.js +0 -43
- package/dist/observation/PropagatorPairs.js.map +0 -1
- package/dist/observation/RAE.d.ts +0 -111
- package/dist/observation/RAE.js +0 -214
- package/dist/observation/RAE.js.map +0 -1
- package/dist/observation/RadecGeocentric.d.ts +0 -111
- package/dist/observation/RadecGeocentric.js +0 -169
- package/dist/observation/RadecGeocentric.js.map +0 -1
- package/dist/observation/RadecTopocentric.d.ts +0 -123
- package/dist/observation/RadecTopocentric.js +0 -200
- package/dist/observation/RadecTopocentric.js.map +0 -1
- package/dist/observation/index.d.ts +0 -26
- package/dist/observation/index.js +0 -27
- package/dist/observation/index.js.map +0 -1
- package/dist/operations/BoxMuller.d.ts +0 -46
- package/dist/operations/BoxMuller.js +0 -77
- package/dist/operations/BoxMuller.js.map +0 -1
- package/dist/operations/EulerAngles.d.ts +0 -105
- package/dist/operations/EulerAngles.js +0 -161
- package/dist/operations/EulerAngles.js.map +0 -1
- package/dist/operations/Matrix.d.ts +0 -170
- package/dist/operations/Matrix.js +0 -405
- package/dist/operations/Matrix.js.map +0 -1
- package/dist/operations/Quaternion.d.ts +0 -56
- package/dist/operations/Quaternion.js +0 -167
- package/dist/operations/Quaternion.js.map +0 -1
- package/dist/operations/Random.d.ts +0 -40
- package/dist/operations/Random.js +0 -50
- package/dist/operations/Random.js.map +0 -1
- package/dist/operations/RandomGaussianSource.d.ts +0 -24
- package/dist/operations/RandomGaussianSource.js +0 -43
- package/dist/operations/RandomGaussianSource.js.map +0 -1
- package/dist/operations/Vector.d.ts +0 -262
- package/dist/operations/Vector.js +0 -415
- package/dist/operations/Vector.js.map +0 -1
- package/dist/operations/Vector3D.d.ts +0 -80
- package/dist/operations/Vector3D.js +0 -224
- package/dist/operations/Vector3D.js.map +0 -1
- package/dist/operations/index.d.ts +0 -4
- package/dist/operations/index.js +0 -5
- package/dist/operations/index.js.map +0 -1
- package/dist/operations/operations.d.ts +0 -26
- package/dist/operations/operations.js +0 -27
- package/dist/operations/operations.js.map +0 -1
- package/dist/optimize/ChebyshevCompressor.d.ts +0 -80
- package/dist/optimize/ChebyshevCompressor.js +0 -128
- package/dist/optimize/ChebyshevCompressor.js.map +0 -1
- package/dist/optimize/DownhillSimplex.d.ts +0 -98
- package/dist/optimize/DownhillSimplex.js +0 -216
- package/dist/optimize/DownhillSimplex.js.map +0 -1
- package/dist/optimize/GoldenSection.d.ts +0 -177
- package/dist/optimize/GoldenSection.js +0 -202
- package/dist/optimize/GoldenSection.js.map +0 -1
- package/dist/optimize/PolynomialRegression.d.ts +0 -151
- package/dist/optimize/PolynomialRegression.js +0 -184
- package/dist/optimize/PolynomialRegression.js.map +0 -1
- package/dist/optimize/SimpleLinearRegression.d.ts +0 -153
- package/dist/optimize/SimpleLinearRegression.js +0 -212
- package/dist/optimize/SimpleLinearRegression.js.map +0 -1
- package/dist/optimize/index.d.ts +0 -5
- package/dist/optimize/index.js +0 -6
- package/dist/optimize/index.js.map +0 -1
- package/dist/optimize/internal/PolynomicalRegressionResult.d.ts +0 -118
- package/dist/optimize/internal/PolynomicalRegressionResult.js +0 -123
- package/dist/optimize/internal/PolynomicalRegressionResult.js.map +0 -1
- package/dist/optimize/internal/SimplexEntry.d.ts +0 -150
- package/dist/optimize/internal/SimplexEntry.js +0 -147
- package/dist/optimize/internal/SimplexEntry.js.map +0 -1
- package/dist/orbit-design/RepeatGroundTrack.d.ts +0 -184
- package/dist/orbit-design/RepeatGroundTrack.js +0 -359
- package/dist/orbit-design/RepeatGroundTrack.js.map +0 -1
- package/dist/orbit-design/index.d.ts +0 -18
- package/dist/orbit-design/index.js +0 -18
- package/dist/orbit-design/index.js.map +0 -1
- package/dist/orbit-determination/BatchLeastSquaresOD.d.ts +0 -69
- package/dist/orbit-determination/BatchLeastSquaresOD.js +0 -143
- package/dist/orbit-determination/BatchLeastSquaresOD.js.map +0 -1
- package/dist/orbit-determination/BatchLeastSquaresResult.d.ts +0 -31
- package/dist/orbit-determination/BatchLeastSquaresResult.js +0 -36
- package/dist/orbit-determination/BatchLeastSquaresResult.js.map +0 -1
- package/dist/orbit-determination/GaussIOD.d.ts +0 -98
- package/dist/orbit-determination/GaussIOD.js +0 -294
- package/dist/orbit-determination/GaussIOD.js.map +0 -1
- package/dist/orbit-determination/GibbsIOD.d.ts +0 -38
- package/dist/orbit-determination/GibbsIOD.js +0 -77
- package/dist/orbit-determination/GibbsIOD.js.map +0 -1
- package/dist/orbit-determination/GoodingIOD.d.ts +0 -155
- package/dist/orbit-determination/GoodingIOD.js +0 -492
- package/dist/orbit-determination/GoodingIOD.js.map +0 -1
- package/dist/orbit-determination/HerrickGibbsIOD.d.ts +0 -33
- package/dist/orbit-determination/HerrickGibbsIOD.js +0 -50
- package/dist/orbit-determination/HerrickGibbsIOD.js.map +0 -1
- package/dist/orbit-determination/LambertIOD.d.ts +0 -59
- package/dist/orbit-determination/LambertIOD.js +0 -213
- package/dist/orbit-determination/LambertIOD.js.map +0 -1
- package/dist/orbit-determination/LevenbergMarquardtOD.d.ts +0 -72
- package/dist/orbit-determination/LevenbergMarquardtOD.js +0 -202
- package/dist/orbit-determination/LevenbergMarquardtOD.js.map +0 -1
- package/dist/orbit-determination/LevenbergMarquardtResult.d.ts +0 -36
- package/dist/orbit-determination/LevenbergMarquardtResult.js +0 -43
- package/dist/orbit-determination/LevenbergMarquardtResult.js.map +0 -1
- package/dist/orbit-determination/ModifiedGoodingIOD.d.ts +0 -41
- package/dist/orbit-determination/ModifiedGoodingIOD.js +0 -94
- package/dist/orbit-determination/ModifiedGoodingIOD.js.map +0 -1
- package/dist/orbit-determination/index.d.ts +0 -9
- package/dist/orbit-determination/index.js +0 -10
- package/dist/orbit-determination/index.js.map +0 -1
- package/dist/parsers/CdmExporter.d.ts +0 -85
- package/dist/parsers/CdmExporter.js +0 -235
- package/dist/parsers/CdmExporter.js.map +0 -1
- package/dist/parsers/CdmParser.d.ts +0 -97
- package/dist/parsers/CdmParser.js +0 -396
- package/dist/parsers/CdmParser.js.map +0 -1
- package/dist/parsers/CdmTypes.d.ts +0 -240
- package/dist/parsers/CdmTypes.js +0 -18
- package/dist/parsers/CdmTypes.js.map +0 -1
- package/dist/parsers/HorizonsParser.d.ts +0 -128
- package/dist/parsers/HorizonsParser.js +0 -320
- package/dist/parsers/HorizonsParser.js.map +0 -1
- package/dist/parsers/OemParser.d.ts +0 -56
- package/dist/parsers/OemParser.js +0 -235
- package/dist/parsers/OemParser.js.map +0 -1
- package/dist/parsers/OemTypes.d.ts +0 -100
- package/dist/parsers/OemTypes.js +0 -18
- package/dist/parsers/OemTypes.js.map +0 -1
- package/dist/parsers/index.d.ts +0 -23
- package/dist/parsers/index.js +0 -24
- package/dist/parsers/index.js.map +0 -1
- package/dist/propagator/DormandPrince54Propagator.d.ts +0 -28
- package/dist/propagator/DormandPrince54Propagator.js +0 -64
- package/dist/propagator/DormandPrince54Propagator.js.map +0 -1
- package/dist/propagator/KeplerPropagator.d.ts +0 -35
- package/dist/propagator/KeplerPropagator.js +0 -83
- package/dist/propagator/KeplerPropagator.js.map +0 -1
- package/dist/propagator/Propagator.d.ts +0 -34
- package/dist/propagator/Propagator.js +0 -162
- package/dist/propagator/Propagator.js.map +0 -1
- package/dist/propagator/RkCheckpoint.d.ts +0 -22
- package/dist/propagator/RkCheckpoint.js +0 -27
- package/dist/propagator/RkCheckpoint.js.map +0 -1
- package/dist/propagator/RkResult.d.ts +0 -23
- package/dist/propagator/RkResult.js +0 -30
- package/dist/propagator/RkResult.js.map +0 -1
- package/dist/propagator/RungeKutta4Propagator.d.ts +0 -50
- package/dist/propagator/RungeKutta4Propagator.js +0 -141
- package/dist/propagator/RungeKutta4Propagator.js.map +0 -1
- package/dist/propagator/RungeKutta89Propagator.d.ts +0 -28
- package/dist/propagator/RungeKutta89Propagator.js +0 -126
- package/dist/propagator/RungeKutta89Propagator.js.map +0 -1
- package/dist/propagator/RungeKuttaAdaptive.d.ts +0 -51
- package/dist/propagator/RungeKuttaAdaptive.js +0 -199
- package/dist/propagator/RungeKuttaAdaptive.js.map +0 -1
- package/dist/propagator/Sgp4Propagator.d.ts +0 -76
- package/dist/propagator/Sgp4Propagator.js +0 -96
- package/dist/propagator/Sgp4Propagator.js.map +0 -1
- package/dist/propagator/index.d.ts +0 -9
- package/dist/propagator/index.js +0 -10
- package/dist/propagator/index.js.map +0 -1
- package/dist/scheduling/ContactScheduler.d.ts +0 -248
- package/dist/scheduling/ContactScheduler.js +0 -503
- package/dist/scheduling/ContactScheduler.js.map +0 -1
- package/dist/scheduling/ScheduledContact.d.ts +0 -155
- package/dist/scheduling/ScheduledContact.js +0 -189
- package/dist/scheduling/ScheduledContact.js.map +0 -1
- package/dist/scheduling/index.d.ts +0 -5
- package/dist/scheduling/index.js +0 -4
- package/dist/scheduling/index.js.map +0 -1
- package/dist/sensor/FieldOfView.d.ts +0 -250
- package/dist/sensor/FieldOfView.js +0 -470
- package/dist/sensor/FieldOfView.js.map +0 -1
- package/dist/sensor/LaserRangingSensor.d.ts +0 -122
- package/dist/sensor/LaserRangingSensor.js +0 -174
- package/dist/sensor/LaserRangingSensor.js.map +0 -1
- package/dist/sensor/MechanicalRadar.d.ts +0 -86
- package/dist/sensor/MechanicalRadar.js +0 -130
- package/dist/sensor/MechanicalRadar.js.map +0 -1
- package/dist/sensor/OpticalSensor.d.ts +0 -111
- package/dist/sensor/OpticalSensor.js +0 -164
- package/dist/sensor/OpticalSensor.js.map +0 -1
- package/dist/sensor/PassiveRFSensor.d.ts +0 -115
- package/dist/sensor/PassiveRFSensor.js +0 -168
- package/dist/sensor/PassiveRFSensor.js.map +0 -1
- package/dist/sensor/PhasedArrayRadar.d.ts +0 -170
- package/dist/sensor/PhasedArrayRadar.js +0 -290
- package/dist/sensor/PhasedArrayRadar.js.map +0 -1
- package/dist/sensor/RadarSensor.d.ts +0 -94
- package/dist/sensor/RadarSensor.js +0 -106
- package/dist/sensor/RadarSensor.js.map +0 -1
- package/dist/sensor/Sensor.d.ts +0 -271
- package/dist/sensor/Sensor.js +0 -343
- package/dist/sensor/Sensor.js.map +0 -1
- package/dist/sensor/index.d.ts +0 -74
- package/dist/sensor/index.js +0 -70
- package/dist/sensor/index.js.map +0 -1
- package/dist/sgp4/index.d.ts +0 -25
- package/dist/sgp4/index.js +0 -25
- package/dist/sgp4/index.js.map +0 -1
- package/dist/sgp4/sgp4-error.d.ts +0 -22
- package/dist/sgp4/sgp4-error.js +0 -44
- package/dist/sgp4/sgp4-error.js.map +0 -1
- package/dist/sgp4/sgp4.d.ts +0 -99
- package/dist/sgp4/sgp4.js +0 -3170
- package/dist/sgp4/sgp4.js.map +0 -1
- package/dist/smoothing/ExponentialSmoothing.d.ts +0 -37
- package/dist/smoothing/ExponentialSmoothing.js +0 -75
- package/dist/smoothing/ExponentialSmoothing.js.map +0 -1
- package/dist/time/Epoch.d.ts +0 -81
- package/dist/time/Epoch.js +0 -146
- package/dist/time/Epoch.js.map +0 -1
- package/dist/time/EpochGPS.d.ts +0 -106
- package/dist/time/EpochGPS.js +0 -134
- package/dist/time/EpochGPS.js.map +0 -1
- package/dist/time/EpochTAI.d.ts +0 -62
- package/dist/time/EpochTAI.js +0 -63
- package/dist/time/EpochTAI.js.map +0 -1
- package/dist/time/EpochTDB.d.ts +0 -72
- package/dist/time/EpochTDB.js +0 -73
- package/dist/time/EpochTDB.js.map +0 -1
- package/dist/time/EpochTT.d.ts +0 -75
- package/dist/time/EpochTT.js +0 -76
- package/dist/time/EpochTT.js.map +0 -1
- package/dist/time/EpochUTC.d.ts +0 -123
- package/dist/time/EpochUTC.js +0 -200
- package/dist/time/EpochUTC.js.map +0 -1
- package/dist/time/EpochWindow.d.ts +0 -28
- package/dist/time/EpochWindow.js +0 -31
- package/dist/time/EpochWindow.js.map +0 -1
- package/dist/time/TimeStamped.d.ts +0 -61
- package/dist/time/TimeStamped.js +0 -73
- package/dist/time/TimeStamped.js.map +0 -1
- package/dist/time/index.d.ts +0 -8
- package/dist/time/index.js +0 -9
- package/dist/time/index.js.map +0 -1
- package/dist/transforms/TransformCache.d.ts +0 -27
- package/dist/transforms/TransformCache.js +0 -41
- package/dist/transforms/TransformCache.js.map +0 -1
- package/dist/transforms/conversions.d.ts +0 -63
- package/dist/transforms/conversions.js +0 -89
- package/dist/transforms/conversions.js.map +0 -1
- package/dist/transforms/index.d.ts +0 -2
- package/dist/transforms/index.js +0 -3
- package/dist/transforms/index.js.map +0 -1
- package/dist/transforms/transforms.d.ts +0 -241
- package/dist/transforms/transforms.js +0 -479
- package/dist/transforms/transforms.js.map +0 -1
- package/dist/types/types.d.ts +0 -757
- package/dist/types/types.js +0 -90
- package/dist/types/types.js.map +0 -1
- package/dist/utils/constants.d.ts +0 -80
- package/dist/utils/constants.js +0 -87
- package/dist/utils/constants.js.map +0 -1
- package/dist/utils/create-covariance-from-tle.d.ts +0 -18
- package/dist/utils/create-covariance-from-tle.js +0 -57
- package/dist/utils/create-covariance-from-tle.js.map +0 -1
- package/dist/utils/functions.d.ts +0 -236
- package/dist/utils/functions.js +0 -501
- package/dist/utils/functions.js.map +0 -1
- package/dist/utils/index.d.ts +0 -5
- package/dist/utils/index.js +0 -6
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/jacobian.d.ts +0 -17
- package/dist/utils/jacobian.js +0 -34
- package/dist/utils/jacobian.js.map +0 -1
- package/dist/utils/linearDistance.d.ts +0 -8
- package/dist/utils/linearDistance.js +0 -10
- package/dist/utils/linearDistance.js.map +0 -1
- package/docs/README.md +0 -151
- package/docs/getting-started.md +0 -792
- package/docs/lambert-satellite-integration-guide.md +0 -766
- package/docs/user-guide.md +0 -1935
- package/jest.config.mjs +0 -29
- package/src/body/CelestialBody.ts +0 -316
- package/src/body/CelestialBodyType.ts +0 -55
- package/src/body/Earth.ts +0 -260
- package/src/body/EphemerisBody.ts +0 -349
- package/src/body/MoonBody.ts +0 -552
- package/src/body/NutationAngles.ts +0 -40
- package/src/body/PlanetBody.ts +0 -354
- package/src/body/PrecessionAngles.ts +0 -31
- package/src/body/SolarSystem.ts +0 -276
- package/src/body/SunBody.ts +0 -538
- package/src/body/__tests__/Earth.test.ts +0 -135
- package/src/body/__tests__/EphemerisBody.test.ts +0 -323
- package/src/body/__tests__/MoonBody.test.ts +0 -198
- package/src/body/__tests__/PlanetBody.test.ts +0 -257
- package/src/body/__tests__/SolarSystem.test.ts +0 -237
- package/src/body/__tests__/SunBody.test.ts +0 -227
- package/src/body/__tests__/__snapshots__/Earth.test.ts.snap +0 -39
- package/src/body/index.ts +0 -64
- package/src/body/suncalc.LICENSE.md +0 -18
- package/src/comm/Antenna.ts +0 -213
- package/src/comm/Beacon.ts +0 -328
- package/src/comm/CommTypes.ts +0 -216
- package/src/comm/CommunicationDevice.ts +0 -199
- package/src/comm/Receiver.ts +0 -263
- package/src/comm/Transmitter.ts +0 -349
- package/src/comm/Transponder.ts +0 -360
- package/src/comm/__tests__/Antenna.test.ts +0 -155
- package/src/comm/__tests__/Beacon.test.ts +0 -333
- package/src/comm/__tests__/CommTypes.test.ts +0 -165
- package/src/comm/__tests__/Receiver.test.ts +0 -215
- package/src/comm/__tests__/Transmitter.test.ts +0 -164
- package/src/comm/__tests__/Transponder.test.ts +0 -181
- package/src/comm/index.ts +0 -60
- package/src/conjunction/CatalogScreener.ts +0 -322
- package/src/conjunction/ConjunctionAssessment.ts +0 -410
- package/src/conjunction/ConjunctionEvent.ts +0 -185
- package/src/conjunction/CovarianceRealism.ts +0 -472
- package/src/conjunction/ProbabilityOfCollision.ts +0 -302
- package/src/conjunction/ScreeningFilter.ts +0 -206
- package/src/conjunction/__tests__/CatalogScreener.test.ts +0 -280
- package/src/conjunction/__tests__/ConjunctionAssessment.basic.test.ts +0 -250
- package/src/conjunction/__tests__/ConjunctionAssessment.highfidelity.test.ts +0 -76
- package/src/conjunction/__tests__/CovarianceRealism.test.ts +0 -296
- package/src/conjunction/index.ts +0 -35
- package/src/constellation/ConstellationGenerator.ts +0 -377
- package/src/constellation/__tests__/ConstellationGenerator.test.ts +0 -446
- package/src/constellation/index.ts +0 -18
- package/src/coordinate/ClassicalElements.ts +0 -394
- package/src/coordinate/EquinoctialElements.ts +0 -189
- package/src/coordinate/FormatTle.ts +0 -219
- package/src/coordinate/Geodetic.ts +0 -191
- package/src/coordinate/Hill.ts +0 -326
- package/src/coordinate/ITRF.ts +0 -146
- package/src/coordinate/J2000.ts +0 -130
- package/src/coordinate/README.md +0 -788
- package/src/coordinate/RIC.ts +0 -87
- package/src/coordinate/RelativeState.ts +0 -101
- package/src/coordinate/StateVector.ts +0 -128
- package/src/coordinate/TEME.ts +0 -97
- package/src/coordinate/Tle.ts +0 -1025
- package/src/coordinate/__tests__/ClassicalElements.test.ts +0 -129
- package/src/coordinate/__tests__/EquinoctialElements.test.ts +0 -108
- package/src/coordinate/__tests__/FormatTle.test.ts +0 -92
- package/src/coordinate/__tests__/Geodetic.test.ts +0 -165
- package/src/coordinate/__tests__/Hill.test.ts +0 -195
- package/src/coordinate/__tests__/ITRF.test.ts +0 -231
- package/src/coordinate/__tests__/J2000.test.ts +0 -132
- package/src/coordinate/__tests__/RIC.test.ts +0 -107
- package/src/coordinate/__tests__/TEME.test.ts +0 -48
- package/src/coordinate/__tests__/Tle.test.ts +0 -185
- package/src/coordinate/__tests__/__snapshots__/ClassicalElements.test.ts.snap +0 -106
- package/src/coordinate/__tests__/__snapshots__/EquinoctialElements.test.ts.snap +0 -93
- package/src/coordinate/__tests__/__snapshots__/Geodetic.test.ts.snap +0 -54
- package/src/coordinate/__tests__/__snapshots__/ITRF.test.ts.snap +0 -321
- package/src/coordinate/__tests__/__snapshots__/J2000.test.ts.snap +0 -26
- package/src/coordinate/__tests__/__snapshots__/RIC.test.ts.snap +0 -79
- package/src/coordinate/__tests__/__snapshots__/TEME.test.ts.snap +0 -41
- package/src/coordinate/__tests__/__snapshots__/Tle.test.ts.snap +0 -180
- package/src/coordinate/index.ts +0 -13
- package/src/coordinate/tle-format-data.ts +0 -47
- package/src/covariance/CovarianceSample.ts +0 -292
- package/src/covariance/StateCovariance.ts +0 -69
- package/src/covariance/__tests__/CovarianceSample.test.ts +0 -143
- package/src/covariance/__tests__/StateCovariance.test.ts +0 -90
- package/src/covariance/index.ts +0 -3
- package/src/data/DataHandler.ts +0 -88
- package/src/data/values/Egm96Data.ts +0 -75
- package/src/data/values/HpAtmosphereData.ts +0 -76
- package/src/data/values/HpAtmosphereResult.ts +0 -41
- package/src/data/values/Iau1980Data.ts +0 -63
- package/src/data/values/LeapSecond.ts +0 -37
- package/src/data/values/LeapSecondData.ts +0 -113
- package/src/data/values/__tests__/Egm96Data.test.ts +0 -33
- package/src/data/values/__tests__/HpAtmosphereData.test.ts +0 -82
- package/src/data/values/__tests__/LeapSecondData.test.ts +0 -59
- package/src/data/values/egm96.ts +0 -728
- package/src/data/values/hpAtmosphere.ts +0 -79
- package/src/data/values/iau1980.ts +0 -32
- package/src/enums/AngularDiameterMethod.ts +0 -28
- package/src/enums/AngularDistanceMethod.ts +0 -28
- package/src/enums/CatalogSource.ts +0 -10
- package/src/enums/CommLink.ts +0 -7
- package/src/enums/FovFrame.ts +0 -26
- package/src/enums/FovShape.ts +0 -26
- package/src/enums/OrbitRegime.ts +0 -31
- package/src/enums/PassType.ts +0 -29
- package/src/enums/SensorType.ts +0 -34
- package/src/enums/Sgp4OpsMode.ts +0 -27
- package/src/enums/index.ts +0 -11
- package/src/errors/__tests__/errors.test.ts +0 -196
- package/src/errors/index.ts +0 -185
- package/src/fetch/horizons-constants.ts +0 -53
- package/src/fetch/horizons-interfaces.ts +0 -38
- package/src/fetch/horizons.ts +0 -300
- package/src/fetch/index.ts +0 -26
- package/src/force/AtmosphericDrag.ts +0 -120
- package/src/force/EarthGravity.ts +0 -182
- package/src/force/Force.ts +0 -31
- package/src/force/ForceModel.ts +0 -99
- package/src/force/Gravity.ts +0 -53
- package/src/force/README.md +0 -99
- package/src/force/SolarRadiationPressure.ts +0 -43
- package/src/force/ThirdBodyGravity.ts +0 -64
- package/src/force/Thrust.ts +0 -83
- package/src/force/__tests__/AtmosphericDrag.test.ts +0 -168
- package/src/force/__tests__/EarthGravity.test.ts +0 -115
- package/src/force/__tests__/ForceModel.test.ts +0 -188
- package/src/force/__tests__/Gravity.test.ts +0 -81
- package/src/force/__tests__/SolarRadiationPressure.test.ts +0 -115
- package/src/force/__tests__/ThirdBodyGravity.test.ts +0 -119
- package/src/force/__tests__/Thrust.test.ts +0 -132
- package/src/force/index.ts +0 -9
- package/src/interfaces/BaseObjectParams.ts +0 -32
- package/src/interfaces/ClassicalElementsParams.ts +0 -35
- package/src/interfaces/EquinoctialElementsParams.ts +0 -37
- package/src/interfaces/GroundPositionParams.ts +0 -30
- package/src/interfaces/OmmFormat.ts +0 -63
- package/src/interfaces/OptionsParams.ts +0 -3
- package/src/interfaces/SatelliteParams.ts +0 -57
- package/src/interfaces/StarObjectParams.ts +0 -11
- package/src/interfaces/TimeVariables.ts +0 -7
- package/src/interfaces/index.ts +0 -8
- package/src/interpolator/ChebyshevCoefficients.ts +0 -109
- package/src/interpolator/ChebyshevInterpolator.ts +0 -87
- package/src/interpolator/CubicSpline.ts +0 -72
- package/src/interpolator/CubicSplineInterpolator.ts +0 -90
- package/src/interpolator/FieldInterpolator.ts +0 -35
- package/src/interpolator/Interpolator.ts +0 -56
- package/src/interpolator/LagrangeInterpolator.ts +0 -192
- package/src/interpolator/StateInterpolator.ts +0 -37
- package/src/interpolator/VerletBlendInterpolator.ts +0 -146
- package/src/interpolator/__tests__/ChebyshevCoefficients.test.ts +0 -105
- package/src/interpolator/__tests__/ChebyshevInterpolator.test.ts +0 -81
- package/src/interpolator/__tests__/CubicSpline.test.ts +0 -80
- package/src/interpolator/__tests__/CubicSplineInterpolator.test.ts +0 -94
- package/src/interpolator/__tests__/FieldInterpolator.test.ts +0 -59
- package/src/interpolator/__tests__/Interpolator.test.ts +0 -131
- package/src/interpolator/__tests__/LagrangeInterpolator.test.ts +0 -121
- package/src/interpolator/__tests__/StateInterpolator.test.ts +0 -57
- package/src/interpolator/__tests__/VerletBlendInterpolator.test.ts +0 -116
- package/src/interpolator/index.ts +0 -32
- package/src/main.ts +0 -87
- package/src/maneuver/TwoBurnOrbitTransfer.ts +0 -79
- package/src/maneuver/Waypoint.ts +0 -267
- package/src/maneuver/__tests__/TwoBurnOrbitTransfer.test.ts +0 -90
- package/src/maneuver/__tests__/Waypoint.test.ts +0 -427
- package/src/maneuver/index.ts +0 -25
- package/src/objects/AccessCalculator.ts +0 -345
- package/src/objects/AccessWindow.ts +0 -129
- package/src/objects/BaseObject.ts +0 -242
- package/src/objects/CenterBody.ts +0 -88
- package/src/objects/DynamicGroundObject.ts +0 -975
- package/src/objects/EphemerisSatellite.ts +0 -629
- package/src/objects/GroundObject.ts +0 -246
- package/src/objects/GroundStation.ts +0 -130
- package/src/objects/History.ts +0 -228
- package/src/objects/InterpolatorType.ts +0 -42
- package/src/objects/LandObject.ts +0 -62
- package/src/objects/Marker.ts +0 -32
- package/src/objects/ObjectTypes.ts +0 -66
- package/src/objects/Satellite.ts +0 -1013
- package/src/objects/SpaceObject.ts +0 -304
- package/src/objects/Star.ts +0 -135
- package/src/objects/VisualizationHelpers.ts +0 -324
- package/src/objects/__tests__/AccessCalculator.test.ts +0 -499
- package/src/objects/__tests__/DynamicGroundObject.test.ts +0 -859
- package/src/objects/__tests__/EphemerisSatellite.test.ts +0 -589
- package/src/objects/__tests__/GroundStation.test.ts +0 -204
- package/src/objects/__tests__/Satellite.test.ts +0 -487
- package/src/objects/__tests__/SpaceObject.rae.test.ts +0 -156
- package/src/objects/__tests__/VisualizationHelpers.test.ts +0 -438
- package/src/objects/index.ts +0 -31
- package/src/observation/Observation.ts +0 -113
- package/src/observation/ObservationOptical.ts +0 -146
- package/src/observation/ObservationRadar.ts +0 -135
- package/src/observation/ObservationUtils.ts +0 -69
- package/src/observation/PropagatorPairs.ts +0 -45
- package/src/observation/RAE.ts +0 -261
- package/src/observation/RadecGeocentric.ts +0 -206
- package/src/observation/RadecTopocentric.ts +0 -247
- package/src/observation/__tests__/RAE.test.ts +0 -135
- package/src/observation/__tests__/RadecGeocentric.test.ts +0 -107
- package/src/observation/__tests__/RadecTopocentric.test.ts +0 -121
- package/src/observation/__tests__/__snapshots__/RAE.test.ts.snap +0 -91
- package/src/observation/__tests__/__snapshots__/RadecGeocentric.test.ts.snap +0 -71
- package/src/observation/__tests__/__snapshots__/RadecTopocentric.test.ts.snap +0 -71
- package/src/observation/index.ts +0 -28
- package/src/operations/BoxMuller.ts +0 -87
- package/src/operations/EulerAngles.ts +0 -183
- package/src/operations/Matrix.ts +0 -473
- package/src/operations/Quaternion.ts +0 -222
- package/src/operations/Random.ts +0 -54
- package/src/operations/RandomGaussianSource.ts +0 -51
- package/src/operations/Vector.ts +0 -484
- package/src/operations/Vector3D.ts +0 -272
- package/src/operations/__tests__/Matrix.test.ts +0 -277
- package/src/operations/__tests__/Random.test.ts +0 -24
- package/src/operations/__tests__/Vector.test.ts +0 -269
- package/src/operations/__tests__/Vector3D.test.ts +0 -100
- package/src/operations/__tests__/__snapshots__/Matrix.test.ts.snap +0 -161
- package/src/operations/__tests__/__snapshots__/Random.test.ts.snap +0 -7
- package/src/operations/__tests__/__snapshots__/Vector.test.ts.snap +0 -218
- package/src/operations/__tests__/__snapshots__/Vector3D.test.ts.snap +0 -138
- package/src/operations/index.ts +0 -5
- package/src/operations/operations.ts +0 -28
- package/src/optimize/ChebyshevCompressor.ts +0 -141
- package/src/optimize/DownhillSimplex.ts +0 -246
- package/src/optimize/GoldenSection.ts +0 -230
- package/src/optimize/PolynomialRegression.ts +0 -211
- package/src/optimize/README.md +0 -343
- package/src/optimize/SimpleLinearRegression.ts +0 -227
- package/src/optimize/__tests__/ChebyshevCompressor.test.ts +0 -40
- package/src/optimize/__tests__/DownhillSimplex.test.ts +0 -168
- package/src/optimize/__tests__/GoldenSection.test.ts +0 -21
- package/src/optimize/__tests__/PolynomialRegression.test.ts +0 -24
- package/src/optimize/__tests__/SimpleLinearRegression.test.ts +0 -31
- package/src/optimize/index.ts +0 -6
- package/src/optimize/internal/PolynomicalRegressionResult.ts +0 -126
- package/src/optimize/internal/SimplexEntry.ts +0 -169
- package/src/orbit-design/RepeatGroundTrack.ts +0 -516
- package/src/orbit-design/__tests__/RepeatGroundTrack.test.ts +0 -526
- package/src/orbit-design/index.ts +0 -23
- package/src/orbit-determination/BatchLeastSquaresOD.ts +0 -174
- package/src/orbit-determination/BatchLeastSquaresResult.ts +0 -33
- package/src/orbit-determination/GaussIOD.ts +0 -396
- package/src/orbit-determination/GibbsIOD.ts +0 -98
- package/src/orbit-determination/GoodingIOD.ts +0 -680
- package/src/orbit-determination/HerrickGibbsIOD.ts +0 -51
- package/src/orbit-determination/LambertIOD.ts +0 -260
- package/src/orbit-determination/LevenbergMarquardtOD.ts +0 -258
- package/src/orbit-determination/LevenbergMarquardtResult.ts +0 -42
- package/src/orbit-determination/ModifiedGoodingIOD.test.ts +0 -86
- package/src/orbit-determination/ModifiedGoodingIOD.ts +0 -145
- package/src/orbit-determination/README.md +0 -353
- package/src/orbit-determination/__tests__/BatchLeastSquaresOD.accuracy.test.ts +0 -320
- package/src/orbit-determination/__tests__/BatchLeastSquaresOD.observations.test.ts +0 -279
- package/src/orbit-determination/__tests__/BatchLeastSquaresOD.robustness.test.ts +0 -439
- package/src/orbit-determination/__tests__/GaussIOD.test.ts +0 -395
- package/src/orbit-determination/__tests__/GibbsIOD.test.ts +0 -423
- package/src/orbit-determination/__tests__/GoodingIOD.test.ts +0 -356
- package/src/orbit-determination/__tests__/HerrickGibbsIOD.test.ts +0 -501
- package/src/orbit-determination/__tests__/LambertIOD.test.ts +0 -643
- package/src/orbit-determination/__tests__/LevenbergMarquardtOD.test.ts +0 -1039
- package/src/orbit-determination/index.ts +0 -10
- package/src/parsers/CdmExporter.ts +0 -298
- package/src/parsers/CdmParser.ts +0 -474
- package/src/parsers/CdmTypes.ts +0 -259
- package/src/parsers/HorizonsParser.ts +0 -432
- package/src/parsers/OemParser.ts +0 -277
- package/src/parsers/OemTypes.ts +0 -111
- package/src/parsers/__tests__/CdmExporter.test.ts +0 -305
- package/src/parsers/__tests__/CdmParser.test.ts +0 -305
- package/src/parsers/__tests__/HorizonsParser.test.ts +0 -126
- package/src/parsers/__tests__/OemParser.test.ts +0 -398
- package/src/parsers/index.ts +0 -49
- package/src/propagator/DormandPrince54Propagator.ts +0 -73
- package/src/propagator/KeplerPropagator.ts +0 -101
- package/src/propagator/Propagator.ts +0 -253
- package/src/propagator/README.md +0 -241
- package/src/propagator/RkCheckpoint.ts +0 -25
- package/src/propagator/RkResult.ts +0 -26
- package/src/propagator/RungeKutta4Propagator.ts +0 -179
- package/src/propagator/RungeKutta89Propagator.ts +0 -132
- package/src/propagator/RungeKuttaAdaptive.ts +0 -282
- package/src/propagator/Sgp4Propagator.ts +0 -111
- package/src/propagator/__tests__/KeplerPropagator.test.ts +0 -250
- package/src/propagator/__tests__/Propagator.test.ts +0 -180
- package/src/propagator/__tests__/RungeKutta4Propagator.test.ts +0 -289
- package/src/propagator/__tests__/RungeKuttaAdaptive.test.ts +0 -244
- package/src/propagator/__tests__/Sgp4Propagator.test.ts +0 -144
- package/src/propagator/index.ts +0 -10
- package/src/scheduling/ContactScheduler.ts +0 -760
- package/src/scheduling/ScheduledContact.ts +0 -249
- package/src/scheduling/__tests__/ContactScheduler.test.ts +0 -389
- package/src/scheduling/__tests__/ScheduledContact.test.ts +0 -293
- package/src/scheduling/index.ts +0 -10
- package/src/sensor/FieldOfView.ts +0 -666
- package/src/sensor/LaserRangingSensor.ts +0 -210
- package/src/sensor/MechanicalRadar.ts +0 -156
- package/src/sensor/OpticalSensor.ts +0 -198
- package/src/sensor/PassiveRFSensor.ts +0 -205
- package/src/sensor/PhasedArrayRadar.ts +0 -352
- package/src/sensor/RadarSensor.ts +0 -150
- package/src/sensor/Sensor.ts +0 -487
- package/src/sensor/__tests__/Sensor.test.ts +0 -135
- package/src/sensor/index.ts +0 -81
- package/src/sensor/v2-docs/field-of-view-design-document.md +0 -466
- package/src/sgp4/index.ts +0 -27
- package/src/sgp4/sgp4-error.ts +0 -53
- package/src/sgp4/sgp4.LICENSE.md +0 -28
- package/src/sgp4/sgp4.ts +0 -3983
- package/src/smoothing/ExponentialSmoothing.ts +0 -83
- package/src/smoothing/__tests__/ExponentialSmoothing.test.ts +0 -108
- package/src/time/Epoch.ts +0 -165
- package/src/time/EpochGPS.ts +0 -141
- package/src/time/EpochTAI.ts +0 -63
- package/src/time/EpochTDB.ts +0 -73
- package/src/time/EpochTT.ts +0 -76
- package/src/time/EpochUTC.ts +0 -253
- package/src/time/EpochWindow.ts +0 -33
- package/src/time/README.md +0 -212
- package/src/time/TimeStamped.ts +0 -80
- package/src/time/__tests__/Epoch.test.ts +0 -250
- package/src/time/__tests__/EpochGPS.test.ts +0 -78
- package/src/time/__tests__/EpochUTC.test.ts +0 -149
- package/src/time/__tests__/EpochWindow.test.ts +0 -30
- package/src/time/__tests__/TimeStamped.test.ts +0 -62
- package/src/time/__tests__/__snapshots__/Epoch.test.ts.snap +0 -46
- package/src/time/__tests__/__snapshots__/EpochGPS.test.ts.snap +0 -13
- package/src/time/__tests__/__snapshots__/EpochUTC.test.ts.snap +0 -112
- package/src/time/__tests__/__snapshots__/TimeStamped.test.ts.snap +0 -10
- package/src/time/index.ts +0 -9
- package/src/transforms/TransformCache.ts +0 -46
- package/src/transforms/__tests__/__snapshots__/transforms.test.ts.snap +0 -16
- package/src/transforms/__tests__/__snapshots__/transforms2.test.ts.snap +0 -49
- package/src/transforms/__tests__/conversions.test.ts +0 -80
- package/src/transforms/__tests__/transforms.test.ts +0 -128
- package/src/transforms/__tests__/transforms2.test.ts +0 -275
- package/src/transforms/__tests__/transformsData.ts +0 -289
- package/src/transforms/conversions.ts +0 -99
- package/src/transforms/index.ts +0 -3
- package/src/transforms/transforms.ts +0 -614
- package/src/types/types.ts +0 -829
- package/src/utils/__tests__/__snapshots__/functions.test.ts.snap +0 -89
- package/src/utils/__tests__/__snapshots__/utils.test.ts.snap +0 -5
- package/src/utils/__tests__/create-covariance-from-tle.test.ts +0 -90
- package/src/utils/__tests__/functions.test.ts +0 -450
- package/src/utils/__tests__/jacobian.test.ts +0 -37
- package/src/utils/__tests__/linearDistance.test.ts +0 -44
- package/src/utils/__tests__/utils.test.ts +0 -164
- package/src/utils/constants.ts +0 -113
- package/src/utils/create-covariance-from-tle.ts +0 -75
- package/src/utils/functions.ts +0 -590
- package/src/utils/index.ts +0 -6
- package/src/utils/jacobian.ts +0 -42
- package/src/utils/linearDistance.ts +0 -11
- /package/{LICENSE.md → LICENSE.MD} +0 -0
|
@@ -1,349 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @author Theodore Kruczek
|
|
3
|
-
* @license AGPL-3.0-or-later
|
|
4
|
-
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
|
-
*
|
|
6
|
-
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
7
|
-
* terms of the GNU Affero General Public License as published by the Free Software
|
|
8
|
-
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
9
|
-
*
|
|
10
|
-
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
11
|
-
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
12
|
-
* See the GNU Affero General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
|
-
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import { J2000 } from '../coordinate/J2000';
|
|
19
|
-
import { LagrangeInterpolator } from '../interpolator/LagrangeInterpolator';
|
|
20
|
-
import { StateInterpolator } from '../interpolator/StateInterpolator';
|
|
21
|
-
import { CubicSplineInterpolator } from '../interpolator/CubicSplineInterpolator';
|
|
22
|
-
import { Vector3D } from '../operations/Vector3D';
|
|
23
|
-
import { EpochUTC } from '../time/EpochUTC';
|
|
24
|
-
import { Kilometers, KilometersPerSecond, SpaceObjectType } from '../types/types';
|
|
25
|
-
import { CelestialBody, CelestialBodyParams } from './CelestialBody';
|
|
26
|
-
import { CelestialBodyType } from './CelestialBodyType';
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Ephemeris data point for a celestial body.
|
|
30
|
-
*/
|
|
31
|
-
export interface EphemerisDataPoint {
|
|
32
|
-
/** Epoch for this state */
|
|
33
|
-
epoch: EpochUTC;
|
|
34
|
-
/** Position in J2000 heliocentric or geocentric coordinates (km) */
|
|
35
|
-
position: Vector3D<Kilometers>;
|
|
36
|
-
/** Velocity (km/s), optional */
|
|
37
|
-
velocity?: Vector3D<KilometersPerSecond>;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Interpolation method for ephemeris data.
|
|
42
|
-
*/
|
|
43
|
-
export type EphemerisInterpolationType = 'lagrange' | 'spline';
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Parameters for constructing an EphemerisBody.
|
|
47
|
-
*/
|
|
48
|
-
export interface EphemerisBodyParams extends Omit<CelestialBodyParams, 'astronomyBody'> {
|
|
49
|
-
/** Array of ephemeris data points */
|
|
50
|
-
ephemeris: EphemerisDataPoint[];
|
|
51
|
-
/** Whether positions are heliocentric (true) or geocentric (false, default) */
|
|
52
|
-
isHeliocentric?: boolean;
|
|
53
|
-
/** Interpolation method (default: lagrange) */
|
|
54
|
-
interpolationType?: EphemerisInterpolationType;
|
|
55
|
-
/** Interpolation order for Lagrange (default: 8) */
|
|
56
|
-
interpolationOrder?: number;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* A celestial body with position determined by interpolation of ephemeris data.
|
|
61
|
-
*
|
|
62
|
-
* EphemerisBody is used for objects that don't have analytical position models
|
|
63
|
-
* in astronomy-engine, such as:
|
|
64
|
-
* - Dwarf planets (Ceres, Makemake, Haumea, Eris)
|
|
65
|
-
* - Asteroids
|
|
66
|
-
* - Comets
|
|
67
|
-
* - Any object with NASA Horizons ephemeris data
|
|
68
|
-
*
|
|
69
|
-
* @example
|
|
70
|
-
* ```typescript
|
|
71
|
-
* // Create from Horizons data
|
|
72
|
-
* const ephemerisData = HorizonsParser.parse(horizonsOutput);
|
|
73
|
-
* const ceres = new EphemerisBody({
|
|
74
|
-
* id: 'ceres',
|
|
75
|
-
* name: 'Ceres',
|
|
76
|
-
* bodyType: CelestialBodyType.DWARF_PLANET,
|
|
77
|
-
* ephemeris: ephemerisData,
|
|
78
|
-
* isHeliocentric: true,
|
|
79
|
-
* });
|
|
80
|
-
*
|
|
81
|
-
* // Get position at specific time
|
|
82
|
-
* const pos = ceres.heliocentric(new Date('2025-06-15T12:00:00Z'));
|
|
83
|
-
* ```
|
|
84
|
-
*/
|
|
85
|
-
export class EphemerisBody extends CelestialBody {
|
|
86
|
-
private readonly interpolator_: StateInterpolator;
|
|
87
|
-
private readonly ephemeris_: EphemerisDataPoint[];
|
|
88
|
-
private readonly isHeliocentric_: boolean;
|
|
89
|
-
private readonly validityStart_: Date;
|
|
90
|
-
private readonly validityEnd_: Date;
|
|
91
|
-
|
|
92
|
-
constructor(params: EphemerisBodyParams) {
|
|
93
|
-
if (!params.ephemeris || params.ephemeris.length === 0) {
|
|
94
|
-
throw new Error('Ephemeris array cannot be empty');
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// Determine SpaceObjectType from CelestialBodyType
|
|
98
|
-
let spaceObjectType = SpaceObjectType.UNKNOWN;
|
|
99
|
-
|
|
100
|
-
switch (params.bodyType) {
|
|
101
|
-
case CelestialBodyType.DWARF_PLANET:
|
|
102
|
-
spaceObjectType = SpaceObjectType.DWARF_PLANET;
|
|
103
|
-
break;
|
|
104
|
-
case CelestialBodyType.ASTEROID:
|
|
105
|
-
spaceObjectType = SpaceObjectType.UNKNOWN; // No specific type for asteroids yet
|
|
106
|
-
break;
|
|
107
|
-
case CelestialBodyType.COMET:
|
|
108
|
-
spaceObjectType = SpaceObjectType.UNKNOWN; // No specific type for comets yet
|
|
109
|
-
break;
|
|
110
|
-
default:
|
|
111
|
-
spaceObjectType = SpaceObjectType.UNKNOWN;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
super({
|
|
115
|
-
...params,
|
|
116
|
-
type: spaceObjectType,
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
this.ephemeris_ = params.ephemeris;
|
|
120
|
-
this.isHeliocentric_ = params.isHeliocentric ?? false;
|
|
121
|
-
|
|
122
|
-
// Sort ephemeris by time
|
|
123
|
-
this.ephemeris_.sort((a, b) => a.epoch.toDateTime().getTime() - b.epoch.toDateTime().getTime());
|
|
124
|
-
|
|
125
|
-
// Set validity window
|
|
126
|
-
this.validityStart_ = this.ephemeris_[0].epoch.toDateTime();
|
|
127
|
-
this.validityEnd_ = this.ephemeris_[this.ephemeris_.length - 1].epoch.toDateTime();
|
|
128
|
-
|
|
129
|
-
// Create interpolator
|
|
130
|
-
this.interpolator_ = this.createInterpolator_(
|
|
131
|
-
params.interpolationType ?? 'lagrange',
|
|
132
|
-
params.interpolationOrder ?? 8,
|
|
133
|
-
);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
// ==================== Validity Methods ====================
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Checks if a given time is within the ephemeris validity window.
|
|
140
|
-
* @param date - The date to check
|
|
141
|
-
* @returns True if the time is within the validity window
|
|
142
|
-
*/
|
|
143
|
-
isValidAt(date: Date): boolean {
|
|
144
|
-
return date >= this.validityStart_ && date <= this.validityEnd_;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Gets the validity window for this ephemeris.
|
|
149
|
-
* @returns Start and end dates of the validity window
|
|
150
|
-
*/
|
|
151
|
-
getValidityWindow(): { start: Date; end: Date } {
|
|
152
|
-
return {
|
|
153
|
-
start: this.validityStart_,
|
|
154
|
-
end: this.validityEnd_,
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Validates that a time is within the ephemeris validity window.
|
|
160
|
-
* @param date - The date to validate
|
|
161
|
-
* @throws Error if the time is outside the validity window
|
|
162
|
-
*/
|
|
163
|
-
private validateTime_(date: Date): void {
|
|
164
|
-
if (!this.isValidAt(date)) {
|
|
165
|
-
throw new Error(
|
|
166
|
-
`Time ${date.toISOString()} outside ephemeris validity ` +
|
|
167
|
-
`[${this.validityStart_.toISOString()}, ${this.validityEnd_.toISOString()}]`,
|
|
168
|
-
);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
// ==================== Position Methods ====================
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Gets the body's position in Earth-Centered Inertial (J2000) coordinates.
|
|
176
|
-
* @param date - The date/time for the position calculation
|
|
177
|
-
* @returns Position vector in kilometers
|
|
178
|
-
*/
|
|
179
|
-
eci(date: Date = new Date()): Vector3D<Kilometers> {
|
|
180
|
-
this.validateTime_(date);
|
|
181
|
-
|
|
182
|
-
if (this.isHeliocentric_) {
|
|
183
|
-
// Convert heliocentric to geocentric by subtracting Earth's position
|
|
184
|
-
// This is a simplified conversion - for high precision, use proper transforms
|
|
185
|
-
throw new Error('Heliocentric to geocentric conversion not yet implemented');
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
const epoch = EpochUTC.fromDateTime(date);
|
|
189
|
-
const state = this.interpolator_.interpolate(epoch);
|
|
190
|
-
|
|
191
|
-
if (!state) {
|
|
192
|
-
throw new Error(`Failed to interpolate position at ${date.toISOString()}`);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
return new Vector3D(
|
|
196
|
-
state.position.x as Kilometers,
|
|
197
|
-
state.position.y as Kilometers,
|
|
198
|
-
state.position.z as Kilometers,
|
|
199
|
-
);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Gets the body's position in heliocentric coordinates.
|
|
204
|
-
* @param date - The date/time for the position calculation
|
|
205
|
-
* @returns Position vector in kilometers (Sun-centered)
|
|
206
|
-
*/
|
|
207
|
-
heliocentric(date: Date = new Date()): Vector3D<Kilometers> {
|
|
208
|
-
this.validateTime_(date);
|
|
209
|
-
|
|
210
|
-
if (!this.isHeliocentric_) {
|
|
211
|
-
// Convert geocentric to heliocentric by adding Sun's geocentric position
|
|
212
|
-
// This is a simplified conversion
|
|
213
|
-
throw new Error('Geocentric to heliocentric conversion not yet implemented');
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
const epoch = EpochUTC.fromDateTime(date);
|
|
217
|
-
const state = this.interpolator_.interpolate(epoch);
|
|
218
|
-
|
|
219
|
-
if (!state) {
|
|
220
|
-
throw new Error(`Failed to interpolate position at ${date.toISOString()}`);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
return new Vector3D(
|
|
224
|
-
state.position.x as Kilometers,
|
|
225
|
-
state.position.y as Kilometers,
|
|
226
|
-
state.position.z as Kilometers,
|
|
227
|
-
);
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Gets the body's velocity if available.
|
|
232
|
-
* @param date - The date/time for the velocity calculation
|
|
233
|
-
* @returns Velocity vector in km/s, or null if not available
|
|
234
|
-
*/
|
|
235
|
-
velocity(date: Date = new Date()): Vector3D<KilometersPerSecond> | null {
|
|
236
|
-
this.validateTime_(date);
|
|
237
|
-
|
|
238
|
-
// Check if velocity data is available
|
|
239
|
-
if (!this.ephemeris_[0].velocity) {
|
|
240
|
-
return null;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
const epoch = EpochUTC.fromDateTime(date);
|
|
244
|
-
const state = this.interpolator_.interpolate(epoch);
|
|
245
|
-
|
|
246
|
-
if (!state) {
|
|
247
|
-
return null;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
return new Vector3D(
|
|
251
|
-
state.velocity.x as KilometersPerSecond,
|
|
252
|
-
state.velocity.y as KilometersPerSecond,
|
|
253
|
-
state.velocity.z as KilometersPerSecond,
|
|
254
|
-
);
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
// ==================== Factory Methods ====================
|
|
258
|
-
|
|
259
|
-
/**
|
|
260
|
-
* Creates an EphemerisBody from an array of position/velocity data.
|
|
261
|
-
* @param id - Unique identifier
|
|
262
|
-
* @param name - Display name
|
|
263
|
-
* @param bodyType - Type of celestial body
|
|
264
|
-
* @param data - Array of { date, position, velocity? } objects
|
|
265
|
-
* @param options - Additional options
|
|
266
|
-
*/
|
|
267
|
-
static fromData(
|
|
268
|
-
id: number,
|
|
269
|
-
name: string,
|
|
270
|
-
bodyType: CelestialBodyType,
|
|
271
|
-
data: Array<{
|
|
272
|
-
date: Date;
|
|
273
|
-
position: { x: number; y: number; z: number };
|
|
274
|
-
velocity?: { x: number; y: number; z: number };
|
|
275
|
-
}>,
|
|
276
|
-
options?: {
|
|
277
|
-
isHeliocentric?: boolean;
|
|
278
|
-
mu?: number;
|
|
279
|
-
radius?: Kilometers;
|
|
280
|
-
interpolationType?: EphemerisInterpolationType;
|
|
281
|
-
interpolationOrder?: number;
|
|
282
|
-
},
|
|
283
|
-
): EphemerisBody {
|
|
284
|
-
const ephemeris: EphemerisDataPoint[] = data.map((d) => ({
|
|
285
|
-
epoch: EpochUTC.fromDateTime(d.date),
|
|
286
|
-
position: new Vector3D(d.position.x as Kilometers, d.position.y as Kilometers, d.position.z as Kilometers),
|
|
287
|
-
velocity: d.velocity
|
|
288
|
-
? new Vector3D(
|
|
289
|
-
d.velocity.x as KilometersPerSecond,
|
|
290
|
-
d.velocity.y as KilometersPerSecond,
|
|
291
|
-
d.velocity.z as KilometersPerSecond,
|
|
292
|
-
)
|
|
293
|
-
: undefined,
|
|
294
|
-
}));
|
|
295
|
-
|
|
296
|
-
return new EphemerisBody({
|
|
297
|
-
id,
|
|
298
|
-
name,
|
|
299
|
-
bodyType,
|
|
300
|
-
ephemeris,
|
|
301
|
-
isHeliocentric: options?.isHeliocentric,
|
|
302
|
-
mu: options?.mu,
|
|
303
|
-
radius: options?.radius,
|
|
304
|
-
interpolationType: options?.interpolationType,
|
|
305
|
-
interpolationOrder: options?.interpolationOrder,
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
// ==================== Private Methods ====================
|
|
310
|
-
|
|
311
|
-
/**
|
|
312
|
-
* Creates the appropriate interpolator for the ephemeris data.
|
|
313
|
-
*/
|
|
314
|
-
private createInterpolator_(
|
|
315
|
-
type: EphemerisInterpolationType,
|
|
316
|
-
order: number,
|
|
317
|
-
): StateInterpolator {
|
|
318
|
-
// Convert ephemeris to J2000 states for the interpolator
|
|
319
|
-
const j2000States = this.ephemeris_.map((ep) => {
|
|
320
|
-
const velocity = ep.velocity ?? new Vector3D(
|
|
321
|
-
0 as KilometersPerSecond,
|
|
322
|
-
0 as KilometersPerSecond,
|
|
323
|
-
0 as KilometersPerSecond,
|
|
324
|
-
);
|
|
325
|
-
|
|
326
|
-
return new J2000(ep.epoch, ep.position, velocity);
|
|
327
|
-
});
|
|
328
|
-
|
|
329
|
-
switch (type) {
|
|
330
|
-
case 'spline':
|
|
331
|
-
return CubicSplineInterpolator.fromEphemeris(j2000States);
|
|
332
|
-
case 'lagrange':
|
|
333
|
-
default:
|
|
334
|
-
return LagrangeInterpolator.fromEphemeris(j2000States, order);
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
// ==================== Serialization ====================
|
|
339
|
-
|
|
340
|
-
protected override serializeSpecific(): Record<string, unknown> {
|
|
341
|
-
return {
|
|
342
|
-
...super.serializeSpecific(),
|
|
343
|
-
isHeliocentric: this.isHeliocentric_,
|
|
344
|
-
validityStart: this.validityStart_.toISOString(),
|
|
345
|
-
validityEnd: this.validityEnd_.toISOString(),
|
|
346
|
-
ephemerisCount: this.ephemeris_.length,
|
|
347
|
-
};
|
|
348
|
-
}
|
|
349
|
-
}
|