ootk 4.0.9 → 5.0.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 +305 -0
- package/dist/body/Sun.js +548 -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 +1 -1
- package/dist/coordinate/Hill.js +1 -1
- package/dist/coordinate/Hill.js.map +1 -1
- package/dist/coordinate/ITRF.d.ts +75 -0
- package/dist/coordinate/ITRF.js +135 -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 +430 -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 +12 -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 +1 -1
- package/dist/covariance/CovarianceSample.js +1 -1
- package/dist/covariance/CovarianceSample.js.map +1 -1
- package/dist/covariance/StateCovariance.d.ts +1 -1
- package/dist/covariance/StateCovariance.js +1 -1
- package/dist/covariance/StateCovariance.js.map +1 -1
- 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 +1 -1
- package/dist/force/AtmosphericDrag.js +1 -1
- package/dist/force/AtmosphericDrag.js.map +1 -1
- package/dist/force/EarthGravity.d.ts +1 -1
- package/dist/force/EarthGravity.js +1 -1
- package/dist/force/EarthGravity.js.map +1 -1
- package/dist/force/Force.d.ts +1 -1
- package/dist/force/ForceModel.d.ts +1 -1
- package/dist/force/ForceModel.js +1 -1
- package/dist/force/ForceModel.js.map +1 -1
- package/dist/force/Gravity.d.ts +1 -1
- package/dist/force/Gravity.js +1 -1
- package/dist/force/Gravity.js.map +1 -1
- package/dist/force/SolarRadiationPressure.d.ts +1 -1
- package/dist/force/SolarRadiationPressure.js +1 -1
- package/dist/force/SolarRadiationPressure.js.map +1 -1
- package/dist/force/ThirdBodyGravity.d.ts +1 -1
- package/dist/force/ThirdBodyGravity.js +1 -1
- package/dist/force/ThirdBodyGravity.js.map +1 -1
- package/dist/force/Thrust.d.ts +1 -1
- package/dist/force/Thrust.js +1 -1
- 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 +1 -1
- package/dist/interpolator/ChebyshevCoefficients.js +1 -1
- package/dist/interpolator/ChebyshevCoefficients.js.map +1 -1
- package/dist/interpolator/ChebyshevInterpolator.d.ts +1 -1
- package/dist/interpolator/ChebyshevInterpolator.js +1 -1
- package/dist/interpolator/ChebyshevInterpolator.js.map +1 -1
- package/dist/interpolator/CubicSpline.d.ts +1 -1
- package/dist/interpolator/CubicSplineInterpolator.d.ts +1 -1
- package/dist/interpolator/CubicSplineInterpolator.js +1 -1
- package/dist/interpolator/CubicSplineInterpolator.js.map +1 -1
- package/dist/interpolator/Interpolator.d.ts +1 -1
- package/dist/interpolator/Interpolator.js +1 -1
- package/dist/interpolator/Interpolator.js.map +1 -1
- package/dist/interpolator/LagrangeInterpolator.d.ts +1 -1
- package/dist/interpolator/LagrangeInterpolator.js +1 -1
- package/dist/interpolator/LagrangeInterpolator.js.map +1 -1
- package/dist/interpolator/StateInterpolator.d.ts +1 -1
- package/dist/interpolator/VerletBlendInterpolator.d.ts +1 -1
- package/dist/interpolator/VerletBlendInterpolator.js +1 -1
- package/dist/interpolator/VerletBlendInterpolator.js.map +1 -1
- package/dist/main.d.ts +11 -3
- package/dist/main.js +11 -3
- package/dist/main.js.map +1 -1
- package/dist/maneuver/TwoBurnOrbitTransfer.d.ts +1 -1
- package/dist/maneuver/TwoBurnOrbitTransfer.js +1 -1
- package/dist/maneuver/TwoBurnOrbitTransfer.js.map +1 -1
- package/dist/maneuver/Waypoint.d.ts +1 -1
- package/dist/maneuver/Waypoint.js +1 -1
- 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 +2 -1
- package/dist/objects/DetailedSatellite.js +2 -2
- package/dist/objects/DetailedSatellite.js.map +1 -1
- package/dist/objects/DetailedSensor.d.ts +2 -1
- package/dist/objects/DetailedSensor.js +1 -1
- 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 +2 -1
- package/dist/objects/LandObject.js +1 -1
- package/dist/objects/LandObject.js.map +1 -1
- package/dist/objects/Marker.d.ts +1 -1
- package/dist/objects/Marker.js +1 -1
- 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 +100 -0
- package/dist/objects/Sensor.js +239 -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 +1 -1
- package/dist/observation/ObservationOptical.d.ts +1 -1
- package/dist/observation/ObservationOptical.js +1 -1
- package/dist/observation/ObservationOptical.js.map +1 -1
- package/dist/observation/ObservationRadar.d.ts +1 -1
- package/dist/observation/ObservationRadar.js +1 -1
- package/dist/observation/ObservationRadar.js.map +1 -1
- package/dist/observation/ObservationUtils.d.ts +3 -1
- package/dist/observation/ObservationUtils.js +15 -1
- package/dist/observation/ObservationUtils.js.map +1 -1
- package/dist/observation/RAE.d.ts +111 -0
- package/dist/observation/RAE.js +215 -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 +1 -1
- package/dist/operations/BoxMuller.js +1 -1
- package/dist/operations/BoxMuller.js.map +1 -1
- package/dist/operations/EulerAngles.d.ts +1 -1
- package/dist/operations/EulerAngles.js +1 -1
- 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 +1 -1
- package/dist/operations/Quaternion.js +1 -1
- 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 +1 -1
- package/dist/operations/RandomGaussianSource.js +1 -1
- 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.js +1 -1
- package/dist/optimize/ChebyshevCompressor.js.map +1 -1
- package/dist/optimize/PolynomialRegression.js +1 -1
- package/dist/optimize/PolynomialRegression.js.map +1 -1
- package/dist/optimize/SimplexEntry.js +1 -1
- package/dist/optimize/SimplexEntry.js.map +1 -1
- package/dist/orbit_determination/BatchLeastSquaresOD.d.ts +1 -1
- package/dist/orbit_determination/BatchLeastSquaresOD.js +1 -1
- package/dist/orbit_determination/BatchLeastSquaresOD.js.map +1 -1
- package/dist/orbit_determination/BatchLeastSquaresResult.d.ts +1 -1
- package/dist/orbit_determination/GibbsIOD.d.ts +1 -1
- package/dist/orbit_determination/GibbsIOD.js +1 -1
- package/dist/orbit_determination/GibbsIOD.js.map +1 -1
- package/dist/orbit_determination/GoodingIOD.d.ts +1 -1
- package/dist/orbit_determination/GoodingIOD.js +1 -1
- package/dist/orbit_determination/GoodingIOD.js.map +1 -1
- package/dist/orbit_determination/HerrickGibbsIOD.d.ts +1 -1
- package/dist/orbit_determination/HerrickGibbsIOD.js +1 -1
- package/dist/orbit_determination/HerrickGibbsIOD.js.map +1 -1
- package/dist/orbit_determination/LambertIOD.d.ts +1 -1
- package/dist/orbit_determination/LambertIOD.js +1 -1
- package/dist/orbit_determination/LambertIOD.js.map +1 -1
- package/dist/orbit_determination/ModifiedGoodingIOD.d.ts +1 -1
- package/dist/orbit_determination/ModifiedGoodingIOD.js +1 -1
- 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/KeplerPropagator.d.ts +1 -1
- package/dist/propagator/KeplerPropagator.js +1 -1
- package/dist/propagator/KeplerPropagator.js.map +1 -1
- package/dist/propagator/Propagator.d.ts +1 -1
- package/dist/propagator/Propagator.js +1 -1
- package/dist/propagator/Propagator.js.map +1 -1
- package/dist/propagator/RkCheckpoint.d.ts +1 -1
- package/dist/propagator/RkResult.d.ts +1 -1
- package/dist/propagator/RungeKutta4Propagator.d.ts +1 -1
- package/dist/propagator/RungeKutta4Propagator.js +1 -1
- package/dist/propagator/RungeKutta4Propagator.js.map +1 -1
- package/dist/propagator/RungeKuttaAdaptive.d.ts +1 -1
- package/dist/propagator/RungeKuttaAdaptive.js +1 -1
- package/dist/propagator/RungeKuttaAdaptive.js.map +1 -1
- package/dist/propagator/Sgp4Propagator.d.ts +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 +102 -0
- package/dist/sgp4/sgp4.js +3167 -0
- package/dist/sgp4/sgp4.js.map +1 -0
- package/dist/smoothing/ExponentialSmoothing.d.ts +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 +43 -0
- package/dist/time/TimeStamped.js +46 -0
- package/dist/time/TimeStamped.js.map +1 -0
- package/dist/time/index.d.ts +30 -0
- package/dist/time/index.js +31 -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 +674 -2
- package/dist/types/types.js +36 -0
- 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/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 +3 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/jacobian.d.ts +1 -1
- package/dist/utils/jacobian.js +1 -1
- 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 +4 -7
- 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 +669 -0
- package/src/body/index.ts +27 -0
- package/src/body/suncalc.LICENSE.md +18 -0
- package/src/coordinate/ClassicalElements.ts +326 -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 +1 -1
- 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 +122 -0
- package/src/coordinate/TEME.ts +97 -0
- package/src/coordinate/Tle.ts +1024 -0
- package/src/coordinate/index.ts +12 -0
- package/src/coordinate/tle-format-data.ts +47 -0
- package/src/covariance/CovarianceSample.ts +1 -1
- package/src/covariance/StateCovariance.ts +1 -1
- 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 +1 -1
- package/src/force/EarthGravity.ts +1 -1
- package/src/force/Force.ts +1 -1
- package/src/force/ForceModel.ts +1 -1
- package/src/force/Gravity.ts +1 -1
- package/src/force/SolarRadiationPressure.ts +1 -1
- package/src/force/ThirdBodyGravity.ts +1 -1
- package/src/force/Thrust.ts +1 -1
- package/src/interfaces/BaseObjectParams.ts +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 +1 -1
- package/src/interpolator/ChebyshevInterpolator.ts +1 -1
- package/src/interpolator/CubicSpline.ts +1 -1
- package/src/interpolator/CubicSplineInterpolator.ts +1 -1
- package/src/interpolator/Interpolator.ts +1 -1
- package/src/interpolator/LagrangeInterpolator.ts +1 -1
- package/src/interpolator/StateInterpolator.ts +1 -1
- package/src/interpolator/VerletBlendInterpolator.ts +1 -1
- package/src/main.ts +11 -3
- package/src/maneuver/TwoBurnOrbitTransfer.ts +1 -1
- package/src/maneuver/Waypoint.ts +1 -1
- package/src/objects/BaseObject.ts +171 -0
- package/src/objects/DetailedSatellite.ts +3 -3
- package/src/objects/DetailedSensor.ts +2 -1
- package/src/objects/GroundObject.ts +176 -0
- package/src/objects/LandObject.ts +2 -1
- package/src/objects/Marker.ts +1 -1
- package/src/objects/RfSensor.ts +1 -2
- package/src/objects/Satellite.ts +552 -0
- package/src/objects/Sensor.ts +280 -0
- package/src/objects/Star.ts +96 -0
- package/src/objects/index.ts +5 -0
- package/src/observation/Observation.ts +1 -1
- package/src/observation/ObservationOptical.ts +1 -1
- package/src/observation/ObservationRadar.ts +1 -1
- package/src/observation/ObservationUtils.ts +30 -1
- package/src/observation/RAE.ts +262 -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 +1 -1
- package/src/operations/EulerAngles.ts +1 -1
- package/src/operations/Matrix.ts +473 -0
- package/src/operations/Quaternion.ts +1 -1
- package/src/operations/Random.ts +54 -0
- package/src/operations/RandomGaussianSource.ts +1 -1
- 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 +1 -1
- package/src/optimize/PolynomialRegression.ts +1 -1
- package/src/optimize/SimplexEntry.ts +1 -1
- package/src/orbit_determination/BatchLeastSquaresOD.ts +1 -1
- package/src/orbit_determination/BatchLeastSquaresResult.ts +1 -1
- package/src/orbit_determination/GibbsIOD.ts +3 -1
- package/src/orbit_determination/GoodingIOD.ts +1 -1
- package/src/orbit_determination/HerrickGibbsIOD.ts +1 -1
- package/src/orbit_determination/LambertIOD.ts +1 -1
- package/src/orbit_determination/ModifiedGoodingIOD.ts +1 -1
- package/src/orbit_determination/index.ts +7 -0
- package/src/propagator/KeplerPropagator.ts +1 -1
- package/src/propagator/Propagator.ts +1 -1
- package/src/propagator/RkCheckpoint.ts +1 -1
- package/src/propagator/RkResult.ts +1 -1
- package/src/propagator/RungeKutta4Propagator.ts +1 -1
- package/src/propagator/RungeKuttaAdaptive.ts +1 -1
- package/src/propagator/Sgp4Propagator.ts +1 -1
- 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 +3986 -0
- package/src/smoothing/ExponentialSmoothing.ts +1 -1
- 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 +50 -0
- package/src/time/index.ts +31 -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 +721 -2
- package/src/utils/constants.ts +113 -0
- package/src/utils/functions.ts +562 -0
- package/src/utils/index.ts +3 -1
- package/src/utils/jacobian.ts +1 -1
- package/src/utils/linearDistance.ts +11 -0
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { Kilometers, KilometersPerSecond, PositionVelocity, Seconds, Vector3D } from '
|
|
18
|
+
import { Kilometers, KilometersPerSecond, PositionVelocity, Seconds, Vector3D } from '../main.js';
|
|
19
19
|
|
|
20
20
|
// / Chebyshev compressed ephemeris coefficients.
|
|
21
21
|
export class ChebyshevCoefficients {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { EpochUTC, EpochWindow, J2000 } from '
|
|
18
|
+
import { EpochUTC, EpochWindow, J2000 } from '../main.js';
|
|
19
19
|
import { ChebyshevCoefficients } from './ChebyshevCoefficients.js';
|
|
20
20
|
import { StateInterpolator } from './StateInterpolator.js';
|
|
21
21
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { Kilometers, KilometersPerSecond, Seconds, Vector3D } from '
|
|
18
|
+
import { Kilometers, KilometersPerSecond, Seconds, Vector3D } from '../main.js';
|
|
19
19
|
|
|
20
20
|
// / Container for cubic spline data.
|
|
21
21
|
export class CubicSpline {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { EpochUTC, EpochWindow, J2000, Kilometers, KilometersPerSecond, Vector3D } from '
|
|
18
|
+
import { EpochUTC, EpochWindow, J2000, Kilometers, KilometersPerSecond, Vector3D } from '../main.js';
|
|
19
19
|
import { CubicSpline } from './CubicSpline.js';
|
|
20
20
|
import { StateInterpolator } from './StateInterpolator.js';
|
|
21
21
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { EpochUTC, EpochWindow, Seconds } from '
|
|
18
|
+
import { EpochUTC, EpochWindow, Seconds } from '../main.js';
|
|
19
19
|
|
|
20
20
|
// / Interpolator base class.
|
|
21
21
|
export abstract class Interpolator {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { EpochUTC, EpochWindow, J2000, Kilometers, KilometersPerSecond, Seconds, Vector3D } from '
|
|
18
|
+
import { EpochUTC, EpochWindow, J2000, Kilometers, KilometersPerSecond, Seconds, Vector3D } from '../main.js';
|
|
19
19
|
import { StateInterpolator } from './StateInterpolator.js';
|
|
20
20
|
|
|
21
21
|
export class LagrangeInterpolator extends StateInterpolator {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { EpochUTC, J2000 } from '
|
|
18
|
+
import { EpochUTC, J2000 } from '../main.js';
|
|
19
19
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
20
20
|
/* eslint-disable class-methods-use-this */
|
|
21
21
|
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
KilometersPerSecond,
|
|
26
26
|
Seconds,
|
|
27
27
|
Vector3D,
|
|
28
|
-
} from '
|
|
28
|
+
} from '../main.js';
|
|
29
29
|
import { CubicSplineInterpolator } from './CubicSplineInterpolator.js';
|
|
30
30
|
import { LagrangeInterpolator } from './LagrangeInterpolator.js';
|
|
31
31
|
import { StateInterpolator } from './StateInterpolator.js';
|
package/src/main.ts
CHANGED
|
@@ -20,14 +20,22 @@
|
|
|
20
20
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
|
-
export * from 'ootk-core';
|
|
24
23
|
export * from './enums/index.js';
|
|
25
24
|
export * from './types/types.js';
|
|
26
25
|
export * from './interfaces/index.js';
|
|
26
|
+
export * from './time/index.js';
|
|
27
|
+
export * from './transforms/index.js';
|
|
28
|
+
export * from './utils/index.js';
|
|
29
|
+
export * from './operations/operations.js';
|
|
30
|
+
export { BaseObject } from './objects/index.js';
|
|
31
|
+
export { Earth } from './body/index.js';
|
|
27
32
|
export * from './coordinate/index.js';
|
|
33
|
+
export * from './observation/index.js';
|
|
34
|
+
export * from './data/DataHandler.js';
|
|
35
|
+
export * from './sgp4/index.js';
|
|
28
36
|
export * from './objects/index.js';
|
|
37
|
+
export * from './body/index.js';
|
|
29
38
|
export * from './operations/index.js';
|
|
30
39
|
export * from './force/index.js';
|
|
31
40
|
export * from './propagator/index.js';
|
|
32
|
-
export * from './
|
|
33
|
-
export * from './utils/index.js';
|
|
41
|
+
export * from './orbit_determination/index.js';
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { Earth, EpochUTC, MetersPerSecond, Seconds, SecondsPerMeterPerSecond } from '
|
|
18
|
+
import { Earth, EpochUTC, MetersPerSecond, Seconds, SecondsPerMeterPerSecond } from '../main.js';
|
|
19
19
|
import { Thrust } from '../force/Thrust.js';
|
|
20
20
|
|
|
21
21
|
// / Container for a two-burn orbit transfer.
|
package/src/maneuver/Waypoint.ts
CHANGED
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
RIC,
|
|
25
25
|
SecondsPerMeterPerSecond,
|
|
26
26
|
Vector3D,
|
|
27
|
-
} from '
|
|
27
|
+
} from '../main.js';
|
|
28
28
|
import { Thrust } from '../force/Thrust.js';
|
|
29
29
|
import { StateInterpolator } from '../interpolator/StateInterpolator.js';
|
|
30
30
|
import { ForceModel } from './../force/ForceModel.js';
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Theodore Kruczek.
|
|
3
|
+
* @license MIT
|
|
4
|
+
* @copyright (c) 2022-2025 Theodore Kruczek Permission is
|
|
5
|
+
* hereby granted, free of charge, to any person obtaining a copy of this
|
|
6
|
+
* software and associated documentation files (the "Software"), to deal in the
|
|
7
|
+
* Software without restriction, including without limitation the rights to use,
|
|
8
|
+
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
+
* the Software, and to permit persons to whom the Software is furnished to do
|
|
10
|
+
* so, subject to the following conditions:
|
|
11
|
+
*
|
|
12
|
+
* The above copyright notice and this permission notice shall be included in
|
|
13
|
+
* all copies or substantial portions of the Software.
|
|
14
|
+
*
|
|
15
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
* SOFTWARE.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import { BaseObjectParams } from '../interfaces/BaseObjectParams.js';
|
|
25
|
+
import { EciVec3, Kilometers, KilometersPerSecond, SpaceObjectType } from '../types/types.js';
|
|
26
|
+
|
|
27
|
+
export class BaseObject {
|
|
28
|
+
id: number;
|
|
29
|
+
name: string;
|
|
30
|
+
type: SpaceObjectType;
|
|
31
|
+
position: EciVec3; // Where is the object
|
|
32
|
+
totalVelocity: number; // How fast is the object moving
|
|
33
|
+
velocity: EciVec3<KilometersPerSecond>; // How fast is the object moving
|
|
34
|
+
active = true; // Is the object active
|
|
35
|
+
|
|
36
|
+
constructor(info: BaseObjectParams) {
|
|
37
|
+
this.type = info.type ?? SpaceObjectType.UNKNOWN;
|
|
38
|
+
this.name = info.name ?? 'Unknown';
|
|
39
|
+
this.id = info.id ?? -1; // Default to -1 if no id is provided
|
|
40
|
+
this.active = info.active ?? true;
|
|
41
|
+
|
|
42
|
+
// Default to the center of the earth until position is calculated
|
|
43
|
+
this.position = info.position ?? {
|
|
44
|
+
x: <Kilometers>0,
|
|
45
|
+
y: <Kilometers>0,
|
|
46
|
+
z: <Kilometers>0,
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// Default to 0 velocity until velocity is calculated
|
|
50
|
+
this.velocity = info.velocity ?? {
|
|
51
|
+
x: <KilometersPerSecond>0,
|
|
52
|
+
y: <KilometersPerSecond>0,
|
|
53
|
+
z: <KilometersPerSecond>0,
|
|
54
|
+
};
|
|
55
|
+
this.totalVelocity = Math.sqrt(this.velocity.x ** 2 + this.velocity.y ** 2 + this.velocity.z ** 2);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Checks if the object is a satellite.
|
|
60
|
+
* @returns True if the object is a satellite, false otherwise.
|
|
61
|
+
*/
|
|
62
|
+
isSatellite(): boolean {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Checks if the object is a ground object.
|
|
68
|
+
* @returns True if the object is a ground object, false otherwise.
|
|
69
|
+
*/
|
|
70
|
+
isGroundObject(): boolean {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Returns whether the object is a sensor.
|
|
76
|
+
* @returns True if the object is a sensor, false otherwise.
|
|
77
|
+
*/
|
|
78
|
+
isSensor(): boolean {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Checks if the object is a marker.
|
|
84
|
+
* @returns True if the object is a marker, false otherwise.
|
|
85
|
+
*/
|
|
86
|
+
isMarker(): boolean {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Returns whether the object's position is static.
|
|
92
|
+
* @returns True if the object is static, false otherwise.
|
|
93
|
+
*/
|
|
94
|
+
isStatic(): boolean {
|
|
95
|
+
return this.velocity.x === 0 && this.velocity.y === 0 && this.velocity.z === 0;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
isPayload(): boolean {
|
|
99
|
+
return this.type === SpaceObjectType.PAYLOAD;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
isRocketBody(): boolean {
|
|
103
|
+
return this.type === SpaceObjectType.ROCKET_BODY;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
isDebris(): boolean {
|
|
107
|
+
return this.type === SpaceObjectType.DEBRIS;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
isStar(): boolean {
|
|
111
|
+
return this.type === SpaceObjectType.STAR;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
isMissile(): boolean {
|
|
115
|
+
return this.type === SpaceObjectType.BALLISTIC_MISSILE;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
isNotional(): boolean {
|
|
119
|
+
return this.type === SpaceObjectType.NOTIONAL;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
getTypeString(): string {
|
|
123
|
+
const typeToStringMap: { [key in SpaceObjectType]?: string } = {
|
|
124
|
+
[SpaceObjectType.UNKNOWN]: 'Unknown',
|
|
125
|
+
[SpaceObjectType.PAYLOAD]: 'Payload',
|
|
126
|
+
[SpaceObjectType.ROCKET_BODY]: 'Rocket Body',
|
|
127
|
+
[SpaceObjectType.DEBRIS]: 'Debris',
|
|
128
|
+
[SpaceObjectType.SPECIAL]: 'Special',
|
|
129
|
+
[SpaceObjectType.BALLISTIC_MISSILE]: 'Ballistic Missile',
|
|
130
|
+
[SpaceObjectType.STAR]: 'Star',
|
|
131
|
+
[SpaceObjectType.INTERGOVERNMENTAL_ORGANIZATION]: 'Intergovernmental Organization',
|
|
132
|
+
[SpaceObjectType.SUBORBITAL_PAYLOAD_OPERATOR]: 'Suborbital Payload Operator',
|
|
133
|
+
[SpaceObjectType.PAYLOAD_OWNER]: 'Payload Owner',
|
|
134
|
+
[SpaceObjectType.METEOROLOGICAL_ROCKET_LAUNCH_AGENCY_OR_MANUFACTURER]:
|
|
135
|
+
'Meteorological Rocket Launch Agency or Manufacturer',
|
|
136
|
+
[SpaceObjectType.PAYLOAD_MANUFACTURER]: 'Payload Manufacturer',
|
|
137
|
+
[SpaceObjectType.LAUNCH_AGENCY]: 'Launch Agency',
|
|
138
|
+
[SpaceObjectType.LAUNCH_SITE]: 'Launch Site',
|
|
139
|
+
[SpaceObjectType.LAUNCH_POSITION]: 'Launch Position',
|
|
140
|
+
[SpaceObjectType.LAUNCH_FACILITY]: 'Launch Facility',
|
|
141
|
+
[SpaceObjectType.CONTROL_FACILITY]: 'Control Facility',
|
|
142
|
+
[SpaceObjectType.GROUND_SENSOR_STATION]: 'Ground Sensor Station',
|
|
143
|
+
[SpaceObjectType.OPTICAL]: 'Optical',
|
|
144
|
+
[SpaceObjectType.MECHANICAL]: 'Mechanical',
|
|
145
|
+
[SpaceObjectType.PHASED_ARRAY_RADAR]: 'Phased Array Radar',
|
|
146
|
+
[SpaceObjectType.OBSERVER]: 'Observer',
|
|
147
|
+
[SpaceObjectType.BISTATIC_RADIO_TELESCOPE]: 'Bistatic Radio Telescope',
|
|
148
|
+
[SpaceObjectType.COUNTRY]: 'Country',
|
|
149
|
+
[SpaceObjectType.LAUNCH_VEHICLE_MANUFACTURER]: 'Launch Vehicle Manufacturer',
|
|
150
|
+
[SpaceObjectType.ENGINE_MANUFACTURER]: 'Engine Manufacturer',
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
return typeToStringMap[this.type] ?? 'Unknown';
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Validates a parameter value against a minimum and maximum value.
|
|
158
|
+
* @param value - The value to be validated.
|
|
159
|
+
* @param minValue - The minimum allowed value.
|
|
160
|
+
* @param maxValue - The maximum allowed value.
|
|
161
|
+
* @param errorMessage - The error message to be thrown if the value is invalid.
|
|
162
|
+
*/
|
|
163
|
+
validateParameter<T>(value: T, minValue: T, maxValue: T, errorMessage: string): void {
|
|
164
|
+
if (typeof minValue !== 'undefined' && minValue !== null && (value as number) < (minValue as number)) {
|
|
165
|
+
throw new Error(errorMessage);
|
|
166
|
+
}
|
|
167
|
+
if (typeof maxValue !== 'undefined' && maxValue !== null && (value as number) > (maxValue as number)) {
|
|
168
|
+
throw new Error(errorMessage);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
@@ -15,18 +15,18 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
+
import { Satellite } from './Satellite.js';
|
|
18
19
|
import {
|
|
19
20
|
FormatTle,
|
|
20
21
|
LaunchDetails,
|
|
21
22
|
OperationsDetails,
|
|
22
23
|
OptionsParams,
|
|
23
|
-
Satellite,
|
|
24
24
|
SpaceCraftDetails,
|
|
25
25
|
TleLine1,
|
|
26
26
|
TleLine2,
|
|
27
|
-
|
|
27
|
+
CatalogSource,
|
|
28
|
+
} from '../main.js';
|
|
28
29
|
import { DetailedSatelliteParams, PayloadStatus } from '../types/types.js';
|
|
29
|
-
import { CatalogSource } from '../main.js';
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
32
|
* Represents a detailed satellite object with launch, spacecraft, and operations details.
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import {
|
|
18
|
+
import { Sensor } from './Sensor.js';
|
|
19
|
+
import { Milliseconds } from '../main.js';
|
|
19
20
|
import { DetailedSensorParams, ZoomValue } from '../types/types.js';
|
|
20
21
|
import { CommLink } from '../enums/CommLink.js';
|
|
21
22
|
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author Theodore Kruczek.
|
|
3
|
+
* @license MIT
|
|
4
|
+
* @copyright (c) 2022-2025 Theodore Kruczek Permission is
|
|
5
|
+
* hereby granted, free of charge, to any person obtaining a copy of this
|
|
6
|
+
* software and associated documentation files (the "Software"), to deal in the
|
|
7
|
+
* Software without restriction, including without limitation the rights to use,
|
|
8
|
+
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
+
* the Software, and to permit persons to whom the Software is furnished to do
|
|
10
|
+
* so, subject to the following conditions:
|
|
11
|
+
*
|
|
12
|
+
* The above copyright notice and this permission notice shall be included in
|
|
13
|
+
* all copies or substantial portions of the Software.
|
|
14
|
+
*
|
|
15
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
* SOFTWARE.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import {
|
|
25
|
+
GroundPositionParams,
|
|
26
|
+
Degrees,
|
|
27
|
+
EcfVec3,
|
|
28
|
+
EciVec3,
|
|
29
|
+
Kilometers,
|
|
30
|
+
LlaVec3,
|
|
31
|
+
Radians,
|
|
32
|
+
RaeVec3,
|
|
33
|
+
calcGmst,
|
|
34
|
+
lla2eci,
|
|
35
|
+
llaRad2ecf,
|
|
36
|
+
DEG2RAD,
|
|
37
|
+
Geodetic,
|
|
38
|
+
BaseObjectParams,
|
|
39
|
+
SpaceObjectType,
|
|
40
|
+
} from '../main.js';
|
|
41
|
+
|
|
42
|
+
import { BaseObject } from './BaseObject.js';
|
|
43
|
+
import { Satellite } from './Satellite.js';
|
|
44
|
+
|
|
45
|
+
export class GroundObject extends BaseObject {
|
|
46
|
+
override name = 'Unknown Ground Object';
|
|
47
|
+
lat: Degrees;
|
|
48
|
+
lon: Degrees;
|
|
49
|
+
alt: Kilometers;
|
|
50
|
+
|
|
51
|
+
constructor(info: GroundPositionParams & BaseObjectParams) {
|
|
52
|
+
super(info);
|
|
53
|
+
|
|
54
|
+
this.validateGroundObjectInputData_(info);
|
|
55
|
+
this.name = info.name ?? this.name;
|
|
56
|
+
this.lat = info.lat;
|
|
57
|
+
this.lon = info.lon;
|
|
58
|
+
this.alt = info.alt;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Calculates the relative azimuth, elevation, and range between this GroundObject and a Satellite.
|
|
63
|
+
* @param satellite The Satellite object.
|
|
64
|
+
* @param date The date for which to calculate the RAE values. Defaults to the current date.
|
|
65
|
+
* @returns The relative azimuth, elevation, and range values in kilometers and degrees.
|
|
66
|
+
*/
|
|
67
|
+
rae(satellite: Satellite, date: Date = new Date()): RaeVec3<Kilometers, Degrees> | null {
|
|
68
|
+
return satellite.rae(this, date);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Calculates ECF position at a given time.
|
|
73
|
+
* @variation optimized version of this.toGeodetic().toITRF().position;
|
|
74
|
+
* @returns The ECF position vector of the ground object.
|
|
75
|
+
*/
|
|
76
|
+
ecf(): EcfVec3<Kilometers> {
|
|
77
|
+
return llaRad2ecf(this.toGeodetic());
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Calculates the Earth-Centered Inertial (ECI) position vector of the ground object at a given date.
|
|
82
|
+
* @variation optimzed version of this.toGeodetic().toITRF().toJ2000().position;
|
|
83
|
+
* @param date The date for which to calculate the ECI position vector. Defaults to the current date.
|
|
84
|
+
* @returns The ECI position vector of the ground object.
|
|
85
|
+
*/
|
|
86
|
+
eci(date: Date = new Date()): EciVec3<Kilometers> {
|
|
87
|
+
const { gmst } = calcGmst(date);
|
|
88
|
+
|
|
89
|
+
return lla2eci(this.toGeodetic(), gmst);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Returns the latitude, longitude, and altitude of the GroundObject.
|
|
94
|
+
* @returns The latitude, longitude, and altitude as an LlaVec3 object.
|
|
95
|
+
*/
|
|
96
|
+
lla(): LlaVec3<Degrees, Kilometers> {
|
|
97
|
+
return {
|
|
98
|
+
lat: this.lat,
|
|
99
|
+
lon: this.lon,
|
|
100
|
+
alt: this.alt,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Converts the latitude, longitude, and altitude of the GroundObject to radians and kilometers.
|
|
106
|
+
* @variation optimized version of this.toGeodetic() without class instantiation for better performance and
|
|
107
|
+
* serialization.
|
|
108
|
+
* @returns An object containing the latitude, longitude, and altitude in
|
|
109
|
+
* radians and kilometers.
|
|
110
|
+
*/
|
|
111
|
+
llaRad(): LlaVec3<Radians, Kilometers> {
|
|
112
|
+
return {
|
|
113
|
+
lat: (this.lat * DEG2RAD) as Radians,
|
|
114
|
+
lon: (this.lon * DEG2RAD) as Radians,
|
|
115
|
+
alt: this.alt,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
get latRad(): Radians {
|
|
120
|
+
return this.lat * DEG2RAD as Radians;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
get lonRad(): Radians {
|
|
124
|
+
return this.lon * DEG2RAD as Radians;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Creates a GroundObject object from a Geodetic position.
|
|
129
|
+
* @param geodetic The geodetic coordinates.
|
|
130
|
+
* @returns A new GroundObject object.
|
|
131
|
+
*/
|
|
132
|
+
static fromGeodetic(geodetic: Geodetic): GroundObject {
|
|
133
|
+
return new GroundObject({
|
|
134
|
+
lat: geodetic.latDeg as Degrees,
|
|
135
|
+
lon: geodetic.lonDeg as Degrees,
|
|
136
|
+
alt: geodetic.alt,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Converts the ground position to geodetic coordinates.
|
|
142
|
+
* @returns The geodetic coordinates.
|
|
143
|
+
*/
|
|
144
|
+
toGeodetic(): Geodetic {
|
|
145
|
+
return Geodetic.fromDegrees(this.lat, this.lon, this.alt);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Validates the input data for the GroundObject.
|
|
150
|
+
* @param info - The GroundPositionParams object containing the latitude,
|
|
151
|
+
* longitude, and altitude. @returns void
|
|
152
|
+
*/
|
|
153
|
+
private validateGroundObjectInputData_(info: GroundPositionParams) {
|
|
154
|
+
this.validateParameter(info.lat, -90, 90, 'Invalid latitude - must be between -90 and 90');
|
|
155
|
+
this.validateParameter(info.lon, -180, 180, 'Invalid longitude - must be between -180 and 180');
|
|
156
|
+
this.validateParameter(info.alt, 0, null, 'Invalid altitude - must be greater than 0');
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
override isGroundObject(): boolean {
|
|
160
|
+
switch (this.type) {
|
|
161
|
+
case SpaceObjectType.INTERGOVERNMENTAL_ORGANIZATION:
|
|
162
|
+
case SpaceObjectType.SUBORBITAL_PAYLOAD_OPERATOR:
|
|
163
|
+
case SpaceObjectType.PAYLOAD_OWNER:
|
|
164
|
+
case SpaceObjectType.METEOROLOGICAL_ROCKET_LAUNCH_AGENCY_OR_MANUFACTURER:
|
|
165
|
+
case SpaceObjectType.PAYLOAD_MANUFACTURER:
|
|
166
|
+
case SpaceObjectType.LAUNCH_VEHICLE_MANUFACTURER:
|
|
167
|
+
case SpaceObjectType.ENGINE_MANUFACTURER:
|
|
168
|
+
case SpaceObjectType.LAUNCH_AGENCY:
|
|
169
|
+
case SpaceObjectType.LAUNCH_SITE:
|
|
170
|
+
case SpaceObjectType.LAUNCH_POSITION:
|
|
171
|
+
return true;
|
|
172
|
+
default:
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { BaseObject
|
|
18
|
+
import { BaseObject } from './BaseObject.js';
|
|
19
|
+
import { BaseObjectParams, Degrees, Kilometers } from '../main.js';
|
|
19
20
|
/* eslint-disable class-methods-use-this */
|
|
20
21
|
|
|
21
22
|
export interface LandObjectParams extends BaseObjectParams {
|
package/src/objects/Marker.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { BaseObject } from '
|
|
18
|
+
import { BaseObject } from './BaseObject.js';
|
|
19
19
|
/* eslint-disable class-methods-use-this */
|
|
20
20
|
|
|
21
21
|
export class Marker extends BaseObject {
|
package/src/objects/RfSensor.ts
CHANGED
|
@@ -21,8 +21,7 @@
|
|
|
21
21
|
* SOFTWARE.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
import { DEG2RAD, Degrees, RAD2DEG, Radians, SpaceObjectType } from '
|
|
25
|
-
import { azel2uv, uv2azel, RfSensorParams } from '../main.js';
|
|
24
|
+
import { DEG2RAD, Degrees, RAD2DEG, Radians, SpaceObjectType, azel2uv, uv2azel, RfSensorParams } from '../main.js';
|
|
26
25
|
import { DetailedSensor } from './DetailedSensor.js';
|
|
27
26
|
|
|
28
27
|
export class RfSensor extends DetailedSensor {
|