ootk 4.0.9 → 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/README.md +0 -15
- package/dist/body/Celestial.d.ts +96 -0
- package/dist/body/Celestial.js +124 -0
- package/dist/body/Celestial.js.map +1 -0
- package/dist/body/Earth.d.ts +68 -0
- package/dist/body/Earth.js +198 -0
- package/dist/body/Earth.js.map +1 -0
- package/dist/body/Moon.d.ts +137 -0
- package/dist/body/Moon.js +464 -0
- package/dist/body/Moon.js.map +1 -0
- package/dist/body/NutationAngles.d.ts +38 -0
- package/dist/body/NutationAngles.js +24 -0
- package/dist/body/NutationAngles.js.map +1 -0
- package/dist/body/PrecessionAngles.d.ts +29 -0
- package/dist/body/PrecessionAngles.js +24 -0
- package/dist/body/PrecessionAngles.js.map +1 -0
- package/dist/body/Sun.d.ts +301 -0
- package/dist/body/Sun.js +544 -0
- package/dist/body/Sun.js.map +1 -0
- package/dist/body/index.d.ts +26 -0
- package/dist/body/index.js +27 -0
- package/dist/body/index.js.map +1 -0
- package/dist/coordinate/ClassicalElements.d.ts +132 -0
- package/dist/coordinate/ClassicalElements.js +279 -0
- package/dist/coordinate/ClassicalElements.js.map +1 -0
- package/dist/coordinate/EquinoctialElements.d.ts +114 -0
- package/dist/coordinate/EquinoctialElements.js +172 -0
- package/dist/coordinate/EquinoctialElements.js.map +1 -0
- package/dist/coordinate/FormatTle.d.ts +95 -0
- package/dist/coordinate/FormatTle.js +184 -0
- package/dist/coordinate/FormatTle.js.map +1 -0
- package/dist/coordinate/Geodetic.d.ts +110 -0
- package/dist/coordinate/Geodetic.js +163 -0
- package/dist/coordinate/Geodetic.js.map +1 -0
- package/dist/coordinate/Hill.d.ts +2 -2
- package/dist/coordinate/Hill.js +2 -2
- package/dist/coordinate/Hill.js.map +1 -1
- package/dist/coordinate/ITRF.d.ts +75 -0
- package/dist/coordinate/ITRF.js +134 -0
- package/dist/coordinate/ITRF.js.map +1 -0
- package/dist/coordinate/J2000.d.ts +65 -0
- package/dist/coordinate/J2000.js +120 -0
- package/dist/coordinate/J2000.js.map +1 -0
- package/dist/coordinate/RIC.d.ts +64 -0
- package/dist/coordinate/RIC.js +79 -0
- package/dist/coordinate/RIC.js.map +1 -0
- package/dist/coordinate/RelativeState.d.ts +70 -0
- package/dist/coordinate/RelativeState.js +79 -0
- package/dist/coordinate/RelativeState.js.map +1 -0
- package/dist/coordinate/StateVector.d.ts +76 -0
- package/dist/coordinate/StateVector.js +97 -0
- package/dist/coordinate/StateVector.js.map +1 -0
- package/dist/coordinate/TEME.d.ts +57 -0
- package/dist/coordinate/TEME.js +89 -0
- package/dist/coordinate/TEME.js.map +1 -0
- package/dist/coordinate/Tle.d.ts +429 -0
- package/dist/coordinate/Tle.js +865 -0
- package/dist/coordinate/Tle.js.map +1 -0
- package/dist/coordinate/index.d.ts +11 -0
- package/dist/coordinate/index.js +11 -0
- package/dist/coordinate/index.js.map +1 -1
- package/dist/coordinate/tle-format-data.d.ts +41 -0
- package/dist/coordinate/tle-format-data.js +46 -0
- package/dist/coordinate/tle-format-data.js.map +1 -0
- 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 +2 -2
- package/dist/covariance/StateCovariance.js +2 -2
- package/dist/covariance/StateCovariance.js.map +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 +66 -0
- package/dist/data/DataHandler.js +80 -0
- package/dist/data/DataHandler.js.map +1 -0
- package/dist/data/values/Egm96Data.d.ts +37 -0
- package/dist/data/values/Egm96Data.js +63 -0
- package/dist/data/values/Egm96Data.js.map +1 -0
- package/dist/data/values/HpAtmosphereData.d.ts +33 -0
- package/dist/data/values/HpAtmosphereData.js +58 -0
- package/dist/data/values/HpAtmosphereData.js.map +1 -0
- package/dist/data/values/HpAtmosphereResult.d.ts +29 -0
- package/dist/data/values/HpAtmosphereResult.js +38 -0
- package/dist/data/values/HpAtmosphereResult.js.map +1 -0
- package/dist/data/values/Iau1980Data.d.ts +36 -0
- package/dist/data/values/Iau1980Data.js +52 -0
- package/dist/data/values/Iau1980Data.js.map +1 -0
- package/dist/data/values/LeapSecond.d.ts +27 -0
- package/dist/data/values/LeapSecond.js +35 -0
- package/dist/data/values/LeapSecond.js.map +1 -0
- package/dist/data/values/LeapSecondData.d.ts +41 -0
- package/dist/data/values/LeapSecondData.js +103 -0
- package/dist/data/values/LeapSecondData.js.map +1 -0
- package/dist/data/values/egm96.d.ts +24 -0
- package/dist/data/values/egm96.js +726 -0
- package/dist/data/values/egm96.js.map +1 -0
- package/dist/data/values/hpAtmosphere.d.ts +24 -0
- package/dist/data/values/hpAtmosphere.js +76 -0
- package/dist/data/values/hpAtmosphere.js.map +1 -0
- package/dist/data/values/iau1980.d.ts +24 -0
- package/dist/data/values/iau1980.js +30 -0
- package/dist/data/values/iau1980.js.map +1 -0
- package/dist/enums/AngularDiameterMethod.d.ts +27 -0
- package/dist/enums/AngularDiameterMethod.js +29 -0
- package/dist/enums/AngularDiameterMethod.js.map +1 -0
- package/dist/enums/AngularDistanceMethod.d.ts +27 -0
- package/dist/enums/AngularDistanceMethod.js +29 -0
- package/dist/enums/AngularDistanceMethod.js.map +1 -0
- package/dist/enums/OrbitRegime.d.ts +30 -0
- package/dist/enums/OrbitRegime.js +32 -0
- package/dist/enums/OrbitRegime.js.map +1 -0
- package/dist/enums/PassType.d.ts +28 -0
- package/dist/enums/PassType.js +30 -0
- package/dist/enums/PassType.js.map +1 -0
- package/dist/enums/Sgp4OpsMode.d.ts +26 -0
- package/dist/enums/Sgp4OpsMode.js +28 -0
- package/dist/enums/Sgp4OpsMode.js.map +1 -0
- package/dist/enums/index.d.ts +5 -0
- package/dist/enums/index.js +5 -0
- package/dist/enums/index.js.map +1 -1
- 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/EarthGravity.js.map +1 -1
- package/dist/force/Force.d.ts +2 -2
- package/dist/force/Force.js +1 -1
- package/dist/force/ForceModel.d.ts +2 -2
- package/dist/force/ForceModel.js +2 -2
- package/dist/force/ForceModel.js.map +1 -1
- package/dist/force/Gravity.d.ts +2 -2
- package/dist/force/Gravity.js +2 -2
- package/dist/force/Gravity.js.map +1 -1
- package/dist/force/SolarRadiationPressure.d.ts +2 -2
- package/dist/force/SolarRadiationPressure.js +2 -2
- package/dist/force/SolarRadiationPressure.js.map +1 -1
- package/dist/force/ThirdBodyGravity.d.ts +2 -2
- package/dist/force/ThirdBodyGravity.js +2 -2
- package/dist/force/ThirdBodyGravity.js.map +1 -1
- package/dist/force/Thrust.d.ts +2 -2
- package/dist/force/Thrust.js +2 -2
- package/dist/force/Thrust.js.map +1 -1
- package/dist/interfaces/BaseObjectParams.d.ts +31 -0
- package/dist/interfaces/BaseObjectParams.js +24 -0
- package/dist/interfaces/BaseObjectParams.js.map +1 -0
- package/dist/interfaces/ClassicalElementsParams.d.ts +33 -0
- package/dist/interfaces/ClassicalElementsParams.js +24 -0
- package/dist/interfaces/ClassicalElementsParams.js.map +1 -0
- package/dist/interfaces/EquinoctialElementsParams.d.ts +35 -0
- package/dist/interfaces/EquinoctialElementsParams.js +24 -0
- package/dist/interfaces/EquinoctialElementsParams.js.map +1 -0
- package/dist/interfaces/GroundPositionParams.d.ts +28 -0
- package/dist/interfaces/GroundPositionParams.js +24 -0
- package/dist/interfaces/GroundPositionParams.js.map +1 -0
- package/dist/interfaces/OmmFormat.d.ts +62 -0
- package/dist/interfaces/OmmFormat.js +2 -0
- package/dist/interfaces/OmmFormat.js.map +1 -0
- package/dist/interfaces/OptionsParams.d.ts +3 -0
- package/dist/interfaces/OptionsParams.js +2 -0
- package/dist/interfaces/OptionsParams.js.map +1 -0
- package/dist/interfaces/RfSensorParams.d.ts +1 -1
- package/dist/interfaces/SatelliteParams.d.ts +18 -0
- package/dist/interfaces/SatelliteParams.js +2 -0
- package/dist/interfaces/SatelliteParams.js.map +1 -0
- package/dist/interfaces/SensorParams.d.ts +38 -0
- package/dist/interfaces/SensorParams.js +2 -0
- package/dist/interfaces/SensorParams.js.map +1 -0
- package/dist/interfaces/StarObjectParams.d.ts +10 -0
- package/dist/interfaces/StarObjectParams.js +2 -0
- package/dist/interfaces/StarObjectParams.js.map +1 -0
- package/dist/interfaces/TimeVariables.d.ts +6 -0
- package/dist/interfaces/TimeVariables.js +2 -0
- package/dist/interfaces/TimeVariables.js.map +1 -0
- package/dist/interfaces/index.d.ts +8 -0
- 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 +1 -1
- 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 +1 -1
- package/dist/interpolator/FieldInterpolator.js +1 -1
- package/dist/interpolator/Interpolator.d.ts +2 -2
- package/dist/interpolator/Interpolator.js +2 -2
- package/dist/interpolator/Interpolator.js.map +1 -1
- package/dist/interpolator/LagrangeInterpolator.d.ts +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 +1 -1
- package/dist/interpolator/VerletBlendInterpolator.d.ts +2 -2
- package/dist/interpolator/VerletBlendInterpolator.js +2 -2
- package/dist/interpolator/VerletBlendInterpolator.js.map +1 -1
- package/dist/main.d.ts +15 -5
- package/dist/main.js +15 -5
- package/dist/main.js.map +1 -1
- package/dist/maneuver/TwoBurnOrbitTransfer.d.ts +2 -2
- package/dist/maneuver/TwoBurnOrbitTransfer.js +2 -2
- package/dist/maneuver/TwoBurnOrbitTransfer.js.map +1 -1
- package/dist/maneuver/Waypoint.d.ts +2 -2
- package/dist/maneuver/Waypoint.js +2 -2
- package/dist/maneuver/Waypoint.js.map +1 -1
- package/dist/objects/BaseObject.d.ts +74 -0
- package/dist/objects/BaseObject.js +151 -0
- package/dist/objects/BaseObject.js.map +1 -0
- package/dist/objects/DetailedSatellite.d.ts +3 -2
- package/dist/objects/DetailedSatellite.js +6 -4
- package/dist/objects/DetailedSatellite.js.map +1 -1
- package/dist/objects/DetailedSensor.d.ts +3 -2
- package/dist/objects/DetailedSensor.js +2 -2
- package/dist/objects/DetailedSensor.js.map +1 -1
- package/dist/objects/GroundObject.d.ts +85 -0
- package/dist/objects/GroundObject.js +143 -0
- package/dist/objects/GroundObject.js.map +1 -0
- package/dist/objects/LandObject.d.ts +3 -2
- package/dist/objects/LandObject.js +2 -2
- package/dist/objects/LandObject.js.map +1 -1
- package/dist/objects/Marker.d.ts +2 -2
- package/dist/objects/Marker.js +2 -2
- package/dist/objects/Marker.js.map +1 -1
- package/dist/objects/RfSensor.d.ts +1 -2
- package/dist/objects/RfSensor.js +1 -2
- package/dist/objects/RfSensor.js.map +1 -1
- package/dist/objects/Satellite.d.ts +226 -0
- package/dist/objects/Satellite.js +443 -0
- package/dist/objects/Satellite.js.map +1 -0
- package/dist/objects/Sensor.d.ts +99 -0
- package/dist/objects/Sensor.js +238 -0
- package/dist/objects/Sensor.js.map +1 -0
- package/dist/objects/Star.d.ts +36 -0
- package/dist/objects/Star.js +59 -0
- package/dist/objects/Star.js.map +1 -0
- package/dist/objects/index.d.ts +5 -0
- package/dist/objects/index.js +5 -0
- package/dist/objects/index.js.map +1 -1
- package/dist/observation/Observation.d.ts +2 -2
- package/dist/observation/Observation.js +1 -1
- 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 +4 -2
- package/dist/observation/ObservationUtils.js +16 -2
- package/dist/observation/ObservationUtils.js.map +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 +111 -0
- package/dist/observation/RAE.js +214 -0
- package/dist/observation/RAE.js.map +1 -0
- package/dist/observation/RadecGeocentric.d.ts +111 -0
- package/dist/observation/RadecGeocentric.js +169 -0
- package/dist/observation/RadecGeocentric.js.map +1 -0
- package/dist/observation/RadecTopocentric.d.ts +123 -0
- package/dist/observation/RadecTopocentric.js +196 -0
- package/dist/observation/RadecTopocentric.js.map +1 -0
- package/dist/observation/index.d.ts +26 -0
- package/dist/observation/index.js +27 -0
- package/dist/observation/index.js.map +1 -0
- package/dist/operations/BoxMuller.d.ts +2 -2
- package/dist/operations/BoxMuller.js +2 -2
- package/dist/operations/BoxMuller.js.map +1 -1
- package/dist/operations/EulerAngles.d.ts +2 -2
- package/dist/operations/EulerAngles.js +2 -2
- package/dist/operations/EulerAngles.js.map +1 -1
- package/dist/operations/Matrix.d.ts +170 -0
- package/dist/operations/Matrix.js +405 -0
- package/dist/operations/Matrix.js.map +1 -0
- 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 +40 -0
- package/dist/operations/Random.js +50 -0
- package/dist/operations/Random.js.map +1 -0
- 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 +262 -0
- package/dist/operations/Vector.js +415 -0
- package/dist/operations/Vector.js.map +1 -0
- package/dist/operations/Vector3D.d.ts +86 -0
- package/dist/operations/Vector3D.js +241 -0
- package/dist/operations/Vector3D.js.map +1 -0
- package/dist/operations/operations.d.ts +26 -0
- package/dist/operations/operations.js +27 -0
- package/dist/operations/operations.js.map +1 -0
- package/dist/optimize/ChebyshevCompressor.d.ts +3 -3
- package/dist/optimize/ChebyshevCompressor.js +8 -8
- 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 +2 -2
- package/dist/optimize/PolynomialRegression.js.map +1 -1
- package/dist/optimize/PolynomicalRegressionResult.d.ts +1 -1
- package/dist/optimize/PolynomicalRegressionResult.js +1 -1
- package/dist/optimize/SimpleLinearRegression.d.ts +1 -1
- package/dist/optimize/SimpleLinearRegression.js +1 -1
- package/dist/optimize/SimplexEntry.d.ts +4 -4
- 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 +1 -1
- package/dist/orbit_determination/GibbsIOD.d.ts +2 -2
- package/dist/orbit_determination/GibbsIOD.js +2 -2
- package/dist/orbit_determination/GibbsIOD.js.map +1 -1
- package/dist/orbit_determination/GoodingIOD.d.ts +2 -2
- package/dist/orbit_determination/GoodingIOD.js +2 -2
- package/dist/orbit_determination/GoodingIOD.js.map +1 -1
- package/dist/orbit_determination/HerrickGibbsIOD.d.ts +2 -2
- package/dist/orbit_determination/HerrickGibbsIOD.js +2 -2
- package/dist/orbit_determination/HerrickGibbsIOD.js.map +1 -1
- package/dist/orbit_determination/LambertIOD.d.ts +2 -2
- package/dist/orbit_determination/LambertIOD.js +2 -2
- package/dist/orbit_determination/LambertIOD.js.map +1 -1
- package/dist/orbit_determination/ModifiedGoodingIOD.d.ts +4 -4
- package/dist/orbit_determination/ModifiedGoodingIOD.js +2 -2
- package/dist/orbit_determination/ModifiedGoodingIOD.js.map +1 -1
- package/dist/orbit_determination/index.d.ts +7 -0
- package/dist/orbit_determination/index.js +8 -0
- package/dist/orbit_determination/index.js.map +1 -0
- 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 +6 -6
- package/dist/propagator/KeplerPropagator.js +31 -31
- package/dist/propagator/KeplerPropagator.js.map +1 -1
- package/dist/propagator/Propagator.d.ts +2 -2
- package/dist/propagator/Propagator.js +2 -2
- package/dist/propagator/Propagator.js.map +1 -1
- package/dist/propagator/RkCheckpoint.d.ts +2 -2
- package/dist/propagator/RkCheckpoint.js +1 -1
- package/dist/propagator/RkResult.d.ts +2 -2
- package/dist/propagator/RkResult.js +1 -1
- package/dist/propagator/RungeKutta4Propagator.d.ts +3 -3
- package/dist/propagator/RungeKutta4Propagator.js +2 -2
- 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 +4 -4
- package/dist/propagator/RungeKuttaAdaptive.js +2 -2
- package/dist/propagator/RungeKuttaAdaptive.js.map +1 -1
- package/dist/propagator/Sgp4Propagator.d.ts +6 -6
- package/dist/propagator/Sgp4Propagator.js +15 -15
- package/dist/propagator/Sgp4Propagator.js.map +1 -1
- package/dist/sgp4/index.d.ts +23 -0
- package/dist/sgp4/index.js +24 -0
- package/dist/sgp4/index.js.map +1 -0
- package/dist/sgp4/sgp4-error.d.ts +22 -0
- package/dist/sgp4/sgp4-error.js +44 -0
- package/dist/sgp4/sgp4-error.js.map +1 -0
- package/dist/sgp4/sgp4.d.ts +99 -0
- package/dist/sgp4/sgp4.js +3164 -0
- package/dist/sgp4/sgp4.js.map +1 -0
- package/dist/smoothing/ExponentialSmoothing.d.ts +2 -2
- package/dist/smoothing/ExponentialSmoothing.js +1 -1
- package/dist/time/Epoch.d.ts +44 -0
- package/dist/time/Epoch.js +109 -0
- package/dist/time/Epoch.js.map +1 -0
- package/dist/time/EpochGPS.d.ts +42 -0
- package/dist/time/EpochGPS.js +70 -0
- package/dist/time/EpochGPS.js.map +1 -0
- package/dist/time/EpochTAI.d.ts +26 -0
- package/dist/time/EpochTAI.js +27 -0
- package/dist/time/EpochTAI.js.map +1 -0
- package/dist/time/EpochTDB.d.ts +26 -0
- package/dist/time/EpochTDB.js +27 -0
- package/dist/time/EpochTDB.js.map +1 -0
- package/dist/time/EpochTT.d.ts +26 -0
- package/dist/time/EpochTT.js +27 -0
- package/dist/time/EpochTT.js.map +1 -0
- package/dist/time/EpochUTC.d.ts +59 -0
- package/dist/time/EpochUTC.js +137 -0
- package/dist/time/EpochUTC.js.map +1 -0
- package/dist/time/EpochWindow.d.ts +28 -0
- package/dist/time/EpochWindow.js +31 -0
- package/dist/time/EpochWindow.js.map +1 -0
- package/dist/time/TimeStamped.d.ts +39 -0
- package/dist/time/TimeStamped.js +42 -0
- package/dist/time/TimeStamped.js.map +1 -0
- package/dist/time/index.d.ts +8 -0
- package/dist/time/index.js +9 -0
- package/dist/time/index.js.map +1 -0
- package/dist/transforms/TransformCache.d.ts +27 -0
- package/dist/transforms/TransformCache.js +41 -0
- package/dist/transforms/TransformCache.js.map +1 -0
- package/dist/transforms/conversions.d.ts +63 -0
- package/dist/transforms/conversions.js +88 -0
- package/dist/transforms/conversions.js.map +1 -0
- package/dist/transforms/index.d.ts +1 -0
- package/dist/transforms/index.js +1 -0
- package/dist/transforms/index.js.map +1 -1
- package/dist/transforms/transforms.d.ts +166 -2
- package/dist/transforms/transforms.js +372 -1
- package/dist/transforms/transforms.js.map +1 -1
- package/dist/types/types.d.ts +675 -3
- package/dist/types/types.js +37 -1
- package/dist/types/types.js.map +1 -1
- package/dist/utils/constants.d.ts +80 -0
- package/dist/utils/constants.js +87 -0
- package/dist/utils/constants.js.map +1 -0
- 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.d.ts +228 -0
- package/dist/utils/functions.js +476 -0
- package/dist/utils/functions.js.map +1 -1
- package/dist/utils/index.d.ts +4 -1
- package/dist/utils/index.js +4 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/jacobian.d.ts +7 -1
- package/dist/utils/jacobian.js +7 -2
- package/dist/utils/jacobian.js.map +1 -1
- package/dist/utils/linearDistance.d.ts +8 -0
- package/dist/utils/linearDistance.js +10 -0
- package/dist/utils/linearDistance.js.map +1 -0
- package/package.json +5 -8
- package/src/body/Celestial.ts +134 -0
- package/src/body/Earth.ts +260 -0
- package/src/body/Moon.ts +556 -0
- package/src/body/NutationAngles.ts +40 -0
- package/src/body/PrecessionAngles.ts +31 -0
- package/src/body/Sun.ts +665 -0
- package/src/body/index.ts +27 -0
- package/src/body/suncalc.LICENSE.md +18 -0
- package/src/coordinate/ClassicalElements.ts +327 -0
- package/src/coordinate/EquinoctialElements.ts +189 -0
- package/src/coordinate/FormatTle.ts +214 -0
- package/src/coordinate/Geodetic.ts +186 -0
- package/src/coordinate/Hill.ts +2 -2
- package/src/coordinate/ITRF.ts +146 -0
- package/src/coordinate/J2000.ts +130 -0
- package/src/coordinate/RIC.ts +87 -0
- package/src/coordinate/RelativeState.ts +101 -0
- package/src/coordinate/StateVector.ts +123 -0
- package/src/coordinate/TEME.ts +97 -0
- package/src/coordinate/Tle.ts +1024 -0
- package/src/coordinate/index.ts +11 -0
- package/src/coordinate/tle-format-data.ts +47 -0
- package/src/covariance/CovarianceSample.ts +117 -19
- package/src/covariance/StateCovariance.ts +2 -2
- package/src/covariance/index.ts +2 -0
- package/src/data/DataHandler.ts +88 -0
- package/src/data/values/Egm96Data.ts +75 -0
- package/src/data/values/HpAtmosphereData.ts +76 -0
- package/src/data/values/HpAtmosphereResult.ts +41 -0
- package/src/data/values/Iau1980Data.ts +63 -0
- package/src/data/values/LeapSecond.ts +37 -0
- package/src/data/values/LeapSecondData.ts +113 -0
- package/src/data/values/egm96.ts +728 -0
- package/src/data/values/hpAtmosphere.ts +79 -0
- package/src/data/values/iau1980.ts +32 -0
- package/src/enums/AngularDiameterMethod.ts +28 -0
- package/src/enums/AngularDistanceMethod.ts +28 -0
- package/src/enums/OrbitRegime.ts +31 -0
- package/src/enums/PassType.ts +29 -0
- package/src/enums/Sgp4OpsMode.ts +27 -0
- package/src/enums/index.ts +5 -0
- 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 +33 -0
- package/src/interfaces/ClassicalElementsParams.ts +35 -0
- package/src/interfaces/EquinoctialElementsParams.ts +37 -0
- package/src/interfaces/GroundPositionParams.ts +30 -0
- package/src/interfaces/OmmFormat.ts +63 -0
- package/src/interfaces/OptionsParams.ts +3 -0
- package/src/interfaces/RfSensorParams.ts +1 -1
- package/src/interfaces/SatelliteParams.ts +20 -0
- package/src/interfaces/SensorParams.ts +39 -0
- package/src/interfaces/StarObjectParams.ts +11 -0
- package/src/interfaces/TimeVariables.ts +7 -0
- package/src/interfaces/index.ts +8 -0
- 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 +1 -1
- 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 +15 -5
- package/src/maneuver/TwoBurnOrbitTransfer.ts +2 -2
- package/src/maneuver/Waypoint.ts +2 -2
- package/src/objects/BaseObject.ts +171 -0
- package/src/objects/DetailedSatellite.ts +5 -4
- package/src/objects/DetailedSensor.ts +3 -2
- package/src/objects/GroundObject.ts +176 -0
- package/src/objects/LandObject.ts +3 -2
- package/src/objects/Marker.ts +2 -2
- package/src/objects/RfSensor.ts +1 -2
- package/src/objects/Satellite.ts +552 -0
- package/src/objects/Sensor.ts +279 -0
- package/src/objects/Star.ts +96 -0
- package/src/objects/index.ts +5 -0
- 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 +31 -2
- package/src/observation/PropagatorPairs.ts +3 -3
- package/src/observation/RAE.ts +261 -0
- package/src/observation/RadecGeocentric.ts +206 -0
- package/src/observation/RadecTopocentric.ts +241 -0
- package/src/observation/index.ts +27 -0
- package/src/operations/BoxMuller.ts +2 -2
- package/src/operations/EulerAngles.ts +2 -2
- package/src/operations/Matrix.ts +473 -0
- package/src/operations/Quaternion.ts +7 -7
- package/src/operations/Random.ts +54 -0
- package/src/operations/RandomGaussianSource.ts +5 -5
- package/src/operations/Vector.ts +484 -0
- package/src/operations/Vector3D.ts +289 -0
- package/src/operations/operations.ts +27 -0
- package/src/optimize/ChebyshevCompressor.ts +6 -6
- package/src/optimize/DownhillSimplex.ts +1 -1
- package/src/optimize/GoldenSection.ts +3 -3
- package/src/optimize/PolynomialRegression.ts +2 -2
- package/src/optimize/PolynomicalRegressionResult.ts +1 -1
- package/src/optimize/SimpleLinearRegression.ts +1 -1
- 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 +4 -2
- package/src/orbit_determination/GoodingIOD.ts +2 -2
- package/src/orbit_determination/HerrickGibbsIOD.ts +2 -2
- package/src/orbit_determination/LambertIOD.ts +2 -2
- package/src/orbit_determination/ModifiedGoodingIOD.ts +4 -4
- package/src/orbit_determination/index.ts +7 -0
- package/src/propagator/DormandPrince54Propagator.ts +9 -9
- package/src/propagator/KeplerPropagator.ts +31 -31
- package/src/propagator/Propagator.ts +2 -2
- package/src/propagator/RkCheckpoint.ts +2 -2
- package/src/propagator/RkResult.ts +2 -2
- package/src/propagator/RungeKutta4Propagator.ts +3 -3
- package/src/propagator/RungeKutta89Propagator.ts +5 -5
- package/src/propagator/RungeKuttaAdaptive.ts +4 -4
- package/src/propagator/Sgp4Propagator.ts +14 -14
- package/src/sgp4/index.ts +24 -0
- package/src/sgp4/sgp4-error.ts +53 -0
- package/src/sgp4/sgp4.LICENSE.md +28 -0
- package/src/sgp4/sgp4.ts +3983 -0
- package/src/smoothing/ExponentialSmoothing.ts +2 -2
- package/src/time/Epoch.ts +128 -0
- package/src/time/EpochGPS.ts +76 -0
- package/src/time/EpochTAI.ts +27 -0
- package/src/time/EpochTDB.ts +27 -0
- package/src/time/EpochTT.ts +27 -0
- package/src/time/EpochUTC.ts +188 -0
- package/src/time/EpochWindow.ts +33 -0
- package/src/time/TimeStamped.ts +46 -0
- package/src/time/index.ts +8 -0
- package/src/transforms/TransformCache.ts +46 -0
- package/src/transforms/conversions.ts +98 -0
- package/src/transforms/index.ts +1 -0
- package/src/transforms/transforms.ts +478 -2
- package/src/types/types.ts +722 -3
- package/src/utils/constants.ts +113 -0
- package/src/utils/create-covariance-from-tle.ts +75 -0
- package/src/utils/functions.ts +562 -0
- package/src/utils/index.ts +4 -1
- package/src/utils/jacobian.ts +7 -3
- package/src/utils/linearDistance.ts +11 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { EciVec3, SpaceObjectType, TleLine1, TleLine2 } from '../types/types.js';
|
|
2
|
+
import { OmmDataFormat } from './OmmFormat.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Information about a space object.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export interface SatelliteParams {
|
|
9
|
+
name?: string;
|
|
10
|
+
rcs?: number | null;
|
|
11
|
+
omm?: OmmDataFormat;
|
|
12
|
+
tle1?: TleLine1;
|
|
13
|
+
tle2?: TleLine2;
|
|
14
|
+
type?: SpaceObjectType;
|
|
15
|
+
vmag?: number | null;
|
|
16
|
+
sccNum?: string;
|
|
17
|
+
intlDes?: string;
|
|
18
|
+
position?: EciVec3;
|
|
19
|
+
time?: Date;
|
|
20
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Degrees, Kilometers, SpaceObjectType } from '../types/types.js';
|
|
2
|
+
import { BaseObjectParams } from './BaseObjectParams.js';
|
|
3
|
+
|
|
4
|
+
export interface SensorParams extends BaseObjectParams{
|
|
5
|
+
/** Altitude in Kilometers */
|
|
6
|
+
alt: Kilometers;
|
|
7
|
+
/** Latitude in Degrees */
|
|
8
|
+
lat: Degrees;
|
|
9
|
+
/** Longitude in Degrees */
|
|
10
|
+
lon: Degrees;
|
|
11
|
+
/** Maximum Azimuth in Degrees */
|
|
12
|
+
maxAz: Degrees;
|
|
13
|
+
/** Secondary Maximum Azimuth in Degrees */
|
|
14
|
+
maxAz2?: Degrees;
|
|
15
|
+
/** Maximum Elevation in Degrees */
|
|
16
|
+
maxEl: Degrees;
|
|
17
|
+
/** Secondary Maximum Elevation in Degrees */
|
|
18
|
+
maxEl2?: Degrees;
|
|
19
|
+
/** Maximum Range in Kilometers */
|
|
20
|
+
maxRng: Kilometers;
|
|
21
|
+
/** Secondary Maximum Range in Kilometers */
|
|
22
|
+
maxRng2?: Kilometers;
|
|
23
|
+
/** Minimum Azimuth in Degrees */
|
|
24
|
+
minAz: Degrees;
|
|
25
|
+
/** Secondary Minimum Azimuth in Degrees */
|
|
26
|
+
minAz2?: Degrees;
|
|
27
|
+
/** Minimum Elevation in Degrees */
|
|
28
|
+
minEl: Degrees;
|
|
29
|
+
/** Secondary Minimum Elevation in Degrees */
|
|
30
|
+
minEl2?: Degrees;
|
|
31
|
+
/** Minimum Range in Kilometers */
|
|
32
|
+
minRng: Kilometers;
|
|
33
|
+
/** Secondary Minimum Range in Kilometers */
|
|
34
|
+
minRng2?: Kilometers;
|
|
35
|
+
/** Name as a string */
|
|
36
|
+
name?: string;
|
|
37
|
+
/** Type of sensor */
|
|
38
|
+
type?: SpaceObjectType;
|
|
39
|
+
}
|
package/src/interfaces/index.ts
CHANGED
|
@@ -1 +1,9 @@
|
|
|
1
|
+
export type { BaseObjectParams } from './BaseObjectParams.js';
|
|
2
|
+
export type { GroundPositionParams } from './GroundPositionParams.js';
|
|
3
|
+
export type { OptionsParams } from './OptionsParams.js';
|
|
4
|
+
export type { SatelliteParams } from './SatelliteParams.js';
|
|
5
|
+
export type { SensorParams } from './SensorParams.js';
|
|
6
|
+
export type { StarObjectParams } from './StarObjectParams.js';
|
|
7
|
+
export type { ClassicalElementsParams } from './ClassicalElementsParams.js';
|
|
8
|
+
export type { EquinoctialElementsParams } from './EquinoctialElementsParams.js';
|
|
1
9
|
export type { RfSensorParams } from './RfSensorParams.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
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { Kilometers, KilometersPerSecond, PositionVelocity, Seconds, Vector3D } from '
|
|
18
|
+
import { Kilometers, KilometersPerSecond, PositionVelocity, Seconds, Vector3D } from '../main.js';
|
|
19
19
|
|
|
20
20
|
// / Chebyshev compressed ephemeris coefficients.
|
|
21
21
|
export class ChebyshevCoefficients {
|
|
@@ -26,9 +26,9 @@ export class ChebyshevCoefficients {
|
|
|
26
26
|
constructor(
|
|
27
27
|
public a: Seconds,
|
|
28
28
|
public b: Seconds,
|
|
29
|
-
private cx_: Float64Array,
|
|
30
|
-
private cy_: Float64Array,
|
|
31
|
-
private cz_: Float64Array,
|
|
29
|
+
private readonly cx_: Float64Array,
|
|
30
|
+
private readonly cy_: Float64Array,
|
|
31
|
+
private readonly cz_: Float64Array,
|
|
32
32
|
) {
|
|
33
33
|
this.cxd_ = ChebyshevCoefficients._derivative(a, b, cx_);
|
|
34
34
|
this.cyd_ = ChebyshevCoefficients._derivative(a, b, cy_);
|
|
@@ -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
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { EpochUTC, EpochWindow, J2000 } from '
|
|
18
|
+
import { EpochUTC, EpochWindow, J2000 } from '../main.js';
|
|
19
19
|
import { ChebyshevCoefficients } from './ChebyshevCoefficients.js';
|
|
20
20
|
import { StateInterpolator } from './StateInterpolator.js';
|
|
21
21
|
|
|
@@ -30,17 +30,17 @@ import { StateInterpolator } from './StateInterpolator.js';
|
|
|
30
30
|
* in increased accuracy and decreased performance.
|
|
31
31
|
*/
|
|
32
32
|
export class ChebyshevInterpolator extends StateInterpolator {
|
|
33
|
-
private
|
|
33
|
+
private readonly coefficients_: ChebyshevCoefficients[];
|
|
34
34
|
|
|
35
35
|
constructor(coefficients: ChebyshevCoefficients[]) {
|
|
36
36
|
super();
|
|
37
|
-
this.
|
|
37
|
+
this.coefficients_ = coefficients;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
private _calcSizeBytes(): number {
|
|
41
41
|
let output = 0;
|
|
42
42
|
|
|
43
|
-
for (const coeffs of this.
|
|
43
|
+
for (const coeffs of this.coefficients_) {
|
|
44
44
|
output += coeffs.sizeBytes;
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -63,25 +63,25 @@ export class ChebyshevInterpolator extends StateInterpolator {
|
|
|
63
63
|
|
|
64
64
|
window(): EpochWindow {
|
|
65
65
|
return new EpochWindow(
|
|
66
|
-
new EpochUTC(this.
|
|
67
|
-
new EpochUTC(this.
|
|
66
|
+
new EpochUTC(this.coefficients_[0].a),
|
|
67
|
+
new EpochUTC(this.coefficients_[this.coefficients_.length - 1].b),
|
|
68
68
|
);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
private _matchCoefficients(posix: number): ChebyshevCoefficients {
|
|
72
72
|
let left = 0;
|
|
73
|
-
let right = this.
|
|
73
|
+
let right = this.coefficients_.length;
|
|
74
74
|
|
|
75
75
|
while (left < right) {
|
|
76
76
|
const middle = (left + right) >> 1;
|
|
77
77
|
|
|
78
|
-
if (this.
|
|
78
|
+
if (this.coefficients_[middle].b < posix) {
|
|
79
79
|
left = middle + 1;
|
|
80
80
|
} else {
|
|
81
81
|
right = middle;
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
return this.
|
|
85
|
+
return this.coefficients_[left];
|
|
86
86
|
}
|
|
87
87
|
}
|
|
@@ -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
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { Kilometers, KilometersPerSecond, Seconds, Vector3D } from '
|
|
18
|
+
import { Kilometers, KilometersPerSecond, Seconds, Vector3D } from '../main.js';
|
|
19
19
|
|
|
20
20
|
// / Container for cubic spline data.
|
|
21
21
|
export class CubicSpline {
|
|
@@ -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
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { EpochUTC, EpochWindow, J2000, Kilometers, KilometersPerSecond, Vector3D } from '
|
|
18
|
+
import { EpochUTC, EpochWindow, J2000, Kilometers, KilometersPerSecond, Vector3D } from '../main.js';
|
|
19
19
|
import { CubicSpline } from './CubicSpline.js';
|
|
20
20
|
import { StateInterpolator } from './StateInterpolator.js';
|
|
21
21
|
|
|
@@ -28,7 +28,7 @@ import { StateInterpolator } from './StateInterpolator.js';
|
|
|
28
28
|
* sparse ephemerides.
|
|
29
29
|
*/
|
|
30
30
|
export class CubicSplineInterpolator extends StateInterpolator {
|
|
31
|
-
constructor(private
|
|
31
|
+
constructor(private readonly splines_: CubicSpline[]) {
|
|
32
32
|
super();
|
|
33
33
|
}
|
|
34
34
|
|
|
@@ -52,24 +52,24 @@ export class CubicSplineInterpolator extends StateInterpolator {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
get sizeBytes(): number {
|
|
55
|
-
return (64 * 14 * this.
|
|
55
|
+
return (64 * 14 * this.splines_.length) / 8;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
private matchSpline_(posix: number): CubicSpline {
|
|
59
59
|
let left = 0;
|
|
60
|
-
let right = this.
|
|
60
|
+
let right = this.splines_.length;
|
|
61
61
|
|
|
62
62
|
while (left < right) {
|
|
63
63
|
const middle = (left + right) >> 1;
|
|
64
64
|
|
|
65
|
-
if (this.
|
|
65
|
+
if (this.splines_[middle].t1 < posix) {
|
|
66
66
|
left = middle + 1;
|
|
67
67
|
} else {
|
|
68
68
|
right = middle;
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
return this.
|
|
72
|
+
return this.splines_[left];
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
interpolate(epoch: EpochUTC): J2000 | null {
|
|
@@ -85,6 +85,6 @@ export class CubicSplineInterpolator extends StateInterpolator {
|
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
window(): EpochWindow {
|
|
88
|
-
return new EpochWindow(new EpochUTC(this.
|
|
88
|
+
return new EpochWindow(new EpochUTC(this.splines_[0].t0), new EpochUTC(this.splines_[this.splines_.length - 1].t1));
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -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
|
|
@@ -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
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { EpochUTC, EpochWindow, Seconds } from '
|
|
18
|
+
import { EpochUTC, EpochWindow, Seconds } from '../main.js';
|
|
19
19
|
|
|
20
20
|
// / Interpolator base class.
|
|
21
21
|
export abstract class Interpolator {
|
|
@@ -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
|
|
@@ -15,15 +15,15 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { EpochUTC, EpochWindow, J2000, Kilometers, KilometersPerSecond, Seconds, Vector3D } from '
|
|
18
|
+
import { EpochUTC, EpochWindow, J2000, Kilometers, KilometersPerSecond, Seconds, Vector3D } from '../main.js';
|
|
19
19
|
import { StateInterpolator } from './StateInterpolator.js';
|
|
20
20
|
|
|
21
21
|
export class LagrangeInterpolator extends StateInterpolator {
|
|
22
|
-
private t_: Float64Array;
|
|
23
|
-
private x_: Float64Array;
|
|
24
|
-
private y_: Float64Array;
|
|
25
|
-
private z_: Float64Array;
|
|
26
|
-
private order: number;
|
|
22
|
+
private readonly t_: Float64Array;
|
|
23
|
+
private readonly x_: Float64Array;
|
|
24
|
+
private readonly y_: Float64Array;
|
|
25
|
+
private readonly z_: Float64Array;
|
|
26
|
+
private readonly order: number;
|
|
27
27
|
|
|
28
28
|
constructor(t: Float64Array, x: Float64Array, y: Float64Array, z: Float64Array, order = 10) {
|
|
29
29
|
super();
|
|
@@ -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
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { EpochUTC, J2000 } from '
|
|
18
|
+
import { EpochUTC, J2000 } from '../main.js';
|
|
19
19
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
20
20
|
/* eslint-disable class-methods-use-this */
|
|
21
21
|
|
|
@@ -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
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
KilometersPerSecond,
|
|
26
26
|
Seconds,
|
|
27
27
|
Vector3D,
|
|
28
|
-
} from '
|
|
28
|
+
} from '../main.js';
|
|
29
29
|
import { CubicSplineInterpolator } from './CubicSplineInterpolator.js';
|
|
30
30
|
import { LagrangeInterpolator } from './LagrangeInterpolator.js';
|
|
31
31
|
import { StateInterpolator } from './StateInterpolator.js';
|
package/src/main.ts
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
* @description Orbital Object ToolKit (ootk) is a collection of tools for working
|
|
4
4
|
* with satellites and other orbital objects.
|
|
5
5
|
* @license AGPL-3.0-or-later
|
|
6
|
-
* @copyright (c)
|
|
6
|
+
* @copyright (c) 2025 Kruczek Labs LLC
|
|
7
7
|
*
|
|
8
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)
|
|
9
|
+
* Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which
|
|
10
|
+
* is licensed under the MIT license.
|
|
10
11
|
*
|
|
11
12
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
12
13
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -20,14 +21,23 @@
|
|
|
20
21
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
21
22
|
*/
|
|
22
23
|
|
|
23
|
-
export * from 'ootk-core';
|
|
24
24
|
export * from './enums/index.js';
|
|
25
25
|
export * from './types/types.js';
|
|
26
26
|
export * from './interfaces/index.js';
|
|
27
|
+
export * from './time/index.js';
|
|
28
|
+
export * from './transforms/index.js';
|
|
29
|
+
export * from './utils/index.js';
|
|
30
|
+
export * from './operations/operations.js';
|
|
31
|
+
export { BaseObject } from './objects/index.js';
|
|
32
|
+
export { Earth } from './body/index.js';
|
|
27
33
|
export * from './coordinate/index.js';
|
|
34
|
+
export * from './observation/index.js';
|
|
35
|
+
export * from './data/DataHandler.js';
|
|
36
|
+
export * from './sgp4/index.js';
|
|
28
37
|
export * from './objects/index.js';
|
|
38
|
+
export * from './body/index.js';
|
|
29
39
|
export * from './operations/index.js';
|
|
30
40
|
export * from './force/index.js';
|
|
31
41
|
export * from './propagator/index.js';
|
|
32
|
-
export * from './
|
|
33
|
-
export * from './
|
|
42
|
+
export * from './orbit_determination/index.js';
|
|
43
|
+
export * from './covariance/index.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
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { Earth, EpochUTC, MetersPerSecond, Seconds, SecondsPerMeterPerSecond } from '
|
|
18
|
+
import { Earth, EpochUTC, MetersPerSecond, Seconds, SecondsPerMeterPerSecond } from '../main.js';
|
|
19
19
|
import { Thrust } from '../force/Thrust.js';
|
|
20
20
|
|
|
21
21
|
// / Container for a two-burn orbit transfer.
|
package/src/maneuver/Waypoint.ts
CHANGED
|
@@ -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
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
RIC,
|
|
25
25
|
SecondsPerMeterPerSecond,
|
|
26
26
|
Vector3D,
|
|
27
|
-
} from '
|
|
27
|
+
} from '../main.js';
|
|
28
28
|
import { Thrust } from '../force/Thrust.js';
|
|
29
29
|
import { StateInterpolator } from '../interpolator/StateInterpolator.js';
|
|
30
30
|
import { ForceModel } from './../force/ForceModel.js';
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
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
|
|
7
|
+
*
|
|
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.
|
|
11
|
+
*
|
|
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
|
+
*/
|
|
23
|
+
|
|
24
|
+
import { BaseObjectParams } from '../interfaces/BaseObjectParams.js';
|
|
25
|
+
import { EciVec3, Kilometers, KilometersPerSecond, SpaceObjectType } from '../types/types.js';
|
|
26
|
+
|
|
27
|
+
export class BaseObject {
|
|
28
|
+
id: number;
|
|
29
|
+
name: string;
|
|
30
|
+
type: SpaceObjectType;
|
|
31
|
+
position: EciVec3; // Where is the object
|
|
32
|
+
totalVelocity: number; // How fast is the object moving
|
|
33
|
+
velocity: EciVec3<KilometersPerSecond>; // How fast is the object moving
|
|
34
|
+
active = true; // Is the object active
|
|
35
|
+
|
|
36
|
+
constructor(info: BaseObjectParams) {
|
|
37
|
+
this.type = info.type ?? SpaceObjectType.UNKNOWN;
|
|
38
|
+
this.name = info.name ?? 'Unknown';
|
|
39
|
+
this.id = info.id ?? -1; // Default to -1 if no id is provided
|
|
40
|
+
this.active = info.active ?? true;
|
|
41
|
+
|
|
42
|
+
// Default to the center of the earth until position is calculated
|
|
43
|
+
this.position = info.position ?? {
|
|
44
|
+
x: <Kilometers>0,
|
|
45
|
+
y: <Kilometers>0,
|
|
46
|
+
z: <Kilometers>0,
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// Default to 0 velocity until velocity is calculated
|
|
50
|
+
this.velocity = info.velocity ?? {
|
|
51
|
+
x: <KilometersPerSecond>0,
|
|
52
|
+
y: <KilometersPerSecond>0,
|
|
53
|
+
z: <KilometersPerSecond>0,
|
|
54
|
+
};
|
|
55
|
+
this.totalVelocity = Math.sqrt(this.velocity.x ** 2 + this.velocity.y ** 2 + this.velocity.z ** 2);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Checks if the object is a satellite.
|
|
60
|
+
* @returns True if the object is a satellite, false otherwise.
|
|
61
|
+
*/
|
|
62
|
+
isSatellite(): boolean {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Checks if the object is a ground object.
|
|
68
|
+
* @returns True if the object is a ground object, false otherwise.
|
|
69
|
+
*/
|
|
70
|
+
isGroundObject(): boolean {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Returns whether the object is a sensor.
|
|
76
|
+
* @returns True if the object is a sensor, false otherwise.
|
|
77
|
+
*/
|
|
78
|
+
isSensor(): boolean {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Checks if the object is a marker.
|
|
84
|
+
* @returns True if the object is a marker, false otherwise.
|
|
85
|
+
*/
|
|
86
|
+
isMarker(): boolean {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Returns whether the object's position is static.
|
|
92
|
+
* @returns True if the object is static, false otherwise.
|
|
93
|
+
*/
|
|
94
|
+
isStatic(): boolean {
|
|
95
|
+
return this.velocity.x === 0 && this.velocity.y === 0 && this.velocity.z === 0;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
isPayload(): boolean {
|
|
99
|
+
return this.type === SpaceObjectType.PAYLOAD;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
isRocketBody(): boolean {
|
|
103
|
+
return this.type === SpaceObjectType.ROCKET_BODY;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
isDebris(): boolean {
|
|
107
|
+
return this.type === SpaceObjectType.DEBRIS;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
isStar(): boolean {
|
|
111
|
+
return this.type === SpaceObjectType.STAR;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
isMissile(): boolean {
|
|
115
|
+
return this.type === SpaceObjectType.BALLISTIC_MISSILE;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
isNotional(): boolean {
|
|
119
|
+
return this.type === SpaceObjectType.NOTIONAL;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
getTypeString(): string {
|
|
123
|
+
const typeToStringMap: { [key in SpaceObjectType]?: string } = {
|
|
124
|
+
[SpaceObjectType.UNKNOWN]: 'Unknown',
|
|
125
|
+
[SpaceObjectType.PAYLOAD]: 'Payload',
|
|
126
|
+
[SpaceObjectType.ROCKET_BODY]: 'Rocket Body',
|
|
127
|
+
[SpaceObjectType.DEBRIS]: 'Debris',
|
|
128
|
+
[SpaceObjectType.SPECIAL]: 'Special',
|
|
129
|
+
[SpaceObjectType.BALLISTIC_MISSILE]: 'Ballistic Missile',
|
|
130
|
+
[SpaceObjectType.STAR]: 'Star',
|
|
131
|
+
[SpaceObjectType.INTERGOVERNMENTAL_ORGANIZATION]: 'Intergovernmental Organization',
|
|
132
|
+
[SpaceObjectType.SUBORBITAL_PAYLOAD_OPERATOR]: 'Suborbital Payload Operator',
|
|
133
|
+
[SpaceObjectType.PAYLOAD_OWNER]: 'Payload Owner',
|
|
134
|
+
[SpaceObjectType.METEOROLOGICAL_ROCKET_LAUNCH_AGENCY_OR_MANUFACTURER]:
|
|
135
|
+
'Meteorological Rocket Launch Agency or Manufacturer',
|
|
136
|
+
[SpaceObjectType.PAYLOAD_MANUFACTURER]: 'Payload Manufacturer',
|
|
137
|
+
[SpaceObjectType.LAUNCH_AGENCY]: 'Launch Agency',
|
|
138
|
+
[SpaceObjectType.LAUNCH_SITE]: 'Launch Site',
|
|
139
|
+
[SpaceObjectType.LAUNCH_POSITION]: 'Launch Position',
|
|
140
|
+
[SpaceObjectType.LAUNCH_FACILITY]: 'Launch Facility',
|
|
141
|
+
[SpaceObjectType.CONTROL_FACILITY]: 'Control Facility',
|
|
142
|
+
[SpaceObjectType.GROUND_SENSOR_STATION]: 'Ground Sensor Station',
|
|
143
|
+
[SpaceObjectType.OPTICAL]: 'Optical',
|
|
144
|
+
[SpaceObjectType.MECHANICAL]: 'Mechanical',
|
|
145
|
+
[SpaceObjectType.PHASED_ARRAY_RADAR]: 'Phased Array Radar',
|
|
146
|
+
[SpaceObjectType.OBSERVER]: 'Observer',
|
|
147
|
+
[SpaceObjectType.BISTATIC_RADIO_TELESCOPE]: 'Bistatic Radio Telescope',
|
|
148
|
+
[SpaceObjectType.COUNTRY]: 'Country',
|
|
149
|
+
[SpaceObjectType.LAUNCH_VEHICLE_MANUFACTURER]: 'Launch Vehicle Manufacturer',
|
|
150
|
+
[SpaceObjectType.ENGINE_MANUFACTURER]: 'Engine Manufacturer',
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
return typeToStringMap[this.type] ?? 'Unknown';
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Validates a parameter value against a minimum and maximum value.
|
|
158
|
+
* @param value - The value to be validated.
|
|
159
|
+
* @param minValue - The minimum allowed value.
|
|
160
|
+
* @param maxValue - The maximum allowed value.
|
|
161
|
+
* @param errorMessage - The error message to be thrown if the value is invalid.
|
|
162
|
+
*/
|
|
163
|
+
validateParameter<T>(value: T, minValue: T, maxValue: T, errorMessage: string): void {
|
|
164
|
+
if (typeof minValue !== 'undefined' && minValue !== null && (value as number) < (minValue as number)) {
|
|
165
|
+
throw new Error(errorMessage);
|
|
166
|
+
}
|
|
167
|
+
if (typeof maxValue !== 'undefined' && maxValue !== null && (value as number) > (maxValue as number)) {
|
|
168
|
+
throw new Error(errorMessage);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
@@ -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
|
|
@@ -15,18 +15,18 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
+
import { Satellite } from './Satellite.js';
|
|
18
19
|
import {
|
|
19
20
|
FormatTle,
|
|
20
21
|
LaunchDetails,
|
|
21
22
|
OperationsDetails,
|
|
22
23
|
OptionsParams,
|
|
23
|
-
Satellite,
|
|
24
24
|
SpaceCraftDetails,
|
|
25
25
|
TleLine1,
|
|
26
26
|
TleLine2,
|
|
27
|
-
|
|
27
|
+
CatalogSource,
|
|
28
|
+
} from '../main.js';
|
|
28
29
|
import { DetailedSatelliteParams, PayloadStatus } from '../types/types.js';
|
|
29
|
-
import { CatalogSource } from '../main.js';
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
32
|
* Represents a detailed satellite object with launch, spacecraft, and operations details.
|
|
@@ -64,6 +64,7 @@ export class DetailedSatellite extends Satellite {
|
|
|
64
64
|
status: PayloadStatus = PayloadStatus.UNKNOWN;
|
|
65
65
|
|
|
66
66
|
constructor(
|
|
67
|
+
// TODO: Replace this intersection with a type alias
|
|
67
68
|
info: DetailedSatelliteParams & LaunchDetails & OperationsDetails & SpaceCraftDetails,
|
|
68
69
|
options?: OptionsParams,
|
|
69
70
|
) {
|