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,289 @@
|
|
|
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 { Kilometers, KilometersPerSecond, Radians, linearDistance } from '../main.js';
|
|
25
|
+
import { Matrix } from './Matrix.js';
|
|
26
|
+
import { Vector } from './Vector.js';
|
|
27
|
+
|
|
28
|
+
// / 3-dimensional vector.
|
|
29
|
+
export class Vector3D<T extends number = number> {
|
|
30
|
+
constructor(
|
|
31
|
+
public x: T,
|
|
32
|
+
public y: T,
|
|
33
|
+
public z: T,
|
|
34
|
+
) {
|
|
35
|
+
// Nothing to do here.
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Create a new Vector3D object from the first three elements of a Vector
|
|
40
|
+
* object.
|
|
41
|
+
* @param v The Vector object to convert.
|
|
42
|
+
* @returns A new Vector3D object.
|
|
43
|
+
*/
|
|
44
|
+
static fromVector<U extends number>(v: Vector<U>): Vector3D<U> {
|
|
45
|
+
return new Vector3D<U>(v.x as U, v.y as U, v.z as U);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// / Origin vector.
|
|
49
|
+
static readonly origin = new Vector3D<number>(0, 0, 0);
|
|
50
|
+
|
|
51
|
+
// / X-axis unit vector.
|
|
52
|
+
static readonly xAxis = new Vector3D<number>(1, 0, 0);
|
|
53
|
+
|
|
54
|
+
// / Y-axis unit vector.
|
|
55
|
+
static readonly yAxis = new Vector3D<number>(0, 1, 0);
|
|
56
|
+
|
|
57
|
+
// / Z-axis unit vector.
|
|
58
|
+
static readonly zAxis = new Vector3D<number>(0, 0, 1);
|
|
59
|
+
|
|
60
|
+
// / Negative x-axis unit vector.
|
|
61
|
+
static readonly xAxisNeg = new Vector3D<number>(-1, 0, 0);
|
|
62
|
+
|
|
63
|
+
// / Negative y-axis unit vector.
|
|
64
|
+
static readonly yAxisNeg = new Vector3D<number>(0, -1, 0);
|
|
65
|
+
|
|
66
|
+
// / Negative z-axis unit vector.
|
|
67
|
+
static readonly zAxisNeg = new Vector3D<number>(0, 0, -1);
|
|
68
|
+
|
|
69
|
+
// / Convert this to a [List] of doubles.
|
|
70
|
+
toList() {
|
|
71
|
+
return [this.x, this.y, this.z];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// / Convert this to a [Float64List] object.
|
|
75
|
+
toArray() {
|
|
76
|
+
return new Float64Array([this.x, this.y, this.z]);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Return the Vector3D element at the provided index.
|
|
81
|
+
* @deprecated don't do this
|
|
82
|
+
* @param index The index of the element to return.
|
|
83
|
+
* @returns The element at the provided index.
|
|
84
|
+
*/
|
|
85
|
+
public getElement(index: number): number {
|
|
86
|
+
switch (index) {
|
|
87
|
+
case 0:
|
|
88
|
+
return this.x;
|
|
89
|
+
case 1:
|
|
90
|
+
return this.y;
|
|
91
|
+
case 2:
|
|
92
|
+
return this.z;
|
|
93
|
+
default:
|
|
94
|
+
throw new Error(`Index ${index} outside 3D vector bounds.`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// / Convert this to a [Vector] object.
|
|
99
|
+
toVector() {
|
|
100
|
+
return new Vector(this.toList());
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
toString(fixed = -1): string {
|
|
104
|
+
if (fixed < 0) {
|
|
105
|
+
return `[${this.toList().join(', ')}]`;
|
|
106
|
+
}
|
|
107
|
+
const output = this.toList().map((e) => e.toFixed(fixed));
|
|
108
|
+
|
|
109
|
+
return `[${output.join(', ')}]`;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// / Return the magnitude of this vector.
|
|
113
|
+
magnitude(): T {
|
|
114
|
+
return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z) as T;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// / Return the result of adding this to another [Vector3D].
|
|
118
|
+
add(v: Vector3D<T>): Vector3D<T> {
|
|
119
|
+
return new Vector3D<T>((this.x + v.x) as T, (this.y + v.y) as T, (this.z + v.z) as T);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// / Return the result of subtracting this and another [Vector3D].
|
|
123
|
+
subtract(v: Vector3D<T>): Vector3D<T> {
|
|
124
|
+
return new Vector3D<T>((this.x - v.x) as T, (this.y - v.y) as T, (this.z - v.z) as T);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// / Return a copy of this [Vector3D] scaled by [n];
|
|
128
|
+
scale<U extends number>(n: U): Vector3D<U> {
|
|
129
|
+
return new Vector3D<U>(this.x * n as U, this.y * n as U, this.z * n as U);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// / Return a copy of this [Vector3D] with the elements negated.
|
|
133
|
+
negate(): Vector3D<T> {
|
|
134
|
+
return this.scale(-1 as T);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Return the Euclidean distance between this and another Vector3D.
|
|
139
|
+
* @param v The other Vector3D.
|
|
140
|
+
* @returns The distance between this and the other Vector3D.
|
|
141
|
+
*/
|
|
142
|
+
distance(v: Vector3D<T>): T {
|
|
143
|
+
return linearDistance(this, v);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Convert this to a unit Vector3D.
|
|
148
|
+
* @returns A unit Vector3D.
|
|
149
|
+
*/
|
|
150
|
+
normalize(): Vector3D<T> {
|
|
151
|
+
const m = this.magnitude();
|
|
152
|
+
|
|
153
|
+
if (m === 0) {
|
|
154
|
+
return Vector3D.origin as Vector3D<T>;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
return new Vector3D<T>(this.x / m as T, this.y / m as T, this.z / m as T);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Calculate the dot product of this and another [Vector3D].
|
|
161
|
+
dot<T extends number>(v: Vector3D<T>): T {
|
|
162
|
+
return this.x * v.x + this.y * v.y + this.z * v.z as T;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// Calculate the outer product between this and another [Vector3D].
|
|
166
|
+
outer(v: Vector3D): Matrix {
|
|
167
|
+
return new Matrix([
|
|
168
|
+
[this.x * v.x, this.x * v.y, this.x * v.z],
|
|
169
|
+
[this.y * v.x, this.y * v.y, this.y * v.z],
|
|
170
|
+
[this.z * v.x, this.z * v.y, this.z * v.z],
|
|
171
|
+
]);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// Calculate the cross product of this and another [Vector3D].
|
|
175
|
+
cross<U extends number>(v: Vector3D<U>): Vector3D<U> {
|
|
176
|
+
return new Vector3D<U>(
|
|
177
|
+
(this.y * v.z - this.z * v.y) as U,
|
|
178
|
+
(this.z * v.x - this.x * v.z) as U,
|
|
179
|
+
(this.x * v.y - this.y * v.x) as U,
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// Calculate the skew-symmetric matrix for this [Vector3D].
|
|
184
|
+
skewSymmetric(): Matrix {
|
|
185
|
+
return new Matrix([
|
|
186
|
+
[0, -this.z, this.y],
|
|
187
|
+
[this.z, 0, -this.x],
|
|
188
|
+
[-this.y, this.x, 0],
|
|
189
|
+
]);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/*
|
|
193
|
+
* Create a copy of this [Vector3D] rotated in the x-axis by angle [theta]
|
|
194
|
+
* _(rad)_.
|
|
195
|
+
*/
|
|
196
|
+
rotX(theta: number): Vector3D {
|
|
197
|
+
const cosT = Math.cos(theta);
|
|
198
|
+
const sinT = Math.sin(theta);
|
|
199
|
+
|
|
200
|
+
return new Vector3D(this.x, cosT * this.y + sinT * this.z, -sinT * this.y + cosT * this.z);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/*
|
|
204
|
+
* Create a copy of this [Vector3D] rotated in the y-axis by angle [theta]
|
|
205
|
+
* _(rad)_.
|
|
206
|
+
*/
|
|
207
|
+
rotY(theta: Radians): Vector3D<T> {
|
|
208
|
+
const cosT = Math.cos(theta);
|
|
209
|
+
const sinT = Math.sin(theta);
|
|
210
|
+
|
|
211
|
+
return new Vector3D<T>((cosT * this.x + -sinT * this.z) as T, this.y, (sinT * this.x + cosT * this.z) as T);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/*
|
|
215
|
+
* Create a copy of this [Vector3D] rotated in the z-axis by angle [theta]
|
|
216
|
+
* _(rad)_.
|
|
217
|
+
*/
|
|
218
|
+
rotZ(theta: Radians): Vector3D<T> {
|
|
219
|
+
const cosT = Math.cos(theta);
|
|
220
|
+
const sinT = Math.sin(theta);
|
|
221
|
+
|
|
222
|
+
return new Vector3D((cosT * this.x + sinT * this.y) as T, (-sinT * this.x + cosT * this.y) as T, this.z);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// Calculate the angle _(rad)_ between this and another [Vector3D].
|
|
226
|
+
angle<U extends number>(v: Vector3D<U>): Radians {
|
|
227
|
+
const theta = Math.atan2(this.cross(v).magnitude(), this.dot(v)) as Radians;
|
|
228
|
+
|
|
229
|
+
return isNaN(theta) ? 0 as Radians : theta;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
// Calculate the angle _(°)_ between this and another [Vector3D].
|
|
233
|
+
angleDegrees(v: Vector3D<T>): number {
|
|
234
|
+
return this.angle(v) * (180 / Math.PI);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/*
|
|
238
|
+
* Return `true` if line-of-sight exists between this and another [Vector3D]
|
|
239
|
+
* with a central body of the given [radius].
|
|
240
|
+
*/
|
|
241
|
+
sight(v: Vector3D<KilometersPerSecond>, radius: Kilometers): boolean {
|
|
242
|
+
const r1Mag2 = this.magnitude() ** 2;
|
|
243
|
+
const r2Mag2 = v.magnitude() ** 2;
|
|
244
|
+
const rDot = this.dot(v);
|
|
245
|
+
const tMin = (r1Mag2 - rDot) / (r1Mag2 + r2Mag2 - 2 * rDot);
|
|
246
|
+
let los = false;
|
|
247
|
+
|
|
248
|
+
if (tMin < 0 || tMin > 1) {
|
|
249
|
+
los = true;
|
|
250
|
+
} else {
|
|
251
|
+
const c = (1 - tMin) * r1Mag2 + rDot * tMin;
|
|
252
|
+
|
|
253
|
+
if (c >= radius * radius) {
|
|
254
|
+
los = true;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
return los;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// / Return the unit vector that bisects this and another [Vector3D].
|
|
262
|
+
bisect(v: Vector3D<T>): Vector3D<T> {
|
|
263
|
+
return this.scale(v.magnitude()).add(v.scale(this.magnitude())).normalize();
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
// / Convert this [Vector3D] into a row [Matrix].
|
|
267
|
+
row(): Matrix {
|
|
268
|
+
return new Matrix([[this.x, this.y, this.z]]);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
// / Convert this [Vector3D] into a column [Matrix].
|
|
272
|
+
column(): Matrix {
|
|
273
|
+
return new Matrix([[this.x], [this.y], [this.z]]);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
// / Join this and another [Vector3D] into a new [Vector] object.
|
|
277
|
+
join(v: Vector3D): Vector {
|
|
278
|
+
const output = new Float64Array(6);
|
|
279
|
+
|
|
280
|
+
output[0] = this.x;
|
|
281
|
+
output[1] = this.y;
|
|
282
|
+
output[2] = this.z;
|
|
283
|
+
output[3] = v.x;
|
|
284
|
+
output[4] = v.y;
|
|
285
|
+
output[5] = v.z;
|
|
286
|
+
|
|
287
|
+
return new Vector(output);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
export { Matrix } from './Matrix.js';
|
|
25
|
+
export { Random } from './Random.js';
|
|
26
|
+
export { Vector } from './Vector.js';
|
|
27
|
+
export { Vector3D } from './Vector3D.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 { EpochUTC, Seconds, Vector3D } from '
|
|
18
|
+
import { EpochUTC, Seconds, Vector3D } from '../main.js';
|
|
19
19
|
import { StateInterpolator } from '../interpolator/StateInterpolator.js';
|
|
20
20
|
import { ChebyshevCoefficients } from './../interpolator/ChebyshevCoefficients.js';
|
|
21
21
|
import { ChebyshevInterpolator } from './../interpolator/ChebyshevInterpolator.js';
|
|
@@ -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
|
|
@@ -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
|
|
@@ -21,7 +21,7 @@ import { DifferentiableFunction } from '../main.js';
|
|
|
21
21
|
export class GoldenSection {
|
|
22
22
|
private static readonly _grInv: number = 1.0 / (0.5 * (Math.sqrt(5) + 1));
|
|
23
23
|
|
|
24
|
-
private static
|
|
24
|
+
private static check_(fc: number, fd: number, solveMax: boolean): boolean {
|
|
25
25
|
return solveMax ? fc > fd : fc < fd;
|
|
26
26
|
}
|
|
27
27
|
|
|
@@ -57,7 +57,7 @@ export class GoldenSection {
|
|
|
57
57
|
let d = a + (b - a) * GoldenSection._grInv;
|
|
58
58
|
|
|
59
59
|
while (Math.abs(b - a) > tolerance) {
|
|
60
|
-
if (GoldenSection.
|
|
60
|
+
if (GoldenSection.check_(f(c), f(d), solveMax)) {
|
|
61
61
|
b = d;
|
|
62
62
|
} else {
|
|
63
63
|
a = c;
|
|
@@ -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
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
/* eslint-disable require-jsdoc */
|
|
19
19
|
/* eslint-disable func-style */
|
|
20
|
-
import { evalPoly } from '
|
|
20
|
+
import { evalPoly } from '../main.js';
|
|
21
21
|
import { DownhillSimplex } from './DownhillSimplex.js';
|
|
22
22
|
import { PolynomicalRegressionResult } from './PolynomicalRegressionResult.js';
|
|
23
23
|
// / Polynomial regression optimizer.
|
|
@@ -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
|
|
@@ -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 { Vector } from '
|
|
18
|
+
import { Vector } from '../main.js';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Optimization cost function that takes in parameter array [xs] and returns
|
|
@@ -25,15 +25,15 @@ export type CostFunction = (points: Float64Array) => number;
|
|
|
25
25
|
|
|
26
26
|
export class SimplexEntry {
|
|
27
27
|
score: number;
|
|
28
|
-
private
|
|
28
|
+
private readonly x_: Vector;
|
|
29
29
|
|
|
30
|
-
constructor(private
|
|
31
|
-
this.
|
|
32
|
-
this.score = this.
|
|
30
|
+
constructor(private readonly f_: CostFunction, public points: Float64Array) {
|
|
31
|
+
this.x_ = new Vector(points);
|
|
32
|
+
this.score = this.f_(points);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
getPoints(): Float64Array {
|
|
36
|
-
return this.
|
|
36
|
+
return this.x_.toArray();
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
getScore(): number {
|
|
@@ -41,10 +41,10 @@ export class SimplexEntry {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
modify(n: number, xa: SimplexEntry, xb: SimplexEntry): SimplexEntry {
|
|
44
|
-
return new SimplexEntry(this.
|
|
44
|
+
return new SimplexEntry(this.f_, this.x_.add(xa.x_.subtract(xb.x_).scale(n)).toArray());
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
distance(se: SimplexEntry): number {
|
|
48
|
-
return this.
|
|
48
|
+
return this.x_.distance(se.x_);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
@@ -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 { concat, EpochUTC, J2000, Kilometers, KilometersPerSecond, Matrix, Vector, Vector3D } from '
|
|
18
|
+
import { concat, EpochUTC, J2000, Kilometers, KilometersPerSecond, Matrix, Vector, Vector3D } from '../main.js';
|
|
19
19
|
import { Observation } from '../observation/Observation.js';
|
|
20
20
|
import { PropagatorPairs } from '../observation/PropagatorPairs.js';
|
|
21
21
|
import { Propagator } from '../propagator/Propagator.js';
|
|
@@ -30,13 +30,13 @@ import { BatchLeastSquaresResult } from './BatchLeastSquaresResult.js';
|
|
|
30
30
|
*/
|
|
31
31
|
export class BatchLeastSquaresOD {
|
|
32
32
|
/** Propagator pair cache, for generating observation Jacobians. */
|
|
33
|
-
private propPairs_: PropagatorPairs;
|
|
33
|
+
private readonly propPairs_: PropagatorPairs;
|
|
34
34
|
/** Nominal state propagator. */
|
|
35
35
|
private propagator_: Propagator;
|
|
36
36
|
/** State estimate during solve. */
|
|
37
|
-
private nominal_: J2000;
|
|
37
|
+
private readonly nominal_: J2000;
|
|
38
38
|
/** Solve start epoch. */
|
|
39
|
-
private start_: EpochUTC;
|
|
39
|
+
private readonly start_: EpochUTC;
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
42
|
* Create a new [BatchLeastSquaresOD] object from a list of [Observation]
|
|
@@ -51,12 +51,12 @@ export class BatchLeastSquaresOD {
|
|
|
51
51
|
* @returns [BatchLeastSquaresOD] object.
|
|
52
52
|
*/
|
|
53
53
|
constructor(
|
|
54
|
-
private observations_: Observation[],
|
|
55
|
-
private apriori_: J2000,
|
|
56
|
-
private forceModel_?: ForceModel,
|
|
57
|
-
private posStep_: number = 1e-5,
|
|
58
|
-
private velStep_: number = 1e-5,
|
|
59
|
-
private fastDerivatives_: boolean = false,
|
|
54
|
+
private readonly observations_: Observation[],
|
|
55
|
+
private readonly apriori_: J2000,
|
|
56
|
+
private readonly forceModel_?: ForceModel,
|
|
57
|
+
private readonly posStep_: number = 1e-5,
|
|
58
|
+
private readonly velStep_: number = 1e-5,
|
|
59
|
+
private readonly fastDerivatives_: boolean = false,
|
|
60
60
|
) {
|
|
61
61
|
this.observations_.sort((a, b) => a.epoch.posix - b.epoch.posix);
|
|
62
62
|
this.start_ = this.observations_[0].epoch;
|
|
@@ -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 { J2000 } from '
|
|
18
|
+
import { J2000 } from '../main.js';
|
|
19
19
|
import { StateCovariance } from './../covariance/StateCovariance.js';
|
|
20
20
|
|
|
21
21
|
// / Batch least squares orbit determination result.
|
|
@@ -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,9 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import {
|
|
18
|
+
import {
|
|
19
|
+
DEG2RAD, Earth, EpochUTC, halfPi, J2000, Kilometers, KilometersPerSecond, Radians, Vector3D,
|
|
20
|
+
} from '../main.js';
|
|
19
21
|
import { ForceModel } from './../force/ForceModel.js';
|
|
20
22
|
import { RungeKutta89Propagator } from './../propagator/RungeKutta89Propagator.js';
|
|
21
23
|
|
|
@@ -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, J2000, Kilometers, KilometersPerSecond, Seconds, TAU, Vector3D } from '
|
|
18
|
+
import { Earth, J2000, Kilometers, KilometersPerSecond, Seconds, TAU, Vector3D } from '../main.js';
|
|
19
19
|
import { ForceModel } from '../force/ForceModel.js';
|
|
20
20
|
import { RungeKutta89Propagator } from '../propagator/RungeKutta89Propagator.js';
|
|
21
21
|
import { ObservationOptical } from './../observation/ObservationOptical.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, J2000, Kilometers, KilometersPerSecond, Vector3D } from '
|
|
18
|
+
import { Earth, EpochUTC, J2000, Kilometers, KilometersPerSecond, Vector3D } from '../main.js';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Herrik-Gibbs 3-position initial orbit determination.
|
|
@@ -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, J2000, Kilometers, KilometersPerSecond, Radians, Vector3D } from '
|
|
18
|
+
import { Earth, EpochUTC, J2000, Kilometers, KilometersPerSecond, Radians, Vector3D } from '../main.js';
|
|
19
19
|
|
|
20
20
|
// / Lambert two-position and time initial orbit determination.
|
|
21
21
|
export class LambertIOD {
|
|
@@ -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, J2000, Kilometers, KilometersPerSecond, RadecTopocentric, Vector3D } from '
|
|
18
|
+
import { Earth, EpochUTC, J2000, Kilometers, KilometersPerSecond, RadecTopocentric, Vector3D } from '../main.js';
|
|
19
19
|
import { ForceModel } from '../force/ForceModel.js';
|
|
20
20
|
import { RungeKutta89Propagator } from '../propagator/RungeKutta89Propagator.js';
|
|
21
21
|
import { ObservationOptical } from './../observation/ObservationOptical.js';
|
|
@@ -38,8 +38,8 @@ type SolveOptions = {
|
|
|
38
38
|
* Used for orbit determination from multiple optical observations.
|
|
39
39
|
*/
|
|
40
40
|
export class ModifiedGoodingIOD {
|
|
41
|
-
private observations_: ObservationOptical[];
|
|
42
|
-
private mu_: number;
|
|
41
|
+
private readonly observations_: ObservationOptical[];
|
|
42
|
+
private readonly mu_: number;
|
|
43
43
|
|
|
44
44
|
constructor(observations: ObservationOptical[], mu: number = Earth.mu) {
|
|
45
45
|
this.observations_ = observations;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { BatchLeastSquaresOD } from './BatchLeastSquaresOD.js';
|
|
2
|
+
export { BatchLeastSquaresResult } from './BatchLeastSquaresResult.js';
|
|
3
|
+
export { GibbsIOD } from './GibbsIOD.js';
|
|
4
|
+
export { GoodingIOD } from './GoodingIOD.js';
|
|
5
|
+
export { HerrickGibbsIOD } from './HerrickGibbsIOD.js';
|
|
6
|
+
export { LambertIOD } from './LambertIOD.js';
|
|
7
|
+
export { ModifiedGoodingIOD } from './ModifiedGoodingIOD.js';
|