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
package/README.md
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
# ootk
|
|
2
2
|
|
|
3
|
-
[](https://github.com/thkruz/ootk/actions?query=workflow%3ACI)
|
|
4
3
|

|
|
5
4
|
[](https://www.npmjs.com/package/ootk)
|
|
6
5
|
[](https://github.com/thkruz/ootk/issues)
|
|
7
|
-
[](https://codecov.io/gh/thkruz/ootk)
|
|
8
6
|
[](LICENSE.MD)
|
|
9
7
|
|
|
10
8
|
> An Orbital Object Toolkit in Your Web Browser
|
|
@@ -15,19 +13,6 @@ developed to simplify the math and let you focus on using the results.
|
|
|
15
13
|
Most of the functionality was originally written for [KeepTrack](https://github.com/thkruz/keeptrack.space) and then
|
|
16
14
|
later refactored into this library for others to use.
|
|
17
15
|
|
|
18
|
-
## :blue_book: Table of Contents
|
|
19
|
-
|
|
20
|
-
- [Installation](#Installation)
|
|
21
|
-
- [Usage](#Usage)
|
|
22
|
-
- [Loading the Library](#Loading-the-Library)
|
|
23
|
-
- [Propagating a TLE](#Propagating-a-TLE)
|
|
24
|
-
- [Creating a Satellite](#Creating-a-Satellite)
|
|
25
|
-
- [Creating a Sensor](#Creating-a-Sensor)
|
|
26
|
-
- [Contributing](#Contributing)
|
|
27
|
-
- [Building](#Building)
|
|
28
|
-
- [Contributors](#Contributors)
|
|
29
|
-
- [License](#License)
|
|
30
|
-
|
|
31
16
|
## :wrench: Installation
|
|
32
17
|
|
|
33
18
|
Install the library with [NPM](https://www.npmjs.com/):
|
|
@@ -0,0 +1,96 @@
|
|
|
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
|
+
import { AzEl, Degrees, Radians } from '../main.js';
|
|
24
|
+
/**
|
|
25
|
+
* Celestial is a static class that provides methods for calculating the position of celestial objects such as the Sun,
|
|
26
|
+
* Moon, and planets in the sky. To create an instance of a Celestial object, use the Star class.
|
|
27
|
+
*/
|
|
28
|
+
export declare class Celestial {
|
|
29
|
+
private constructor();
|
|
30
|
+
/**
|
|
31
|
+
* Calculates the azimuth and elevation of a celestial object at a given date, latitude,
|
|
32
|
+
* longitude, right ascension, and declination.
|
|
33
|
+
* @param date - The date for which to calculate the azimuth and elevation.
|
|
34
|
+
* @param lat - The latitude of the observer.
|
|
35
|
+
* @param lon - The longitude of the observer.
|
|
36
|
+
* @param ra - The right ascension of the celestial object.
|
|
37
|
+
* @param dec - The declination of the celestial object.
|
|
38
|
+
* @returns An object containing the azimuth and elevation in degrees.
|
|
39
|
+
*/
|
|
40
|
+
static azEl(date: Date, lat: Degrees, lon: Degrees, ra: Radians, dec: Radians): AzEl<Degrees>;
|
|
41
|
+
/**
|
|
42
|
+
* Atmospheric refraction in astronomy, refers to the bending of light as it passes through the Earth's
|
|
43
|
+
* atmosphere. This effect is most noticeable for celestial objects like stars and planets when they are
|
|
44
|
+
* close to the horizon. Here's a breakdown of how it works:
|
|
45
|
+
*
|
|
46
|
+
* Actual Position: Due to this bending of light, the apparent position of a celestial object is slightly
|
|
47
|
+
* different from its true position in the sky. When a star or planet is near the horizon, the effect is more
|
|
48
|
+
* pronounced because the light path passes through more of the Earth's atmosphere, which increases the amount of
|
|
49
|
+
* bending.
|
|
50
|
+
*
|
|
51
|
+
* A familiar example of atmospheric refraction is observed during sunrise and sunset. The Sun appears to
|
|
52
|
+
* be above the horizon when it is actually just below it. This is because the light from the Sun is bent
|
|
53
|
+
* upwards as it passes through the atmosphere.
|
|
54
|
+
* @param h - elevation
|
|
55
|
+
* @returns refraction
|
|
56
|
+
*/
|
|
57
|
+
static atmosphericRefraction(h: Radians): Radians;
|
|
58
|
+
/**
|
|
59
|
+
* Calculate the declination. Similar to latitude on Earth, declination is another celestial coordinate.
|
|
60
|
+
* It measures how far north or south an object is from the celestial equator
|
|
61
|
+
* @param l - ecliptic longitude
|
|
62
|
+
* @param b - ecliptic latitude
|
|
63
|
+
* @returns declination
|
|
64
|
+
*/
|
|
65
|
+
static declination(l: number, b: number): Radians;
|
|
66
|
+
/**
|
|
67
|
+
* Calculate the right ascension. This is a celestial coordinate used to determine the position of objects
|
|
68
|
+
* in the sky. It's analogous to longitude on Earth. Right Ascension indicates how far east an object is
|
|
69
|
+
* from the vernal equinox along the celestial equator.
|
|
70
|
+
* @param l - ecliptic longitude
|
|
71
|
+
* @param b - ecliptic latitude
|
|
72
|
+
* @returns right ascension
|
|
73
|
+
*/
|
|
74
|
+
static rightAscension(l: number, b: number): Radians;
|
|
75
|
+
/**
|
|
76
|
+
* Calculate the elevation. Elevation, or altitude, is the angle between an object in the sky and the
|
|
77
|
+
* observer's local horizon. It's commonly expressed in degrees, where 0 degrees is right at the horizon
|
|
78
|
+
* and 90 degrees is directly overhead (the zenith), but we are using radians to support trigonometric
|
|
79
|
+
* functions like Math.sin() and Math.cos().
|
|
80
|
+
* @param H - siderealTime
|
|
81
|
+
* @param phi - latitude
|
|
82
|
+
* @param dec - The declination of the sun
|
|
83
|
+
* @returns elevation
|
|
84
|
+
*/
|
|
85
|
+
static elevation(H: number, phi: Radians, dec: Radians): Radians;
|
|
86
|
+
/**
|
|
87
|
+
* Calculate the azimuth. This is a compass direction measurement. Azimuth measures the angle along
|
|
88
|
+
* the horizon from a specific reference direction (usually true north) to the point where a vertical
|
|
89
|
+
* line from the object intersects the horizon.
|
|
90
|
+
* @param H - siderealTime
|
|
91
|
+
* @param phi - latitude
|
|
92
|
+
* @param dec - The declination of the sun
|
|
93
|
+
* @returns azimuth in rad
|
|
94
|
+
*/
|
|
95
|
+
static azimuth(H: number, phi: Radians, dec: Radians): Radians;
|
|
96
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
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
|
+
import { RAD2DEG, Sun } from '../main.js';
|
|
24
|
+
/**
|
|
25
|
+
* Celestial is a static class that provides methods for calculating the position of celestial objects such as the Sun,
|
|
26
|
+
* Moon, and planets in the sky. To create an instance of a Celestial object, use the Star class.
|
|
27
|
+
*/
|
|
28
|
+
export class Celestial {
|
|
29
|
+
constructor() {
|
|
30
|
+
// disable constructor
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Calculates the azimuth and elevation of a celestial object at a given date, latitude,
|
|
34
|
+
* longitude, right ascension, and declination.
|
|
35
|
+
* @param date - The date for which to calculate the azimuth and elevation.
|
|
36
|
+
* @param lat - The latitude of the observer.
|
|
37
|
+
* @param lon - The longitude of the observer.
|
|
38
|
+
* @param ra - The right ascension of the celestial object.
|
|
39
|
+
* @param dec - The declination of the celestial object.
|
|
40
|
+
* @returns An object containing the azimuth and elevation in degrees.
|
|
41
|
+
*/
|
|
42
|
+
static azEl(date, lat, lon, ra, dec) {
|
|
43
|
+
const c = {
|
|
44
|
+
ra,
|
|
45
|
+
dec,
|
|
46
|
+
dist: 0,
|
|
47
|
+
};
|
|
48
|
+
const azEl = Sun.azEl(date, lat, lon, c);
|
|
49
|
+
const el = (azEl.el + Celestial.atmosphericRefraction(azEl.el)); // elevation correction for refraction
|
|
50
|
+
return {
|
|
51
|
+
az: (azEl.az * RAD2DEG),
|
|
52
|
+
el: (el * RAD2DEG),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Atmospheric refraction in astronomy, refers to the bending of light as it passes through the Earth's
|
|
57
|
+
* atmosphere. This effect is most noticeable for celestial objects like stars and planets when they are
|
|
58
|
+
* close to the horizon. Here's a breakdown of how it works:
|
|
59
|
+
*
|
|
60
|
+
* Actual Position: Due to this bending of light, the apparent position of a celestial object is slightly
|
|
61
|
+
* different from its true position in the sky. When a star or planet is near the horizon, the effect is more
|
|
62
|
+
* pronounced because the light path passes through more of the Earth's atmosphere, which increases the amount of
|
|
63
|
+
* bending.
|
|
64
|
+
*
|
|
65
|
+
* A familiar example of atmospheric refraction is observed during sunrise and sunset. The Sun appears to
|
|
66
|
+
* be above the horizon when it is actually just below it. This is because the light from the Sun is bent
|
|
67
|
+
* upwards as it passes through the atmosphere.
|
|
68
|
+
* @param h - elevation
|
|
69
|
+
* @returns refraction
|
|
70
|
+
*/
|
|
71
|
+
static atmosphericRefraction(h) {
|
|
72
|
+
if (h < 0) {
|
|
73
|
+
h = 0;
|
|
74
|
+
}
|
|
75
|
+
return (0.0002967 / Math.tan(h + 0.00312536 / (h + 0.08901179)));
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Calculate the declination. Similar to latitude on Earth, declination is another celestial coordinate.
|
|
79
|
+
* It measures how far north or south an object is from the celestial equator
|
|
80
|
+
* @param l - ecliptic longitude
|
|
81
|
+
* @param b - ecliptic latitude
|
|
82
|
+
* @returns declination
|
|
83
|
+
*/
|
|
84
|
+
static declination(l, b) {
|
|
85
|
+
return Math.asin(Math.sin(b) * Math.cos(Sun.e) + Math.cos(b) * Math.sin(Sun.e) * Math.sin(l));
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Calculate the right ascension. This is a celestial coordinate used to determine the position of objects
|
|
89
|
+
* in the sky. It's analogous to longitude on Earth. Right Ascension indicates how far east an object is
|
|
90
|
+
* from the vernal equinox along the celestial equator.
|
|
91
|
+
* @param l - ecliptic longitude
|
|
92
|
+
* @param b - ecliptic latitude
|
|
93
|
+
* @returns right ascension
|
|
94
|
+
*/
|
|
95
|
+
static rightAscension(l, b) {
|
|
96
|
+
return Math.atan2(Math.sin(l) * Math.cos(Sun.e) - Math.tan(b) * Math.sin(Sun.e), Math.cos(l));
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Calculate the elevation. Elevation, or altitude, is the angle between an object in the sky and the
|
|
100
|
+
* observer's local horizon. It's commonly expressed in degrees, where 0 degrees is right at the horizon
|
|
101
|
+
* and 90 degrees is directly overhead (the zenith), but we are using radians to support trigonometric
|
|
102
|
+
* functions like Math.sin() and Math.cos().
|
|
103
|
+
* @param H - siderealTime
|
|
104
|
+
* @param phi - latitude
|
|
105
|
+
* @param dec - The declination of the sun
|
|
106
|
+
* @returns elevation
|
|
107
|
+
*/
|
|
108
|
+
static elevation(H, phi, dec) {
|
|
109
|
+
return Math.asin(Math.sin(phi) * Math.sin(dec) + Math.cos(phi) * Math.cos(dec) * Math.cos(H));
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Calculate the azimuth. This is a compass direction measurement. Azimuth measures the angle along
|
|
113
|
+
* the horizon from a specific reference direction (usually true north) to the point where a vertical
|
|
114
|
+
* line from the object intersects the horizon.
|
|
115
|
+
* @param H - siderealTime
|
|
116
|
+
* @param phi - latitude
|
|
117
|
+
* @param dec - The declination of the sun
|
|
118
|
+
* @returns azimuth in rad
|
|
119
|
+
*/
|
|
120
|
+
static azimuth(H, phi, dec) {
|
|
121
|
+
return (Math.PI + Math.atan2(Math.sin(H), Math.cos(H) * Math.sin(phi) - Math.tan(dec) * Math.cos(phi)));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=Celestial.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Celestial.js","sourceRoot":"","sources":["../../src/body/Celestial.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
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
|
+
import { EpochUTC, Kilometers, RadiansPerSecond, Vector3D } from '../main.js';
|
|
24
|
+
import { NutationAngles } from './NutationAngles.js';
|
|
25
|
+
import { PrecessionAngles } from './PrecessionAngles.js';
|
|
26
|
+
export declare class Earth {
|
|
27
|
+
private constructor();
|
|
28
|
+
static readonly mu: number;
|
|
29
|
+
static readonly radiusEquator: Kilometers;
|
|
30
|
+
static readonly flattening: number;
|
|
31
|
+
static readonly radiusPolar: Kilometers;
|
|
32
|
+
static readonly radiusMean: Kilometers;
|
|
33
|
+
static readonly eccentricitySquared: number;
|
|
34
|
+
static readonly j2: number;
|
|
35
|
+
static readonly j3: number;
|
|
36
|
+
static readonly j4: number;
|
|
37
|
+
static readonly j5: number;
|
|
38
|
+
static readonly j6: number;
|
|
39
|
+
static readonly rotation: Vector3D<RadiansPerSecond>;
|
|
40
|
+
static smaToMeanMotion(semimajorAxis: Kilometers): RadiansPerSecond;
|
|
41
|
+
/**
|
|
42
|
+
* Converts revolutions per day to semi-major axis.
|
|
43
|
+
* @param rpd - The number of revolutions per day.
|
|
44
|
+
* @returns The semi-major axis value.
|
|
45
|
+
*/
|
|
46
|
+
static revsPerDayToSma(rpd: number): number;
|
|
47
|
+
static precession(epoch: EpochUTC): PrecessionAngles;
|
|
48
|
+
static nutation(epoch: EpochUTC): NutationAngles;
|
|
49
|
+
static smaToDrift(semimajorAxis: number): number;
|
|
50
|
+
static smaToDriftDegrees(semimajorAxis: number): number;
|
|
51
|
+
static driftToSemimajorAxis(driftRate: number): number;
|
|
52
|
+
static driftDegreesToSma(driftRate: number): number;
|
|
53
|
+
/**
|
|
54
|
+
* Calculates the diameter of the Earth based on the satellite position.
|
|
55
|
+
* @param satPos The position of the satellite.
|
|
56
|
+
* @returns The diameter of the Earth.
|
|
57
|
+
*/
|
|
58
|
+
static diameter(satPos: Vector3D): number;
|
|
59
|
+
private static readonly zetaPoly_;
|
|
60
|
+
private static readonly thetaPoly_;
|
|
61
|
+
private static readonly zedPoly_;
|
|
62
|
+
private static readonly moonAnomPoly_;
|
|
63
|
+
private static readonly sunAnomPoly_;
|
|
64
|
+
private static readonly moonLatPoly_;
|
|
65
|
+
private static readonly sunElongPoly_;
|
|
66
|
+
private static readonly moonRaanPoly_;
|
|
67
|
+
private static readonly meanEpsilonPoly_;
|
|
68
|
+
}
|
|
@@ -0,0 +1,198 @@
|
|
|
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
|
+
import { angularDiameter, AngularDiameterMethod, asec2rad, DataHandler, DEG2RAD, earthGravityParam, evalPoly, RAD2DEG, secondsPerDay, secondsPerSiderealDay, TAU, ttasec2rad, Vector3D, } from '../main.js';
|
|
24
|
+
// / Earth metrics and operations.
|
|
25
|
+
export class Earth {
|
|
26
|
+
constructor() {
|
|
27
|
+
// disable constructor
|
|
28
|
+
}
|
|
29
|
+
// / Earth gravitational parameter _(km²/s³)_.
|
|
30
|
+
static mu = earthGravityParam;
|
|
31
|
+
// / Earth equatorial radius.
|
|
32
|
+
static radiusEquator = 6378.1363;
|
|
33
|
+
// / Earth coefficient of flattening _(unitless)_.
|
|
34
|
+
static flattening = 1.0 / 298.257223563;
|
|
35
|
+
// / Earth polar radius.
|
|
36
|
+
static radiusPolar = (Earth.radiusEquator * (1.0 - Earth.flattening));
|
|
37
|
+
// / Earth mean radius.
|
|
38
|
+
static radiusMean = ((2.0 * Earth.radiusEquator + Earth.radiusPolar) / 3.0);
|
|
39
|
+
// / Earth eccentricity squared _(unitless)_.
|
|
40
|
+
static eccentricitySquared = Earth.flattening * (2.0 - Earth.flattening);
|
|
41
|
+
// / Earth J2 effect coefficient _(unitless)_.
|
|
42
|
+
static j2 = 1.08262668355315e-3;
|
|
43
|
+
// / Earth J3 effect coefficient _(unitless)_.
|
|
44
|
+
static j3 = -2.53265648533224e-6;
|
|
45
|
+
// / Earth J4 effect coefficient _(unitless)_.
|
|
46
|
+
static j4 = -1.619621591367e-6;
|
|
47
|
+
// / Earth J5 effect coefficient _(unitless)_.
|
|
48
|
+
static j5 = -2.27296082868698e-7;
|
|
49
|
+
// / Earth J6 effect coefficient _(unitless)_.
|
|
50
|
+
static j6 = 5.40681239107085e-7;
|
|
51
|
+
// / Earth rotation vector _(rad/s)_.
|
|
52
|
+
static rotation = new Vector3D(0, 0, 7.292115146706979e-5);
|
|
53
|
+
// / Calculate mean motion _(rad/s)_ from a given [semimajorAxis] _(km)_.
|
|
54
|
+
static smaToMeanMotion(semimajorAxis) {
|
|
55
|
+
return Math.sqrt(Earth.mu / (semimajorAxis * semimajorAxis * semimajorAxis));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Converts revolutions per day to semi-major axis.
|
|
59
|
+
* @param rpd - The number of revolutions per day.
|
|
60
|
+
* @returns The semi-major axis value.
|
|
61
|
+
*/
|
|
62
|
+
static revsPerDayToSma(rpd) {
|
|
63
|
+
return Earth.mu ** (1 / 3) / ((TAU * rpd) / secondsPerDay) ** (2 / 3);
|
|
64
|
+
}
|
|
65
|
+
// / Calculate Earth [PrecessionAngles] at a given UTC [epoch].
|
|
66
|
+
static precession(epoch) {
|
|
67
|
+
const t = epoch.toTT().toJulianCenturies();
|
|
68
|
+
const zeta = evalPoly(t, Earth.zetaPoly_);
|
|
69
|
+
const theta = evalPoly(t, Earth.thetaPoly_);
|
|
70
|
+
const zed = evalPoly(t, Earth.zedPoly_);
|
|
71
|
+
return { zeta: zeta, theta: theta, zed: zed };
|
|
72
|
+
}
|
|
73
|
+
// / Calculate Earth [NutationAngles] for a given UTC [epoch].
|
|
74
|
+
static nutation(epoch) {
|
|
75
|
+
const t = epoch.toTT().toJulianCenturies();
|
|
76
|
+
const moonAnom = evalPoly(t, Earth.moonAnomPoly_);
|
|
77
|
+
const sunAnom = evalPoly(t, Earth.sunAnomPoly_);
|
|
78
|
+
const moonLat = evalPoly(t, Earth.moonLatPoly_);
|
|
79
|
+
const sunElong = evalPoly(t, Earth.sunElongPoly_);
|
|
80
|
+
const moonRaan = evalPoly(t, Earth.moonRaanPoly_);
|
|
81
|
+
let deltaPsi = 0.0;
|
|
82
|
+
let deltaEpsilon = 0.0;
|
|
83
|
+
const dh = DataHandler.getInstance();
|
|
84
|
+
for (let i = 0; i < 4; i++) {
|
|
85
|
+
const [a1, a2, a3, a4, a5, ai, bi, ci, di] = dh.getIau1980Coeffs(i);
|
|
86
|
+
const arg = a1 * moonAnom + a2 * sunAnom + a3 * moonLat + a4 * sunElong + a5 * moonRaan;
|
|
87
|
+
const sinC = ai + bi * t;
|
|
88
|
+
const cosC = ci + di * t;
|
|
89
|
+
deltaPsi += sinC * Math.sin(arg);
|
|
90
|
+
deltaEpsilon += cosC * Math.cos(arg);
|
|
91
|
+
}
|
|
92
|
+
deltaPsi *= ttasec2rad;
|
|
93
|
+
deltaEpsilon *= ttasec2rad;
|
|
94
|
+
const meanEpsilon = evalPoly(t, Earth.meanEpsilonPoly_);
|
|
95
|
+
const epsilon = meanEpsilon + deltaEpsilon;
|
|
96
|
+
const eqEq = deltaPsi * Math.cos(meanEpsilon) +
|
|
97
|
+
0.00264 * asec2rad * Math.sin(moonRaan) +
|
|
98
|
+
0.000063 * asec2rad * Math.sin(2.0 * moonRaan);
|
|
99
|
+
const gast = epoch.gmstAngle() + eqEq;
|
|
100
|
+
return {
|
|
101
|
+
dPsi: deltaPsi,
|
|
102
|
+
dEps: deltaEpsilon,
|
|
103
|
+
mEps: meanEpsilon,
|
|
104
|
+
eps: epsilon,
|
|
105
|
+
eqEq: eqEq,
|
|
106
|
+
gast: gast,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
// / Convert a [semimajorAxis] _(km)_ to an eastward drift rate _(rad/day)_.
|
|
110
|
+
static smaToDrift(semimajorAxis) {
|
|
111
|
+
const t = (TAU * Math.sqrt(semimajorAxis ** 3 / Earth.mu)) / secondsPerSiderealDay;
|
|
112
|
+
return (1.0 - t) * TAU;
|
|
113
|
+
}
|
|
114
|
+
// / Convert a [semimajorAxis] _(km)_ to an eastward drift rate _(°/day)_.
|
|
115
|
+
static smaToDriftDegrees(semimajorAxis) {
|
|
116
|
+
return Earth.smaToDrift(semimajorAxis) * RAD2DEG;
|
|
117
|
+
}
|
|
118
|
+
// / Convert an eastward [driftRate] _(rad/day)_ to a semimajor-axis _(km)_.
|
|
119
|
+
static driftToSemimajorAxis(driftRate) {
|
|
120
|
+
const t = (-driftRate / TAU + 1) * secondsPerSiderealDay;
|
|
121
|
+
return ((Earth.mu * t * t) / (4 * Math.PI * Math.PI)) ** (1 / 3);
|
|
122
|
+
}
|
|
123
|
+
// / Convert an eastward [driftRate] _(°/day)_ to a semimajor-axis _(km)_.
|
|
124
|
+
static driftDegreesToSma(driftRate) {
|
|
125
|
+
return Earth.driftToSemimajorAxis(DEG2RAD * driftRate);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Calculates the diameter of the Earth based on the satellite position.
|
|
129
|
+
* @param satPos The position of the satellite.
|
|
130
|
+
* @returns The diameter of the Earth.
|
|
131
|
+
*/
|
|
132
|
+
static diameter(satPos) {
|
|
133
|
+
return angularDiameter(Earth.radiusEquator * 2, satPos.magnitude(), AngularDiameterMethod.Sphere);
|
|
134
|
+
}
|
|
135
|
+
// / Earth precession `zeta` polynomial coefficients.
|
|
136
|
+
static zetaPoly_ = Float64Array.from([
|
|
137
|
+
0.017998 * asec2rad,
|
|
138
|
+
0.30188 * asec2rad,
|
|
139
|
+
2306.2181 * asec2rad,
|
|
140
|
+
0.0,
|
|
141
|
+
]);
|
|
142
|
+
// / Earth precession `theta` polynomial coefficients.
|
|
143
|
+
static thetaPoly_ = Float64Array.from([
|
|
144
|
+
-0.041833 * asec2rad,
|
|
145
|
+
-0.42665 * asec2rad,
|
|
146
|
+
2004.3109 * asec2rad,
|
|
147
|
+
0.0,
|
|
148
|
+
]);
|
|
149
|
+
// / Earth precession `zed` polynomial coefficients.
|
|
150
|
+
static zedPoly_ = Float64Array.from([
|
|
151
|
+
0.018203 * asec2rad,
|
|
152
|
+
1.09468 * asec2rad,
|
|
153
|
+
2306.2181 * asec2rad,
|
|
154
|
+
0,
|
|
155
|
+
]);
|
|
156
|
+
static moonAnomPoly_ = Float64Array.from([
|
|
157
|
+
1.4343e-5 * DEG2RAD,
|
|
158
|
+
0.0088553 * DEG2RAD,
|
|
159
|
+
(1325.0 * 360.0 + 198.8675605) * DEG2RAD,
|
|
160
|
+
134.96340251 * DEG2RAD,
|
|
161
|
+
]);
|
|
162
|
+
// / Earth nutation Sun anomaly polynomial coefficients.
|
|
163
|
+
static sunAnomPoly_ = Float64Array.from([
|
|
164
|
+
3.8e-8 * DEG2RAD,
|
|
165
|
+
-0.0001537 * DEG2RAD,
|
|
166
|
+
(99.0 * 360.0 + 359.0502911) * DEG2RAD,
|
|
167
|
+
357.52910918 * DEG2RAD,
|
|
168
|
+
]);
|
|
169
|
+
// / Earth nutation Moon latitude polynomial coefficients.
|
|
170
|
+
static moonLatPoly_ = Float64Array.from([
|
|
171
|
+
-2.88e-7 * DEG2RAD,
|
|
172
|
+
-0.003542 * DEG2RAD,
|
|
173
|
+
(1342.0 * 360.0 + 82.0174577) * DEG2RAD,
|
|
174
|
+
93.27209062 * DEG2RAD,
|
|
175
|
+
]);
|
|
176
|
+
// / Earth nutation Sun elongation polynomial coefficients.
|
|
177
|
+
static sunElongPoly_ = Float64Array.from([
|
|
178
|
+
1.831e-6 * DEG2RAD,
|
|
179
|
+
-0.0017696 * DEG2RAD,
|
|
180
|
+
(1236.0 * 360.0 + 307.1114469) * DEG2RAD,
|
|
181
|
+
297.85019547 * DEG2RAD,
|
|
182
|
+
]);
|
|
183
|
+
// / Earth nutation Moon right-ascension polynomial coefficients.
|
|
184
|
+
static moonRaanPoly_ = Float64Array.from([
|
|
185
|
+
2.139e-6 * DEG2RAD,
|
|
186
|
+
0.0020756 * DEG2RAD,
|
|
187
|
+
-(5.0 * 360.0 + 134.1361851) * DEG2RAD,
|
|
188
|
+
125.04455501 * DEG2RAD,
|
|
189
|
+
]);
|
|
190
|
+
// / Earth nutation mean epsilon polynomial coefficients.
|
|
191
|
+
static meanEpsilonPoly_ = Float64Array.from([
|
|
192
|
+
0.001813 * asec2rad,
|
|
193
|
+
-0.00059 * asec2rad,
|
|
194
|
+
-46.815 * asec2rad,
|
|
195
|
+
84381.448 * asec2rad,
|
|
196
|
+
]);
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=Earth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Earth.js","sourceRoot":"","sources":["../../src/body/Earth.ts"],"names":[],"mappings":"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"}
|