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,320 +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
|
-
import { ParseError } from '../errors';
|
|
18
|
-
import { Vector3D } from '../operations/Vector3D';
|
|
19
|
-
import { EpochUTC } from '../time/EpochUTC';
|
|
20
|
-
/**
|
|
21
|
-
* Converts a Julian Date to a JavaScript Date.
|
|
22
|
-
* @param jd - Julian Date
|
|
23
|
-
* @returns JavaScript Date object
|
|
24
|
-
*/
|
|
25
|
-
function julianDateToDate(jd) {
|
|
26
|
-
// Julian Date to Unix timestamp (milliseconds)
|
|
27
|
-
// JD 2440587.5 = Unix epoch (Jan 1, 1970 00:00:00 UTC)
|
|
28
|
-
const unixMs = (jd - 2440587.5) * 86400000;
|
|
29
|
-
return new Date(unixMs);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Parser for NASA JPL Horizons ephemeris data.
|
|
33
|
-
*
|
|
34
|
-
* Horizons is a NASA/JPL system that provides precise ephemerides for solar
|
|
35
|
-
* system objects. This parser handles the vector table format (positions and
|
|
36
|
-
* velocities in Cartesian coordinates).
|
|
37
|
-
*
|
|
38
|
-
* @see https://ssd.jpl.nasa.gov/horizons/
|
|
39
|
-
*
|
|
40
|
-
* @example
|
|
41
|
-
* ```typescript
|
|
42
|
-
* // Parse vector table output from Horizons
|
|
43
|
-
* const result = HorizonsParser.parseVectors(horizonsOutput);
|
|
44
|
-
*
|
|
45
|
-
* // Create an EphemerisBody from the data
|
|
46
|
-
* const ceres = EphemerisBody.fromData(
|
|
47
|
-
* 'ceres',
|
|
48
|
-
* result.targetName,
|
|
49
|
-
* CelestialBodyType.DWARF_PLANET,
|
|
50
|
-
* result.ephemeris.map(ep => ({
|
|
51
|
-
* date: ep.epoch.toDateTime(),
|
|
52
|
-
* position: { x: ep.position.x, y: ep.position.y, z: ep.position.z },
|
|
53
|
-
* velocity: ep.velocity ? { x: ep.velocity.x, y: ep.velocity.y, z: ep.velocity.z } : undefined,
|
|
54
|
-
* })),
|
|
55
|
-
* { isHeliocentric: result.isHeliocentric }
|
|
56
|
-
* );
|
|
57
|
-
* ```
|
|
58
|
-
*/
|
|
59
|
-
export class HorizonsParser {
|
|
60
|
-
constructor() {
|
|
61
|
-
// Static class - prevent instantiation
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Parses NASA Horizons vector table format.
|
|
65
|
-
*
|
|
66
|
-
* Expects output from Horizons with settings:
|
|
67
|
-
* - VECTORS (type 2 or 3)
|
|
68
|
-
* - Output in km and km/s
|
|
69
|
-
*
|
|
70
|
-
* @param data - Raw Horizons output text
|
|
71
|
-
* @returns Parsed ephemeris data
|
|
72
|
-
*/
|
|
73
|
-
static parseVectors(data) {
|
|
74
|
-
if (!data || data.trim().length === 0) {
|
|
75
|
-
throw new ParseError('Horizons data is empty', 'HORIZONS');
|
|
76
|
-
}
|
|
77
|
-
const lines = data.split('\n');
|
|
78
|
-
// Validate required markers exist
|
|
79
|
-
const hasSOE = lines.some((l) => l.trim() === '$$SOE');
|
|
80
|
-
const hasEOE = lines.some((l) => l.trim() === '$$EOE');
|
|
81
|
-
if (!hasSOE || !hasEOE) {
|
|
82
|
-
throw new ParseError('Missing $$SOE or $$EOE markers in Horizons data', 'HORIZONS');
|
|
83
|
-
}
|
|
84
|
-
const metadata = {};
|
|
85
|
-
const ephemeris = [];
|
|
86
|
-
let inData = false;
|
|
87
|
-
let targetName = '';
|
|
88
|
-
let centerBody = '';
|
|
89
|
-
let referenceFrame = '';
|
|
90
|
-
for (let i = 0; i < lines.length; i++) {
|
|
91
|
-
const line = lines[i].trim();
|
|
92
|
-
// Parse metadata
|
|
93
|
-
if (line.startsWith('Target body name:')) {
|
|
94
|
-
targetName = this.extractValue_(line, 'Target body name:');
|
|
95
|
-
metadata.targetName = targetName;
|
|
96
|
-
}
|
|
97
|
-
else if (line.startsWith('Center body name:')) {
|
|
98
|
-
centerBody = this.extractValue_(line, 'Center body name:');
|
|
99
|
-
metadata.centerBody = centerBody;
|
|
100
|
-
}
|
|
101
|
-
else if (line.startsWith('Center-site name:')) {
|
|
102
|
-
centerBody = this.extractValue_(line, 'Center-site name:');
|
|
103
|
-
metadata.centerBody = centerBody;
|
|
104
|
-
}
|
|
105
|
-
else if (line.startsWith('Output type:')) {
|
|
106
|
-
metadata.outputType = this.extractValue_(line, 'Output type:');
|
|
107
|
-
}
|
|
108
|
-
else if (line.startsWith('Reference frame:')) {
|
|
109
|
-
referenceFrame = this.extractValue_(line, 'Reference frame:');
|
|
110
|
-
metadata.referenceFrame = referenceFrame;
|
|
111
|
-
}
|
|
112
|
-
else if (line.startsWith('Output units:')) {
|
|
113
|
-
metadata.outputUnits = this.extractValue_(line, 'Output units:');
|
|
114
|
-
}
|
|
115
|
-
// Check for data section start/end
|
|
116
|
-
if (line === '$$SOE') {
|
|
117
|
-
inData = true;
|
|
118
|
-
continue;
|
|
119
|
-
}
|
|
120
|
-
if (line === '$$EOE') {
|
|
121
|
-
inData = false;
|
|
122
|
-
continue;
|
|
123
|
-
}
|
|
124
|
-
// Parse data lines
|
|
125
|
-
if (inData && line.length > 0) {
|
|
126
|
-
const parsed = this.parseVectorLine_(line, lines, i);
|
|
127
|
-
if (parsed) {
|
|
128
|
-
ephemeris.push(parsed.data);
|
|
129
|
-
i = parsed.nextIndex - 1; // -1 because loop will increment
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
// Validate we found some data
|
|
134
|
-
if (ephemeris.length === 0) {
|
|
135
|
-
throw new ParseError('No valid ephemeris data found between $$SOE and $$EOE markers', 'HORIZONS');
|
|
136
|
-
}
|
|
137
|
-
// Determine if heliocentric
|
|
138
|
-
const isHeliocentric = centerBody.toLowerCase().includes('sun') ||
|
|
139
|
-
centerBody.toLowerCase().includes('solar') ||
|
|
140
|
-
centerBody === 'Sun';
|
|
141
|
-
return {
|
|
142
|
-
targetName,
|
|
143
|
-
centerBody,
|
|
144
|
-
referenceFrame: referenceFrame || 'ICRF',
|
|
145
|
-
isHeliocentric,
|
|
146
|
-
ephemeris,
|
|
147
|
-
metadata,
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Parses NASA Horizons observer table format.
|
|
152
|
-
*
|
|
153
|
-
* @param data - Raw Horizons output text
|
|
154
|
-
* @returns Parsed observer data
|
|
155
|
-
*/
|
|
156
|
-
static parseObserver(data) {
|
|
157
|
-
const lines = data.split('\n');
|
|
158
|
-
const observations = [];
|
|
159
|
-
let inData = false;
|
|
160
|
-
let targetName = '';
|
|
161
|
-
let observerLocation = '';
|
|
162
|
-
for (let i = 0; i < lines.length; i++) {
|
|
163
|
-
const line = lines[i].trim();
|
|
164
|
-
// Parse metadata
|
|
165
|
-
if (line.startsWith('Target body name:')) {
|
|
166
|
-
targetName = this.extractValue_(line, 'Target body name:');
|
|
167
|
-
}
|
|
168
|
-
else if (line.startsWith('Center-site name:')) {
|
|
169
|
-
observerLocation = this.extractValue_(line, 'Center-site name:');
|
|
170
|
-
}
|
|
171
|
-
// Check for data section
|
|
172
|
-
if (line === '$$SOE') {
|
|
173
|
-
inData = true;
|
|
174
|
-
continue;
|
|
175
|
-
}
|
|
176
|
-
if (line === '$$EOE') {
|
|
177
|
-
inData = false;
|
|
178
|
-
continue;
|
|
179
|
-
}
|
|
180
|
-
// Parse observation lines
|
|
181
|
-
if (inData && line.length > 0) {
|
|
182
|
-
const parsed = this.parseObserverLine_(line);
|
|
183
|
-
if (parsed) {
|
|
184
|
-
observations.push(parsed);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
return {
|
|
189
|
-
targetName,
|
|
190
|
-
observerLocation,
|
|
191
|
-
observations,
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
// ==================== Private Helper Methods ====================
|
|
195
|
-
/**
|
|
196
|
-
* Extracts a value from a key: value line.
|
|
197
|
-
*/
|
|
198
|
-
static extractValue_(line, key) {
|
|
199
|
-
const value = line.substring(key.length).trim();
|
|
200
|
-
// Remove trailing metadata like (1 Ceres)
|
|
201
|
-
return value.split(/\s{2,}/)[0].trim();
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Parses a vector data line from Horizons output.
|
|
205
|
-
* Horizons vector output can span multiple lines.
|
|
206
|
-
*/
|
|
207
|
-
static parseVectorLine_(line, allLines, currentIndex) {
|
|
208
|
-
// Horizons vector format varies, but typically:
|
|
209
|
-
// Line 1: JD, Calendar date
|
|
210
|
-
// Line 2: X, Y, Z (position)
|
|
211
|
-
// Line 3: VX, VY, VZ (velocity) - optional
|
|
212
|
-
// Try to parse the Julian Date / Calendar date line
|
|
213
|
-
const dateMatch = line.match(/^(\d+\.\d+)\s*=\s*A\.D\.\s*(\d{4})-(\w{3})-(\d{2})\s+(\d{2}):(\d{2}):(\d{2}\.?\d*)/);
|
|
214
|
-
if (!dateMatch) {
|
|
215
|
-
// Try alternate format with just numbers
|
|
216
|
-
const parts = line.split(/\s+/);
|
|
217
|
-
if (parts.length >= 7) {
|
|
218
|
-
// Assume: JD X Y Z VX VY VZ format
|
|
219
|
-
try {
|
|
220
|
-
const jd = parseFloat(parts[0]);
|
|
221
|
-
if (isNaN(jd)) {
|
|
222
|
-
return null;
|
|
223
|
-
}
|
|
224
|
-
const epoch = EpochUTC.fromDateTime(julianDateToDate(jd));
|
|
225
|
-
const x = parseFloat(parts[1]);
|
|
226
|
-
const y = parseFloat(parts[2]);
|
|
227
|
-
const z = parseFloat(parts[3]);
|
|
228
|
-
let velocity;
|
|
229
|
-
if (parts.length >= 7 && !isNaN(parseFloat(parts[4]))) {
|
|
230
|
-
velocity = new Vector3D(parseFloat(parts[4]), parseFloat(parts[5]), parseFloat(parts[6]));
|
|
231
|
-
}
|
|
232
|
-
return {
|
|
233
|
-
data: {
|
|
234
|
-
epoch,
|
|
235
|
-
position: new Vector3D(x, y, z),
|
|
236
|
-
velocity,
|
|
237
|
-
},
|
|
238
|
-
nextIndex: currentIndex + 1,
|
|
239
|
-
};
|
|
240
|
-
}
|
|
241
|
-
catch {
|
|
242
|
-
return null;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
return null;
|
|
246
|
-
}
|
|
247
|
-
// Parse the date
|
|
248
|
-
const year = parseInt(dateMatch[2], 10);
|
|
249
|
-
const monthStr = dateMatch[3];
|
|
250
|
-
const day = parseInt(dateMatch[4], 10);
|
|
251
|
-
const hour = parseInt(dateMatch[5], 10);
|
|
252
|
-
const minute = parseInt(dateMatch[6], 10);
|
|
253
|
-
const second = parseFloat(dateMatch[7]);
|
|
254
|
-
const monthMap = {
|
|
255
|
-
Jan: 0, Feb: 1, Mar: 2, Apr: 3, May: 4, Jun: 5,
|
|
256
|
-
Jul: 6, Aug: 7, Sep: 8, Oct: 9, Nov: 10, Dec: 11,
|
|
257
|
-
};
|
|
258
|
-
const month = monthMap[monthStr] ?? 0;
|
|
259
|
-
const date = new Date(Date.UTC(year, month, day, hour, minute, Math.floor(second), (second % 1) * 1000));
|
|
260
|
-
const epoch = EpochUTC.fromDateTime(date);
|
|
261
|
-
// Parse position line (next line)
|
|
262
|
-
let nextIndex = currentIndex + 1;
|
|
263
|
-
if (nextIndex >= allLines.length) {
|
|
264
|
-
return null;
|
|
265
|
-
}
|
|
266
|
-
const posLine = allLines[nextIndex].trim();
|
|
267
|
-
const posMatch = posLine.match(/X\s*=\s*([-\d.E+]+)\s+Y\s*=\s*([-\d.E+]+)\s+Z\s*=\s*([-\d.E+]+)/i);
|
|
268
|
-
if (!posMatch) {
|
|
269
|
-
return null;
|
|
270
|
-
}
|
|
271
|
-
const x = parseFloat(posMatch[1]);
|
|
272
|
-
const y = parseFloat(posMatch[2]);
|
|
273
|
-
const z = parseFloat(posMatch[3]);
|
|
274
|
-
const position = new Vector3D(x, y, z);
|
|
275
|
-
nextIndex++;
|
|
276
|
-
// Try to parse velocity line (optional)
|
|
277
|
-
let velocity;
|
|
278
|
-
if (nextIndex < allLines.length) {
|
|
279
|
-
const velLine = allLines[nextIndex].trim();
|
|
280
|
-
const velMatch = velLine.match(/VX\s*=\s*([-\d.E+]+)\s+VY\s*=\s*([-\d.E+]+)\s+VZ\s*=\s*([-\d.E+]+)/i);
|
|
281
|
-
if (velMatch) {
|
|
282
|
-
velocity = new Vector3D(parseFloat(velMatch[1]), parseFloat(velMatch[2]), parseFloat(velMatch[3]));
|
|
283
|
-
nextIndex++;
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
return {
|
|
287
|
-
data: { epoch, position, velocity },
|
|
288
|
-
nextIndex,
|
|
289
|
-
};
|
|
290
|
-
}
|
|
291
|
-
/**
|
|
292
|
-
* Parses an observer table data line.
|
|
293
|
-
*/
|
|
294
|
-
static parseObserverLine_(line) {
|
|
295
|
-
// Observer format typically includes:
|
|
296
|
-
// Date, RA (HMS), Dec (DMS), Delta (AU), Delta-dot, S-O-T, etc.
|
|
297
|
-
// This is a simplified parser
|
|
298
|
-
const parts = line.split(/\s+/);
|
|
299
|
-
if (parts.length < 5) {
|
|
300
|
-
return null;
|
|
301
|
-
}
|
|
302
|
-
try {
|
|
303
|
-
// Try to parse as JD RA Dec Delta LT format
|
|
304
|
-
const jd = parseFloat(parts[0]);
|
|
305
|
-
if (isNaN(jd)) {
|
|
306
|
-
return null;
|
|
307
|
-
}
|
|
308
|
-
const epoch = EpochUTC.fromDateTime(julianDateToDate(jd));
|
|
309
|
-
const ra = parseFloat(parts[1]); // Assuming already in degrees
|
|
310
|
-
const dec = parseFloat(parts[2]);
|
|
311
|
-
const distance = parseFloat(parts[3]);
|
|
312
|
-
const lightTime = parseFloat(parts[4]) * 60; // Convert minutes to seconds if needed
|
|
313
|
-
return { epoch, ra, dec, distance, lightTime };
|
|
314
|
-
}
|
|
315
|
-
catch {
|
|
316
|
-
return null;
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
//# sourceMappingURL=HorizonsParser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HorizonsParser.js","sourceRoot":"","sources":["../../src/parsers/HorizonsParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +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
|
-
import { InterpolatorType } from '../objects/InterpolatorType';
|
|
18
|
-
import type { OemMetadata, ParsedOem } from './OemTypes';
|
|
19
|
-
/**
|
|
20
|
-
* Parser for CCSDS Orbit Ephemeris Message (OEM) files.
|
|
21
|
-
* Separates parsing concern from EphemerisSatellite object management.
|
|
22
|
-
*
|
|
23
|
-
* @see https://public.ccsds.org/Pubs/502x0b3e1.pdf CCSDS OEM Standard
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* const oemContent = fs.readFileSync('orbit.oem', 'utf-8');
|
|
28
|
-
* const parsed = OemParser.parse(oemContent);
|
|
29
|
-
* const satellite = EphemerisSatellite.fromParsedOem(parsed);
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
export declare class OemParser {
|
|
33
|
-
/**
|
|
34
|
-
* Parse OEM text content into structured data.
|
|
35
|
-
* @param content - The raw OEM file content as a string
|
|
36
|
-
* @returns Parsed OEM structure with header and data blocks
|
|
37
|
-
* @throws Error if the file cannot be parsed
|
|
38
|
-
*/
|
|
39
|
-
static parse(content: string): ParsedOem;
|
|
40
|
-
/**
|
|
41
|
-
* Get recommended interpolator type from OEM metadata.
|
|
42
|
-
* @param metadata - The OEM metadata block
|
|
43
|
-
* @returns The recommended InterpolatorType based on INTERPOLATION field
|
|
44
|
-
*/
|
|
45
|
-
static getRecommendedInterpolator(metadata: OemMetadata): InterpolatorType;
|
|
46
|
-
/**
|
|
47
|
-
* Get interpolation order from OEM metadata.
|
|
48
|
-
* @param metadata - The OEM metadata block
|
|
49
|
-
* @returns The interpolation order (degree), defaults to 10
|
|
50
|
-
*/
|
|
51
|
-
static getInterpolationOrder(metadata: OemMetadata): number;
|
|
52
|
-
private static parseHeader_;
|
|
53
|
-
private static parseDataBlocks_;
|
|
54
|
-
private static parseStateVector_;
|
|
55
|
-
private static parseCovarianceLine_;
|
|
56
|
-
}
|
|
@@ -1,235 +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
|
-
import { J2000 } from '../coordinate/J2000';
|
|
18
|
-
import { ParseError } from '../errors';
|
|
19
|
-
import { InterpolatorType } from '../objects/InterpolatorType';
|
|
20
|
-
import { EpochUTC } from '../time/EpochUTC';
|
|
21
|
-
import { Vector3D } from '../main';
|
|
22
|
-
/**
|
|
23
|
-
* Parser for CCSDS Orbit Ephemeris Message (OEM) files.
|
|
24
|
-
* Separates parsing concern from EphemerisSatellite object management.
|
|
25
|
-
*
|
|
26
|
-
* @see https://public.ccsds.org/Pubs/502x0b3e1.pdf CCSDS OEM Standard
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```typescript
|
|
30
|
-
* const oemContent = fs.readFileSync('orbit.oem', 'utf-8');
|
|
31
|
-
* const parsed = OemParser.parse(oemContent);
|
|
32
|
-
* const satellite = EphemerisSatellite.fromParsedOem(parsed);
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
export class OemParser {
|
|
36
|
-
/**
|
|
37
|
-
* Parse OEM text content into structured data.
|
|
38
|
-
* @param content - The raw OEM file content as a string
|
|
39
|
-
* @returns Parsed OEM structure with header and data blocks
|
|
40
|
-
* @throws Error if the file cannot be parsed
|
|
41
|
-
*/
|
|
42
|
-
static parse(content) {
|
|
43
|
-
const lines = content
|
|
44
|
-
.split(/\r?\n/)
|
|
45
|
-
.map((l) => l.trim())
|
|
46
|
-
.filter((l) => l.length > 0);
|
|
47
|
-
const header = OemParser.parseHeader_(lines);
|
|
48
|
-
const dataBlocks = OemParser.parseDataBlocks_(lines);
|
|
49
|
-
if (dataBlocks.length === 0) {
|
|
50
|
-
throw new ParseError('OEM file contains no data blocks', 'OEM');
|
|
51
|
-
}
|
|
52
|
-
return { header, dataBlocks };
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Get recommended interpolator type from OEM metadata.
|
|
56
|
-
* @param metadata - The OEM metadata block
|
|
57
|
-
* @returns The recommended InterpolatorType based on INTERPOLATION field
|
|
58
|
-
*/
|
|
59
|
-
static getRecommendedInterpolator(metadata) {
|
|
60
|
-
const interp = metadata.INTERPOLATION?.toUpperCase();
|
|
61
|
-
if (interp === 'LAGRANGE') {
|
|
62
|
-
return InterpolatorType.LAGRANGE;
|
|
63
|
-
}
|
|
64
|
-
if (interp === 'HERMITE') {
|
|
65
|
-
return InterpolatorType.CUBIC_SPLINE;
|
|
66
|
-
}
|
|
67
|
-
if (interp === 'CHEBYSHEV') {
|
|
68
|
-
return InterpolatorType.CHEBYSHEV;
|
|
69
|
-
}
|
|
70
|
-
// Default to Lagrange for unspecified or unknown
|
|
71
|
-
return InterpolatorType.LAGRANGE;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Get interpolation order from OEM metadata.
|
|
75
|
-
* @param metadata - The OEM metadata block
|
|
76
|
-
* @returns The interpolation order (degree), defaults to 10
|
|
77
|
-
*/
|
|
78
|
-
static getInterpolationOrder(metadata) {
|
|
79
|
-
return metadata.INTERPOLATION_DEGREE ?? 10;
|
|
80
|
-
}
|
|
81
|
-
static parseHeader_(lines) {
|
|
82
|
-
const header = {};
|
|
83
|
-
const comments = [];
|
|
84
|
-
for (const line of lines) {
|
|
85
|
-
// Stop at first META_START
|
|
86
|
-
if (line.startsWith('META_START')) {
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
if (line.startsWith('COMMENT')) {
|
|
90
|
-
comments.push(line.substring(7).trim());
|
|
91
|
-
}
|
|
92
|
-
else if (line.includes('=')) {
|
|
93
|
-
const eqIndex = line.indexOf('=');
|
|
94
|
-
const key = line.substring(0, eqIndex).trim();
|
|
95
|
-
const value = line.substring(eqIndex + 1).trim();
|
|
96
|
-
header[key] = value;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
if (comments.length > 0) {
|
|
100
|
-
header.COMMENT = comments;
|
|
101
|
-
}
|
|
102
|
-
return header;
|
|
103
|
-
}
|
|
104
|
-
static parseDataBlocks_(lines) {
|
|
105
|
-
const blocks = [];
|
|
106
|
-
let currentBlock = null;
|
|
107
|
-
let currentMetadata = {};
|
|
108
|
-
let metadataComments = [];
|
|
109
|
-
let inMeta = false;
|
|
110
|
-
let inData = false;
|
|
111
|
-
let inCovariance = false;
|
|
112
|
-
let covarianceData = [];
|
|
113
|
-
for (const line of lines) {
|
|
114
|
-
// Handle block delimiters
|
|
115
|
-
if (line === 'META_START') {
|
|
116
|
-
currentMetadata = {};
|
|
117
|
-
metadataComments = [];
|
|
118
|
-
inMeta = true;
|
|
119
|
-
continue;
|
|
120
|
-
}
|
|
121
|
-
if (line === 'META_STOP') {
|
|
122
|
-
if (metadataComments.length > 0) {
|
|
123
|
-
currentMetadata.COMMENT = metadataComments;
|
|
124
|
-
}
|
|
125
|
-
currentBlock = {
|
|
126
|
-
metadata: currentMetadata,
|
|
127
|
-
ephemeris: [],
|
|
128
|
-
};
|
|
129
|
-
inMeta = false;
|
|
130
|
-
continue;
|
|
131
|
-
}
|
|
132
|
-
// Handle various data block markers (OEM 1.0 and 2.0 formats)
|
|
133
|
-
if (line === 'DATA_START' || line.match(/^EPHEMERIS_DATA_BLOCK/i)) {
|
|
134
|
-
inData = true;
|
|
135
|
-
continue;
|
|
136
|
-
}
|
|
137
|
-
if (line === 'DATA_STOP' || line.match(/^EPHEMERIS_DATA_BLOCK.*STOP/i)) {
|
|
138
|
-
inData = false;
|
|
139
|
-
if (currentBlock) {
|
|
140
|
-
if (covarianceData.length > 0) {
|
|
141
|
-
currentBlock.covariance = covarianceData;
|
|
142
|
-
covarianceData = [];
|
|
143
|
-
}
|
|
144
|
-
blocks.push(currentBlock);
|
|
145
|
-
currentBlock = null;
|
|
146
|
-
}
|
|
147
|
-
continue;
|
|
148
|
-
}
|
|
149
|
-
if (line === 'COVARIANCE_START') {
|
|
150
|
-
inCovariance = true;
|
|
151
|
-
continue;
|
|
152
|
-
}
|
|
153
|
-
if (line === 'COVARIANCE_STOP') {
|
|
154
|
-
inCovariance = false;
|
|
155
|
-
continue;
|
|
156
|
-
}
|
|
157
|
-
// Parse metadata key-value pairs
|
|
158
|
-
if (inMeta && line.includes('=')) {
|
|
159
|
-
if (line.startsWith('COMMENT')) {
|
|
160
|
-
metadataComments.push(line.substring(7).trim());
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
const eqIndex = line.indexOf('=');
|
|
164
|
-
const key = line.substring(0, eqIndex).trim();
|
|
165
|
-
const value = line.substring(eqIndex + 1).trim();
|
|
166
|
-
if (key === 'INTERPOLATION_DEGREE') {
|
|
167
|
-
currentMetadata[key] = parseInt(value, 10);
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
currentMetadata[key] = value;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
// Parse ephemeris data lines
|
|
175
|
-
if (inData && currentBlock && !line.startsWith('COMMENT')) {
|
|
176
|
-
const state = OemParser.parseStateVector_(line);
|
|
177
|
-
if (state) {
|
|
178
|
-
currentBlock.ephemeris.push(state);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
// Parse covariance data (stored but not processed)
|
|
182
|
-
if (inCovariance && currentBlock) {
|
|
183
|
-
const cov = OemParser.parseCovarianceLine_(line);
|
|
184
|
-
if (cov) {
|
|
185
|
-
covarianceData.push(cov);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
return blocks;
|
|
190
|
-
}
|
|
191
|
-
static parseStateVector_(line) {
|
|
192
|
-
const parts = line.trim().split(/\s+/);
|
|
193
|
-
// Need at least: epoch x y z vx vy vz
|
|
194
|
-
if (parts.length < 7) {
|
|
195
|
-
return null;
|
|
196
|
-
}
|
|
197
|
-
try {
|
|
198
|
-
const epoch = EpochUTC.fromDateTimeString(parts[0]);
|
|
199
|
-
const position = new Vector3D(parseFloat(parts[1]), parseFloat(parts[2]), parseFloat(parts[3]));
|
|
200
|
-
const velocity = new Vector3D(parseFloat(parts[4]), parseFloat(parts[5]), parseFloat(parts[6]));
|
|
201
|
-
return new J2000(epoch, position, velocity);
|
|
202
|
-
}
|
|
203
|
-
catch {
|
|
204
|
-
// Skip malformed lines
|
|
205
|
-
return null;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
static parseCovarianceLine_(line) {
|
|
209
|
-
// Covariance parsing is minimal - just store the raw data
|
|
210
|
-
// Full processing is deferred to future enhancement
|
|
211
|
-
const parts = line.trim().split(/\s+/);
|
|
212
|
-
if (parts.length < 2) {
|
|
213
|
-
return null;
|
|
214
|
-
}
|
|
215
|
-
// Check if this looks like an EPOCH line
|
|
216
|
-
if (line.includes('EPOCH')) {
|
|
217
|
-
return null; // Skip epoch markers, actual data comes on following lines
|
|
218
|
-
}
|
|
219
|
-
try {
|
|
220
|
-
// Try to parse as covariance values (21 values for 6x6 lower triangular)
|
|
221
|
-
const values = parts.map((p) => parseFloat(p)).filter((n) => !isNaN(n));
|
|
222
|
-
if (values.length > 0) {
|
|
223
|
-
return {
|
|
224
|
-
epoch: new Date(), // Placeholder - proper epoch handling deferred
|
|
225
|
-
values,
|
|
226
|
-
};
|
|
227
|
-
}
|
|
228
|
-
return null;
|
|
229
|
-
}
|
|
230
|
-
catch {
|
|
231
|
-
return null;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
//# sourceMappingURL=OemParser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OemParser.js","sourceRoot":"","sources":["../../src/parsers/OemParser.ts"],"names":[],"mappings":"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"}
|