ootk 5.0.0 → 5.1.1
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/CHANGELOG.md +42 -3
- package/README.md +59 -45
- package/dist/body/Celestial.d.ts +19 -19
- package/dist/body/Celestial.js +19 -19
- package/dist/body/Earth.d.ts +18 -18
- package/dist/body/Earth.js +18 -18
- package/dist/body/NutationAngles.d.ts +18 -18
- package/dist/body/NutationAngles.js +18 -18
- package/dist/body/PrecessionAngles.d.ts +18 -18
- package/dist/body/PrecessionAngles.js +18 -18
- package/dist/body/Sun.d.ts +14 -18
- package/dist/body/Sun.js +14 -18
- package/dist/body/Sun.js.map +1 -1
- package/dist/body/index.d.ts +18 -18
- package/dist/body/index.js +18 -18
- package/dist/coordinate/ClassicalElements.d.ts +21 -21
- package/dist/coordinate/ClassicalElements.js +20 -20
- package/dist/coordinate/ClassicalElements.js.map +1 -1
- package/dist/coordinate/EquinoctialElements.d.ts +20 -20
- package/dist/coordinate/EquinoctialElements.js +18 -18
- package/dist/coordinate/EquinoctialElements.js.map +1 -1
- package/dist/coordinate/FormatTle.d.ts +19 -19
- package/dist/coordinate/FormatTle.js +18 -18
- package/dist/coordinate/FormatTle.js.map +1 -1
- package/dist/coordinate/Geodetic.d.ts +18 -18
- package/dist/coordinate/Geodetic.js +18 -18
- package/dist/coordinate/Hill.d.ts +2 -2
- package/dist/coordinate/Hill.js +2 -2
- package/dist/coordinate/ITRF.d.ts +18 -18
- package/dist/coordinate/ITRF.js +19 -19
- package/dist/coordinate/ITRF.js.map +1 -1
- package/dist/coordinate/J2000.d.ts +18 -18
- package/dist/coordinate/J2000.js +18 -18
- package/dist/coordinate/J2000.js.map +1 -1
- package/dist/coordinate/RIC.d.ts +18 -18
- package/dist/coordinate/RIC.js +18 -18
- package/dist/coordinate/RelativeState.d.ts +18 -18
- package/dist/coordinate/RelativeState.js +18 -18
- package/dist/coordinate/StateVector.d.ts +19 -19
- package/dist/coordinate/StateVector.js +19 -19
- package/dist/coordinate/StateVector.js.map +1 -1
- package/dist/coordinate/TEME.d.ts +18 -18
- package/dist/coordinate/TEME.js +18 -18
- package/dist/coordinate/TEME.js.map +1 -1
- package/dist/coordinate/Tle.d.ts +22 -23
- package/dist/coordinate/Tle.js +22 -22
- package/dist/coordinate/Tle.js.map +1 -1
- package/dist/coordinate/index.js +0 -1
- package/dist/coordinate/index.js.map +1 -1
- package/dist/coordinate/tle-format-data.d.ts +18 -18
- package/dist/coordinate/tle-format-data.js +18 -18
- package/dist/covariance/CovarianceSample.d.ts +10 -7
- package/dist/covariance/CovarianceSample.js +93 -19
- 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/index.d.ts +2 -0
- package/dist/covariance/index.js +3 -0
- package/dist/covariance/index.js.map +1 -0
- package/dist/data/DataHandler.d.ts +18 -18
- package/dist/data/DataHandler.js +18 -18
- package/dist/data/values/Egm96Data.d.ts +18 -18
- package/dist/data/values/Egm96Data.js +18 -18
- package/dist/data/values/Egm96Data.js.map +1 -1
- package/dist/data/values/HpAtmosphereData.d.ts +18 -18
- package/dist/data/values/HpAtmosphereData.js +20 -20
- package/dist/data/values/HpAtmosphereData.js.map +1 -1
- package/dist/data/values/HpAtmosphereResult.d.ts +18 -18
- package/dist/data/values/HpAtmosphereResult.js +18 -18
- package/dist/data/values/Iau1980Data.d.ts +18 -18
- package/dist/data/values/Iau1980Data.js +18 -18
- package/dist/data/values/Iau1980Data.js.map +1 -1
- package/dist/data/values/LeapSecond.d.ts +18 -18
- package/dist/data/values/LeapSecond.js +18 -18
- package/dist/data/values/LeapSecondData.d.ts +18 -18
- package/dist/data/values/LeapSecondData.js +22 -22
- package/dist/data/values/LeapSecondData.js.map +1 -1
- package/dist/data/values/egm96.d.ts +18 -18
- package/dist/data/values/egm96.js +18 -18
- package/dist/data/values/hpAtmosphere.d.ts +18 -18
- package/dist/data/values/hpAtmosphere.js +18 -18
- package/dist/data/values/iau1980.d.ts +18 -18
- package/dist/data/values/iau1980.js +18 -18
- package/dist/enums/AngularDiameterMethod.d.ts +18 -18
- package/dist/enums/AngularDiameterMethod.js +18 -18
- package/dist/enums/AngularDistanceMethod.d.ts +18 -18
- package/dist/enums/AngularDistanceMethod.js +18 -18
- package/dist/enums/OrbitRegime.d.ts +18 -18
- package/dist/enums/OrbitRegime.js +18 -18
- package/dist/enums/PassType.d.ts +18 -18
- package/dist/enums/PassType.js +18 -18
- package/dist/enums/Sgp4OpsMode.d.ts +18 -18
- package/dist/enums/Sgp4OpsMode.js +18 -18
- package/dist/force/AtmosphericDrag.d.ts +2 -2
- package/dist/force/AtmosphericDrag.js +3 -6
- package/dist/force/AtmosphericDrag.js.map +1 -1
- package/dist/force/EarthGravity.d.ts +2 -2
- package/dist/force/EarthGravity.js +2 -2
- package/dist/force/Force.d.ts +2 -2
- package/dist/force/Force.js +2 -2
- package/dist/force/ForceModel.d.ts +2 -2
- package/dist/force/ForceModel.js +2 -2
- package/dist/force/Gravity.d.ts +2 -2
- package/dist/force/Gravity.js +2 -2
- package/dist/force/SolarRadiationPressure.d.ts +2 -2
- package/dist/force/SolarRadiationPressure.js +2 -2
- package/dist/force/ThirdBodyGravity.d.ts +2 -2
- package/dist/force/ThirdBodyGravity.js +2 -2
- package/dist/force/Thrust.d.ts +2 -2
- package/dist/force/Thrust.js +2 -2
- package/dist/interfaces/BaseObjectParams.d.ts +18 -18
- package/dist/interfaces/BaseObjectParams.js +18 -18
- package/dist/interfaces/ClassicalElementsParams.d.ts +18 -18
- package/dist/interfaces/ClassicalElementsParams.js +18 -18
- package/dist/interfaces/EquinoctialElementsParams.d.ts +18 -18
- package/dist/interfaces/EquinoctialElementsParams.js +18 -18
- package/dist/interfaces/GroundPositionParams.d.ts +18 -18
- package/dist/interfaces/GroundPositionParams.js +18 -18
- package/dist/interpolator/ChebyshevCoefficients.d.ts +5 -5
- package/dist/interpolator/ChebyshevCoefficients.js +2 -2
- package/dist/interpolator/ChebyshevCoefficients.js.map +1 -1
- package/dist/interpolator/ChebyshevInterpolator.d.ts +3 -3
- package/dist/interpolator/ChebyshevInterpolator.js +9 -9
- package/dist/interpolator/ChebyshevInterpolator.js.map +1 -1
- package/dist/interpolator/CubicSpline.d.ts +2 -2
- package/dist/interpolator/CubicSpline.js +2 -2
- package/dist/interpolator/CubicSplineInterpolator.d.ts +4 -4
- package/dist/interpolator/CubicSplineInterpolator.js +10 -10
- package/dist/interpolator/CubicSplineInterpolator.js.map +1 -1
- package/dist/interpolator/FieldInterpolator.d.ts +2 -2
- package/dist/interpolator/FieldInterpolator.js +2 -2
- package/dist/interpolator/Interpolator.d.ts +2 -2
- package/dist/interpolator/Interpolator.js +2 -2
- package/dist/interpolator/LagrangeInterpolator.d.ts +7 -7
- package/dist/interpolator/LagrangeInterpolator.js +2 -2
- package/dist/interpolator/LagrangeInterpolator.js.map +1 -1
- package/dist/interpolator/StateInterpolator.d.ts +2 -2
- package/dist/interpolator/StateInterpolator.js +2 -2
- package/dist/interpolator/VerletBlendInterpolator.d.ts +2 -2
- package/dist/interpolator/VerletBlendInterpolator.js +2 -2
- package/dist/main.d.ts +5 -3
- package/dist/main.js +5 -3
- 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 +3 -3
- package/dist/maneuver/Waypoint.js +3 -3
- package/dist/maneuver/Waypoint.js.map +1 -1
- package/dist/objects/BaseObject.d.ts +18 -18
- package/dist/objects/BaseObject.js +18 -18
- package/dist/objects/DetailedSatellite.d.ts +3 -3
- package/dist/objects/DetailedSatellite.js +7 -5
- package/dist/objects/DetailedSatellite.js.map +1 -1
- package/dist/objects/DetailedSensor.d.ts +4 -4
- package/dist/objects/DetailedSensor.js +2 -2
- package/dist/objects/DetailedSensor.js.map +1 -1
- package/dist/objects/GroundObject.d.ts +19 -19
- package/dist/objects/GroundObject.js +19 -19
- 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/Satellite.d.ts +19 -19
- package/dist/objects/Satellite.js +22 -22
- package/dist/objects/Satellite.js.map +1 -1
- package/dist/objects/Sensor.d.ts +19 -20
- package/dist/objects/Sensor.js +19 -20
- package/dist/objects/Sensor.js.map +1 -1
- package/dist/objects/Star.d.ts +18 -18
- package/dist/objects/Star.js +18 -18
- package/dist/observation/Observation.d.ts +2 -2
- package/dist/observation/Observation.js +2 -2
- package/dist/observation/ObservationOptical.d.ts +6 -6
- package/dist/observation/ObservationOptical.js +9 -9
- package/dist/observation/ObservationOptical.js.map +1 -1
- package/dist/observation/ObservationRadar.d.ts +6 -6
- package/dist/observation/ObservationRadar.js +9 -9
- package/dist/observation/ObservationRadar.js.map +1 -1
- package/dist/observation/ObservationUtils.d.ts +3 -3
- package/dist/observation/ObservationUtils.js +3 -3
- package/dist/observation/ObservationUtils.js.map +1 -1
- package/dist/observation/PropagatorPairs.d.ts +5 -5
- package/dist/observation/PropagatorPairs.js +8 -8
- package/dist/observation/PropagatorPairs.js.map +1 -1
- package/dist/observation/RAE.d.ts +18 -18
- package/dist/observation/RAE.js +18 -19
- package/dist/observation/RAE.js.map +1 -1
- package/dist/observation/RadecGeocentric.d.ts +19 -19
- package/dist/observation/RadecGeocentric.js +18 -18
- package/dist/observation/RadecGeocentric.js.map +1 -1
- package/dist/observation/RadecTopocentric.d.ts +19 -19
- package/dist/observation/RadecTopocentric.js +18 -18
- package/dist/observation/RadecTopocentric.js.map +1 -1
- package/dist/observation/index.d.ts +18 -18
- package/dist/observation/index.js +18 -18
- package/dist/operations/BoxMuller.d.ts +2 -2
- package/dist/operations/BoxMuller.js +2 -2
- package/dist/operations/EulerAngles.d.ts +2 -2
- package/dist/operations/EulerAngles.js +2 -2
- package/dist/operations/Matrix.d.ts +19 -19
- package/dist/operations/Matrix.js +64 -64
- package/dist/operations/Matrix.js.map +1 -1
- package/dist/operations/Quaternion.d.ts +7 -7
- package/dist/operations/Quaternion.js +2 -2
- package/dist/operations/Quaternion.js.map +1 -1
- package/dist/operations/Random.d.ts +18 -18
- package/dist/operations/Random.js +18 -18
- package/dist/operations/RandomGaussianSource.d.ts +3 -3
- package/dist/operations/RandomGaussianSource.js +5 -5
- package/dist/operations/RandomGaussianSource.js.map +1 -1
- package/dist/operations/Vector.d.ts +19 -19
- package/dist/operations/Vector.js +25 -25
- package/dist/operations/Vector.js.map +1 -1
- package/dist/operations/Vector3D.d.ts +18 -18
- package/dist/operations/Vector3D.js +18 -18
- package/dist/operations/operations.d.ts +18 -18
- package/dist/operations/operations.js +18 -18
- package/dist/optimize/ChebyshevCompressor.d.ts +4 -4
- package/dist/optimize/ChebyshevCompressor.js +8 -8
- 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/GoldenSection.d.ts +3 -3
- package/dist/optimize/GoldenSection.js +4 -4
- package/dist/optimize/PolynomialRegression.d.ts +2 -2
- package/dist/optimize/PolynomialRegression.js +2 -2
- package/dist/optimize/PolynomicalRegressionResult.d.ts +2 -2
- package/dist/optimize/PolynomicalRegressionResult.js +2 -2
- package/dist/optimize/SimpleLinearRegression.d.ts +2 -2
- package/dist/optimize/SimpleLinearRegression.js +2 -2
- package/dist/optimize/SimplexEntry.d.ts +5 -5
- package/dist/optimize/SimplexEntry.js +11 -11
- package/dist/optimize/SimplexEntry.js.map +1 -1
- package/dist/orbit_determination/BatchLeastSquaresOD.d.ts +11 -11
- package/dist/orbit_determination/BatchLeastSquaresOD.js +2 -2
- package/dist/orbit_determination/BatchLeastSquaresOD.js.map +1 -1
- package/dist/orbit_determination/BatchLeastSquaresResult.d.ts +2 -2
- package/dist/orbit_determination/BatchLeastSquaresResult.js +2 -2
- package/dist/orbit_determination/GibbsIOD.d.ts +2 -2
- package/dist/orbit_determination/GibbsIOD.js +2 -2
- package/dist/orbit_determination/GoodingIOD.d.ts +2 -2
- package/dist/orbit_determination/GoodingIOD.js +3 -3
- 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/LambertIOD.d.ts +2 -2
- package/dist/orbit_determination/LambertIOD.js +2 -2
- package/dist/orbit_determination/ModifiedGoodingIOD.d.ts +4 -4
- package/dist/orbit_determination/ModifiedGoodingIOD.js +3 -3
- package/dist/orbit_determination/ModifiedGoodingIOD.js.map +1 -1
- package/dist/propagator/DormandPrince54Propagator.d.ts +6 -6
- package/dist/propagator/DormandPrince54Propagator.js +10 -10
- package/dist/propagator/DormandPrince54Propagator.js.map +1 -1
- package/dist/propagator/KeplerPropagator.d.ts +7 -7
- package/dist/propagator/KeplerPropagator.js +32 -32
- package/dist/propagator/KeplerPropagator.js.map +1 -1
- package/dist/propagator/Propagator.d.ts +3 -3
- package/dist/propagator/Propagator.js +3 -3
- package/dist/propagator/Propagator.js.map +1 -1
- package/dist/propagator/RkCheckpoint.d.ts +2 -2
- package/dist/propagator/RkCheckpoint.js +2 -2
- package/dist/propagator/RkResult.d.ts +2 -2
- package/dist/propagator/RkResult.js +2 -2
- package/dist/propagator/RungeKutta4Propagator.d.ts +4 -4
- package/dist/propagator/RungeKutta4Propagator.js +3 -3
- package/dist/propagator/RungeKutta4Propagator.js.map +1 -1
- package/dist/propagator/RungeKutta89Propagator.d.ts +6 -6
- package/dist/propagator/RungeKutta89Propagator.js +2 -2
- package/dist/propagator/RungeKutta89Propagator.js.map +1 -1
- package/dist/propagator/RungeKuttaAdaptive.d.ts +5 -5
- package/dist/propagator/RungeKuttaAdaptive.js +3 -3
- package/dist/propagator/RungeKuttaAdaptive.js.map +1 -1
- package/dist/propagator/Sgp4Propagator.d.ts +7 -7
- package/dist/propagator/Sgp4Propagator.js +16 -16
- package/dist/propagator/Sgp4Propagator.js.map +1 -1
- package/dist/sgp4/index.d.ts +18 -18
- package/dist/sgp4/index.js +18 -18
- package/dist/sgp4/sgp4.d.ts +18 -21
- package/dist/sgp4/sgp4.js +27 -24
- package/dist/sgp4/sgp4.js.map +1 -1
- package/dist/smoothing/ExponentialSmoothing.d.ts +2 -2
- package/dist/smoothing/ExponentialSmoothing.js +2 -2
- package/dist/time/Epoch.d.ts +18 -18
- package/dist/time/Epoch.js +18 -18
- package/dist/time/EpochGPS.d.ts +19 -19
- package/dist/time/EpochGPS.js +19 -19
- package/dist/time/EpochGPS.js.map +1 -1
- package/dist/time/EpochTAI.d.ts +18 -18
- package/dist/time/EpochTAI.js +18 -18
- package/dist/time/EpochTDB.d.ts +18 -18
- package/dist/time/EpochTDB.js +18 -18
- package/dist/time/EpochTT.d.ts +18 -18
- package/dist/time/EpochTT.js +18 -18
- package/dist/time/EpochUTC.d.ts +18 -18
- package/dist/time/EpochUTC.js +18 -18
- package/dist/time/EpochUTC.js.map +1 -1
- package/dist/time/EpochWindow.d.ts +18 -18
- package/dist/time/EpochWindow.js +18 -18
- package/dist/time/TimeStamped.d.ts +18 -22
- package/dist/time/TimeStamped.js +18 -22
- package/dist/time/TimeStamped.js.map +1 -1
- package/dist/time/index.d.ts +0 -22
- package/dist/time/index.js +0 -22
- package/dist/time/index.js.map +1 -1
- package/dist/transforms/TransformCache.d.ts +18 -18
- package/dist/transforms/TransformCache.js +18 -18
- package/dist/transforms/conversions.d.ts +18 -18
- package/dist/transforms/conversions.js +18 -18
- package/dist/types/types.d.ts +2 -2
- package/dist/types/types.js +1 -1
- package/dist/utils/create-covariance-from-tle.d.ts +18 -0
- package/dist/utils/create-covariance-from-tle.js +57 -0
- package/dist/utils/create-covariance-from-tle.js.map +1 -0
- package/dist/utils/functions.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/jacobian.d.ts +6 -0
- package/dist/utils/jacobian.js +6 -1
- package/dist/utils/jacobian.js.map +1 -1
- package/package.json +1 -2
- package/src/body/Celestial.ts +19 -19
- package/src/body/Earth.ts +18 -18
- package/src/body/NutationAngles.ts +18 -18
- package/src/body/PrecessionAngles.ts +18 -18
- package/src/body/Sun.ts +14 -18
- package/src/body/index.ts +19 -18
- package/src/coordinate/ClassicalElements.ts +28 -22
- package/src/coordinate/EquinoctialElements.ts +20 -20
- package/src/coordinate/FormatTle.ts +19 -19
- package/src/coordinate/Geodetic.ts +18 -18
- package/src/coordinate/Hill.ts +2 -2
- package/src/coordinate/ITRF.ts +19 -19
- package/src/coordinate/J2000.ts +19 -19
- package/src/coordinate/RIC.ts +18 -18
- package/src/coordinate/RelativeState.ts +18 -18
- package/src/coordinate/StateVector.ts +26 -20
- package/src/coordinate/TEME.ts +19 -19
- package/src/coordinate/Tle.ts +27 -27
- package/src/coordinate/index.ts +0 -1
- package/src/coordinate/tle-format-data.ts +18 -18
- package/src/covariance/CovarianceSample.ts +119 -21
- package/src/covariance/StateCovariance.ts +2 -2
- package/src/covariance/index.ts +2 -0
- package/src/data/DataHandler.ts +18 -18
- package/src/data/values/Egm96Data.ts +19 -19
- package/src/data/values/HpAtmosphereData.ts +21 -21
- package/src/data/values/HpAtmosphereResult.ts +18 -18
- package/src/data/values/Iau1980Data.ts +19 -19
- package/src/data/values/LeapSecond.ts +18 -18
- package/src/data/values/LeapSecondData.ts +24 -24
- package/src/data/values/egm96.ts +18 -18
- package/src/data/values/hpAtmosphere.ts +18 -18
- package/src/data/values/iau1980.ts +18 -18
- package/src/enums/AngularDiameterMethod.ts +18 -18
- package/src/enums/AngularDistanceMethod.ts +18 -18
- package/src/enums/OrbitRegime.ts +18 -18
- package/src/enums/PassType.ts +18 -18
- package/src/enums/Sgp4OpsMode.ts +18 -18
- package/src/force/AtmosphericDrag.ts +2 -4
- package/src/force/EarthGravity.ts +2 -2
- package/src/force/Force.ts +2 -2
- package/src/force/ForceModel.ts +2 -2
- package/src/force/Gravity.ts +2 -2
- package/src/force/SolarRadiationPressure.ts +2 -2
- package/src/force/ThirdBodyGravity.ts +2 -2
- package/src/force/Thrust.ts +2 -2
- package/src/interfaces/BaseObjectParams.ts +18 -18
- package/src/interfaces/ClassicalElementsParams.ts +18 -18
- package/src/interfaces/EquinoctialElementsParams.ts +18 -18
- package/src/interfaces/GroundPositionParams.ts +18 -18
- package/src/interpolator/ChebyshevCoefficients.ts +5 -5
- package/src/interpolator/ChebyshevInterpolator.ts +10 -10
- package/src/interpolator/CubicSpline.ts +2 -2
- package/src/interpolator/CubicSplineInterpolator.ts +8 -8
- package/src/interpolator/FieldInterpolator.ts +2 -2
- package/src/interpolator/Interpolator.ts +2 -2
- package/src/interpolator/LagrangeInterpolator.ts +7 -7
- package/src/interpolator/StateInterpolator.ts +2 -2
- package/src/interpolator/VerletBlendInterpolator.ts +2 -2
- package/src/main.ts +24 -3
- package/src/maneuver/TwoBurnOrbitTransfer.ts +3 -3
- package/src/maneuver/Waypoint.ts +4 -4
- package/src/objects/BaseObject.ts +18 -18
- package/src/objects/DetailedSatellite.ts +9 -8
- package/src/objects/DetailedSensor.ts +4 -4
- package/src/objects/GroundObject.ts +23 -23
- package/src/objects/LandObject.ts +3 -3
- package/src/objects/Marker.ts +2 -2
- package/src/objects/Satellite.ts +24 -24
- package/src/objects/Sensor.ts +19 -20
- package/src/objects/Star.ts +18 -18
- package/src/observation/Observation.ts +2 -2
- package/src/observation/ObservationOptical.ts +7 -7
- package/src/observation/ObservationRadar.ts +10 -6
- package/src/observation/ObservationUtils.ts +3 -3
- package/src/observation/PropagatorPairs.ts +4 -4
- package/src/observation/RAE.ts +18 -19
- package/src/observation/RadecGeocentric.ts +19 -19
- package/src/observation/RadecTopocentric.ts +19 -19
- package/src/observation/index.ts +19 -18
- package/src/operations/BoxMuller.ts +2 -2
- package/src/operations/EulerAngles.ts +2 -2
- package/src/operations/Matrix.ts +67 -67
- package/src/operations/Quaternion.ts +7 -7
- package/src/operations/Random.ts +18 -18
- package/src/operations/RandomGaussianSource.ts +5 -5
- package/src/operations/Vector.ts +25 -25
- package/src/operations/Vector3D.ts +18 -18
- package/src/operations/operations.ts +19 -18
- package/src/optimize/ChebyshevCompressor.ts +7 -7
- package/src/optimize/DownhillSimplex.ts +2 -2
- package/src/optimize/GoldenSection.ts +4 -4
- package/src/optimize/PolynomialRegression.ts +2 -2
- package/src/optimize/PolynomicalRegressionResult.ts +2 -2
- package/src/optimize/SimpleLinearRegression.ts +2 -2
- package/src/optimize/SimplexEntry.ts +9 -9
- package/src/orbit_determination/BatchLeastSquaresOD.ts +11 -11
- package/src/orbit_determination/BatchLeastSquaresResult.ts +2 -2
- package/src/orbit_determination/GibbsIOD.ts +2 -2
- package/src/orbit_determination/GoodingIOD.ts +3 -3
- package/src/orbit_determination/HerrickGibbsIOD.ts +2 -2
- package/src/orbit_determination/LambertIOD.ts +2 -2
- package/src/orbit_determination/ModifiedGoodingIOD.ts +5 -5
- package/src/propagator/DormandPrince54Propagator.ts +10 -10
- package/src/propagator/KeplerPropagator.ts +32 -32
- package/src/propagator/Propagator.ts +3 -3
- package/src/propagator/RkCheckpoint.ts +2 -2
- package/src/propagator/RkResult.ts +2 -2
- package/src/propagator/RungeKutta4Propagator.ts +4 -4
- package/src/propagator/RungeKutta89Propagator.ts +6 -6
- package/src/propagator/RungeKuttaAdaptive.ts +6 -6
- package/src/propagator/Sgp4Propagator.ts +15 -15
- package/src/sgp4/index.ts +19 -18
- package/src/sgp4/sgp4.LICENSE.md +2 -2
- package/src/sgp4/sgp4.ts +22 -25
- package/src/smoothing/ExponentialSmoothing.ts +2 -2
- package/src/time/Epoch.ts +18 -18
- package/src/time/EpochGPS.ts +21 -21
- package/src/time/EpochTAI.ts +18 -18
- package/src/time/EpochTDB.ts +18 -18
- package/src/time/EpochTT.ts +18 -18
- package/src/time/EpochUTC.ts +20 -20
- package/src/time/EpochWindow.ts +18 -18
- package/src/time/TimeStamped.ts +18 -22
- package/src/time/index.ts +0 -23
- package/src/transforms/TransformCache.ts +18 -18
- package/src/transforms/conversions.ts +18 -18
- package/src/types/types.ts +2 -2
- package/src/utils/create-covariance-from-tle.ts +75 -0
- package/src/utils/functions.ts +3 -3
- package/src/utils/index.ts +1 -0
- package/src/utils/jacobian.ts +6 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
|
-
* @copyright (c)
|
|
4
|
+
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
6
6
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
7
7
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
/* eslint-disable class-methods-use-this */
|
|
19
|
+
import { ForceModel } from '../force/ForceModel.js';
|
|
20
|
+
import { Thrust } from '../force/Thrust.js';
|
|
19
21
|
import {
|
|
20
22
|
Epoch,
|
|
21
23
|
EpochUTC,
|
|
@@ -23,21 +25,21 @@ import {
|
|
|
23
25
|
Kilometers,
|
|
24
26
|
KilometersPerSecond,
|
|
25
27
|
Matrix,
|
|
28
|
+
OrbitRegime,
|
|
26
29
|
RelativeState,
|
|
27
30
|
RIC,
|
|
31
|
+
Tle, Vec3Flat,
|
|
28
32
|
Vector,
|
|
29
33
|
Vector3D,
|
|
30
34
|
} from '../main.js';
|
|
31
|
-
import { ForceModel } from '../force/ForceModel.js';
|
|
32
|
-
import { Thrust } from '../force/Thrust.js';
|
|
33
35
|
import { RungeKutta89Propagator } from '../propagator/RungeKutta89Propagator.js';
|
|
34
36
|
import { CovarianceFrame, StateCovariance } from './StateCovariance.js';
|
|
35
37
|
|
|
36
38
|
// / Sigma point covariance sample.
|
|
37
39
|
export class CovarianceSample {
|
|
38
|
-
private
|
|
39
|
-
private
|
|
40
|
-
private matrix_ = Matrix.zero(6, 12);
|
|
40
|
+
private readonly origin_: RungeKutta89Propagator;
|
|
41
|
+
private readonly samples_: RungeKutta89Propagator[] = [];
|
|
42
|
+
private readonly matrix_ = Matrix.zero(6, 12);
|
|
41
43
|
|
|
42
44
|
/**
|
|
43
45
|
* Create a new [CovarianceSample] object from an inertial state, covariance
|
|
@@ -46,19 +48,45 @@ export class CovarianceSample {
|
|
|
46
48
|
* Two-body physics will be used if a force model is not provided.
|
|
47
49
|
* @param state The origin state.
|
|
48
50
|
* @param covariance The covariance.
|
|
51
|
+
* @param tle The TLE object.
|
|
49
52
|
* @param originForceModel The force model for the origin state.
|
|
50
53
|
* @param sampleForceModel The force model for the samples.
|
|
51
54
|
*/
|
|
52
|
-
constructor(
|
|
55
|
+
constructor(
|
|
56
|
+
state: J2000, covariance: StateCovariance, tle?: Tle, originForceModel?: ForceModel, sampleForceModel?: ForceModel,
|
|
57
|
+
) {
|
|
53
58
|
originForceModel ??= new ForceModel().setGravity();
|
|
54
59
|
sampleForceModel ??= new ForceModel().setGravity();
|
|
55
|
-
|
|
60
|
+
|
|
61
|
+
// Scale covariance using TLE quality and regime aging factor if TLE info is provided
|
|
62
|
+
let scale = [1, 1, 1];
|
|
63
|
+
|
|
64
|
+
if (tle) {
|
|
65
|
+
const tleAgeDays = Tle.calcElsetAge(tle.line1, new Date(), 'days');
|
|
66
|
+
|
|
67
|
+
const quality = this.evaluateTleQuality(tle);
|
|
68
|
+
const aging = this.getRegimeAgingFactor(tle, tleAgeDays);
|
|
69
|
+
|
|
70
|
+
scale = [
|
|
71
|
+
quality[0] * aging[0],
|
|
72
|
+
quality[1] * aging[1],
|
|
73
|
+
quality[2] * aging[2],
|
|
74
|
+
];
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
this.origin_ = new RungeKutta89Propagator(state, originForceModel);
|
|
56
78
|
const s = covariance.matrix.cholesky().elements;
|
|
57
79
|
const sqrt6 = Math.sqrt(6.0);
|
|
58
80
|
|
|
59
81
|
for (let i = 0; i < 6; i++) {
|
|
60
82
|
for (let j = 0; j < 6; j++) {
|
|
61
|
-
|
|
83
|
+
/*
|
|
84
|
+
* Apply scale[0] to R, scale[1] to I, scale[2] to C (x, y, z)
|
|
85
|
+
* Position: i = 0,1,2; Velocity: i = 3,4,5
|
|
86
|
+
*/
|
|
87
|
+
const scaleIdx = i % 3;
|
|
88
|
+
|
|
89
|
+
s[i][j] *= sqrt6 * scale[scaleIdx];
|
|
62
90
|
}
|
|
63
91
|
}
|
|
64
92
|
|
|
@@ -92,23 +120,23 @@ export class CovarianceSample {
|
|
|
92
120
|
if (covariance.frame === CovarianceFrame.ECI) {
|
|
93
121
|
const sample = new J2000(state.epoch, state.position.add(sampleR), state.velocity.add(sampleV));
|
|
94
122
|
|
|
95
|
-
this.
|
|
123
|
+
this.samples_.push(new RungeKutta89Propagator(sample, sampleForceModel));
|
|
96
124
|
} else if (covariance.frame === CovarianceFrame.RIC) {
|
|
97
125
|
const sample = new RIC(sampleR, sampleV).toJ2000(state);
|
|
98
126
|
|
|
99
|
-
this.
|
|
127
|
+
this.samples_.push(new RungeKutta89Propagator(sample, sampleForceModel));
|
|
100
128
|
}
|
|
101
129
|
}
|
|
102
130
|
}
|
|
103
131
|
|
|
104
132
|
// / Current covariance sample epoch.
|
|
105
133
|
get epoch(): Epoch {
|
|
106
|
-
return this.
|
|
134
|
+
return this.origin_.state.epoch;
|
|
107
135
|
}
|
|
108
136
|
|
|
109
137
|
// / Current covariance sample origin state.
|
|
110
138
|
get state(): J2000 {
|
|
111
|
-
return this.
|
|
139
|
+
return this.origin_.state;
|
|
112
140
|
}
|
|
113
141
|
|
|
114
142
|
// / Rebuild covariance from sigma points.
|
|
@@ -142,16 +170,16 @@ export class CovarianceSample {
|
|
|
142
170
|
|
|
143
171
|
// / Propagate covariance to a new epoch.
|
|
144
172
|
propagate(epoch: EpochUTC): void {
|
|
145
|
-
this.
|
|
146
|
-
for (const sample of this.
|
|
173
|
+
this.origin_.propagate(epoch);
|
|
174
|
+
for (const sample of this.samples_) {
|
|
147
175
|
sample.propagate(epoch);
|
|
148
176
|
}
|
|
149
177
|
}
|
|
150
178
|
|
|
151
179
|
// / Apply a maneuver to this covariance.
|
|
152
180
|
maneuver(maneuver: Thrust): void {
|
|
153
|
-
this.
|
|
154
|
-
for (const sample of this.
|
|
181
|
+
this.origin_.maneuver(maneuver);
|
|
182
|
+
for (const sample of this.samples_) {
|
|
155
183
|
sample.maneuver(maneuver);
|
|
156
184
|
}
|
|
157
185
|
}
|
|
@@ -159,7 +187,7 @@ export class CovarianceSample {
|
|
|
159
187
|
// / Desample covariance in J2000 frame.
|
|
160
188
|
desampleJ2000(): StateCovariance {
|
|
161
189
|
for (let i = 0; i < 12; i++) {
|
|
162
|
-
const state = this.
|
|
190
|
+
const state = this.samples_[i].state;
|
|
163
191
|
|
|
164
192
|
this.matrix_.elements[0][i] = state.position.x;
|
|
165
193
|
this.matrix_.elements[1][i] = state.position.y;
|
|
@@ -175,10 +203,10 @@ export class CovarianceSample {
|
|
|
175
203
|
|
|
176
204
|
// / Desample covariance in RIC frame.
|
|
177
205
|
desampleRIC(): StateCovariance {
|
|
178
|
-
const rot = RelativeState.createMatrix(this.
|
|
206
|
+
const rot = RelativeState.createMatrix(this.origin_.state.position, this.origin_.state.velocity);
|
|
179
207
|
|
|
180
208
|
for (let i = 0; i < 12; i++) {
|
|
181
|
-
const state = RIC.fromJ2000Matrix(this.
|
|
209
|
+
const state = RIC.fromJ2000Matrix(this.samples_[i].state, this.origin_.state, rot);
|
|
182
210
|
|
|
183
211
|
this.matrix_.elements[0][i] = state.position.x;
|
|
184
212
|
this.matrix_.elements[1][i] = state.position.y;
|
|
@@ -191,4 +219,74 @@ export class CovarianceSample {
|
|
|
191
219
|
|
|
192
220
|
return new StateCovariance(matrix, CovarianceFrame.RIC);
|
|
193
221
|
}
|
|
222
|
+
|
|
223
|
+
evaluateTleQuality(tle: Tle): Vec3Flat {
|
|
224
|
+
let c = 1,
|
|
225
|
+
i = 1,
|
|
226
|
+
r = 1; // start with nominal 120 / 1000 / 100 m
|
|
227
|
+
|
|
228
|
+
/* ---- Mean–motion first derivative (rev/day²) ---- */
|
|
229
|
+
const mm1 = Math.abs(Tle.meanMoDev1(tle.line1));
|
|
230
|
+
|
|
231
|
+
if (mm1 > 1e-3) { // clear manoeuvre or very low-drag orbit
|
|
232
|
+
i *= 3.0;
|
|
233
|
+
r *= 2.0;
|
|
234
|
+
c *= 1.2;
|
|
235
|
+
} else if (mm1 > 1e-5) { // high drag but likely passive
|
|
236
|
+
i *= 1.6;
|
|
237
|
+
r *= 1.3;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/* ---- BSTAR drag term ---- */
|
|
241
|
+
const bstar = Math.abs(Tle.bstar(tle.line1));
|
|
242
|
+
|
|
243
|
+
if (bstar > 5e-4) { // <≈400 km LEO
|
|
244
|
+
i *= 1.5;
|
|
245
|
+
r *= 1.5;
|
|
246
|
+
c *= 1.1;
|
|
247
|
+
} else if (bstar > 1e-4) { // 400–600 km
|
|
248
|
+
i *= 1.2;
|
|
249
|
+
r *= 1.2;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/* ---- Eccentricity ---- */
|
|
253
|
+
const e = tle.eccentricity;
|
|
254
|
+
|
|
255
|
+
if (e > 0.05) { // HEO, GTO, cubesat transfer, etc.
|
|
256
|
+
r *= 1 + 6 * e;
|
|
257
|
+
i *= 1 + 4 * e;
|
|
258
|
+
c *= 1 + 1 * e;
|
|
259
|
+
} else if (e > 0.02) { // mildly elliptical LEO/MEO
|
|
260
|
+
r *= 1 + 3 * e;
|
|
261
|
+
i *= 1 + 2 * e;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
return [r, i, c];
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
getRegimeAgingFactor(tle: Tle, ageDays: number): Vec3Flat {
|
|
268
|
+
const regime = tle.state.toClassicalElements().getOrbitRegime();
|
|
269
|
+
const t = Math.max(ageDays, 0) ** 1.5; // non-linear growth
|
|
270
|
+
|
|
271
|
+
switch (regime) {
|
|
272
|
+
|
|
273
|
+
case OrbitRegime.LEO:
|
|
274
|
+
// Target ~×2 (R), ×3 (I), ×2.2 (C) after 1 day
|
|
275
|
+
return [1 + 1.0 * t, 1 + 2.0 * t, 1 + 1.2 * t];
|
|
276
|
+
|
|
277
|
+
case OrbitRegime.MEO:
|
|
278
|
+
// GNSS shells – slower growth
|
|
279
|
+
return [1 + 0.4 * t, 1 + 0.9 * t, 1 + 0.6 * t];
|
|
280
|
+
|
|
281
|
+
case OrbitRegime.GEO:
|
|
282
|
+
return [1 + 0.2 * t, 1 + 0.5 * t, 1 + 0.3 * t];
|
|
283
|
+
|
|
284
|
+
case OrbitRegime.HEO:
|
|
285
|
+
// Highly elliptical transfer or Molniya
|
|
286
|
+
return [1 + 1.2 * t, 1 + 2.4 * t, 1 + 1.4 * t];
|
|
287
|
+
|
|
288
|
+
default:
|
|
289
|
+
return [1 + 0.6 * t, 1 + 1.2 * t, 1 + 0.8 * t];
|
|
290
|
+
}
|
|
291
|
+
}
|
|
194
292
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
3
|
* @license AGPL-3.0-or-later
|
|
4
|
-
* @copyright (c)
|
|
4
|
+
* @copyright (c) 2025 Kruczek Labs LLC
|
|
5
5
|
*
|
|
6
6
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
7
7
|
* terms of the GNU Affero General Public License as published by the Free Software
|
package/src/data/DataHandler.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author Theodore Kruczek
|
|
3
|
-
* @
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Software without restriction, including without limitation the rights to use,
|
|
8
|
-
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
-
* the Software, and to permit persons to whom the Software is furnished to do
|
|
10
|
-
* so, subject to the following conditions:
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
|
+
* @description Orbital Object ToolKit (ootk) is a collection of tools for working
|
|
4
|
+
* with satellites and other orbital objects.
|
|
5
|
+
* @license AGPL-3.0-or-later
|
|
6
|
+
* @copyright (c) 2025 Kruczek Labs LLC
|
|
11
7
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
8
|
+
* Many of the classes are based off of the work of @david-rc-dayton and his
|
|
9
|
+
* Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which
|
|
10
|
+
* is licensed under the MIT license.
|
|
14
11
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
12
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
14
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
17
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
18
|
+
* See the GNU Affero General Public License for more details.
|
|
19
|
+
*
|
|
20
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
21
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
import { egm96Data, Egm96Entry } from './values/Egm96Data.js';
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author Theodore Kruczek
|
|
3
|
-
* @
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Software without restriction, including without limitation the rights to use,
|
|
8
|
-
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
-
* the Software, and to permit persons to whom the Software is furnished to do
|
|
10
|
-
* so, subject to the following conditions:
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
|
+
* @description Orbital Object ToolKit (ootk) is a collection of tools for working
|
|
4
|
+
* with satellites and other orbital objects.
|
|
5
|
+
* @license AGPL-3.0-or-later
|
|
6
|
+
* @copyright (c) 2025 Kruczek Labs LLC
|
|
11
7
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
8
|
+
* Many of the classes are based off of the work of @david-rc-dayton and his
|
|
9
|
+
* Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which
|
|
10
|
+
* is licensed under the MIT license.
|
|
14
11
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
12
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
14
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
17
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
18
|
+
* See the GNU Affero General Public License for more details.
|
|
19
|
+
*
|
|
20
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
21
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
import { factorial } from '../../utils/functions.js';
|
|
@@ -62,7 +62,7 @@ export class Egm96Data {
|
|
|
62
62
|
|
|
63
63
|
// / Return de-normalized EGM-96 coefficients for a given [l] and [m] index.
|
|
64
64
|
getCoeffs(l: number, m: number): Egm96Entry {
|
|
65
|
-
return this.coeffs_[Egm96Data.index_(l, m)]
|
|
65
|
+
return this.coeffs_[Egm96Data.index_(l, m)];
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
// / Return the EGM-96 index for a given [l] and [m] lookup.
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author Theodore Kruczek
|
|
3
|
-
* @
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Software without restriction, including without limitation the rights to use,
|
|
8
|
-
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
-
* the Software, and to permit persons to whom the Software is furnished to do
|
|
10
|
-
* so, subject to the following conditions:
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
|
+
* @description Orbital Object ToolKit (ootk) is a collection of tools for working
|
|
4
|
+
* with satellites and other orbital objects.
|
|
5
|
+
* @license AGPL-3.0-or-later
|
|
6
|
+
* @copyright (c) 2025 Kruczek Labs LLC
|
|
11
7
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
8
|
+
* Many of the classes are based off of the work of @david-rc-dayton and his
|
|
9
|
+
* Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which
|
|
10
|
+
* is licensed under the MIT license.
|
|
14
11
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
12
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
14
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
17
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
18
|
+
* See the GNU Affero General Public License for more details.
|
|
19
|
+
*
|
|
20
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
21
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
import { hpAtmosphere } from './hpAtmosphere.js';
|
|
@@ -61,14 +61,14 @@ export class HpAtmosphereData {
|
|
|
61
61
|
}
|
|
62
62
|
let index = 0;
|
|
63
63
|
|
|
64
|
-
while (index < this.table_.length - 2 && height > (this.table_[index + 1]
|
|
64
|
+
while (index < this.table_.length - 2 && height > (this.table_[index + 1])[0]) {
|
|
65
65
|
index++;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
return new HpAtmosphereResult(
|
|
69
69
|
height,
|
|
70
|
-
(this.table_[index]
|
|
71
|
-
(this.table_[index + 1]
|
|
70
|
+
(this.table_[index]),
|
|
71
|
+
(this.table_[index + 1]),
|
|
72
72
|
);
|
|
73
73
|
}
|
|
74
74
|
}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author Theodore Kruczek
|
|
3
|
-
* @
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Software without restriction, including without limitation the rights to use,
|
|
8
|
-
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
-
* the Software, and to permit persons to whom the Software is furnished to do
|
|
10
|
-
* so, subject to the following conditions:
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
|
+
* @description Orbital Object ToolKit (ootk) is a collection of tools for working
|
|
4
|
+
* with satellites and other orbital objects.
|
|
5
|
+
* @license AGPL-3.0-or-later
|
|
6
|
+
* @copyright (c) 2025 Kruczek Labs LLC
|
|
11
7
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
8
|
+
* Many of the classes are based off of the work of @david-rc-dayton and his
|
|
9
|
+
* Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which
|
|
10
|
+
* is licensed under the MIT license.
|
|
14
11
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
12
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
14
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
17
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
18
|
+
* See the GNU Affero General Public License for more details.
|
|
19
|
+
*
|
|
20
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
21
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
import { HpAtmosphereEntry } from './HpAtmosphereData.js';
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author Theodore Kruczek
|
|
3
|
-
* @
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Software without restriction, including without limitation the rights to use,
|
|
8
|
-
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
-
* the Software, and to permit persons to whom the Software is furnished to do
|
|
10
|
-
* so, subject to the following conditions:
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
|
+
* @description Orbital Object ToolKit (ootk) is a collection of tools for working
|
|
4
|
+
* with satellites and other orbital objects.
|
|
5
|
+
* @license AGPL-3.0-or-later
|
|
6
|
+
* @copyright (c) 2025 Kruczek Labs LLC
|
|
11
7
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
8
|
+
* Many of the classes are based off of the work of @david-rc-dayton and his
|
|
9
|
+
* Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which
|
|
10
|
+
* is licensed under the MIT license.
|
|
14
11
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
12
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
14
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
17
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
18
|
+
* See the GNU Affero General Public License for more details.
|
|
19
|
+
*
|
|
20
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
21
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
import { iau1980 } from './iau1980.js';
|
|
@@ -55,7 +55,7 @@ export class Iau1980Data {
|
|
|
55
55
|
|
|
56
56
|
// / Get IAU-1980 coefficients for a given row number.
|
|
57
57
|
getCoeffs(row: number): Iau1980Entry {
|
|
58
|
-
return this.coeffs_[row]
|
|
58
|
+
return this.coeffs_[row];
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author Theodore Kruczek
|
|
3
|
-
* @
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Software without restriction, including without limitation the rights to use,
|
|
8
|
-
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
-
* the Software, and to permit persons to whom the Software is furnished to do
|
|
10
|
-
* so, subject to the following conditions:
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
|
+
* @description Orbital Object ToolKit (ootk) is a collection of tools for working
|
|
4
|
+
* with satellites and other orbital objects.
|
|
5
|
+
* @license AGPL-3.0-or-later
|
|
6
|
+
* @copyright (c) 2025 Kruczek Labs LLC
|
|
11
7
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
8
|
+
* Many of the classes are based off of the work of @david-rc-dayton and his
|
|
9
|
+
* Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which
|
|
10
|
+
* is licensed under the MIT license.
|
|
14
11
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
12
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
14
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
17
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
18
|
+
* See the GNU Affero General Public License for more details.
|
|
19
|
+
*
|
|
20
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
21
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
// / Leap second data.
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @author Theodore Kruczek
|
|
3
|
-
* @
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Software without restriction, including without limitation the rights to use,
|
|
8
|
-
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
-
* the Software, and to permit persons to whom the Software is furnished to do
|
|
10
|
-
* so, subject to the following conditions:
|
|
2
|
+
* @author Theodore Kruczek
|
|
3
|
+
* @description Orbital Object ToolKit (ootk) is a collection of tools for working
|
|
4
|
+
* with satellites and other orbital objects.
|
|
5
|
+
* @license AGPL-3.0-or-later
|
|
6
|
+
* @copyright (c) 2025 Kruczek Labs LLC
|
|
11
7
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
8
|
+
* Many of the classes are based off of the work of @david-rc-dayton and his
|
|
9
|
+
* Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which
|
|
10
|
+
* is licensed under the MIT license.
|
|
14
11
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
12
|
+
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
|
+
* terms of the GNU Affero General Public License as published by the Free Software
|
|
14
|
+
* Foundation, either version 3 of the License, or (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
17
|
+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
18
|
+
* See the GNU Affero General Public License for more details.
|
|
19
|
+
*
|
|
20
|
+
* You should have received a copy of the GNU Affero General Public License along with
|
|
21
|
+
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
import { LeapSecond } from './LeapSecond.js';
|
|
@@ -64,10 +64,10 @@ class LeapSecondData {
|
|
|
64
64
|
|
|
65
65
|
constructor(offsets: LeapSecond[]) {
|
|
66
66
|
this.offsets_ = offsets;
|
|
67
|
-
this.jdFirst_ = (this.offsets_[0]
|
|
68
|
-
this.jdLast_ = (this.offsets_[this.offsets_.length - 1]
|
|
69
|
-
this.offsetFirst_ = (this.offsets_[0]
|
|
70
|
-
this.offsetLast_ = (this.offsets_[this.offsets_.length - 1]
|
|
67
|
+
this.jdFirst_ = (this.offsets_[0]).jd;
|
|
68
|
+
this.jdLast_ = (this.offsets_[this.offsets_.length - 1]).jd;
|
|
69
|
+
this.offsetFirst_ = (this.offsets_[0]).offset;
|
|
70
|
+
this.offsetLast_ = (this.offsets_[this.offsets_.length - 1]).offset;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
/**
|
|
@@ -97,8 +97,8 @@ class LeapSecondData {
|
|
|
97
97
|
return this.offsetFirst_;
|
|
98
98
|
}
|
|
99
99
|
for (let i = 0; i < this.offsets_.length - 2; i++) {
|
|
100
|
-
const currentLeapSecond = this.offsets_[i]
|
|
101
|
-
const nextLeapSecond = this.offsets_[i + 1]
|
|
100
|
+
const currentLeapSecond = this.offsets_[i];
|
|
101
|
+
const nextLeapSecond = this.offsets_[i + 1];
|
|
102
102
|
|
|
103
103
|
if (jd >= currentLeapSecond.jd && jd < nextLeapSecond.jd) {
|
|
104
104
|
return currentLeapSecond.offset;
|