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,526 +0,0 @@
|
|
|
1
|
-
import { Degrees, Earth, Kilometers, ValidationError } from '../../main';
|
|
2
|
-
import { RepeatGroundTrack } from '../RepeatGroundTrack';
|
|
3
|
-
|
|
4
|
-
describe('RepeatGroundTrack', () => {
|
|
5
|
-
const testEpoch = new Date('2024-01-01T00:00:00Z');
|
|
6
|
-
|
|
7
|
-
describe('calculate()', () => {
|
|
8
|
-
describe('basic functionality', () => {
|
|
9
|
-
it('should calculate orbital elements for a simple RGT orbit', () => {
|
|
10
|
-
const elements = RepeatGroundTrack.calculate(15, 1, 53 as Degrees, { epoch: testEpoch });
|
|
11
|
-
|
|
12
|
-
expect(elements).toBeDefined();
|
|
13
|
-
expect(elements.semimajorAxis).toBeGreaterThan(Earth.radiusMean);
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
it('should return ClassicalElements with all required properties', () => {
|
|
17
|
-
const elements = RepeatGroundTrack.calculate(15, 1, 53 as Degrees, { epoch: testEpoch });
|
|
18
|
-
|
|
19
|
-
expect(elements.epoch).toBeDefined();
|
|
20
|
-
expect(elements.semimajorAxis).toBeDefined();
|
|
21
|
-
expect(elements.eccentricity).toBeDefined();
|
|
22
|
-
expect(elements.inclination).toBeDefined();
|
|
23
|
-
expect(elements.rightAscension).toBeDefined();
|
|
24
|
-
expect(elements.argPerigee).toBeDefined();
|
|
25
|
-
expect(elements.trueAnomaly).toBeDefined();
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
it('should use provided eccentricity', () => {
|
|
29
|
-
const elements = RepeatGroundTrack.calculate(15, 1, 53 as Degrees, {
|
|
30
|
-
epoch: testEpoch,
|
|
31
|
-
eccentricity: 0.001,
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
expect(elements.eccentricity).toBeCloseTo(0.001, 4);
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
it('should use default near-circular eccentricity', () => {
|
|
38
|
-
const elements = RepeatGroundTrack.calculate(15, 1, 53 as Degrees, { epoch: testEpoch });
|
|
39
|
-
|
|
40
|
-
expect(elements.eccentricity).toBeLessThan(0.01);
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
describe('known orbits', () => {
|
|
45
|
-
it('should calculate Landsat-8 style orbit (233/16)', () => {
|
|
46
|
-
// Landsat-8: 233 revs in 16 days, ~705 km altitude, 98.2° inclination
|
|
47
|
-
const elements = RepeatGroundTrack.calculate(233, 16, 98.2 as Degrees, { epoch: testEpoch });
|
|
48
|
-
const altitude = elements.semimajorAxis - Earth.radiusMean;
|
|
49
|
-
|
|
50
|
-
// Should be approximately 705 km (within 20 km tolerance due to J2 modeling)
|
|
51
|
-
expect(altitude).toBeGreaterThan(680);
|
|
52
|
-
expect(altitude).toBeLessThan(730);
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
it('should calculate Sentinel-2 style orbit (143/10)', () => {
|
|
56
|
-
// Sentinel-2: 143 revs in 10 days, ~786 km altitude, 98.6° inclination
|
|
57
|
-
const elements = RepeatGroundTrack.calculate(143, 10, 98.6 as Degrees, { epoch: testEpoch });
|
|
58
|
-
const altitude = elements.semimajorAxis - Earth.radiusMean;
|
|
59
|
-
|
|
60
|
-
// Should be approximately 786 km
|
|
61
|
-
expect(altitude).toBeGreaterThan(760);
|
|
62
|
-
expect(altitude).toBeLessThan(810);
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
it('should calculate SPOT style orbit (369/26)', () => {
|
|
66
|
-
// SPOT: 369 revs in 26 days, ~832 km altitude, 98.7° inclination
|
|
67
|
-
const elements = RepeatGroundTrack.calculate(369, 26, 98.7 as Degrees, { epoch: testEpoch });
|
|
68
|
-
const altitude = elements.semimajorAxis - Earth.radiusMean;
|
|
69
|
-
|
|
70
|
-
// Should be approximately 832 km
|
|
71
|
-
expect(altitude).toBeGreaterThan(800);
|
|
72
|
-
expect(altitude).toBeLessThan(860);
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
it('should calculate ISS-like orbit (46/3)', () => {
|
|
76
|
-
// ISS: 46 revs in 3 days, ~408 km altitude, 51.6° inclination
|
|
77
|
-
const elements = RepeatGroundTrack.calculate(46, 3, 51.6 as Degrees, { epoch: testEpoch });
|
|
78
|
-
const altitude = elements.semimajorAxis - Earth.radiusMean;
|
|
79
|
-
|
|
80
|
-
// Should be approximately 408 km
|
|
81
|
-
expect(altitude).toBeGreaterThan(380);
|
|
82
|
-
expect(altitude).toBeLessThan(440);
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
describe('sun-synchronous orbits', () => {
|
|
87
|
-
it('should auto-calculate inclination when sunSynchronous=true', () => {
|
|
88
|
-
const elements = RepeatGroundTrack.calculate(233, 16, undefined, {
|
|
89
|
-
epoch: testEpoch,
|
|
90
|
-
sunSynchronous: true,
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
// Sun-synchronous inclination should be ~96-99 degrees for LEO
|
|
94
|
-
const incDeg = elements.inclinationDegrees;
|
|
95
|
-
|
|
96
|
-
expect(incDeg).toBeGreaterThan(96);
|
|
97
|
-
expect(incDeg).toBeLessThan(100);
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
it('should produce correct nodal precession rate for SSO', () => {
|
|
101
|
-
const elements = RepeatGroundTrack.calculate(233, 16, undefined, {
|
|
102
|
-
epoch: testEpoch,
|
|
103
|
-
sunSynchronous: true,
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
// Nodal precession should be approximately 0.9856°/day
|
|
107
|
-
// The nodalPrecessionRate getter returns rad/s, convert to deg/day
|
|
108
|
-
const precessionDegPerDay = Math.abs(elements.nodalPrecessionRate) * 86400 * (180 / Math.PI);
|
|
109
|
-
|
|
110
|
-
// Allow 0.1 deg/day tolerance due to J2 modeling differences
|
|
111
|
-
expect(Math.abs(precessionDegPerDay - 0.9856)).toBeLessThan(0.1);
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
it('should match explicit inclination when close to SSO', () => {
|
|
115
|
-
const ssoElements = RepeatGroundTrack.calculate(233, 16, undefined, {
|
|
116
|
-
epoch: testEpoch,
|
|
117
|
-
sunSynchronous: true,
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
const explicitElements = RepeatGroundTrack.calculate(233, 16, ssoElements.inclinationDegrees, {
|
|
121
|
-
epoch: testEpoch,
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
// Altitudes should be very close
|
|
125
|
-
const altDiff = Math.abs(ssoElements.semimajorAxis - explicitElements.semimajorAxis);
|
|
126
|
-
|
|
127
|
-
expect(altDiff).toBeLessThan(1);
|
|
128
|
-
});
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
describe('validation', () => {
|
|
132
|
-
it('should throw ValidationError for non-integer revolutions', () => {
|
|
133
|
-
expect(() => RepeatGroundTrack.calculate(15.5, 1, 53 as Degrees)).toThrow(ValidationError);
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
it('should throw ValidationError for non-integer days', () => {
|
|
137
|
-
expect(() => RepeatGroundTrack.calculate(15, 1.5, 53 as Degrees)).toThrow(ValidationError);
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
it('should throw ValidationError for zero revolutions', () => {
|
|
141
|
-
expect(() => RepeatGroundTrack.calculate(0, 1, 53 as Degrees)).toThrow(ValidationError);
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
it('should throw ValidationError for zero days', () => {
|
|
145
|
-
expect(() => RepeatGroundTrack.calculate(15, 0, 53 as Degrees)).toThrow(ValidationError);
|
|
146
|
-
});
|
|
147
|
-
|
|
148
|
-
it('should throw ValidationError for negative revolutions', () => {
|
|
149
|
-
expect(() => RepeatGroundTrack.calculate(-15, 1, 53 as Degrees)).toThrow(ValidationError);
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
it('should throw ValidationError for negative days', () => {
|
|
153
|
-
expect(() => RepeatGroundTrack.calculate(15, -1, 53 as Degrees)).toThrow(ValidationError);
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
it('should throw ValidationError when revolutions <= days', () => {
|
|
157
|
-
// Must have more than 1 rev per day for LEO/MEO
|
|
158
|
-
expect(() => RepeatGroundTrack.calculate(1, 1, 53 as Degrees)).toThrow(ValidationError);
|
|
159
|
-
expect(() => RepeatGroundTrack.calculate(1, 2, 53 as Degrees)).toThrow(ValidationError);
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
it('should throw ValidationError for missing inclination when not SSO', () => {
|
|
163
|
-
expect(() => RepeatGroundTrack.calculate(15, 1, undefined)).toThrow(ValidationError);
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
it('should throw ValidationError for negative inclination', () => {
|
|
167
|
-
expect(() => RepeatGroundTrack.calculate(15, 1, -10 as Degrees)).toThrow(ValidationError);
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
it('should throw ValidationError for inclination > 180', () => {
|
|
171
|
-
expect(() => RepeatGroundTrack.calculate(15, 1, 200 as Degrees)).toThrow(ValidationError);
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
it('should accept boundary inclination values', () => {
|
|
175
|
-
const elements0 = RepeatGroundTrack.calculate(15, 1, 0 as Degrees, { epoch: testEpoch });
|
|
176
|
-
const elements180 = RepeatGroundTrack.calculate(15, 1, 180 as Degrees, { epoch: testEpoch });
|
|
177
|
-
|
|
178
|
-
expect(elements0).toBeDefined();
|
|
179
|
-
expect(elements180).toBeDefined();
|
|
180
|
-
});
|
|
181
|
-
});
|
|
182
|
-
|
|
183
|
-
describe('edge cases', () => {
|
|
184
|
-
it('should handle single day repeat cycle', () => {
|
|
185
|
-
const elements = RepeatGroundTrack.calculate(15, 1, 53 as Degrees, { epoch: testEpoch });
|
|
186
|
-
|
|
187
|
-
expect(elements).toBeDefined();
|
|
188
|
-
expect(elements.semimajorAxis).toBeGreaterThan(Earth.radiusMean);
|
|
189
|
-
});
|
|
190
|
-
|
|
191
|
-
it('should handle long repeat cycles (30 days)', () => {
|
|
192
|
-
const elements = RepeatGroundTrack.calculate(467, 30, 53 as Degrees, { epoch: testEpoch });
|
|
193
|
-
|
|
194
|
-
expect(elements).toBeDefined();
|
|
195
|
-
});
|
|
196
|
-
|
|
197
|
-
it('should handle polar orbits (90 degrees)', () => {
|
|
198
|
-
const elements = RepeatGroundTrack.calculate(15, 1, 90 as Degrees, { epoch: testEpoch });
|
|
199
|
-
|
|
200
|
-
expect(elements).toBeDefined();
|
|
201
|
-
expect(elements.inclinationDegrees).toBeCloseTo(90, 1);
|
|
202
|
-
});
|
|
203
|
-
|
|
204
|
-
it('should handle retrograde orbits (>90 degrees)', () => {
|
|
205
|
-
const elements = RepeatGroundTrack.calculate(15, 1, 120 as Degrees, { epoch: testEpoch });
|
|
206
|
-
|
|
207
|
-
expect(elements).toBeDefined();
|
|
208
|
-
expect(elements.inclinationDegrees).toBeCloseTo(120, 1);
|
|
209
|
-
});
|
|
210
|
-
|
|
211
|
-
it('should handle equatorial orbits (0 degrees)', () => {
|
|
212
|
-
const elements = RepeatGroundTrack.calculate(15, 1, 0 as Degrees, { epoch: testEpoch });
|
|
213
|
-
|
|
214
|
-
expect(elements).toBeDefined();
|
|
215
|
-
expect(elements.inclinationDegrees).toBeCloseTo(0, 1);
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
describe('findNearest()', () => {
|
|
221
|
-
describe('basic functionality', () => {
|
|
222
|
-
it('should find RGT orbits near target altitude', () => {
|
|
223
|
-
const results = RepeatGroundTrack.findNearest(700 as Kilometers, 50 as Kilometers, {
|
|
224
|
-
inclination: 98 as Degrees,
|
|
225
|
-
epoch: testEpoch,
|
|
226
|
-
});
|
|
227
|
-
|
|
228
|
-
expect(results.length).toBeGreaterThan(0);
|
|
229
|
-
for (const result of results) {
|
|
230
|
-
expect(result.altitude).toBeGreaterThanOrEqual(650);
|
|
231
|
-
expect(result.altitude).toBeLessThanOrEqual(750);
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
|
|
235
|
-
it('should return results sorted by proximity to target', () => {
|
|
236
|
-
const targetAlt = 700 as Kilometers;
|
|
237
|
-
const results = RepeatGroundTrack.findNearest(targetAlt, 50 as Kilometers, {
|
|
238
|
-
inclination: 98 as Degrees,
|
|
239
|
-
epoch: testEpoch,
|
|
240
|
-
});
|
|
241
|
-
|
|
242
|
-
if (results.length > 1) {
|
|
243
|
-
for (let i = 1; i < results.length; i++) {
|
|
244
|
-
const prevDiff = Math.abs(results[i - 1].altitude - targetAlt);
|
|
245
|
-
const currDiff = Math.abs(results[i].altitude - targetAlt);
|
|
246
|
-
|
|
247
|
-
expect(currDiff).toBeGreaterThanOrEqual(prevDiff);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
});
|
|
251
|
-
|
|
252
|
-
it('should include revolutions and days in results', () => {
|
|
253
|
-
const results = RepeatGroundTrack.findNearest(700 as Kilometers, 50 as Kilometers, {
|
|
254
|
-
inclination: 98 as Degrees,
|
|
255
|
-
epoch: testEpoch,
|
|
256
|
-
});
|
|
257
|
-
|
|
258
|
-
for (const result of results) {
|
|
259
|
-
expect(result.revolutions).toBeGreaterThan(0);
|
|
260
|
-
expect(result.days).toBeGreaterThan(0);
|
|
261
|
-
expect(result.revolutions).toBeGreaterThan(result.days);
|
|
262
|
-
}
|
|
263
|
-
});
|
|
264
|
-
|
|
265
|
-
it('should include ground track spacing', () => {
|
|
266
|
-
const results = RepeatGroundTrack.findNearest(700 as Kilometers, 50 as Kilometers, {
|
|
267
|
-
inclination: 98 as Degrees,
|
|
268
|
-
epoch: testEpoch,
|
|
269
|
-
});
|
|
270
|
-
|
|
271
|
-
for (const result of results) {
|
|
272
|
-
expect(result.groundTrackSpacing).toBeGreaterThan(0);
|
|
273
|
-
// Ground track spacing at equator = Earth circumference / revs
|
|
274
|
-
const expectedSpacing = (2 * Math.PI * Earth.radiusEquator) / result.revolutions;
|
|
275
|
-
|
|
276
|
-
expect(result.groundTrackSpacing).toBeCloseTo(expectedSpacing, 0);
|
|
277
|
-
}
|
|
278
|
-
});
|
|
279
|
-
});
|
|
280
|
-
|
|
281
|
-
describe('sun-synchronous search', () => {
|
|
282
|
-
it('should find sun-synchronous RGT orbits', () => {
|
|
283
|
-
const results = RepeatGroundTrack.findNearest(700 as Kilometers, 50 as Kilometers, {
|
|
284
|
-
sunSynchronous: true,
|
|
285
|
-
epoch: testEpoch,
|
|
286
|
-
});
|
|
287
|
-
|
|
288
|
-
expect(results.length).toBeGreaterThan(0);
|
|
289
|
-
for (const result of results) {
|
|
290
|
-
expect(result.isSunSynchronous).toBe(true);
|
|
291
|
-
}
|
|
292
|
-
});
|
|
293
|
-
|
|
294
|
-
it('should identify non-SSO orbits correctly', () => {
|
|
295
|
-
const results = RepeatGroundTrack.findNearest(700 as Kilometers, 50 as Kilometers, {
|
|
296
|
-
inclination: 53 as Degrees, // Not sun-synchronous
|
|
297
|
-
epoch: testEpoch,
|
|
298
|
-
});
|
|
299
|
-
|
|
300
|
-
for (const result of results) {
|
|
301
|
-
expect(result.isSunSynchronous).toBe(false);
|
|
302
|
-
}
|
|
303
|
-
});
|
|
304
|
-
});
|
|
305
|
-
|
|
306
|
-
describe('options', () => {
|
|
307
|
-
it('should respect maxDays option', () => {
|
|
308
|
-
const results = RepeatGroundTrack.findNearest(700 as Kilometers, 100 as Kilometers, {
|
|
309
|
-
inclination: 98 as Degrees,
|
|
310
|
-
maxDays: 5,
|
|
311
|
-
epoch: testEpoch,
|
|
312
|
-
});
|
|
313
|
-
|
|
314
|
-
for (const result of results) {
|
|
315
|
-
expect(result.days).toBeLessThanOrEqual(5);
|
|
316
|
-
}
|
|
317
|
-
});
|
|
318
|
-
|
|
319
|
-
it('should respect maxResults option', () => {
|
|
320
|
-
const results = RepeatGroundTrack.findNearest(700 as Kilometers, 100 as Kilometers, {
|
|
321
|
-
inclination: 98 as Degrees,
|
|
322
|
-
maxResults: 3,
|
|
323
|
-
epoch: testEpoch,
|
|
324
|
-
});
|
|
325
|
-
|
|
326
|
-
expect(results.length).toBeLessThanOrEqual(3);
|
|
327
|
-
});
|
|
328
|
-
});
|
|
329
|
-
|
|
330
|
-
describe('validation', () => {
|
|
331
|
-
it('should throw ValidationError for negative target altitude', () => {
|
|
332
|
-
expect(() =>
|
|
333
|
-
RepeatGroundTrack.findNearest(-100 as Kilometers, 50 as Kilometers, {
|
|
334
|
-
inclination: 98 as Degrees,
|
|
335
|
-
}),
|
|
336
|
-
).toThrow(ValidationError);
|
|
337
|
-
});
|
|
338
|
-
|
|
339
|
-
it('should throw ValidationError for zero target altitude', () => {
|
|
340
|
-
expect(() =>
|
|
341
|
-
RepeatGroundTrack.findNearest(0 as Kilometers, 50 as Kilometers, {
|
|
342
|
-
inclination: 98 as Degrees,
|
|
343
|
-
}),
|
|
344
|
-
).toThrow(ValidationError);
|
|
345
|
-
});
|
|
346
|
-
|
|
347
|
-
it('should throw ValidationError for negative max deviation', () => {
|
|
348
|
-
expect(() =>
|
|
349
|
-
RepeatGroundTrack.findNearest(700 as Kilometers, -50 as Kilometers, {
|
|
350
|
-
inclination: 98 as Degrees,
|
|
351
|
-
}),
|
|
352
|
-
).toThrow(ValidationError);
|
|
353
|
-
});
|
|
354
|
-
|
|
355
|
-
it('should throw ValidationError for zero max deviation', () => {
|
|
356
|
-
expect(() =>
|
|
357
|
-
RepeatGroundTrack.findNearest(700 as Kilometers, 0 as Kilometers, {
|
|
358
|
-
inclination: 98 as Degrees,
|
|
359
|
-
}),
|
|
360
|
-
).toThrow(ValidationError);
|
|
361
|
-
});
|
|
362
|
-
|
|
363
|
-
it('should throw ValidationError when inclination missing and not SSO', () => {
|
|
364
|
-
expect(() => RepeatGroundTrack.findNearest(700 as Kilometers, 50 as Kilometers, {})).toThrow(ValidationError);
|
|
365
|
-
});
|
|
366
|
-
});
|
|
367
|
-
|
|
368
|
-
describe('edge cases', () => {
|
|
369
|
-
it('should handle narrow altitude range', () => {
|
|
370
|
-
const results = RepeatGroundTrack.findNearest(705 as Kilometers, 5 as Kilometers, {
|
|
371
|
-
inclination: 98 as Degrees,
|
|
372
|
-
epoch: testEpoch,
|
|
373
|
-
});
|
|
374
|
-
|
|
375
|
-
// May or may not find results depending on exact R/D combinations
|
|
376
|
-
if (results.length > 0) {
|
|
377
|
-
for (const result of results) {
|
|
378
|
-
expect(result.altitude).toBeGreaterThanOrEqual(700);
|
|
379
|
-
expect(result.altitude).toBeLessThanOrEqual(710);
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
});
|
|
383
|
-
|
|
384
|
-
it('should handle high altitude search', () => {
|
|
385
|
-
const results = RepeatGroundTrack.findNearest(1500 as Kilometers, 100 as Kilometers, {
|
|
386
|
-
inclination: 98 as Degrees,
|
|
387
|
-
maxDays: 10,
|
|
388
|
-
epoch: testEpoch,
|
|
389
|
-
});
|
|
390
|
-
|
|
391
|
-
// Higher altitude = fewer revs per day
|
|
392
|
-
if (results.length > 0) {
|
|
393
|
-
for (const result of results) {
|
|
394
|
-
expect(result.altitude).toBeGreaterThan(1400);
|
|
395
|
-
expect(result.altitude).toBeLessThan(1600);
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
});
|
|
399
|
-
});
|
|
400
|
-
});
|
|
401
|
-
|
|
402
|
-
describe('sunSynchronousInclination()', () => {
|
|
403
|
-
describe('basic functionality', () => {
|
|
404
|
-
it('should calculate SSO inclination for typical LEO altitude', () => {
|
|
405
|
-
const inc = RepeatGroundTrack.sunSynchronousInclination(700 as Kilometers);
|
|
406
|
-
|
|
407
|
-
// Should be around 98 degrees for 700 km
|
|
408
|
-
expect(inc).toBeGreaterThan(96);
|
|
409
|
-
expect(inc).toBeLessThan(100);
|
|
410
|
-
});
|
|
411
|
-
|
|
412
|
-
it('should return higher inclination for higher altitude', () => {
|
|
413
|
-
const inc500 = RepeatGroundTrack.sunSynchronousInclination(500 as Kilometers);
|
|
414
|
-
const inc900 = RepeatGroundTrack.sunSynchronousInclination(900 as Kilometers);
|
|
415
|
-
|
|
416
|
-
// Higher altitude requires higher inclination for SSO
|
|
417
|
-
expect(inc900).toBeGreaterThan(inc500);
|
|
418
|
-
});
|
|
419
|
-
|
|
420
|
-
it('should match expected values for common altitudes', () => {
|
|
421
|
-
// Landsat-8 at ~705 km has ~98.2° inclination
|
|
422
|
-
const incLandsat = RepeatGroundTrack.sunSynchronousInclination(705 as Kilometers);
|
|
423
|
-
|
|
424
|
-
expect(incLandsat).toBeGreaterThan(97.5);
|
|
425
|
-
expect(incLandsat).toBeLessThan(98.8);
|
|
426
|
-
|
|
427
|
-
// Sentinel-2 at ~786 km has ~98.6° inclination
|
|
428
|
-
const incSentinel = RepeatGroundTrack.sunSynchronousInclination(786 as Kilometers);
|
|
429
|
-
|
|
430
|
-
expect(incSentinel).toBeGreaterThan(98);
|
|
431
|
-
expect(incSentinel).toBeLessThan(99.2);
|
|
432
|
-
});
|
|
433
|
-
});
|
|
434
|
-
|
|
435
|
-
describe('validation', () => {
|
|
436
|
-
it('should throw ValidationError for negative altitude', () => {
|
|
437
|
-
expect(() => RepeatGroundTrack.sunSynchronousInclination(-100 as Kilometers)).toThrow(ValidationError);
|
|
438
|
-
});
|
|
439
|
-
|
|
440
|
-
it('should throw ValidationError for zero altitude', () => {
|
|
441
|
-
expect(() => RepeatGroundTrack.sunSynchronousInclination(0 as Kilometers)).toThrow(ValidationError);
|
|
442
|
-
});
|
|
443
|
-
|
|
444
|
-
it('should throw ValidationError for altitude below 160 km', () => {
|
|
445
|
-
expect(() => RepeatGroundTrack.sunSynchronousInclination(100 as Kilometers)).toThrow(ValidationError);
|
|
446
|
-
});
|
|
447
|
-
});
|
|
448
|
-
|
|
449
|
-
describe('edge cases', () => {
|
|
450
|
-
it('should handle minimum valid altitude (160 km)', () => {
|
|
451
|
-
const inc = RepeatGroundTrack.sunSynchronousInclination(160 as Kilometers);
|
|
452
|
-
|
|
453
|
-
expect(inc).toBeGreaterThan(90);
|
|
454
|
-
expect(inc).toBeLessThan(100);
|
|
455
|
-
});
|
|
456
|
-
|
|
457
|
-
it('should handle moderate LEO altitude', () => {
|
|
458
|
-
const inc = RepeatGroundTrack.sunSynchronousInclination(400 as Kilometers);
|
|
459
|
-
|
|
460
|
-
expect(inc).toBeGreaterThan(95);
|
|
461
|
-
expect(inc).toBeLessThan(98);
|
|
462
|
-
});
|
|
463
|
-
|
|
464
|
-
it('should accept eccentricity parameter', () => {
|
|
465
|
-
const incCircular = RepeatGroundTrack.sunSynchronousInclination(700 as Kilometers, 0.0001);
|
|
466
|
-
const incElliptical = RepeatGroundTrack.sunSynchronousInclination(700 as Kilometers, 0.01);
|
|
467
|
-
|
|
468
|
-
// Different eccentricity should give slightly different inclination
|
|
469
|
-
expect(Math.abs(incCircular - incElliptical)).toBeGreaterThan(0);
|
|
470
|
-
expect(Math.abs(incCircular - incElliptical)).toBeLessThan(1);
|
|
471
|
-
});
|
|
472
|
-
});
|
|
473
|
-
});
|
|
474
|
-
|
|
475
|
-
describe('integration tests', () => {
|
|
476
|
-
it('should produce consistent results between calculate and findNearest', () => {
|
|
477
|
-
// Calculate specific orbit
|
|
478
|
-
const elements = RepeatGroundTrack.calculate(233, 16, 98.2 as Degrees, { epoch: testEpoch });
|
|
479
|
-
const altitude = elements.semimajorAxis - Earth.radiusMean;
|
|
480
|
-
|
|
481
|
-
// Search for orbits near that altitude
|
|
482
|
-
const results = RepeatGroundTrack.findNearest(altitude as Kilometers, 10 as Kilometers, {
|
|
483
|
-
inclination: 98.2 as Degrees,
|
|
484
|
-
epoch: testEpoch,
|
|
485
|
-
});
|
|
486
|
-
|
|
487
|
-
// Should find the 233/16 orbit
|
|
488
|
-
const found = results.find((r) => r.revolutions === 233 && r.days === 16);
|
|
489
|
-
|
|
490
|
-
expect(found).toBeDefined();
|
|
491
|
-
});
|
|
492
|
-
|
|
493
|
-
it('should produce propagatable ClassicalElements', () => {
|
|
494
|
-
const elements = RepeatGroundTrack.calculate(233, 16, 98.2 as Degrees, { epoch: testEpoch });
|
|
495
|
-
|
|
496
|
-
// Convert to position/velocity
|
|
497
|
-
const pv = elements.toPositionVelocity();
|
|
498
|
-
|
|
499
|
-
expect(pv.position).toBeDefined();
|
|
500
|
-
expect(pv.velocity).toBeDefined();
|
|
501
|
-
|
|
502
|
-
// Position magnitude should be approximately SMA (within 1% for near-circular orbit)
|
|
503
|
-
const posMag = Math.sqrt(pv.position.x ** 2 + pv.position.y ** 2 + pv.position.z ** 2);
|
|
504
|
-
const tolerance = elements.semimajorAxis * 0.01; // 1% tolerance
|
|
505
|
-
|
|
506
|
-
expect(Math.abs(posMag - elements.semimajorAxis)).toBeLessThan(tolerance);
|
|
507
|
-
});
|
|
508
|
-
|
|
509
|
-
it('should work with ConstellationGenerator pattern', () => {
|
|
510
|
-
// Calculate RGT orbit, then use it for a constellation
|
|
511
|
-
const elements = RepeatGroundTrack.calculate(233, 16, undefined, {
|
|
512
|
-
epoch: testEpoch,
|
|
513
|
-
sunSynchronous: true,
|
|
514
|
-
});
|
|
515
|
-
|
|
516
|
-
const altitude = (elements.semimajorAxis - Earth.radiusMean) as Kilometers;
|
|
517
|
-
const inclination = elements.inclinationDegrees;
|
|
518
|
-
|
|
519
|
-
// These values can be used with ConstellationGenerator
|
|
520
|
-
expect(altitude).toBeGreaterThan(600);
|
|
521
|
-
expect(altitude).toBeLessThan(800);
|
|
522
|
-
expect(inclination).toBeGreaterThan(96);
|
|
523
|
-
expect(inclination).toBeLessThan(100);
|
|
524
|
-
});
|
|
525
|
-
});
|
|
526
|
-
});
|
|
@@ -1,23 +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
|
-
export { RepeatGroundTrack } from './RepeatGroundTrack';
|
|
19
|
-
export type {
|
|
20
|
-
FindNearestOptions,
|
|
21
|
-
RepeatGroundTrackOptions,
|
|
22
|
-
RepeatOrbitResult,
|
|
23
|
-
} from './RepeatGroundTrack';
|