ootk 5.1.0 → 6.0.0-rc.2
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/.claude/PROMPT.md +13 -0
- package/.claude/hooks/post-tool-use.ts +33 -0
- package/.claude/hooks/user-prompt-submit.ts +138 -0
- package/.claude/settings.local.json +13 -0
- package/.claude/skill-rules.json +11 -0
- package/.claude/skills/ootk-dev/SKILL.md +16 -0
- package/ADVANCED_FEATURES_GUIDE.md +1025 -0
- package/CHANGELOG.md +42 -3
- package/README.md +77 -45
- package/dist/body/Celestial.d.ts +2 -2
- package/dist/body/Celestial.js +2 -2
- package/dist/body/Celestial.js.map +1 -1
- package/dist/body/Earth.d.ts +4 -4
- package/dist/body/Earth.js +2 -2
- package/dist/body/Earth.js.map +1 -1
- package/dist/body/Moon.d.ts +3 -3
- package/dist/body/Moon.js +7 -7
- package/dist/body/Moon.js.map +1 -1
- package/dist/body/NutationAngles.d.ts +2 -2
- package/dist/body/NutationAngles.js +1 -1
- package/dist/body/PrecessionAngles.d.ts +2 -2
- package/dist/body/PrecessionAngles.js +1 -1
- package/dist/body/Sun.d.ts +2 -2
- package/dist/body/Sun.js +3 -3
- package/dist/body/Sun.js.map +1 -1
- package/dist/body/index.d.ts +5 -5
- package/dist/body/index.js +5 -5
- package/dist/body/index.js.map +1 -1
- package/dist/conjunction/ConjunctionAssessment.d.ts +156 -0
- package/dist/conjunction/ConjunctionAssessment.js +281 -0
- package/dist/conjunction/ConjunctionAssessment.js.map +1 -0
- package/dist/conjunction/ConjunctionEvent.d.ts +104 -0
- package/dist/conjunction/ConjunctionEvent.js +156 -0
- package/dist/conjunction/ConjunctionEvent.js.map +1 -0
- package/dist/conjunction/ProbabilityOfCollision.d.ts +102 -0
- package/dist/conjunction/ProbabilityOfCollision.js +240 -0
- package/dist/conjunction/ProbabilityOfCollision.js.map +1 -0
- package/dist/conjunction/index.d.ts +19 -0
- package/dist/conjunction/index.js +20 -0
- package/dist/conjunction/index.js.map +1 -0
- package/dist/coordinate/ClassicalElements.d.ts +7 -7
- package/dist/coordinate/ClassicalElements.js +7 -7
- package/dist/coordinate/ClassicalElements.js.map +1 -1
- package/dist/coordinate/EquinoctialElements.d.ts +5 -5
- package/dist/coordinate/EquinoctialElements.js +4 -4
- package/dist/coordinate/EquinoctialElements.js.map +1 -1
- package/dist/coordinate/FormatTle.d.ts +2 -2
- package/dist/coordinate/FormatTle.js +2 -2
- package/dist/coordinate/FormatTle.js.map +1 -1
- package/dist/coordinate/Geodetic.d.ts +4 -4
- package/dist/coordinate/Geodetic.js +7 -7
- package/dist/coordinate/Geodetic.js.map +1 -1
- package/dist/coordinate/Hill.d.ts +4 -4
- package/dist/coordinate/Hill.js +3 -3
- package/dist/coordinate/Hill.js.map +1 -1
- package/dist/coordinate/ITRF.d.ts +5 -5
- package/dist/coordinate/ITRF.js +6 -5
- package/dist/coordinate/ITRF.js.map +1 -1
- package/dist/coordinate/J2000.d.ts +5 -5
- package/dist/coordinate/J2000.js +5 -5
- package/dist/coordinate/J2000.js.map +1 -1
- package/dist/coordinate/RIC.d.ts +4 -4
- package/dist/coordinate/RIC.js +3 -3
- package/dist/coordinate/RIC.js.map +1 -1
- package/dist/coordinate/RelativeState.d.ts +5 -5
- package/dist/coordinate/RelativeState.js +2 -2
- package/dist/coordinate/RelativeState.js.map +1 -1
- package/dist/coordinate/StateVector.d.ts +2 -2
- package/dist/coordinate/StateVector.js +2 -2
- package/dist/coordinate/StateVector.js.map +1 -1
- package/dist/coordinate/TEME.d.ts +4 -4
- package/dist/coordinate/TEME.js +4 -4
- package/dist/coordinate/TEME.js.map +1 -1
- package/dist/coordinate/Tle.d.ts +5 -5
- package/dist/coordinate/Tle.js +9 -9
- package/dist/coordinate/Tle.js.map +1 -1
- package/dist/coordinate/index.d.ts +12 -12
- package/dist/coordinate/index.js +12 -12
- package/dist/coordinate/index.js.map +1 -1
- package/dist/coordinate/tle-format-data.d.ts +1 -1
- package/dist/coordinate/tle-format-data.js +1 -1
- package/dist/covariance/CovarianceSample.d.ts +5 -5
- package/dist/covariance/CovarianceSample.js +5 -5
- package/dist/covariance/CovarianceSample.js.map +1 -1
- package/dist/covariance/StateCovariance.d.ts +2 -2
- package/dist/covariance/StateCovariance.js +2 -2
- package/dist/covariance/StateCovariance.js.map +1 -1
- package/dist/covariance/index.d.ts +2 -2
- package/dist/covariance/index.js +2 -2
- package/dist/covariance/index.js.map +1 -1
- package/dist/data/DataHandler.d.ts +4 -4
- package/dist/data/DataHandler.js +5 -5
- package/dist/data/DataHandler.js.map +1 -1
- package/dist/data/values/Egm96Data.d.ts +1 -1
- package/dist/data/values/Egm96Data.js +3 -3
- package/dist/data/values/Egm96Data.js.map +1 -1
- package/dist/data/values/HpAtmosphereData.d.ts +2 -2
- package/dist/data/values/HpAtmosphereData.js +3 -3
- package/dist/data/values/HpAtmosphereData.js.map +1 -1
- package/dist/data/values/HpAtmosphereResult.d.ts +2 -2
- package/dist/data/values/HpAtmosphereResult.js +1 -1
- package/dist/data/values/Iau1980Data.d.ts +1 -1
- package/dist/data/values/Iau1980Data.js +2 -2
- package/dist/data/values/Iau1980Data.js.map +1 -1
- package/dist/data/values/LeapSecond.d.ts +1 -1
- package/dist/data/values/LeapSecond.js +1 -1
- package/dist/data/values/LeapSecondData.d.ts +2 -2
- package/dist/data/values/LeapSecondData.js +2 -2
- package/dist/data/values/LeapSecondData.js.map +1 -1
- package/dist/data/values/egm96.d.ts +2 -2
- package/dist/data/values/egm96.js +1 -1
- package/dist/data/values/hpAtmosphere.d.ts +2 -2
- package/dist/data/values/hpAtmosphere.js +1 -1
- package/dist/data/values/iau1980.d.ts +2 -2
- package/dist/data/values/iau1980.js +1 -1
- package/dist/enums/AngularDiameterMethod.d.ts +1 -1
- package/dist/enums/AngularDiameterMethod.js +1 -1
- package/dist/enums/AngularDistanceMethod.d.ts +1 -1
- package/dist/enums/AngularDistanceMethod.js +1 -1
- package/dist/enums/OrbitRegime.d.ts +1 -1
- package/dist/enums/OrbitRegime.js +1 -1
- package/dist/enums/PassType.d.ts +1 -1
- package/dist/enums/PassType.js +1 -1
- package/dist/enums/Sgp4OpsMode.d.ts +1 -1
- package/dist/enums/Sgp4OpsMode.js +1 -1
- package/dist/enums/index.d.ts +7 -7
- package/dist/enums/index.js +7 -7
- package/dist/enums/index.js.map +1 -1
- package/dist/fetch/horizons-constants.d.ts +43 -0
- package/dist/fetch/horizons-constants.js +50 -0
- package/dist/fetch/horizons-constants.js.map +1 -0
- package/dist/fetch/horizons-interfaces.d.ts +37 -0
- package/dist/fetch/horizons-interfaces.js +2 -0
- package/dist/fetch/horizons-interfaces.js.map +1 -0
- package/dist/fetch/horizons.d.ts +86 -0
- package/dist/fetch/horizons.js +237 -0
- package/dist/fetch/horizons.js.map +1 -0
- package/dist/force/AtmosphericDrag.d.ts +3 -3
- package/dist/force/AtmosphericDrag.js +2 -2
- package/dist/force/AtmosphericDrag.js.map +1 -1
- package/dist/force/EarthGravity.d.ts +3 -3
- package/dist/force/EarthGravity.js +2 -2
- package/dist/force/EarthGravity.js.map +1 -1
- package/dist/force/Force.d.ts +3 -3
- package/dist/force/Force.js +1 -10
- package/dist/force/Force.js.map +1 -1
- package/dist/force/ForceModel.d.ts +3 -3
- package/dist/force/ForceModel.js +7 -7
- package/dist/force/ForceModel.js.map +1 -1
- package/dist/force/Gravity.d.ts +3 -3
- package/dist/force/Gravity.js +2 -2
- package/dist/force/Gravity.js.map +1 -1
- package/dist/force/SolarRadiationPressure.d.ts +3 -3
- package/dist/force/SolarRadiationPressure.js +4 -4
- package/dist/force/SolarRadiationPressure.js.map +1 -1
- package/dist/force/ThirdBodyGravity.d.ts +3 -3
- package/dist/force/ThirdBodyGravity.js +2 -2
- package/dist/force/ThirdBodyGravity.js.map +1 -1
- package/dist/force/Thrust.d.ts +3 -3
- package/dist/force/Thrust.js +2 -2
- package/dist/force/Thrust.js.map +1 -1
- package/dist/force/index.d.ts +1 -1
- package/dist/force/index.js +1 -1
- package/dist/force/index.js.map +1 -1
- package/dist/interfaces/BaseObjectParams.d.ts +2 -2
- package/dist/interfaces/BaseObjectParams.js +1 -1
- package/dist/interfaces/ClassicalElementsParams.d.ts +2 -2
- package/dist/interfaces/ClassicalElementsParams.js +1 -1
- package/dist/interfaces/EquinoctialElementsParams.d.ts +2 -2
- package/dist/interfaces/EquinoctialElementsParams.js +1 -1
- package/dist/interfaces/GroundPositionParams.d.ts +2 -2
- package/dist/interfaces/GroundPositionParams.js +1 -1
- package/dist/interfaces/RfSensorParams.d.ts +2 -2
- package/dist/interfaces/SatelliteParams.d.ts +2 -2
- package/dist/interfaces/SensorParams.d.ts +2 -2
- package/dist/interfaces/StarObjectParams.d.ts +1 -1
- package/dist/interfaces/TimeVariables.d.ts +1 -1
- package/dist/interfaces/index.d.ts +9 -9
- package/dist/interpolator/ChebyshevCoefficients.d.ts +2 -2
- package/dist/interpolator/ChebyshevCoefficients.js +2 -2
- package/dist/interpolator/ChebyshevCoefficients.js.map +1 -1
- package/dist/interpolator/ChebyshevInterpolator.d.ts +4 -4
- package/dist/interpolator/ChebyshevInterpolator.js +3 -3
- package/dist/interpolator/ChebyshevInterpolator.js.map +1 -1
- package/dist/interpolator/CubicSpline.d.ts +2 -2
- package/dist/interpolator/CubicSpline.js +1 -1
- package/dist/interpolator/CubicSplineInterpolator.d.ts +4 -4
- package/dist/interpolator/CubicSplineInterpolator.js +4 -4
- package/dist/interpolator/CubicSplineInterpolator.js.map +1 -1
- package/dist/interpolator/FieldInterpolator.d.ts +3 -3
- package/dist/interpolator/FieldInterpolator.js +2 -12
- package/dist/interpolator/FieldInterpolator.js.map +1 -1
- package/dist/interpolator/Interpolator.d.ts +2 -2
- package/dist/interpolator/Interpolator.js +2 -2
- package/dist/interpolator/Interpolator.js.map +1 -1
- package/dist/interpolator/LagrangeInterpolator.d.ts +3 -3
- package/dist/interpolator/LagrangeInterpolator.js +3 -3
- package/dist/interpolator/LagrangeInterpolator.js.map +1 -1
- package/dist/interpolator/StateInterpolator.d.ts +4 -4
- package/dist/interpolator/StateInterpolator.js +2 -10
- package/dist/interpolator/StateInterpolator.js.map +1 -1
- package/dist/interpolator/VerletBlendInterpolator.d.ts +5 -5
- package/dist/interpolator/VerletBlendInterpolator.js +5 -5
- package/dist/interpolator/VerletBlendInterpolator.js.map +1 -1
- package/dist/main.d.ts +20 -20
- package/dist/main.js +21 -20
- package/dist/main.js.map +1 -1
- package/dist/maneuver/TwoBurnOrbitTransfer.d.ts +3 -3
- package/dist/maneuver/TwoBurnOrbitTransfer.js +3 -3
- package/dist/maneuver/TwoBurnOrbitTransfer.js.map +1 -1
- package/dist/maneuver/Waypoint.d.ts +5 -5
- package/dist/maneuver/Waypoint.js +7 -7
- package/dist/maneuver/Waypoint.js.map +1 -1
- package/dist/objects/BaseObject.d.ts +3 -3
- package/dist/objects/BaseObject.js +2 -2
- package/dist/objects/BaseObject.js.map +1 -1
- package/dist/objects/DetailedSatellite.d.ts +4 -4
- package/dist/objects/DetailedSatellite.js +4 -4
- package/dist/objects/DetailedSatellite.js.map +1 -1
- package/dist/objects/DetailedSensor.d.ts +5 -5
- package/dist/objects/DetailedSensor.js +2 -2
- package/dist/objects/DetailedSensor.js.map +1 -1
- package/dist/objects/GroundObject.d.ts +4 -4
- package/dist/objects/GroundObject.js +3 -3
- package/dist/objects/GroundObject.js.map +1 -1
- package/dist/objects/LandObject.d.ts +3 -3
- package/dist/objects/LandObject.js +2 -2
- package/dist/objects/LandObject.js.map +1 -1
- package/dist/objects/Marker.d.ts +2 -2
- package/dist/objects/Marker.js +2 -2
- package/dist/objects/Marker.js.map +1 -1
- package/dist/objects/RfSensor.d.ts +2 -2
- package/dist/objects/RfSensor.js +2 -2
- package/dist/objects/RfSensor.js.map +1 -1
- package/dist/objects/Satellite.d.ts +12 -12
- package/dist/objects/Satellite.js +14 -14
- package/dist/objects/Satellite.js.map +1 -1
- package/dist/objects/Sensor.d.ts +6 -6
- package/dist/objects/Sensor.js +5 -5
- package/dist/objects/Sensor.js.map +1 -1
- package/dist/objects/Star.d.ts +3 -3
- package/dist/objects/Star.js +3 -3
- package/dist/objects/Star.js.map +1 -1
- package/dist/objects/index.d.ts +10 -10
- package/dist/objects/index.js +10 -10
- package/dist/objects/index.js.map +1 -1
- package/dist/observation/Observation.d.ts +11 -11
- package/dist/observation/Observation.js +1 -52
- package/dist/observation/Observation.js.map +1 -1
- package/dist/observation/ObservationOptical.d.ts +6 -6
- package/dist/observation/ObservationOptical.js +4 -4
- package/dist/observation/ObservationOptical.js.map +1 -1
- package/dist/observation/ObservationRadar.d.ts +6 -6
- package/dist/observation/ObservationRadar.js +4 -4
- package/dist/observation/ObservationRadar.js.map +1 -1
- package/dist/observation/ObservationUtils.d.ts +2 -2
- package/dist/observation/ObservationUtils.js +2 -2
- package/dist/observation/ObservationUtils.js.map +1 -1
- package/dist/observation/PropagatorPairs.d.ts +2 -2
- package/dist/observation/PropagatorPairs.js +1 -1
- package/dist/observation/RAE.d.ts +6 -6
- package/dist/observation/RAE.js +6 -6
- package/dist/observation/RAE.js.map +1 -1
- package/dist/observation/RadecGeocentric.d.ts +6 -6
- package/dist/observation/RadecGeocentric.js +5 -5
- package/dist/observation/RadecGeocentric.js.map +1 -1
- package/dist/observation/RadecTopocentric.d.ts +6 -6
- package/dist/observation/RadecTopocentric.js +9 -7
- package/dist/observation/RadecTopocentric.js.map +1 -1
- package/dist/observation/index.d.ts +5 -5
- package/dist/observation/index.js +5 -5
- package/dist/observation/index.js.map +1 -1
- package/dist/operations/BoxMuller.d.ts +2 -2
- package/dist/operations/BoxMuller.js +2 -2
- package/dist/operations/BoxMuller.js.map +1 -1
- package/dist/operations/EulerAngles.d.ts +2 -2
- package/dist/operations/EulerAngles.js +2 -2
- package/dist/operations/EulerAngles.js.map +1 -1
- package/dist/operations/Matrix.d.ts +2 -2
- package/dist/operations/Matrix.js +2 -2
- package/dist/operations/Matrix.js.map +1 -1
- package/dist/operations/Quaternion.d.ts +2 -2
- package/dist/operations/Quaternion.js +2 -2
- package/dist/operations/Quaternion.js.map +1 -1
- package/dist/operations/Random.d.ts +1 -1
- package/dist/operations/Random.js +1 -1
- package/dist/operations/RandomGaussianSource.d.ts +2 -2
- package/dist/operations/RandomGaussianSource.js +3 -3
- package/dist/operations/RandomGaussianSource.js.map +1 -1
- package/dist/operations/Vector.d.ts +2 -2
- package/dist/operations/Vector.js +2 -2
- package/dist/operations/Vector.js.map +1 -1
- package/dist/operations/Vector3D.d.ts +5 -4
- package/dist/operations/Vector3D.js +5 -4
- package/dist/operations/Vector3D.js.map +1 -1
- package/dist/operations/index.d.ts +4 -4
- package/dist/operations/index.js +4 -4
- package/dist/operations/index.js.map +1 -1
- package/dist/operations/operations.d.ts +5 -5
- package/dist/operations/operations.js +5 -5
- package/dist/operations/operations.js.map +1 -1
- package/dist/optimize/ChebyshevCompressor.d.ts +3 -3
- package/dist/optimize/ChebyshevCompressor.js +4 -4
- package/dist/optimize/ChebyshevCompressor.js.map +1 -1
- package/dist/optimize/DownhillSimplex.d.ts +2 -2
- package/dist/optimize/DownhillSimplex.js +2 -2
- package/dist/optimize/DownhillSimplex.js.map +1 -1
- package/dist/optimize/GoldenSection.d.ts +2 -2
- package/dist/optimize/GoldenSection.js +1 -1
- package/dist/optimize/PolynomialRegression.d.ts +2 -2
- package/dist/optimize/PolynomialRegression.js +4 -4
- package/dist/optimize/PolynomialRegression.js.map +1 -1
- package/dist/optimize/PolynomicalRegressionResult.d.ts +1 -1
- package/dist/optimize/PolynomicalRegressionResult.js +1 -1
- package/dist/optimize/SimpleLinearRegression.d.ts +1 -1
- package/dist/optimize/SimpleLinearRegression.js +1 -1
- package/dist/optimize/SimplexEntry.d.ts +1 -1
- package/dist/optimize/SimplexEntry.js +2 -2
- package/dist/optimize/SimplexEntry.js.map +1 -1
- package/dist/orbit_determination/BatchLeastSquaresOD.d.ts +5 -5
- package/dist/orbit_determination/BatchLeastSquaresOD.js +8 -8
- package/dist/orbit_determination/BatchLeastSquaresOD.js.map +1 -1
- package/dist/orbit_determination/BatchLeastSquaresResult.d.ts +3 -3
- package/dist/orbit_determination/BatchLeastSquaresResult.js +1 -1
- package/dist/orbit_determination/GaussIOD.d.ts +98 -0
- package/dist/orbit_determination/GaussIOD.js +291 -0
- package/dist/orbit_determination/GaussIOD.js.map +1 -0
- package/dist/orbit_determination/GibbsIOD.d.ts +2 -2
- package/dist/orbit_determination/GibbsIOD.js +4 -4
- package/dist/orbit_determination/GibbsIOD.js.map +1 -1
- package/dist/orbit_determination/GoodingIOD.d.ts +58 -8
- package/dist/orbit_determination/GoodingIOD.js +225 -35
- package/dist/orbit_determination/GoodingIOD.js.map +1 -1
- package/dist/orbit_determination/HerrickGibbsIOD.d.ts +2 -2
- package/dist/orbit_determination/HerrickGibbsIOD.js +2 -2
- package/dist/orbit_determination/HerrickGibbsIOD.js.map +1 -1
- package/dist/orbit_determination/LambertIOD.d.ts +2 -2
- package/dist/orbit_determination/LambertIOD.js +2 -2
- package/dist/orbit_determination/LambertIOD.js.map +1 -1
- package/dist/orbit_determination/ModifiedGoodingIOD.d.ts +3 -3
- package/dist/orbit_determination/ModifiedGoodingIOD.js +8 -8
- package/dist/orbit_determination/ModifiedGoodingIOD.js.map +1 -1
- package/dist/orbit_determination/index.d.ts +7 -7
- package/dist/orbit_determination/index.js +7 -7
- package/dist/orbit_determination/index.js.map +1 -1
- package/dist/propagator/DormandPrince54Propagator.d.ts +2 -2
- package/dist/propagator/DormandPrince54Propagator.js +2 -2
- package/dist/propagator/DormandPrince54Propagator.js.map +1 -1
- package/dist/propagator/KeplerPropagator.d.ts +6 -6
- package/dist/propagator/KeplerPropagator.js +6 -7
- package/dist/propagator/KeplerPropagator.js.map +1 -1
- package/dist/propagator/Propagator.d.ts +5 -5
- package/dist/propagator/Propagator.js +5 -5
- package/dist/propagator/Propagator.js.map +1 -1
- package/dist/propagator/RkCheckpoint.d.ts +2 -2
- package/dist/propagator/RkCheckpoint.js +1 -1
- package/dist/propagator/RkResult.d.ts +2 -2
- package/dist/propagator/RkResult.js +1 -1
- package/dist/propagator/RungeKutta4Propagator.d.ts +6 -6
- package/dist/propagator/RungeKutta4Propagator.js +5 -5
- package/dist/propagator/RungeKutta4Propagator.js.map +1 -1
- package/dist/propagator/RungeKutta89Propagator.d.ts +2 -2
- package/dist/propagator/RungeKutta89Propagator.js +2 -2
- package/dist/propagator/RungeKutta89Propagator.js.map +1 -1
- package/dist/propagator/RungeKuttaAdaptive.d.ts +6 -6
- package/dist/propagator/RungeKuttaAdaptive.js +52 -9
- package/dist/propagator/RungeKuttaAdaptive.js.map +1 -1
- package/dist/propagator/Sgp4Propagator.d.ts +7 -7
- package/dist/propagator/Sgp4Propagator.js +4 -4
- package/dist/propagator/Sgp4Propagator.js.map +1 -1
- package/dist/propagator/index.d.ts +3 -3
- package/dist/propagator/index.js +3 -3
- package/dist/propagator/index.js.map +1 -1
- package/dist/sgp4/index.d.ts +2 -2
- package/dist/sgp4/index.js +2 -2
- package/dist/sgp4/index.js.map +1 -1
- package/dist/sgp4/sgp4.d.ts +3 -3
- package/dist/sgp4/sgp4.js +11 -5
- package/dist/sgp4/sgp4.js.map +1 -1
- package/dist/smoothing/ExponentialSmoothing.d.ts +2 -2
- package/dist/smoothing/ExponentialSmoothing.js +1 -1
- package/dist/time/Epoch.d.ts +2 -2
- package/dist/time/Epoch.js +2 -2
- package/dist/time/Epoch.js.map +1 -1
- package/dist/time/EpochGPS.d.ts +3 -3
- package/dist/time/EpochGPS.js +3 -3
- package/dist/time/EpochGPS.js.map +1 -1
- package/dist/time/EpochTAI.d.ts +2 -2
- package/dist/time/EpochTAI.js +2 -2
- package/dist/time/EpochTAI.js.map +1 -1
- package/dist/time/EpochTDB.d.ts +2 -2
- package/dist/time/EpochTDB.js +2 -2
- package/dist/time/EpochTDB.js.map +1 -1
- package/dist/time/EpochTT.d.ts +2 -2
- package/dist/time/EpochTT.js +2 -2
- package/dist/time/EpochTT.js.map +1 -1
- package/dist/time/EpochUTC.d.ts +7 -7
- package/dist/time/EpochUTC.js +9 -9
- package/dist/time/EpochUTC.js.map +1 -1
- package/dist/time/EpochWindow.d.ts +2 -2
- package/dist/time/EpochWindow.js +1 -1
- package/dist/time/TimeStamped.d.ts +2 -2
- package/dist/time/TimeStamped.js +1 -1
- package/dist/time/index.d.ts +8 -8
- package/dist/time/index.js +8 -8
- package/dist/time/index.js.map +1 -1
- package/dist/transforms/TransformCache.d.ts +1 -1
- package/dist/transforms/TransformCache.js +1 -1
- package/dist/transforms/conversions.d.ts +2 -2
- package/dist/transforms/conversions.js +2 -2
- package/dist/transforms/conversions.js.map +1 -1
- package/dist/transforms/index.d.ts +2 -2
- package/dist/transforms/index.js +2 -2
- package/dist/transforms/index.js.map +1 -1
- package/dist/transforms/transforms.d.ts +1 -1
- package/dist/transforms/transforms.js +1 -1
- package/dist/transforms/transforms.js.map +1 -1
- package/dist/types/types.d.ts +8 -3
- package/dist/types/types.js +6 -1
- package/dist/types/types.js.map +1 -1
- package/dist/utils/constants.d.ts +2 -2
- package/dist/utils/constants.js +1 -1
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/create-covariance-from-tle.d.ts +1 -1
- package/dist/utils/create-covariance-from-tle.js +1 -1
- package/dist/utils/create-covariance-from-tle.js.map +1 -1
- package/dist/utils/functions.d.ts +4 -4
- package/dist/utils/functions.js +9 -4
- package/dist/utils/functions.js.map +1 -1
- package/dist/utils/index.d.ts +5 -5
- package/dist/utils/index.js +5 -5
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/jacobian.d.ts +2 -2
- package/dist/utils/jacobian.js +1 -1
- package/dist/utils/jacobian.js.map +1 -1
- package/dist/utils/linearDistance.d.ts +1 -1
- package/docs/README.md +132 -0
- package/docs/getting-started.md +792 -0
- package/docs/lambert-satellite-integration-guide.md +766 -0
- package/docs/user-guide.md +1935 -0
- package/jest.config.mjs +28 -0
- package/package.json +3 -4
- package/src/body/Celestial.ts +2 -2
- package/src/body/Earth.ts +4 -4
- package/src/body/Moon.ts +7 -7
- package/src/body/NutationAngles.ts +2 -2
- package/src/body/PrecessionAngles.ts +2 -2
- package/src/body/Sun.ts +4 -4
- package/src/body/index.ts +6 -5
- package/src/conjunction/ConjunctionAssessment.ts +417 -0
- package/src/conjunction/ConjunctionEvent.ts +149 -0
- package/src/conjunction/ProbabilityOfCollision.ts +300 -0
- package/src/conjunction/index.ts +24 -0
- package/src/coordinate/ClassicalElements.ts +16 -11
- package/src/coordinate/EquinoctialElements.ts +7 -7
- package/src/coordinate/FormatTle.ts +2 -2
- package/src/coordinate/Geodetic.ts +8 -8
- package/src/coordinate/Hill.ts +4 -4
- package/src/coordinate/ITRF.ts +6 -6
- package/src/coordinate/J2000.ts +7 -7
- package/src/coordinate/RIC.ts +4 -4
- package/src/coordinate/RelativeState.ts +5 -5
- package/src/coordinate/StateVector.ts +8 -3
- package/src/coordinate/TEME.ts +6 -6
- package/src/coordinate/Tle.ts +9 -9
- package/src/coordinate/index.ts +13 -12
- package/src/coordinate/tle-format-data.ts +1 -1
- package/src/covariance/CovarianceSample.ts +13 -13
- package/src/covariance/StateCovariance.ts +2 -2
- package/src/covariance/index.ts +3 -2
- package/src/data/DataHandler.ts +6 -6
- package/src/data/values/Egm96Data.ts +3 -3
- package/src/data/values/HpAtmosphereData.ts +3 -3
- package/src/data/values/HpAtmosphereResult.ts +2 -2
- package/src/data/values/Iau1980Data.ts +2 -2
- package/src/data/values/LeapSecond.ts +1 -1
- package/src/data/values/LeapSecondData.ts +2 -2
- package/src/data/values/egm96.ts +2 -2
- package/src/data/values/hpAtmosphere.ts +2 -2
- package/src/data/values/iau1980.ts +2 -2
- package/src/enums/AngularDiameterMethod.ts +1 -1
- package/src/enums/AngularDistanceMethod.ts +1 -1
- package/src/enums/OrbitRegime.ts +1 -1
- package/src/enums/PassType.ts +1 -1
- package/src/enums/Sgp4OpsMode.ts +1 -1
- package/src/enums/index.ts +8 -7
- package/src/fetch/horizons-constants.ts +53 -0
- package/src/fetch/horizons-interfaces.ts +38 -0
- package/src/fetch/horizons.ts +300 -0
- package/src/force/AtmosphericDrag.ts +3 -3
- package/src/force/EarthGravity.ts +3 -3
- package/src/force/Force.ts +3 -5
- package/src/force/ForceModel.ts +9 -9
- package/src/force/Gravity.ts +3 -3
- package/src/force/SolarRadiationPressure.ts +4 -4
- package/src/force/ThirdBodyGravity.ts +3 -3
- package/src/force/Thrust.ts +3 -3
- package/src/force/index.ts +2 -1
- package/src/interfaces/BaseObjectParams.ts +2 -2
- package/src/interfaces/ClassicalElementsParams.ts +2 -2
- package/src/interfaces/EquinoctialElementsParams.ts +2 -2
- package/src/interfaces/GroundPositionParams.ts +2 -2
- package/src/interfaces/RfSensorParams.ts +2 -2
- package/src/interfaces/SatelliteParams.ts +2 -2
- package/src/interfaces/SensorParams.ts +3 -3
- package/src/interfaces/StarObjectParams.ts +1 -1
- package/src/interfaces/TimeVariables.ts +1 -1
- package/src/interfaces/index.ts +10 -9
- package/src/interpolator/ChebyshevCoefficients.ts +2 -2
- package/src/interpolator/ChebyshevInterpolator.ts +4 -4
- package/src/interpolator/CubicSpline.ts +2 -2
- package/src/interpolator/CubicSplineInterpolator.ts +4 -4
- package/src/interpolator/FieldInterpolator.ts +3 -5
- package/src/interpolator/Interpolator.ts +2 -2
- package/src/interpolator/LagrangeInterpolator.ts +3 -3
- package/src/interpolator/StateInterpolator.ts +4 -6
- package/src/interpolator/VerletBlendInterpolator.ts +5 -5
- package/src/main.ts +41 -20
- package/src/maneuver/TwoBurnOrbitTransfer.ts +3 -3
- package/src/maneuver/Waypoint.ts +8 -8
- package/src/objects/BaseObject.ts +3 -3
- package/src/objects/DetailedSatellite.ts +9 -9
- package/src/objects/DetailedSensor.ts +5 -5
- package/src/objects/GroundObject.ts +9 -9
- package/src/objects/LandObject.ts +3 -3
- package/src/objects/Marker.ts +2 -2
- package/src/objects/RfSensor.ts +2 -2
- package/src/objects/Satellite.ts +21 -21
- package/src/objects/Sensor.ts +7 -7
- package/src/objects/Star.ts +3 -3
- package/src/objects/index.ts +11 -10
- package/src/observation/Observation.ts +11 -23
- package/src/observation/ObservationOptical.ts +7 -7
- package/src/observation/ObservationRadar.ts +7 -7
- package/src/observation/ObservationUtils.ts +2 -2
- package/src/observation/PropagatorPairs.ts +2 -2
- package/src/observation/RAE.ts +9 -9
- package/src/observation/RadecGeocentric.ts +9 -9
- package/src/observation/RadecTopocentric.ts +13 -10
- package/src/observation/index.ts +6 -5
- package/src/operations/BoxMuller.ts +2 -2
- package/src/operations/EulerAngles.ts +2 -2
- package/src/operations/Matrix.ts +2 -2
- package/src/operations/Quaternion.ts +2 -2
- package/src/operations/Random.ts +1 -1
- package/src/operations/RandomGaussianSource.ts +3 -3
- package/src/operations/Vector.ts +2 -2
- package/src/operations/Vector3D.ts +6 -4
- package/src/operations/index.ts +5 -4
- package/src/operations/operations.ts +6 -5
- package/src/optimize/ChebyshevCompressor.ts +5 -5
- package/src/optimize/DownhillSimplex.ts +2 -2
- package/src/optimize/GoldenSection.ts +2 -2
- package/src/optimize/PolynomialRegression.ts +4 -4
- package/src/optimize/PolynomicalRegressionResult.ts +1 -1
- package/src/optimize/SimpleLinearRegression.ts +1 -1
- package/src/optimize/SimplexEntry.ts +2 -2
- package/src/orbit_determination/BatchLeastSquaresOD.ts +10 -10
- package/src/orbit_determination/BatchLeastSquaresResult.ts +3 -3
- package/src/orbit_determination/GaussIOD.ts +393 -0
- package/src/orbit_determination/GibbsIOD.ts +4 -4
- package/src/orbit_determination/GoodingIOD.ts +458 -160
- package/src/orbit_determination/HerrickGibbsIOD.ts +2 -2
- package/src/orbit_determination/LambertIOD.ts +2 -2
- package/src/orbit_determination/ModifiedGoodingIOD.ts +33 -22
- package/src/orbit_determination/index.ts +8 -7
- package/src/propagator/DormandPrince54Propagator.ts +2 -2
- package/src/propagator/KeplerPropagator.ts +7 -8
- package/src/propagator/Propagator.ts +6 -6
- package/src/propagator/RkCheckpoint.ts +2 -2
- package/src/propagator/RkResult.ts +2 -2
- package/src/propagator/RungeKutta4Propagator.ts +6 -6
- package/src/propagator/RungeKutta89Propagator.ts +2 -2
- package/src/propagator/RungeKuttaAdaptive.ts +62 -12
- package/src/propagator/Sgp4Propagator.ts +7 -7
- package/src/propagator/index.ts +4 -3
- package/src/sgp4/index.ts +3 -2
- package/src/sgp4/sgp4.ts +6 -6
- package/src/smoothing/ExponentialSmoothing.ts +2 -2
- package/src/time/Epoch.ts +3 -3
- package/src/time/EpochGPS.ts +5 -5
- package/src/time/EpochTAI.ts +2 -2
- package/src/time/EpochTDB.ts +2 -2
- package/src/time/EpochTT.ts +2 -2
- package/src/time/EpochUTC.ts +10 -10
- package/src/time/EpochWindow.ts +2 -2
- package/src/time/TimeStamped.ts +2 -2
- package/src/time/index.ts +9 -8
- package/src/transforms/TransformCache.ts +1 -1
- package/src/transforms/conversions.ts +2 -2
- package/src/transforms/index.ts +3 -2
- package/src/transforms/transforms.ts +4 -4
- package/src/types/types.ts +8 -3
- package/src/utils/constants.ts +2 -2
- package/src/utils/create-covariance-from-tle.ts +1 -1
- package/src/utils/functions.ts +10 -5
- package/src/utils/index.ts +6 -5
- package/src/utils/jacobian.ts +2 -2
- package/src/utils/linearDistance.ts +1 -1
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NASA Horizons API Client
|
|
3
|
+
*
|
|
4
|
+
* Provides an easy-to-use interface for fetching ephemeris data from NASA's JPL Horizons system.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* const horizons = new HorizonsAPI();
|
|
9
|
+
* const data = await horizons.getObjectPosition('Makemake', {
|
|
10
|
+
* startDate: '2025-10-21',
|
|
11
|
+
* stopDate: '2025-11-20',
|
|
12
|
+
* stepSize: '1 day'
|
|
13
|
+
* });
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
import { CELESTIAL_OBJECTS, OBSERVER_CENTERS } from "./horizons-constants";
|
|
17
|
+
export class HorizonsAPI {
|
|
18
|
+
baseUrl = 'https://ssd.jpl.nasa.gov/api/horizons.api';
|
|
19
|
+
/**
|
|
20
|
+
* Get position and velocity vectors for a celestial object
|
|
21
|
+
*
|
|
22
|
+
* @param objectName - Name or ID of the celestial object (e.g., 'Makemake', 'Mars', '699')
|
|
23
|
+
* @param options - Query options including date range and parameters
|
|
24
|
+
* @returns Promise resolving to parsed Horizons data
|
|
25
|
+
*/
|
|
26
|
+
async getObjectPosition(objectName, options) {
|
|
27
|
+
const objectId = this.resolveObjectId(objectName);
|
|
28
|
+
const url = this.buildUrl(objectId, options);
|
|
29
|
+
/**
|
|
30
|
+
* TODO: This will fail due to CORS
|
|
31
|
+
*/
|
|
32
|
+
const response = await fetch(url);
|
|
33
|
+
if (!response.ok) {
|
|
34
|
+
throw new Error(`Horizons API request failed: ${response.status} ${response.statusText}`);
|
|
35
|
+
}
|
|
36
|
+
const rawData = await response.text();
|
|
37
|
+
// Check for API errors in the response
|
|
38
|
+
if (rawData.includes('ERROR') || rawData.includes('No matches found')) {
|
|
39
|
+
throw new Error(`Horizons API error: Invalid object identifier or parameters`);
|
|
40
|
+
}
|
|
41
|
+
const vectors = this.parseVectorData(rawData, options.includeVelocity !== false);
|
|
42
|
+
return {
|
|
43
|
+
raw: rawData,
|
|
44
|
+
vectors,
|
|
45
|
+
objectId,
|
|
46
|
+
objectName: this.getObjectName(objectId),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get position vectors for multiple objects at once
|
|
51
|
+
*
|
|
52
|
+
* @param objectNames - Array of object names or IDs
|
|
53
|
+
* @param options - Query options (same for all objects)
|
|
54
|
+
* @returns Promise resolving to array of Horizons responses
|
|
55
|
+
*/
|
|
56
|
+
async getMultipleObjects(objectNames, options) {
|
|
57
|
+
const promises = objectNames.map(name => this.getObjectPosition(name, options));
|
|
58
|
+
return Promise.all(promises);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get current position of an object (right now)
|
|
62
|
+
*
|
|
63
|
+
* @param objectName - Name or ID of the celestial object
|
|
64
|
+
* @param center - Observer center (default: geocentric)
|
|
65
|
+
* @returns Promise resolving to current position data
|
|
66
|
+
*/
|
|
67
|
+
async getCurrentPosition(objectName, center = OBSERVER_CENTERS.Geocentric) {
|
|
68
|
+
const now = new Date();
|
|
69
|
+
const tomorrow = new Date(now);
|
|
70
|
+
tomorrow.setDate(tomorrow.getDate() + 1);
|
|
71
|
+
const response = await this.getObjectPosition(objectName, {
|
|
72
|
+
startDate: this.formatDate(now),
|
|
73
|
+
stopDate: this.formatDate(tomorrow),
|
|
74
|
+
stepSize: '1 day',
|
|
75
|
+
center,
|
|
76
|
+
});
|
|
77
|
+
return response.vectors[0];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Build the full API URL with all parameters
|
|
81
|
+
*/
|
|
82
|
+
buildUrl(objectId, options) {
|
|
83
|
+
const params = this.generateApiString({
|
|
84
|
+
format: 'text',
|
|
85
|
+
MAKE_EPHEM: 'YES',
|
|
86
|
+
COMMAND: `'${objectId}'`,
|
|
87
|
+
EPHEM_TYPE: "'VECTORS'",
|
|
88
|
+
CENTER: `'${options.center ?? OBSERVER_CENTERS.Geocentric}'`,
|
|
89
|
+
START_TIME: `'${options.startDate}'`,
|
|
90
|
+
STOP_TIME: `'${options.stopDate}'`,
|
|
91
|
+
STEP_SIZE: `'${options.stepSize ?? '1 day'}'`,
|
|
92
|
+
VEC_TABLE: options.includeVelocity !== false ? "'3'" : "'2'",
|
|
93
|
+
REF_SYSTEM: `'${options.refSystem ?? 'ICRF'}'`,
|
|
94
|
+
REF_PLANE: `'${options.refPlane ?? 'FRAME'}'`,
|
|
95
|
+
VEC_CORR: `'${options.vecCorr ?? 'NONE'}'`,
|
|
96
|
+
CAL_TYPE: "'M'",
|
|
97
|
+
OUT_UNITS: `'${options.outUnits ?? 'KM-S'}'`,
|
|
98
|
+
VEC_LABELS: "'NO'",
|
|
99
|
+
VEC_DELTA_T: "'NO'",
|
|
100
|
+
CSV_FORMAT: "'NO'",
|
|
101
|
+
OBJ_DATA: "'NO'",
|
|
102
|
+
});
|
|
103
|
+
return `${this.baseUrl}?${params}`;
|
|
104
|
+
}
|
|
105
|
+
generateApiString(input) {
|
|
106
|
+
// Create a string without using URLSearchParams
|
|
107
|
+
return Object.entries(input)
|
|
108
|
+
.map(([key, value]) => `${key}=${encodeURIComponent(value)}`)
|
|
109
|
+
.join('&');
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Resolve object name to Horizons ID
|
|
113
|
+
*/
|
|
114
|
+
resolveObjectId(nameOrId) {
|
|
115
|
+
// Check if it's already a numeric ID
|
|
116
|
+
if (/^\d+$/.test(nameOrId)) {
|
|
117
|
+
return nameOrId;
|
|
118
|
+
}
|
|
119
|
+
// Look up in the CELESTIAL_OBJECTS map (case-insensitive)
|
|
120
|
+
const normalizedName = nameOrId.charAt(0).toUpperCase() + nameOrId.slice(1).toLowerCase();
|
|
121
|
+
const objectId = CELESTIAL_OBJECTS[normalizedName];
|
|
122
|
+
if (objectId) {
|
|
123
|
+
return objectId;
|
|
124
|
+
}
|
|
125
|
+
// If not found, return the name as-is and let the API handle it
|
|
126
|
+
return nameOrId;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Get object name from ID
|
|
130
|
+
*/
|
|
131
|
+
getObjectName(objectId) {
|
|
132
|
+
const entry = Object.entries(CELESTIAL_OBJECTS).find(([_, id]) => id === objectId);
|
|
133
|
+
return entry?.[0];
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Format date to YYYY-MM-DD
|
|
137
|
+
*/
|
|
138
|
+
formatDate(date) {
|
|
139
|
+
return date.toISOString().split('T')[0];
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Parse vector data from the API response
|
|
143
|
+
*/
|
|
144
|
+
parseVectorData(rawData, includeVelocity = false) {
|
|
145
|
+
const vectors = [];
|
|
146
|
+
// Find the section between $$SOE (Start of Ephemeris) and $$EOE (End of Ephemeris)
|
|
147
|
+
const soeIndex = rawData.indexOf('$$SOE');
|
|
148
|
+
const eoeIndex = rawData.indexOf('$$EOE');
|
|
149
|
+
if (soeIndex === -1 || eoeIndex === -1) {
|
|
150
|
+
throw new Error('Could not find ephemeris data in response');
|
|
151
|
+
}
|
|
152
|
+
const ephemerisData = rawData.substring(soeIndex + 5, eoeIndex).trim();
|
|
153
|
+
const lines = ephemerisData.split('\n').filter(line => line.trim());
|
|
154
|
+
// Parse data in groups (each record can span multiple lines)
|
|
155
|
+
let i = 0;
|
|
156
|
+
while (i < lines.length) {
|
|
157
|
+
const line = lines[i].trim();
|
|
158
|
+
// Look for Julian Date line
|
|
159
|
+
if (RegExp(/^\d{7}\.\d+/).exec(line)) {
|
|
160
|
+
// const parts = line.split(/\s+/);
|
|
161
|
+
// const jd = parseFloat(parts[0]);
|
|
162
|
+
// Next line contains date
|
|
163
|
+
// i++;
|
|
164
|
+
const dateLine = lines[i]?.trim();
|
|
165
|
+
let date = NaN;
|
|
166
|
+
if (dateLine) {
|
|
167
|
+
// Match "1990-Jan-01 00:00:00.0000" (month as 3-letter name) and optional time
|
|
168
|
+
const m = RegExp(/(\d{4})-([A-Za-z]{3})-(\d{2})(?:\s+(\d{2}:\d{2}:\d{2}(?:\.\d+)?))?/).exec(dateLine);
|
|
169
|
+
if (m) {
|
|
170
|
+
const [, year, monStr, day, timePart] = m;
|
|
171
|
+
const months = {
|
|
172
|
+
jan: '01', feb: '02', mar: '03', apr: '04', may: '05', jun: '06',
|
|
173
|
+
jul: '07', aug: '08', sep: '09', oct: '10', nov: '11', dec: '12'
|
|
174
|
+
};
|
|
175
|
+
const mon = months[monStr.toLowerCase()] ?? '01';
|
|
176
|
+
const time = timePart ?? '00:00:00.0000';
|
|
177
|
+
// Build an ISO-like string and parse as UTC
|
|
178
|
+
const iso = `${year}-${mon}-${day}T${time}Z`;
|
|
179
|
+
date = new Date(iso).getTime();
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
// Fallback: try letting Date parse the line
|
|
183
|
+
const parsed = Date.parse(dateLine);
|
|
184
|
+
date = isNaN(parsed) ? NaN : parsed;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// Next line contains position X, Y, Z (labels) or plain three numbers
|
|
188
|
+
i++;
|
|
189
|
+
const posLine = lines[i]?.trim();
|
|
190
|
+
const posLabelRegex = /X\s*=\s*([-\d.E+]+)\s+Y\s*=\s*([-\d.E+]+)\s+Z\s*=\s*([-\d.E+]+)/;
|
|
191
|
+
const plainTripleRegex = /^([-\d.E+]+)\s+([-\d.E+]+)\s+([-\d.E+]+)/;
|
|
192
|
+
const posMatch = posLabelRegex.exec(posLine ?? '') || plainTripleRegex.exec(posLine ?? '');
|
|
193
|
+
let velocity;
|
|
194
|
+
if (includeVelocity) {
|
|
195
|
+
// Next line contains velocity VX, VY, VZ (labels) or plain three numbers
|
|
196
|
+
i++;
|
|
197
|
+
const velLine = lines[i]?.trim();
|
|
198
|
+
const velLabelRegex = /VX\s*=\s*([-\d.E+]+)\s+VY\s*=\s*([-\d.E+]+)\s+VZ\s*=\s*([-\d.E+]+)/;
|
|
199
|
+
const velMatch = velLabelRegex.exec(velLine ?? '') || plainTripleRegex.exec(velLine ?? '');
|
|
200
|
+
if (velMatch) {
|
|
201
|
+
velocity = [
|
|
202
|
+
parseFloat(velMatch[1]),
|
|
203
|
+
parseFloat(velMatch[2]),
|
|
204
|
+
parseFloat(velMatch[3])
|
|
205
|
+
];
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
if (posMatch && velocity) {
|
|
209
|
+
vectors.push([
|
|
210
|
+
date,
|
|
211
|
+
[
|
|
212
|
+
parseFloat(posMatch[1]),
|
|
213
|
+
parseFloat(posMatch[2]),
|
|
214
|
+
parseFloat(posMatch[3])
|
|
215
|
+
],
|
|
216
|
+
velocity,
|
|
217
|
+
]);
|
|
218
|
+
}
|
|
219
|
+
else if (posMatch) {
|
|
220
|
+
vectors.push([
|
|
221
|
+
date,
|
|
222
|
+
[
|
|
223
|
+
parseFloat(posMatch[1]),
|
|
224
|
+
parseFloat(posMatch[2]),
|
|
225
|
+
parseFloat(posMatch[3])
|
|
226
|
+
],
|
|
227
|
+
]);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
i++;
|
|
231
|
+
}
|
|
232
|
+
return vectors;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
// Convenience export for direct usage
|
|
236
|
+
export default HorizonsAPI;
|
|
237
|
+
//# sourceMappingURL=horizons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"horizons.js","sourceRoot":"","sources":["../../src/fetch/horizons.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import { J2000, Vector3D } from '../main
|
|
18
|
-
import { Force } from './Force
|
|
17
|
+
import { J2000, Vector3D } from '../main';
|
|
18
|
+
import { Force } from './Force';
|
|
19
19
|
/**
|
|
20
20
|
* Harris-Priester atmospheric drag force model.
|
|
21
21
|
* Atmospheric density model assumes mean solar flux.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import { DataHandler, DEG2RAD, Earth, ITRF, J2000, Sun, Vector3D, } from '../main
|
|
17
|
+
import { DataHandler, DEG2RAD, Earth, ITRF, J2000, Sun, Vector3D, } from '../main';
|
|
18
18
|
/**
|
|
19
19
|
* Harris-Priester atmospheric drag force model.
|
|
20
20
|
* Atmospheric density model assumes mean solar flux.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtmosphericDrag.js","sourceRoot":"","sources":["../../src/force/AtmosphericDrag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,WAAW,EACX,OAAO,EACP,KAAK,EACL,IAAI,EACJ,KAAK,EAIL,GAAG,EACH,QAAQ,GACT,MAAM,
|
|
1
|
+
{"version":3,"file":"AtmosphericDrag.js","sourceRoot":"","sources":["../../src/force/AtmosphericDrag.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import { J2000, Vector3D } from '../main
|
|
18
|
-
import { Force } from './Force
|
|
17
|
+
import { J2000, Vector3D } from '../main';
|
|
18
|
+
import { Force } from './Force';
|
|
19
19
|
/**
|
|
20
20
|
* designed to model the Earth's gravitational field, which is not uniformly distributed due to variations in mass
|
|
21
21
|
* distribution within the Earth and the Earth's shape (it's not a perfect sphere). To accurately model this complex
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import { DataHandler, Earth, ITRF, Vector3D } from '../main
|
|
17
|
+
import { DataHandler, Earth, ITRF, Vector3D } from '../main';
|
|
18
18
|
/**
|
|
19
19
|
* designed to model the Earth's gravitational field, which is not uniformly distributed due to variations in mass
|
|
20
20
|
* distribution within the Earth and the Earth's shape (it's not a perfect sphere). To accurately model this complex
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EarthGravity.js","sourceRoot":"","sources":["../../src/force/EarthGravity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAA0C,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"EarthGravity.js","sourceRoot":"","sources":["../../src/force/EarthGravity.ts"],"names":[],"mappings":"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"}
|
package/dist/force/Force.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import { J2000, Vector3D } from '../main
|
|
17
|
+
import { J2000, Vector3D } from '../main';
|
|
18
18
|
export declare abstract class Force {
|
|
19
19
|
/**
|
|
20
20
|
* Calculate the acceleration due to the perturbing force on a given
|
|
@@ -22,5 +22,5 @@ export declare abstract class Force {
|
|
|
22
22
|
* @param state The state vector.
|
|
23
23
|
* @throws If the force cannot be calculated.
|
|
24
24
|
*/
|
|
25
|
-
acceleration(state: J2000): Vector3D;
|
|
25
|
+
abstract acceleration(state: J2000): Vector3D;
|
|
26
26
|
}
|
package/dist/force/Force.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
@@ -18,14 +18,5 @@
|
|
|
18
18
|
/* eslint-disable class-methods-use-this */
|
|
19
19
|
// / Base class for perturbation forces.
|
|
20
20
|
export class Force {
|
|
21
|
-
/**
|
|
22
|
-
* Calculate the acceleration due to the perturbing force on a given
|
|
23
|
-
* state vector.
|
|
24
|
-
* @param state The state vector.
|
|
25
|
-
* @throws If the force cannot be calculated.
|
|
26
|
-
*/
|
|
27
|
-
acceleration(state) {
|
|
28
|
-
throw Error('Not implemented');
|
|
29
|
-
}
|
|
30
21
|
}
|
|
31
22
|
//# sourceMappingURL=Force.js.map
|
package/dist/force/Force.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Force.js","sourceRoot":"","sources":["../../src/force/Force.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,sDAAsD;AACtD,2CAA2C;AAE3C,wCAAwC;AACxC,MAAM,OAAgB,KAAK;
|
|
1
|
+
{"version":3,"file":"Force.js","sourceRoot":"","sources":["../../src/force/Force.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,sDAAsD;AACtD,2CAA2C;AAE3C,wCAAwC;AACxC,MAAM,OAAgB,KAAK;CAQ1B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import { J2000, Vector, Vector3D } from '../main
|
|
18
|
-
import { Thrust } from './Thrust
|
|
17
|
+
import { J2000, Vector, Vector3D } from '../main';
|
|
18
|
+
import { Thrust } from './Thrust';
|
|
19
19
|
export declare class ForceModel {
|
|
20
20
|
private _centralGravity?;
|
|
21
21
|
private _thirdBodyGravity?;
|
package/dist/force/ForceModel.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
@@ -14,12 +14,12 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import { Earth, Vector3D } from '../main
|
|
18
|
-
import { AtmosphericDrag } from './AtmosphericDrag
|
|
19
|
-
import { EarthGravity } from './EarthGravity
|
|
20
|
-
import { Gravity } from './Gravity
|
|
21
|
-
import { SolarRadiationPressure } from './SolarRadiationPressure
|
|
22
|
-
import { ThirdBodyGravity } from './ThirdBodyGravity
|
|
17
|
+
import { Earth, Vector3D } from '../main';
|
|
18
|
+
import { AtmosphericDrag } from './AtmosphericDrag';
|
|
19
|
+
import { EarthGravity } from './EarthGravity';
|
|
20
|
+
import { Gravity } from './Gravity';
|
|
21
|
+
import { SolarRadiationPressure } from './SolarRadiationPressure';
|
|
22
|
+
import { ThirdBodyGravity } from './ThirdBodyGravity';
|
|
23
23
|
// / Force model for spacecraft propagation.
|
|
24
24
|
export class ForceModel {
|
|
25
25
|
_centralGravity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForceModel.js","sourceRoot":"","sources":["../../src/force/ForceModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAiB,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ForceModel.js","sourceRoot":"","sources":["../../src/force/ForceModel.ts"],"names":[],"mappings":"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"}
|
package/dist/force/Gravity.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import { J2000, Vector3D } from '../main
|
|
18
|
-
import { Force } from './Force
|
|
17
|
+
import { J2000, Vector3D } from '../main';
|
|
18
|
+
import { Force } from './Force';
|
|
19
19
|
export declare class Gravity implements Force {
|
|
20
20
|
mu: number;
|
|
21
21
|
/**
|
package/dist/force/Gravity.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import { Earth } from '../main
|
|
17
|
+
import { Earth } from '../main';
|
|
18
18
|
// / Simple central-body gravity model.
|
|
19
19
|
export class Gravity {
|
|
20
20
|
// / Gravitational parameter _(km²/s³)_.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gravity.js","sourceRoot":"","sources":["../../src/force/Gravity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,
|
|
1
|
+
{"version":3,"file":"Gravity.js","sourceRoot":"","sources":["../../src/force/Gravity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,SAAS,CAAC;AAGjD,uCAAuC;AACvC,MAAM,OAAO,OAAO;IAClB,wCAAwC;IACxC,EAAE,CAAS;IAEX;;;OAGG;IACH,YAAY,KAAa,KAAK,CAAC,EAAE;QAC/B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;;;OAIG;IACK,UAAU,CAAC,KAAY;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAExC,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,KAAY;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import { J2000, Vector3D } from '../main
|
|
18
|
-
import { Force } from './Force
|
|
17
|
+
import { J2000, Vector3D } from '../main';
|
|
18
|
+
import { Force } from './Force';
|
|
19
19
|
export declare class SolarRadiationPressure extends Force {
|
|
20
20
|
mass: number;
|
|
21
21
|
area: number;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import {
|
|
18
|
-
import { Force } from './Force
|
|
17
|
+
import { KM_PER_AU, Sun } from '../main';
|
|
18
|
+
import { Force } from './Force';
|
|
19
19
|
// / Solar radiation pressure model.
|
|
20
20
|
export class SolarRadiationPressure extends Force {
|
|
21
21
|
mass;
|
|
@@ -29,7 +29,7 @@ export class SolarRadiationPressure extends Force {
|
|
|
29
29
|
this.reflectCoeff = reflectCoeff;
|
|
30
30
|
}
|
|
31
31
|
// / Solar pressure _(N/m²)_;
|
|
32
|
-
static _kRef = 4.56e-6 *
|
|
32
|
+
static _kRef = 4.56e-6 * KM_PER_AU ** 2;
|
|
33
33
|
acceleration(state) {
|
|
34
34
|
const rSun = Sun.positionApparent(state.epoch);
|
|
35
35
|
const r = state.position.subtract(rSun);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolarRadiationPressure.js","sourceRoot":"","sources":["../../src/force/SolarRadiationPressure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"SolarRadiationPressure.js","sourceRoot":"","sources":["../../src/force/SolarRadiationPressure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAS,SAAS,EAAE,GAAG,EAAY,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,oCAAoC;AACpC,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAE5B;IAAqB;IAAqB;IAD7D,kDAAkD;IAClD,YAAmB,IAAY,EAAS,IAAY,EAAS,YAAoB;QAC/E,KAAK,EAAE,CAAC;QADS,SAAI,GAAJ,IAAI,CAAQ;QAAS,SAAI,GAAJ,IAAI,CAAQ;QAAS,iBAAY,GAAZ,YAAY,CAAQ;IAEjF,CAAC;IAED,6BAA6B;IACrB,MAAM,CAAU,KAAK,GAAW,OAAO,GAAG,SAAS,IAAI,CAAC,CAAC;IAEjE,YAAY,CAAC,KAAY;QACvB,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAE/B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1E,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import { J2000, Vector3D } from '../main
|
|
18
|
-
import { Force } from './Force
|
|
17
|
+
import { J2000, Vector3D } from '../main';
|
|
18
|
+
import { Force } from './Force';
|
|
19
19
|
export declare class ThirdBodyGravity implements Force {
|
|
20
20
|
moon: boolean;
|
|
21
21
|
sun: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import { Moon, Sun, Vector3D } from '../main
|
|
17
|
+
import { Moon, Sun, Vector3D } from '../main';
|
|
18
18
|
// / Third-body gravity model.
|
|
19
19
|
export class ThirdBodyGravity {
|
|
20
20
|
moon;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThirdBodyGravity.js","sourceRoot":"","sources":["../../src/force/ThirdBodyGravity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAS,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ThirdBodyGravity.js","sourceRoot":"","sources":["../../src/force/ThirdBodyGravity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAS,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGrD,8BAA8B;AAC9B,MAAM,OAAO,gBAAgB;IAER;IAA8B;IADjD,6EAA6E;IAC7E,YAAmB,OAAgB,KAAK,EAAS,MAAe,KAAK;QAAlD,SAAI,GAAJ,IAAI,CAAiB;QAAS,QAAG,GAAH,GAAG,CAAiB;QACnE,sBAAsB;IACxB,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,KAAY;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC;QACnB,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAEhE,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,KAAY;QACrC,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAEhE,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,KAAY;QACvB,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAE7B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
package/dist/force/Thrust.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import { EpochUTC, J2000, KilometersPerSecond, MetersPerSecond, Seconds, SecondsPerMeterPerSecond, Vector3D } from '../main
|
|
18
|
-
import { Force } from './Force
|
|
17
|
+
import { EpochUTC, J2000, KilometersPerSecond, MetersPerSecond, Seconds, SecondsPerMeterPerSecond, Vector3D } from '../main';
|
|
18
|
+
import { Force } from './Force';
|
|
19
19
|
export declare class Thrust implements Force {
|
|
20
20
|
center: EpochUTC;
|
|
21
21
|
radial: MetersPerSecond;
|