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
|
@@ -0,0 +1,163 @@
|
|
|
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
|
+
import { Earth } from '../body/Earth.js';
|
|
24
|
+
import { AngularDistanceMethod, GroundObject } from '../main.js';
|
|
25
|
+
import { Vector3D } from '../operations/Vector3D.js';
|
|
26
|
+
import { DEG2RAD, RAD2DEG } from '../utils/constants.js';
|
|
27
|
+
import { angularDistance } from '../utils/functions.js';
|
|
28
|
+
import { ITRF } from './ITRF.js';
|
|
29
|
+
/**
|
|
30
|
+
* This Geodetic class represents a geodetic coordinate in three-dimensional
|
|
31
|
+
* space, consisting of latitude, longitude, and altitude. It provides various
|
|
32
|
+
* methods to perform calculations and operations related to geodetic
|
|
33
|
+
* coordinates.
|
|
34
|
+
*
|
|
35
|
+
* This is a class for geodetic coordinates. This is related to the GroundObject
|
|
36
|
+
* class, which is used to represent an object on the surface of the Earth.
|
|
37
|
+
*/
|
|
38
|
+
export class Geodetic {
|
|
39
|
+
lat;
|
|
40
|
+
lon;
|
|
41
|
+
alt;
|
|
42
|
+
constructor(latitude, longitude, altitude) {
|
|
43
|
+
if (Math.abs(latitude) > Math.PI / 2) {
|
|
44
|
+
throw new RangeError('Latitude must be between -90° and 90° in Radians.');
|
|
45
|
+
}
|
|
46
|
+
if (Math.abs(longitude) > Math.PI) {
|
|
47
|
+
throw new RangeError('Longitude must be between -180° and 180° in Radians.');
|
|
48
|
+
}
|
|
49
|
+
if (altitude < -Earth.radiusMean) {
|
|
50
|
+
throw new RangeError(`Altitude must be greater than ${-Earth.radiusMean} km. Got ${altitude} km.`);
|
|
51
|
+
}
|
|
52
|
+
this.lat = latitude;
|
|
53
|
+
this.lon = longitude;
|
|
54
|
+
this.alt = altitude;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates a Geodetic object from latitude, longitude, and altitude values in
|
|
58
|
+
* degrees.
|
|
59
|
+
* @param latitude The latitude value in degrees.
|
|
60
|
+
* @param longitude The longitude value in degrees.
|
|
61
|
+
* @param altitude The altitude value in kilometers.
|
|
62
|
+
* @returns A Geodetic object representing the specified latitude, longitude,
|
|
63
|
+
* and altitude.
|
|
64
|
+
*/
|
|
65
|
+
static fromDegrees(latitude, longitude, altitude) {
|
|
66
|
+
return new Geodetic((latitude * DEG2RAD), (longitude * DEG2RAD), altitude);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Returns a string representation of the Geodetic object.
|
|
70
|
+
* @returns A string containing the latitude, longitude, and altitude of the Geodetic object.
|
|
71
|
+
*/
|
|
72
|
+
toString() {
|
|
73
|
+
return [
|
|
74
|
+
'Geodetic',
|
|
75
|
+
` Latitude: ${this.latDeg.toFixed(4)}°`,
|
|
76
|
+
` Longitude: ${this.lonDeg.toFixed(4)}°`,
|
|
77
|
+
` Altitude: ${this.alt.toFixed(3)} km`,
|
|
78
|
+
].join('\n');
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Gets the latitude in degrees.
|
|
82
|
+
* @returns The latitude in degrees.
|
|
83
|
+
*/
|
|
84
|
+
get latDeg() {
|
|
85
|
+
return this.lat * RAD2DEG;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Gets the longitude in degrees.
|
|
89
|
+
* @returns The longitude in degrees.
|
|
90
|
+
*/
|
|
91
|
+
get lonDeg() {
|
|
92
|
+
return this.lon * RAD2DEG;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Converts the geodetic coordinates to a ground position.
|
|
96
|
+
* @returns The ground position object.
|
|
97
|
+
*/
|
|
98
|
+
toGroundObject() {
|
|
99
|
+
return new GroundObject({
|
|
100
|
+
lat: this.latDeg,
|
|
101
|
+
lon: this.lonDeg,
|
|
102
|
+
alt: this.alt,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Converts the geodetic coordinates to the International Terrestrial
|
|
107
|
+
* Reference Frame (ITRF) coordinates.
|
|
108
|
+
* @param epoch The epoch in UTC.
|
|
109
|
+
* @returns The ITRF coordinates.
|
|
110
|
+
*/
|
|
111
|
+
toITRF(epoch) {
|
|
112
|
+
const sLat = Math.sin(this.lat);
|
|
113
|
+
const cLat = Math.cos(this.lat);
|
|
114
|
+
const nVal = Earth.radiusEquator / Math.sqrt(1 - Earth.eccentricitySquared * sLat * sLat);
|
|
115
|
+
const r = new Vector3D(((nVal + this.alt) * cLat * Math.cos(this.lon)), ((nVal + this.alt) * cLat * Math.sin(this.lon)), ((nVal * (1 - Earth.eccentricitySquared) + this.alt) * sLat));
|
|
116
|
+
return new ITRF(epoch, r, Vector3D.origin);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Calculates the angle between two geodetic coordinates.
|
|
120
|
+
* @param g The geodetic coordinate to calculate the angle to.
|
|
121
|
+
* @param method The method to use for calculating the angular distance (optional, default is Haversine).
|
|
122
|
+
* @returns The angle between the two geodetic coordinates in radians.
|
|
123
|
+
*/
|
|
124
|
+
angle(g, method = AngularDistanceMethod.Haversine) {
|
|
125
|
+
return angularDistance(this.lon, this.lat, g.lon, g.lat, method);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Calculates the angle in degrees between two Geodetic coordinates.
|
|
129
|
+
* @param g The Geodetic coordinate to calculate the angle with.
|
|
130
|
+
* @param method The method to use for calculating the angular distance (optional, default is Haversine).
|
|
131
|
+
* @returns The angle in degrees.
|
|
132
|
+
*/
|
|
133
|
+
angleDeg(g, method = AngularDistanceMethod.Haversine) {
|
|
134
|
+
return (this.angle(g, method) * RAD2DEG);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Calculates the distance between two geodetic coordinates.
|
|
138
|
+
* @param g The geodetic coordinates to calculate the distance to.
|
|
139
|
+
* @param method The method to use for calculating the angular distance. Default is Haversine.
|
|
140
|
+
* @returns The distance between the two geodetic coordinates in kilometers.
|
|
141
|
+
*/
|
|
142
|
+
distance(g, method = AngularDistanceMethod.Haversine) {
|
|
143
|
+
return (this.angle(g, method) * Earth.radiusMean);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Calculates the field of view based on the altitude of the Geodetic object.
|
|
147
|
+
* @returns The field of view in radians.
|
|
148
|
+
*/
|
|
149
|
+
fieldOfView() {
|
|
150
|
+
return Math.acos(Earth.radiusMean / (Earth.radiusMean + this.alt));
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Determines if the current geodetic coordinate can see another geodetic coordinate.
|
|
154
|
+
* @param g The geodetic coordinate to check for visibility.
|
|
155
|
+
* @param method The method to use for calculating the angular distance (optional, default is Haversine).
|
|
156
|
+
* @returns A boolean indicating if the current coordinate can see the other coordinate.
|
|
157
|
+
*/
|
|
158
|
+
isInView(g, method = AngularDistanceMethod.Haversine) {
|
|
159
|
+
const fov = Math.max(this.fieldOfView(), g.fieldOfView());
|
|
160
|
+
return this.angle(g, method) <= fov;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=Geodetic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Geodetic.js","sourceRoot":"","sources":["../../src/coordinate/Geodetic.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import { EpochUTC, J2000, Kilometers, KilometersPerSecond, Matrix, RadiansPerSecond, Seconds, Vector3D } from '
|
|
17
|
+
import { EpochUTC, J2000, Kilometers, KilometersPerSecond, Matrix, RadiansPerSecond, Seconds, Vector3D } from '../main.js';
|
|
18
18
|
import { Thrust } from './../force/Thrust.js';
|
|
19
19
|
import { Waypoint } from './../maneuver/Waypoint.js';
|
|
20
20
|
export declare class Hill {
|
package/dist/coordinate/Hill.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
|
-
import { Earth, J2000, Matrix, RelativeState, Vector3D, } from '
|
|
17
|
+
import { Earth, J2000, Matrix, RelativeState, Vector3D, } from '../main.js';
|
|
18
18
|
import { Thrust } from './../force/Thrust.js';
|
|
19
19
|
// / Hill Modified Equidistant Cyllindrical _(EQCM)_ coordinates.
|
|
20
20
|
export class Hill {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hill.js","sourceRoot":"","sources":["../../src/coordinate/Hill.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Hill.js","sourceRoot":"","sources":["../../src/coordinate/Hill.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
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
|
+
import { Kilometers } from '../main.js';
|
|
24
|
+
import { Geodetic } from './Geodetic.js';
|
|
25
|
+
import { J2000 } from './J2000.js';
|
|
26
|
+
import { StateVector } from './StateVector.js';
|
|
27
|
+
/**
|
|
28
|
+
* The International Terrestrial Reference Frame (ITRF) is a geocentric reference frame for the Earth. It is the
|
|
29
|
+
* successor to the International Terrestrial Reference System (ITRS). The ITRF definition is maintained by the
|
|
30
|
+
* International Earth Rotation and Reference Systems Service (IERS). Several versions of ITRF exist, each with a
|
|
31
|
+
* different epoch, to address the issue of crustal motion. The latest version is ITRF2014, based on data collected from
|
|
32
|
+
* 1980 to 2014.
|
|
33
|
+
* @see https://en.wikipedia.org/wiki/International_Terrestrial_Reference_Frame
|
|
34
|
+
*
|
|
35
|
+
* This is a geocentric coordinate system, also referenced as ECF/ECEF (Earth Centered Earth Fixed). It is a Cartesian
|
|
36
|
+
* coordinate system with the origin at the center of the Earth. The x-axis intersects the sphere of the Earth at 0°
|
|
37
|
+
* latitude (the equator) and 0° longitude (the Prime Meridian). The z-axis goes through the North Pole. The y-axis goes
|
|
38
|
+
* through 90° East longitude.
|
|
39
|
+
* @see https://en.wikipedia.org/wiki/Earth-centered,_Earth-fixed_coordinate_system
|
|
40
|
+
*/
|
|
41
|
+
export declare class ITRF extends StateVector {
|
|
42
|
+
/**
|
|
43
|
+
* Gets the name of the ITRF coordinate system.
|
|
44
|
+
* @returns The name of the coordinate system.
|
|
45
|
+
*/
|
|
46
|
+
get name(): string;
|
|
47
|
+
/**
|
|
48
|
+
* Gets a value indicating whether the coordinate system is inertial.
|
|
49
|
+
* @returns A boolean value indicating whether the coordinate system is inertial.
|
|
50
|
+
*/
|
|
51
|
+
get inertial(): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Gets the height of the ITRF coordinate above the surface of the Earth in kilometers.
|
|
54
|
+
* @returns The height in kilometers.
|
|
55
|
+
*/
|
|
56
|
+
get height(): Kilometers;
|
|
57
|
+
/**
|
|
58
|
+
* Gets the altitude in kilometers.
|
|
59
|
+
* @returns The altitude in kilometers.
|
|
60
|
+
*/
|
|
61
|
+
get alt(): Kilometers;
|
|
62
|
+
/**
|
|
63
|
+
* Converts the current coordinate to the J2000 coordinate system. This is an Earth-Centered Inertial (ECI) coordinate
|
|
64
|
+
* system with the origin at the center of the Earth.
|
|
65
|
+
* @see https://en.wikipedia.org/wiki/Epoch_(astronomy)#Julian_years_and_J2000
|
|
66
|
+
* @returns The coordinate in the J2000 coordinate system.
|
|
67
|
+
*/
|
|
68
|
+
toJ2000(): J2000;
|
|
69
|
+
/**
|
|
70
|
+
* Converts the current ITRF coordinate to Geodetic coordinate. This is a coordinate system for latitude, longitude,
|
|
71
|
+
* and altitude.
|
|
72
|
+
* @returns The converted Geodetic coordinate.
|
|
73
|
+
*/
|
|
74
|
+
toGeodetic(): Geodetic;
|
|
75
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
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
|
+
import { Earth } from '../body/Earth.js';
|
|
24
|
+
import { Geodetic } from './Geodetic.js';
|
|
25
|
+
import { J2000 } from './J2000.js';
|
|
26
|
+
import { StateVector } from './StateVector.js';
|
|
27
|
+
/**
|
|
28
|
+
* The International Terrestrial Reference Frame (ITRF) is a geocentric reference frame for the Earth. It is the
|
|
29
|
+
* successor to the International Terrestrial Reference System (ITRS). The ITRF definition is maintained by the
|
|
30
|
+
* International Earth Rotation and Reference Systems Service (IERS). Several versions of ITRF exist, each with a
|
|
31
|
+
* different epoch, to address the issue of crustal motion. The latest version is ITRF2014, based on data collected from
|
|
32
|
+
* 1980 to 2014.
|
|
33
|
+
* @see https://en.wikipedia.org/wiki/International_Terrestrial_Reference_Frame
|
|
34
|
+
*
|
|
35
|
+
* This is a geocentric coordinate system, also referenced as ECF/ECEF (Earth Centered Earth Fixed). It is a Cartesian
|
|
36
|
+
* coordinate system with the origin at the center of the Earth. The x-axis intersects the sphere of the Earth at 0°
|
|
37
|
+
* latitude (the equator) and 0° longitude (the Prime Meridian). The z-axis goes through the North Pole. The y-axis goes
|
|
38
|
+
* through 90° East longitude.
|
|
39
|
+
* @see https://en.wikipedia.org/wiki/Earth-centered,_Earth-fixed_coordinate_system
|
|
40
|
+
*/
|
|
41
|
+
export class ITRF extends StateVector {
|
|
42
|
+
/**
|
|
43
|
+
* Gets the name of the ITRF coordinate system.
|
|
44
|
+
* @returns The name of the coordinate system.
|
|
45
|
+
*/
|
|
46
|
+
get name() {
|
|
47
|
+
return 'ITRF';
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Gets a value indicating whether the coordinate system is inertial.
|
|
51
|
+
* @returns A boolean value indicating whether the coordinate system is inertial.
|
|
52
|
+
*/
|
|
53
|
+
get inertial() {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Gets the height of the ITRF coordinate above the surface of the Earth in kilometers.
|
|
58
|
+
* @returns The height in kilometers.
|
|
59
|
+
*/
|
|
60
|
+
get height() {
|
|
61
|
+
const a = Earth.radiusEquator;
|
|
62
|
+
const e2 = Earth.eccentricitySquared;
|
|
63
|
+
const r = this.position.magnitude();
|
|
64
|
+
const sl = this.position.z / r;
|
|
65
|
+
const cl2 = 1 - sl * sl;
|
|
66
|
+
const coeff = Math.sqrt((1 - e2) / (1 - e2 * cl2));
|
|
67
|
+
return (r - a * coeff);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Gets the altitude in kilometers.
|
|
71
|
+
* @returns The altitude in kilometers.
|
|
72
|
+
*/
|
|
73
|
+
get alt() {
|
|
74
|
+
return this.height;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Converts the current coordinate to the J2000 coordinate system. This is an Earth-Centered Inertial (ECI) coordinate
|
|
78
|
+
* system with the origin at the center of the Earth.
|
|
79
|
+
* @see https://en.wikipedia.org/wiki/Epoch_(astronomy)#Julian_years_and_J2000
|
|
80
|
+
* @returns The coordinate in the J2000 coordinate system.
|
|
81
|
+
*/
|
|
82
|
+
toJ2000() {
|
|
83
|
+
const p = Earth.precession(this.epoch);
|
|
84
|
+
const n = Earth.nutation(this.epoch);
|
|
85
|
+
const ast = this.epoch.gmstAngle() + n.eqEq;
|
|
86
|
+
const rTOD = this.position.rotZ(-ast);
|
|
87
|
+
const vTOD = this.velocity
|
|
88
|
+
// TODO: #13 Intermediate unit type is incorrect.
|
|
89
|
+
.add(Earth.rotation.cross(this.position))
|
|
90
|
+
.rotZ(-ast);
|
|
91
|
+
const rMOD = rTOD.rotX(n.eps).rotZ(n.dPsi).rotX(-n.mEps);
|
|
92
|
+
const vMOD = vTOD.rotX(n.eps).rotZ(n.dPsi).rotX(-n.mEps);
|
|
93
|
+
const rJ2000 = rMOD
|
|
94
|
+
.rotZ(p.zed)
|
|
95
|
+
.rotY(-p.theta)
|
|
96
|
+
.rotZ(p.zeta);
|
|
97
|
+
const vJ2000 = vMOD
|
|
98
|
+
.rotZ(p.zed)
|
|
99
|
+
.rotY(-p.theta)
|
|
100
|
+
.rotZ(p.zeta);
|
|
101
|
+
return new J2000(this.epoch, rJ2000, vJ2000);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Converts the current ITRF coordinate to Geodetic coordinate. This is a coordinate system for latitude, longitude,
|
|
105
|
+
* and altitude.
|
|
106
|
+
* @returns The converted Geodetic coordinate.
|
|
107
|
+
*/
|
|
108
|
+
toGeodetic() {
|
|
109
|
+
const sma = Earth.radiusEquator;
|
|
110
|
+
const esq = Earth.eccentricitySquared;
|
|
111
|
+
const x = this.position.x;
|
|
112
|
+
const y = this.position.y;
|
|
113
|
+
const z = this.position.z;
|
|
114
|
+
const lon = Math.atan2(y, x);
|
|
115
|
+
const r = Math.sqrt(x * x + y * y);
|
|
116
|
+
const phi = Math.atan(z / r);
|
|
117
|
+
let lat = phi;
|
|
118
|
+
let alt;
|
|
119
|
+
let c = 0.0;
|
|
120
|
+
if (x === 0 && y === 0) {
|
|
121
|
+
lat = phi;
|
|
122
|
+
alt = z > 0 ? (z - Earth.radiusPolar) : (z + Earth.radiusPolar);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
for (let i = 0; i < 20; i++) {
|
|
126
|
+
const slat = Math.sin(lat);
|
|
127
|
+
c = 1 / Math.sqrt(1 - esq * slat * slat);
|
|
128
|
+
lat = Math.atan((z + sma * c * esq * slat) / r);
|
|
129
|
+
}
|
|
130
|
+
alt = (r / Math.cos(lat) - sma * c);
|
|
131
|
+
}
|
|
132
|
+
return new Geodetic(lat, lon, alt);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=ITRF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITRF.js","sourceRoot":"","sources":["../../src/coordinate/ITRF.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
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
|
+
import { ClassicalElements } from './ClassicalElements.js';
|
|
24
|
+
import { ITRF } from './ITRF.js';
|
|
25
|
+
import { StateVector } from './StateVector.js';
|
|
26
|
+
import { TEME } from './TEME.js';
|
|
27
|
+
/**
|
|
28
|
+
* Represents a position and velocity in the J2000 coordinate system. This is an Earth-centered inertial (ECI)
|
|
29
|
+
* coordinate system.
|
|
30
|
+
*
|
|
31
|
+
* Commonly used ECI frame is defined with the Earth's Mean Equator and Mean Equinox (MEME) at 12:00 Terrestrial Time on
|
|
32
|
+
* 1 January 2000. It can be referred to as J2K, J2000 or EME2000. The x-axis is aligned with the mean vernal equinox.
|
|
33
|
+
* The z-axis is aligned with the Earth's rotation axis (or equivalently, the celestial North Pole) as it was at that
|
|
34
|
+
* time. The y-axis is rotated by 90° East about the celestial equator.
|
|
35
|
+
* @see https://en.wikipedia.org/wiki/Earth-centered_inertial
|
|
36
|
+
*/
|
|
37
|
+
export declare class J2000 extends StateVector {
|
|
38
|
+
/**
|
|
39
|
+
* Creates a J2000 coordinate from classical elements.
|
|
40
|
+
* @param elements The classical elements.
|
|
41
|
+
* @returns The J2000 coordinate.
|
|
42
|
+
*/
|
|
43
|
+
static fromClassicalElements(elements: ClassicalElements): J2000;
|
|
44
|
+
/**
|
|
45
|
+
* Gets the name of the coordinate system.
|
|
46
|
+
* @returns The name of the coordinate system.
|
|
47
|
+
*/
|
|
48
|
+
get name(): string;
|
|
49
|
+
/**
|
|
50
|
+
* Gets a value indicating whether the coordinate system is inertial.
|
|
51
|
+
* @returns A boolean value indicating whether the coordinate system is inertial.
|
|
52
|
+
*/
|
|
53
|
+
get inertial(): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Converts the coordinates from J2000 to the International Terrestrial Reference Frame (ITRF).
|
|
56
|
+
* This is an ECI to ECF transformation.
|
|
57
|
+
* @returns The ITRF coordinates.
|
|
58
|
+
*/
|
|
59
|
+
toITRF(): ITRF;
|
|
60
|
+
/**
|
|
61
|
+
* Converts the J2000 coordinate to the TEME coordinate.
|
|
62
|
+
* @returns The TEME coordinate.
|
|
63
|
+
*/
|
|
64
|
+
toTEME(): TEME;
|
|
65
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
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
|
+
import { Earth } from '../body/Earth.js';
|
|
24
|
+
import { ITRF } from './ITRF.js';
|
|
25
|
+
import { StateVector } from './StateVector.js';
|
|
26
|
+
import { TEME } from './TEME.js';
|
|
27
|
+
/**
|
|
28
|
+
* Represents a position and velocity in the J2000 coordinate system. This is an Earth-centered inertial (ECI)
|
|
29
|
+
* coordinate system.
|
|
30
|
+
*
|
|
31
|
+
* Commonly used ECI frame is defined with the Earth's Mean Equator and Mean Equinox (MEME) at 12:00 Terrestrial Time on
|
|
32
|
+
* 1 January 2000. It can be referred to as J2K, J2000 or EME2000. The x-axis is aligned with the mean vernal equinox.
|
|
33
|
+
* The z-axis is aligned with the Earth's rotation axis (or equivalently, the celestial North Pole) as it was at that
|
|
34
|
+
* time. The y-axis is rotated by 90° East about the celestial equator.
|
|
35
|
+
* @see https://en.wikipedia.org/wiki/Earth-centered_inertial
|
|
36
|
+
*/
|
|
37
|
+
export class J2000 extends StateVector {
|
|
38
|
+
/**
|
|
39
|
+
* Creates a J2000 coordinate from classical elements.
|
|
40
|
+
* @param elements The classical elements.
|
|
41
|
+
* @returns The J2000 coordinate.
|
|
42
|
+
*/
|
|
43
|
+
static fromClassicalElements(elements) {
|
|
44
|
+
const rv = elements.toPositionVelocity();
|
|
45
|
+
return new J2000(elements.epoch, rv.position, rv.velocity);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Gets the name of the coordinate system.
|
|
49
|
+
* @returns The name of the coordinate system.
|
|
50
|
+
*/
|
|
51
|
+
get name() {
|
|
52
|
+
return 'J2000';
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Gets a value indicating whether the coordinate system is inertial.
|
|
56
|
+
* @returns A boolean value indicating whether the coordinate system is inertial.
|
|
57
|
+
*/
|
|
58
|
+
get inertial() {
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Converts the coordinates from J2000 to the International Terrestrial Reference Frame (ITRF).
|
|
63
|
+
* This is an ECI to ECF transformation.
|
|
64
|
+
* @returns The ITRF coordinates.
|
|
65
|
+
*/
|
|
66
|
+
toITRF() {
|
|
67
|
+
const p = Earth.precession(this.epoch);
|
|
68
|
+
const n = Earth.nutation(this.epoch);
|
|
69
|
+
const ast = (this.epoch.gmstAngle() + n.eqEq);
|
|
70
|
+
const rMOD = this.position
|
|
71
|
+
.rotZ(-p.zeta)
|
|
72
|
+
.rotY(p.theta)
|
|
73
|
+
.rotZ(-p.zed);
|
|
74
|
+
const vMOD = this.velocity
|
|
75
|
+
.rotZ(-p.zeta)
|
|
76
|
+
.rotY(p.theta)
|
|
77
|
+
.rotZ(-p.zed);
|
|
78
|
+
const rTOD = rMOD
|
|
79
|
+
.rotX(n.mEps)
|
|
80
|
+
.rotZ(-n.dPsi)
|
|
81
|
+
.rotX(-n.eps);
|
|
82
|
+
const vTOD = vMOD
|
|
83
|
+
.rotX(n.mEps)
|
|
84
|
+
.rotZ(-n.dPsi)
|
|
85
|
+
.rotX(-n.eps);
|
|
86
|
+
const rPEF = rTOD.rotZ(ast);
|
|
87
|
+
const vPEF = vTOD.rotZ(ast).add(Earth.rotation.negate().cross(rPEF));
|
|
88
|
+
return new ITRF(this.epoch, rPEF, vPEF);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Converts the J2000 coordinate to the TEME coordinate.
|
|
92
|
+
* @returns The TEME coordinate.
|
|
93
|
+
*/
|
|
94
|
+
toTEME() {
|
|
95
|
+
const p = Earth.precession(this.epoch);
|
|
96
|
+
const n = Earth.nutation(this.epoch);
|
|
97
|
+
const eps = n.mEps + n.dEps;
|
|
98
|
+
const dPsiCosEps = (n.dPsi * Math.cos(eps));
|
|
99
|
+
const rMOD = this.position
|
|
100
|
+
.rotZ(-p.zeta)
|
|
101
|
+
.rotY(p.theta)
|
|
102
|
+
.rotZ(-p.zed);
|
|
103
|
+
const vMOD = this.velocity
|
|
104
|
+
.rotZ(-p.zeta)
|
|
105
|
+
.rotY(p.theta)
|
|
106
|
+
.rotZ(-p.zed);
|
|
107
|
+
const rTEME = rMOD
|
|
108
|
+
.rotX(n.mEps)
|
|
109
|
+
.rotZ(-n.dPsi)
|
|
110
|
+
.rotX(-eps)
|
|
111
|
+
.rotZ(dPsiCosEps);
|
|
112
|
+
const vTEME = vMOD
|
|
113
|
+
.rotX(n.mEps)
|
|
114
|
+
.rotZ(-n.dPsi)
|
|
115
|
+
.rotX(-eps)
|
|
116
|
+
.rotZ(dPsiCosEps);
|
|
117
|
+
return new TEME(this.epoch, rTEME, vTEME);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=J2000.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"J2000.js","sourceRoot":"","sources":["../../src/coordinate/J2000.ts"],"names":[],"mappings":"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"}
|