ootk 5.0.0 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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 +18 -18
- package/dist/coordinate/ClassicalElements.js +19 -19
- package/dist/coordinate/ClassicalElements.js.map +1 -1
- package/dist/coordinate/EquinoctialElements.d.ts +18 -18
- package/dist/coordinate/EquinoctialElements.js +18 -18
- package/dist/coordinate/FormatTle.d.ts +18 -18
- package/dist/coordinate/FormatTle.js +18 -18
- package/dist/coordinate/Geodetic.d.ts +18 -18
- package/dist/coordinate/Geodetic.js +18 -18
- package/dist/coordinate/Hill.d.ts +1 -1
- package/dist/coordinate/Hill.js +1 -1
- package/dist/coordinate/ITRF.d.ts +18 -18
- package/dist/coordinate/ITRF.js +18 -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/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 +18 -18
- 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/Tle.d.ts +21 -22
- package/dist/coordinate/Tle.js +21 -21
- 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 +9 -6
- package/dist/covariance/CovarianceSample.js +92 -18
- package/dist/covariance/CovarianceSample.js.map +1 -1
- package/dist/covariance/StateCovariance.d.ts +1 -1
- package/dist/covariance/StateCovariance.js +1 -1
- 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 +1 -1
- package/dist/force/AtmosphericDrag.js +2 -5
- package/dist/force/AtmosphericDrag.js.map +1 -1
- package/dist/force/EarthGravity.d.ts +1 -1
- package/dist/force/EarthGravity.js +1 -1
- package/dist/force/Force.d.ts +1 -1
- package/dist/force/Force.js +1 -1
- package/dist/force/ForceModel.d.ts +1 -1
- package/dist/force/ForceModel.js +1 -1
- package/dist/force/Gravity.d.ts +1 -1
- package/dist/force/Gravity.js +1 -1
- package/dist/force/SolarRadiationPressure.d.ts +1 -1
- package/dist/force/SolarRadiationPressure.js +1 -1
- package/dist/force/ThirdBodyGravity.d.ts +1 -1
- package/dist/force/ThirdBodyGravity.js +1 -1
- package/dist/force/Thrust.d.ts +1 -1
- package/dist/force/Thrust.js +1 -1
- 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 +4 -4
- package/dist/interpolator/ChebyshevCoefficients.js +1 -1
- package/dist/interpolator/ChebyshevCoefficients.js.map +1 -1
- package/dist/interpolator/ChebyshevInterpolator.d.ts +2 -2
- package/dist/interpolator/ChebyshevInterpolator.js +8 -8
- package/dist/interpolator/ChebyshevInterpolator.js.map +1 -1
- package/dist/interpolator/CubicSpline.d.ts +1 -1
- package/dist/interpolator/CubicSpline.js +1 -1
- package/dist/interpolator/CubicSplineInterpolator.d.ts +3 -3
- package/dist/interpolator/CubicSplineInterpolator.js +9 -9
- package/dist/interpolator/CubicSplineInterpolator.js.map +1 -1
- package/dist/interpolator/FieldInterpolator.d.ts +1 -1
- package/dist/interpolator/FieldInterpolator.js +1 -1
- package/dist/interpolator/Interpolator.d.ts +1 -1
- package/dist/interpolator/Interpolator.js +1 -1
- package/dist/interpolator/LagrangeInterpolator.d.ts +6 -6
- package/dist/interpolator/LagrangeInterpolator.js +1 -1
- package/dist/interpolator/LagrangeInterpolator.js.map +1 -1
- package/dist/interpolator/StateInterpolator.d.ts +1 -1
- package/dist/interpolator/StateInterpolator.js +1 -1
- package/dist/interpolator/VerletBlendInterpolator.d.ts +1 -1
- package/dist/interpolator/VerletBlendInterpolator.js +1 -1
- package/dist/main.d.ts +4 -2
- package/dist/main.js +4 -2
- package/dist/main.js.map +1 -1
- package/dist/maneuver/TwoBurnOrbitTransfer.d.ts +1 -1
- package/dist/maneuver/TwoBurnOrbitTransfer.js +1 -1
- package/dist/maneuver/Waypoint.d.ts +1 -1
- package/dist/maneuver/Waypoint.js +1 -1
- package/dist/objects/BaseObject.d.ts +18 -18
- package/dist/objects/BaseObject.js +18 -18
- package/dist/objects/DetailedSatellite.d.ts +1 -1
- package/dist/objects/DetailedSatellite.js +4 -2
- package/dist/objects/DetailedSatellite.js.map +1 -1
- package/dist/objects/DetailedSensor.d.ts +1 -1
- package/dist/objects/DetailedSensor.js +1 -1
- package/dist/objects/GroundObject.d.ts +18 -18
- package/dist/objects/GroundObject.js +18 -18
- package/dist/objects/LandObject.d.ts +1 -1
- package/dist/objects/LandObject.js +1 -1
- package/dist/objects/Marker.d.ts +1 -1
- package/dist/objects/Marker.js +1 -1
- package/dist/objects/Satellite.d.ts +18 -18
- package/dist/objects/Satellite.js +19 -19
- package/dist/objects/Satellite.js.map +1 -1
- package/dist/objects/Sensor.d.ts +18 -19
- package/dist/objects/Sensor.js +18 -19
- 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 +1 -1
- package/dist/observation/Observation.js +1 -1
- package/dist/observation/ObservationOptical.d.ts +5 -5
- package/dist/observation/ObservationOptical.js +8 -8
- package/dist/observation/ObservationOptical.js.map +1 -1
- package/dist/observation/ObservationRadar.d.ts +5 -5
- package/dist/observation/ObservationRadar.js +8 -8
- package/dist/observation/ObservationRadar.js.map +1 -1
- package/dist/observation/ObservationUtils.d.ts +1 -1
- package/dist/observation/ObservationUtils.js +1 -1
- package/dist/observation/PropagatorPairs.d.ts +4 -4
- package/dist/observation/PropagatorPairs.js +7 -7
- 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 +18 -18
- package/dist/observation/RadecGeocentric.js +18 -18
- package/dist/observation/RadecTopocentric.d.ts +18 -18
- package/dist/observation/RadecTopocentric.js +18 -18
- package/dist/observation/index.d.ts +18 -18
- package/dist/observation/index.js +18 -18
- package/dist/operations/BoxMuller.d.ts +1 -1
- package/dist/operations/BoxMuller.js +1 -1
- package/dist/operations/EulerAngles.d.ts +1 -1
- package/dist/operations/EulerAngles.js +1 -1
- package/dist/operations/Matrix.d.ts +18 -18
- package/dist/operations/Matrix.js +63 -63
- package/dist/operations/Matrix.js.map +1 -1
- package/dist/operations/Quaternion.d.ts +6 -6
- package/dist/operations/Quaternion.js +1 -1
- 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 +2 -2
- package/dist/operations/RandomGaussianSource.js +4 -4
- package/dist/operations/RandomGaussianSource.js.map +1 -1
- package/dist/operations/Vector.d.ts +18 -18
- package/dist/operations/Vector.js +24 -24
- 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 +3 -3
- package/dist/optimize/ChebyshevCompressor.js +7 -7
- package/dist/optimize/ChebyshevCompressor.js.map +1 -1
- package/dist/optimize/DownhillSimplex.d.ts +1 -1
- package/dist/optimize/DownhillSimplex.js +1 -1
- package/dist/optimize/GoldenSection.d.ts +2 -2
- package/dist/optimize/GoldenSection.js +3 -3
- package/dist/optimize/PolynomialRegression.d.ts +1 -1
- package/dist/optimize/PolynomialRegression.js +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 +4 -4
- package/dist/optimize/SimplexEntry.js +10 -10
- package/dist/optimize/SimplexEntry.js.map +1 -1
- package/dist/orbit_determination/BatchLeastSquaresOD.d.ts +10 -10
- package/dist/orbit_determination/BatchLeastSquaresOD.js +1 -1
- package/dist/orbit_determination/BatchLeastSquaresOD.js.map +1 -1
- package/dist/orbit_determination/BatchLeastSquaresResult.d.ts +1 -1
- package/dist/orbit_determination/BatchLeastSquaresResult.js +1 -1
- package/dist/orbit_determination/GibbsIOD.d.ts +1 -1
- package/dist/orbit_determination/GibbsIOD.js +1 -1
- package/dist/orbit_determination/GoodingIOD.d.ts +1 -1
- package/dist/orbit_determination/GoodingIOD.js +1 -1
- package/dist/orbit_determination/HerrickGibbsIOD.d.ts +1 -1
- package/dist/orbit_determination/HerrickGibbsIOD.js +1 -1
- package/dist/orbit_determination/LambertIOD.d.ts +1 -1
- package/dist/orbit_determination/LambertIOD.js +1 -1
- package/dist/orbit_determination/ModifiedGoodingIOD.d.ts +3 -3
- package/dist/orbit_determination/ModifiedGoodingIOD.js +1 -1
- package/dist/orbit_determination/ModifiedGoodingIOD.js.map +1 -1
- package/dist/propagator/DormandPrince54Propagator.d.ts +5 -5
- package/dist/propagator/DormandPrince54Propagator.js +9 -9
- package/dist/propagator/DormandPrince54Propagator.js.map +1 -1
- package/dist/propagator/KeplerPropagator.d.ts +5 -5
- package/dist/propagator/KeplerPropagator.js +30 -30
- package/dist/propagator/KeplerPropagator.js.map +1 -1
- package/dist/propagator/Propagator.d.ts +1 -1
- package/dist/propagator/Propagator.js +1 -1
- package/dist/propagator/RkCheckpoint.d.ts +1 -1
- package/dist/propagator/RkCheckpoint.js +1 -1
- package/dist/propagator/RkResult.d.ts +1 -1
- package/dist/propagator/RkResult.js +1 -1
- package/dist/propagator/RungeKutta4Propagator.d.ts +2 -2
- package/dist/propagator/RungeKutta4Propagator.js +1 -1
- package/dist/propagator/RungeKutta4Propagator.js.map +1 -1
- package/dist/propagator/RungeKutta89Propagator.d.ts +5 -5
- package/dist/propagator/RungeKutta89Propagator.js +1 -1
- package/dist/propagator/RungeKutta89Propagator.js.map +1 -1
- package/dist/propagator/RungeKuttaAdaptive.d.ts +3 -3
- package/dist/propagator/RungeKuttaAdaptive.js +1 -1
- package/dist/propagator/RungeKuttaAdaptive.js.map +1 -1
- package/dist/propagator/Sgp4Propagator.d.ts +5 -5
- package/dist/propagator/Sgp4Propagator.js +15 -15
- 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 +17 -20
- package/dist/sgp4/sgp4.js +20 -23
- package/dist/sgp4/sgp4.js.map +1 -1
- package/dist/smoothing/ExponentialSmoothing.d.ts +1 -1
- package/dist/smoothing/ExponentialSmoothing.js +1 -1
- 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 +2 -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 +18 -18
- package/src/coordinate/ClassicalElements.ts +21 -20
- package/src/coordinate/EquinoctialElements.ts +18 -18
- package/src/coordinate/FormatTle.ts +18 -18
- package/src/coordinate/Geodetic.ts +18 -18
- package/src/coordinate/Hill.ts +1 -1
- package/src/coordinate/ITRF.ts +18 -18
- package/src/coordinate/J2000.ts +18 -18
- package/src/coordinate/RIC.ts +18 -18
- package/src/coordinate/RelativeState.ts +18 -18
- package/src/coordinate/StateVector.ts +21 -20
- package/src/coordinate/TEME.ts +18 -18
- package/src/coordinate/Tle.ts +26 -26
- package/src/coordinate/index.ts +0 -1
- package/src/coordinate/tle-format-data.ts +18 -18
- package/src/covariance/CovarianceSample.ts +116 -18
- package/src/covariance/StateCovariance.ts +1 -1
- 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 +1 -3
- package/src/force/EarthGravity.ts +1 -1
- package/src/force/Force.ts +1 -1
- package/src/force/ForceModel.ts +1 -1
- package/src/force/Gravity.ts +1 -1
- package/src/force/SolarRadiationPressure.ts +1 -1
- package/src/force/ThirdBodyGravity.ts +1 -1
- package/src/force/Thrust.ts +1 -1
- 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 +4 -4
- package/src/interpolator/ChebyshevInterpolator.ts +9 -9
- package/src/interpolator/CubicSpline.ts +1 -1
- package/src/interpolator/CubicSplineInterpolator.ts +7 -7
- package/src/interpolator/FieldInterpolator.ts +1 -1
- package/src/interpolator/Interpolator.ts +1 -1
- package/src/interpolator/LagrangeInterpolator.ts +6 -6
- package/src/interpolator/StateInterpolator.ts +1 -1
- package/src/interpolator/VerletBlendInterpolator.ts +1 -1
- package/src/main.ts +4 -2
- package/src/maneuver/TwoBurnOrbitTransfer.ts +1 -1
- package/src/maneuver/Waypoint.ts +1 -1
- package/src/objects/BaseObject.ts +18 -18
- package/src/objects/DetailedSatellite.ts +2 -1
- package/src/objects/DetailedSensor.ts +1 -1
- package/src/objects/GroundObject.ts +18 -18
- package/src/objects/LandObject.ts +1 -1
- package/src/objects/Marker.ts +1 -1
- package/src/objects/Satellite.ts +19 -19
- package/src/objects/Sensor.ts +18 -19
- package/src/objects/Star.ts +18 -18
- package/src/observation/Observation.ts +1 -1
- package/src/observation/ObservationOptical.ts +6 -6
- package/src/observation/ObservationRadar.ts +9 -5
- package/src/observation/ObservationUtils.ts +1 -1
- package/src/observation/PropagatorPairs.ts +3 -3
- package/src/observation/RAE.ts +18 -19
- package/src/observation/RadecGeocentric.ts +18 -18
- package/src/observation/RadecTopocentric.ts +18 -18
- package/src/observation/index.ts +18 -18
- package/src/operations/BoxMuller.ts +1 -1
- package/src/operations/EulerAngles.ts +1 -1
- package/src/operations/Matrix.ts +66 -66
- package/src/operations/Quaternion.ts +6 -6
- package/src/operations/Random.ts +18 -18
- package/src/operations/RandomGaussianSource.ts +4 -4
- package/src/operations/Vector.ts +24 -24
- package/src/operations/Vector3D.ts +18 -18
- package/src/operations/operations.ts +18 -18
- package/src/optimize/ChebyshevCompressor.ts +5 -5
- package/src/optimize/DownhillSimplex.ts +1 -1
- package/src/optimize/GoldenSection.ts +3 -3
- package/src/optimize/PolynomialRegression.ts +1 -1
- package/src/optimize/PolynomicalRegressionResult.ts +1 -1
- package/src/optimize/SimpleLinearRegression.ts +1 -1
- package/src/optimize/SimplexEntry.ts +8 -8
- package/src/orbit_determination/BatchLeastSquaresOD.ts +10 -10
- package/src/orbit_determination/BatchLeastSquaresResult.ts +1 -1
- package/src/orbit_determination/GibbsIOD.ts +1 -1
- package/src/orbit_determination/GoodingIOD.ts +1 -1
- package/src/orbit_determination/HerrickGibbsIOD.ts +1 -1
- package/src/orbit_determination/LambertIOD.ts +1 -1
- package/src/orbit_determination/ModifiedGoodingIOD.ts +3 -3
- package/src/propagator/DormandPrince54Propagator.ts +9 -9
- package/src/propagator/KeplerPropagator.ts +30 -30
- package/src/propagator/Propagator.ts +1 -1
- package/src/propagator/RkCheckpoint.ts +1 -1
- package/src/propagator/RkResult.ts +1 -1
- package/src/propagator/RungeKutta4Propagator.ts +2 -2
- package/src/propagator/RungeKutta89Propagator.ts +5 -5
- package/src/propagator/RungeKuttaAdaptive.ts +3 -3
- package/src/propagator/Sgp4Propagator.ts +13 -13
- package/src/sgp4/index.ts +18 -18
- package/src/sgp4/sgp4.LICENSE.md +2 -2
- package/src/sgp4/sgp4.ts +20 -23
- package/src/smoothing/ExponentialSmoothing.ts +1 -1
- package/src/time/Epoch.ts +18 -18
- package/src/time/EpochGPS.ts +20 -20
- 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
package/src/operations/Matrix.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 @thkruz 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 { Vector3D, Vector, Radians } from '../main.js';
|
|
@@ -35,7 +35,7 @@ export class Matrix {
|
|
|
35
35
|
constructor(elements: number[][]) {
|
|
36
36
|
this.elements = elements;
|
|
37
37
|
this.rows = elements.length;
|
|
38
|
-
this.columns = (elements[0]
|
|
38
|
+
this.columns = (elements[0]).length;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
/**
|
|
@@ -62,7 +62,7 @@ export class Matrix {
|
|
|
62
62
|
for (let i = 0; i < rows; i++) {
|
|
63
63
|
elements[i] = [];
|
|
64
64
|
for (let j = 0; j < columns; j++) {
|
|
65
|
-
(elements[i]
|
|
65
|
+
(elements[i])[j] = value;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
|
|
@@ -79,11 +79,11 @@ export class Matrix {
|
|
|
79
79
|
const sinT = Math.sin(theta);
|
|
80
80
|
const result = Matrix.zero(3, 3);
|
|
81
81
|
|
|
82
|
-
(result.elements[0]
|
|
83
|
-
(result.elements[1]
|
|
84
|
-
(result.elements[1]
|
|
85
|
-
(result.elements[2]
|
|
86
|
-
(result.elements[2]
|
|
82
|
+
(result.elements[0])[0] = 1.0;
|
|
83
|
+
(result.elements[1])[1] = cosT;
|
|
84
|
+
(result.elements[1])[2] = sinT;
|
|
85
|
+
(result.elements[2])[1] = -sinT;
|
|
86
|
+
(result.elements[2])[2] = cosT;
|
|
87
87
|
|
|
88
88
|
return result;
|
|
89
89
|
}
|
|
@@ -98,11 +98,11 @@ export class Matrix {
|
|
|
98
98
|
const sinT = Math.sin(theta);
|
|
99
99
|
const result = Matrix.zero(3, 3);
|
|
100
100
|
|
|
101
|
-
(result.elements[0]
|
|
102
|
-
(result.elements[0]
|
|
103
|
-
(result.elements[1]
|
|
104
|
-
(result.elements[2]
|
|
105
|
-
(result.elements[2]
|
|
101
|
+
(result.elements[0])[0] = cosT;
|
|
102
|
+
(result.elements[0])[2] = -sinT;
|
|
103
|
+
(result.elements[1])[1] = 1.0;
|
|
104
|
+
(result.elements[2])[0] = sinT;
|
|
105
|
+
(result.elements[2])[2] = cosT;
|
|
106
106
|
|
|
107
107
|
return result;
|
|
108
108
|
}
|
|
@@ -117,11 +117,11 @@ export class Matrix {
|
|
|
117
117
|
const sinT = Math.sin(theta);
|
|
118
118
|
const result = Matrix.zero(3, 3);
|
|
119
119
|
|
|
120
|
-
(result.elements[0]
|
|
121
|
-
(result.elements[0]
|
|
122
|
-
(result.elements[1]
|
|
123
|
-
(result.elements[1]
|
|
124
|
-
(result.elements[2]
|
|
120
|
+
(result.elements[0])[0] = cosT;
|
|
121
|
+
(result.elements[0])[1] = sinT;
|
|
122
|
+
(result.elements[1])[0] = -sinT;
|
|
123
|
+
(result.elements[1])[1] = cosT;
|
|
124
|
+
(result.elements[2])[2] = 1.0;
|
|
125
125
|
|
|
126
126
|
return result;
|
|
127
127
|
}
|
|
@@ -138,7 +138,7 @@ export class Matrix {
|
|
|
138
138
|
for (let i = 0; i < rows; i++) {
|
|
139
139
|
elements[i] = [];
|
|
140
140
|
for (let j = 0; j < columns; j++) {
|
|
141
|
-
(elements[i]
|
|
141
|
+
(elements[i])[j] = 0.0;
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
144
|
|
|
@@ -156,7 +156,7 @@ export class Matrix {
|
|
|
156
156
|
for (let i = 0; i < dimension; i++) {
|
|
157
157
|
elements[i] = [];
|
|
158
158
|
for (let j = 0; j < dimension; j++) {
|
|
159
|
-
(elements[i]
|
|
159
|
+
(elements[i])[j] = i === j ? 1.0 : 0.0;
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
|
|
@@ -175,7 +175,7 @@ export class Matrix {
|
|
|
175
175
|
for (let i = 0; i < dimension; i++) {
|
|
176
176
|
elements[i] = [];
|
|
177
177
|
for (let j = 0; j < dimension; j++) {
|
|
178
|
-
(elements[i]
|
|
178
|
+
(elements[i])[j] = i === j ? d[i] : 0.0;
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
181
|
|
|
@@ -192,7 +192,7 @@ export class Matrix {
|
|
|
192
192
|
|
|
193
193
|
for (let i = 0; i < this.rows; i++) {
|
|
194
194
|
for (let j = 0; j < this.columns; j++) {
|
|
195
|
-
(result.elements[i] ?? [])[j] = (this.elements[i]?.[j]
|
|
195
|
+
(result.elements[i] ?? [])[j] = (this.elements[i]?.[j]) + (m.elements[i]?.[j]);
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
|
|
@@ -209,7 +209,7 @@ export class Matrix {
|
|
|
209
209
|
|
|
210
210
|
for (let i = 0; i < this.rows; i++) {
|
|
211
211
|
for (let j = 0; j < this.columns; j++) {
|
|
212
|
-
(result.elements[i] ?? [])[j] = (this.elements[i]?.[j]
|
|
212
|
+
(result.elements[i] ?? [])[j] = (this.elements[i]?.[j]) - (m.elements[i]?.[j]);
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
215
|
|
|
@@ -226,7 +226,7 @@ export class Matrix {
|
|
|
226
226
|
|
|
227
227
|
for (let i = 0; i < this.rows; i++) {
|
|
228
228
|
for (let j = 0; j < this.columns; j++) {
|
|
229
|
-
(result.elements[i] ?? [])[j] = (this.elements[i]?.[j]
|
|
229
|
+
(result.elements[i] ?? [])[j] = (this.elements[i]?.[j]) * n;
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
232
|
|
|
@@ -252,8 +252,8 @@ export class Matrix {
|
|
|
252
252
|
for (let i = 0; i < this.rows; i++) {
|
|
253
253
|
for (let j = 0; j < m.columns; j++) {
|
|
254
254
|
for (let k = 0; k < this.columns; k++) {
|
|
255
|
-
((result.elements[i]
|
|
256
|
-
(this.elements[i]?.[k]
|
|
255
|
+
((result.elements[i])[j]) +=
|
|
256
|
+
(this.elements[i]?.[k]) * (m.elements[k]?.[j]);
|
|
257
257
|
}
|
|
258
258
|
}
|
|
259
259
|
}
|
|
@@ -271,7 +271,7 @@ export class Matrix {
|
|
|
271
271
|
|
|
272
272
|
for (let i = 0; i < this.rows; i++) {
|
|
273
273
|
for (let j = 0; j < this.columns; j++) {
|
|
274
|
-
(result.elements[i]
|
|
274
|
+
(result.elements[i])[j] = (this.elements[i]?.[j]) * (m.elements[i]?.[j]);
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
277
|
|
|
@@ -290,7 +290,7 @@ export class Matrix {
|
|
|
290
290
|
let total = 0.0;
|
|
291
291
|
|
|
292
292
|
for (let j = 0; j < this.columns; j++) {
|
|
293
|
-
total += (this.elements[i]?.[j]
|
|
293
|
+
total += (this.elements[i]?.[j]) * (v.elements[j]);
|
|
294
294
|
}
|
|
295
295
|
result[i] = total;
|
|
296
296
|
}
|
|
@@ -313,13 +313,13 @@ export class Matrix {
|
|
|
313
313
|
for (let j = 0; j < this.columns; j++) {
|
|
314
314
|
switch (j) {
|
|
315
315
|
case 0:
|
|
316
|
-
total += (this.elements[i]?.[j]
|
|
316
|
+
total += (this.elements[i]?.[j]) * v.x;
|
|
317
317
|
break;
|
|
318
318
|
case 1:
|
|
319
|
-
total += (this.elements[i]?.[j]
|
|
319
|
+
total += (this.elements[i]?.[j]) * v.y;
|
|
320
320
|
break;
|
|
321
321
|
case 2:
|
|
322
|
-
total += (this.elements[i]?.[j]
|
|
322
|
+
total += (this.elements[i]?.[j]) * v.z;
|
|
323
323
|
break;
|
|
324
324
|
default:
|
|
325
325
|
break;
|
|
@@ -328,7 +328,7 @@ export class Matrix {
|
|
|
328
328
|
result[i] = total as T;
|
|
329
329
|
}
|
|
330
330
|
|
|
331
|
-
return new Vector3D<T>((result[0]
|
|
331
|
+
return new Vector3D<T>((result[0]), (result[1]), (result[2]));
|
|
332
332
|
}
|
|
333
333
|
|
|
334
334
|
/**
|
|
@@ -345,7 +345,7 @@ export class Matrix {
|
|
|
345
345
|
for (let i = 0; i < this.rows; i++) {
|
|
346
346
|
for (let j = 0; j < this.columns; j++) {
|
|
347
347
|
if ((this.elements[i]?.[j]) !== 0) {
|
|
348
|
-
(output.elements[i]
|
|
348
|
+
(output.elements[i])[j] = 1 / (this.elements[i]?.[j]);
|
|
349
349
|
}
|
|
350
350
|
}
|
|
351
351
|
}
|
|
@@ -362,7 +362,7 @@ export class Matrix {
|
|
|
362
362
|
|
|
363
363
|
for (let i = 0; i < this.rows; i++) {
|
|
364
364
|
for (let j = 0; j < this.columns; j++) {
|
|
365
|
-
(result.elements[j]
|
|
365
|
+
(result.elements[j])[i] = (this.elements[i])[j];
|
|
366
366
|
}
|
|
367
367
|
}
|
|
368
368
|
|
|
@@ -382,12 +382,12 @@ export class Matrix {
|
|
|
382
382
|
let total = 0.0;
|
|
383
383
|
|
|
384
384
|
for (let j = 0; j < k; j++) {
|
|
385
|
-
total += (result.elements[i]?.[j]
|
|
385
|
+
total += (result.elements[i]?.[j]) * (result.elements[k]?.[j]);
|
|
386
386
|
}
|
|
387
|
-
(result.elements[i]
|
|
387
|
+
(result.elements[i])[k] =
|
|
388
388
|
i === k
|
|
389
|
-
? Math.sqrt((this.elements[i]?.[i]
|
|
390
|
-
: (1 / (result.elements[k]?.[k]
|
|
389
|
+
? Math.sqrt((this.elements[i]?.[i]) - total)
|
|
390
|
+
: (1 / (result.elements[k]?.[k])) * ((this.elements[i]?.[k]) - total);
|
|
391
391
|
}
|
|
392
392
|
}
|
|
393
393
|
|
|
@@ -405,8 +405,8 @@ export class Matrix {
|
|
|
405
405
|
}
|
|
406
406
|
const tmp = this.elements[i];
|
|
407
407
|
|
|
408
|
-
this.elements[i] = this.elements[j]
|
|
409
|
-
this.elements[j] = tmp
|
|
408
|
+
this.elements[i] = this.elements[j];
|
|
409
|
+
this.elements[j] = tmp;
|
|
410
410
|
}
|
|
411
411
|
|
|
412
412
|
/**
|
|
@@ -417,7 +417,7 @@ export class Matrix {
|
|
|
417
417
|
for (let lead = 0, row = 0; row < this.rows && lead < this.columns; ++row, ++lead) {
|
|
418
418
|
let i = row;
|
|
419
419
|
|
|
420
|
-
while ((this.elements[i]?.[lead]
|
|
420
|
+
while ((this.elements[i]?.[lead]) === 0) {
|
|
421
421
|
if (++i === this.rows) {
|
|
422
422
|
i = row;
|
|
423
423
|
if (++lead === this.columns) {
|
|
@@ -426,21 +426,21 @@ export class Matrix {
|
|
|
426
426
|
}
|
|
427
427
|
}
|
|
428
428
|
this._swapRows(i, row);
|
|
429
|
-
if ((this.elements[row]?.[lead]
|
|
430
|
-
const f = this.elements[row]?.[lead]
|
|
429
|
+
if ((this.elements[row]?.[lead]) !== 0) {
|
|
430
|
+
const f = this.elements[row]?.[lead];
|
|
431
431
|
|
|
432
432
|
for (let column = 0; column < this.columns; ++column) {
|
|
433
|
-
(this.elements[row]
|
|
433
|
+
(this.elements[row])[column] /= f;
|
|
434
434
|
}
|
|
435
435
|
}
|
|
436
436
|
for (let j = 0; j < this.rows; ++j) {
|
|
437
437
|
if (j === row) {
|
|
438
438
|
continue;
|
|
439
439
|
}
|
|
440
|
-
const f = (this.elements[j]?.[lead]
|
|
440
|
+
const f = (this.elements[j]?.[lead]);
|
|
441
441
|
|
|
442
442
|
for (let column = 0; column < this.columns; ++column) {
|
|
443
|
-
((this.elements[j]
|
|
443
|
+
((this.elements[j])[column]) -= f * (this.elements[row]?.[column]);
|
|
444
444
|
}
|
|
445
445
|
}
|
|
446
446
|
}
|
|
@@ -455,16 +455,16 @@ export class Matrix {
|
|
|
455
455
|
|
|
456
456
|
for (let row = 0; row < this.rows; ++row) {
|
|
457
457
|
for (let column = 0; column < this.columns; ++column) {
|
|
458
|
-
(tmp.elements[row]
|
|
458
|
+
(tmp.elements[row])[column] = (this.elements[row])[column];
|
|
459
459
|
}
|
|
460
|
-
(tmp.elements[row]
|
|
460
|
+
(tmp.elements[row])[row + this.columns] = 1.0;
|
|
461
461
|
}
|
|
462
462
|
tmp.toReducedRowEchelonForm_();
|
|
463
463
|
const inv = Matrix.zero(this.rows, this.columns);
|
|
464
464
|
|
|
465
465
|
for (let row = 0; row < this.rows; ++row) {
|
|
466
466
|
for (let column = 0; column < this.columns; ++column) {
|
|
467
|
-
((inv.elements[row]
|
|
467
|
+
((inv.elements[row])[column]) = (tmp.elements[row]?.[column + this.columns]);
|
|
468
468
|
}
|
|
469
469
|
}
|
|
470
470
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author @thkruz 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
|
|
@@ -30,11 +30,11 @@ export class Quaternion {
|
|
|
30
30
|
this.w = w;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
static zero = new Quaternion(0, 0, 0, 0);
|
|
34
|
-
static one = new Quaternion(0, 0, 0, 1);
|
|
35
|
-
static xAxis = new Quaternion(1, 0, 0, 0);
|
|
36
|
-
static yAxis = new Quaternion(0, 1, 0, 0);
|
|
37
|
-
static zAxis = new Quaternion(0, 0, 1, 0);
|
|
33
|
+
static readonly zero = new Quaternion(0, 0, 0, 0);
|
|
34
|
+
static readonly one = new Quaternion(0, 0, 0, 1);
|
|
35
|
+
static readonly xAxis = new Quaternion(1, 0, 0, 0);
|
|
36
|
+
static readonly yAxis = new Quaternion(0, 1, 0, 0);
|
|
37
|
+
static readonly zAxis = new Quaternion(0, 0, 1, 0);
|
|
38
38
|
|
|
39
39
|
toString(precision = 8): string {
|
|
40
40
|
const xStr = this.x.toFixed(precision);
|
package/src/operations/Random.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 @thkruz 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
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author @thkruz 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
|
|
@@ -19,14 +19,14 @@ import { Vector, Vector3D } from '../main.js';
|
|
|
19
19
|
import { BoxMuller } from './BoxMuller.js';
|
|
20
20
|
|
|
21
21
|
export class RandomGaussianSource {
|
|
22
|
-
private
|
|
22
|
+
private readonly boxMuller_: BoxMuller;
|
|
23
23
|
|
|
24
24
|
constructor(seed = 0) {
|
|
25
|
-
this.
|
|
25
|
+
this.boxMuller_ = new BoxMuller(0, 1, seed);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
nextGauss(): number {
|
|
29
|
-
return this.
|
|
29
|
+
return this.boxMuller_.nextGauss();
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
gaussVector(n: number): Vector {
|
package/src/operations/Vector.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 @thkruz 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 { Vector3D, Matrix, Degrees, Radians } from '../main.js';
|
|
@@ -184,7 +184,7 @@ export class Vector<T extends number = number> {
|
|
|
184
184
|
const output = new Array(this.length);
|
|
185
185
|
|
|
186
186
|
for (let i = 0; i < this.length; i++) {
|
|
187
|
-
output[i] = (this.elements[i] as number) + (v.elements[i]
|
|
187
|
+
output[i] = (this.elements[i] as number) + (v.elements[i]);
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
return new Vector(output);
|
|
@@ -199,7 +199,7 @@ export class Vector<T extends number = number> {
|
|
|
199
199
|
const output = new Array(this.length);
|
|
200
200
|
|
|
201
201
|
for (let i = 0; i < this.length; i++) {
|
|
202
|
-
output[i] = (this.elements[i] as number) - (v.elements[i]
|
|
202
|
+
output[i] = (this.elements[i] as number) - (v.elements[i]);
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
return new Vector(output);
|
|
@@ -262,7 +262,7 @@ export class Vector<T extends number = number> {
|
|
|
262
262
|
let total = 0;
|
|
263
263
|
|
|
264
264
|
for (let i = 0; i < this.length; i++) {
|
|
265
|
-
total += (this.elements[i] as number) * (v.elements[i]
|
|
265
|
+
total += (this.elements[i] as number) * (v.elements[i]);
|
|
266
266
|
}
|
|
267
267
|
|
|
268
268
|
return total;
|
|
@@ -279,7 +279,7 @@ export class Vector<T extends number = number> {
|
|
|
279
279
|
for (let i = 0; i < this.length; i++) {
|
|
280
280
|
result[i] = [];
|
|
281
281
|
for (let j = 0; j < v.length; j++) {
|
|
282
|
-
(result[i]
|
|
282
|
+
(result[i])[j] = (this.elements[i] as number) * (v.elements[j]);
|
|
283
283
|
}
|
|
284
284
|
}
|
|
285
285
|
|
|
@@ -296,8 +296,8 @@ export class Vector<T extends number = number> {
|
|
|
296
296
|
|
|
297
297
|
for (let i = 0; i < this.length; i++) {
|
|
298
298
|
output[i] =
|
|
299
|
-
(this.elements[(i + 1) % this.length] as number) * (v.elements[(i + 2) % this.length]
|
|
300
|
-
(this.elements[(i + 2) % this.length] as number) * (v.elements[(i + 1) % this.length]
|
|
299
|
+
(this.elements[(i + 1) % this.length] as number) * (v.elements[(i + 2) % this.length]) -
|
|
300
|
+
(this.elements[(i + 2) % this.length] as number) * (v.elements[(i + 1) % this.length]);
|
|
301
301
|
}
|
|
302
302
|
|
|
303
303
|
return new Vector(output);
|
|
@@ -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 @thkruz 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 { Kilometers, KilometersPerSecond, Radians, linearDistance } from '../main.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 @thkruz 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
|
export { Matrix } from './Matrix.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author @thkruz 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
|
|
@@ -23,7 +23,7 @@ import { ChebyshevInterpolator } from './../interpolator/ChebyshevInterpolator.j
|
|
|
23
23
|
// / Ephemeris compressor.
|
|
24
24
|
export class ChebyshevCompressor {
|
|
25
25
|
// / Create a new [ChebyshevCompressor] object from an [Interpolator].
|
|
26
|
-
constructor(private
|
|
26
|
+
constructor(private readonly interpolator_: StateInterpolator) {
|
|
27
27
|
// Do nothing.
|
|
28
28
|
}
|
|
29
29
|
|
|
@@ -41,7 +41,7 @@ export class ChebyshevCompressor {
|
|
|
41
41
|
for (let i = 0; i < n; i++) {
|
|
42
42
|
const x = ChebyshevCompressor._cosPi((i + h) / n);
|
|
43
43
|
const seconds = x * (h * (b - a)) + h * (b + a) as Seconds;
|
|
44
|
-
const state = this.
|
|
44
|
+
const state = this.interpolator_.interpolate(new EpochUTC(seconds))!;
|
|
45
45
|
const fx = state.position.x;
|
|
46
46
|
const fy = state.position.y;
|
|
47
47
|
const fz = state.position.z;
|
|
@@ -78,8 +78,8 @@ export class ChebyshevCompressor {
|
|
|
78
78
|
* @returns A new [ChebyshevInterpolator] object.
|
|
79
79
|
*/
|
|
80
80
|
compress(cpr = 21): ChebyshevInterpolator {
|
|
81
|
-
const { start, end } = this.
|
|
82
|
-
const period = this.
|
|
81
|
+
const { start, end } = this.interpolator_.window();
|
|
82
|
+
const period = this.interpolator_.interpolate(start)!.period;
|
|
83
83
|
const coefficients: ChebyshevCoefficients[] = [];
|
|
84
84
|
let current = start;
|
|
85
85
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author @thkruz 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
|