ootk 4.0.8 → 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/CHANGELOG.md +9 -2
- 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 +3 -1
- package/dist/objects/DetailedSatellite.js +4 -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 +5 -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
package/dist/body/Sun.js
ADDED
|
@@ -0,0 +1,548 @@
|
|
|
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
|
+
* @copyright (c) 2011-2015, Vladimir Agafonkin
|
|
23
|
+
* @copyright (c) 2022 Robert Gester https://github.com/hypnos3/suncalc3
|
|
24
|
+
* @see suncalc.LICENSE.md
|
|
25
|
+
* Some of the math in this file was originally created by Vladimir Agafonkin.
|
|
26
|
+
* Robert Gester's update was referenced for documentation. There were a couple
|
|
27
|
+
* of bugs in both versions so there will be some differences if you are
|
|
28
|
+
* migrating from either to this library.
|
|
29
|
+
*
|
|
30
|
+
* suncalc is a JavaScript library for calculating sun/moon position and light
|
|
31
|
+
* phases. https://github.com/mourner/suncalc
|
|
32
|
+
* It was reworked and enhanced by Robert Gester.
|
|
33
|
+
*
|
|
34
|
+
* The original suncalc is released under the terms of the BSD 2-Clause License.
|
|
35
|
+
*/
|
|
36
|
+
import { angularDiameter, AngularDiameterMethod, astronomicalUnit, Celestial, cKmPerSec, DEG2RAD, Earth, MS_PER_DAY, RAD2DEG, TAU, Vector3D, } from '../main.js';
|
|
37
|
+
/**
|
|
38
|
+
* Sun metrics and operations.
|
|
39
|
+
*/
|
|
40
|
+
export class Sun {
|
|
41
|
+
static J0_ = 0.0009;
|
|
42
|
+
static J1970_ = 2440587.5;
|
|
43
|
+
static J2000_ = 2451545;
|
|
44
|
+
static e = DEG2RAD * 23.4397;
|
|
45
|
+
/**
|
|
46
|
+
* Array representing the times for different phases of the sun. Each element
|
|
47
|
+
* in the array contains:
|
|
48
|
+
* - The angle in degrees representing the time offset from solar noon.
|
|
49
|
+
* - The name of the start time for the phase.
|
|
50
|
+
* - The name of the end time for the phase.
|
|
51
|
+
*/
|
|
52
|
+
static times_ = [
|
|
53
|
+
[6, 'goldenHourDawnEnd', 'goldenHourDuskStart'], // GOLDEN_HOUR_2
|
|
54
|
+
[-0.3, 'sunriseEnd', 'sunsetStart'], // SUNRISE_END
|
|
55
|
+
[-0.833, 'sunriseStart', 'sunsetEnd'], // SUNRISE
|
|
56
|
+
[-1, 'goldenHourDawnStart', 'goldenHourDuskEnd'], // GOLDEN_HOUR_1
|
|
57
|
+
[-4, 'blueHourDawnEnd', 'blueHourDuskStart'], // BLUE_HOUR
|
|
58
|
+
[-6, 'civilDawn', 'civilDusk'], // DAWN
|
|
59
|
+
[-8, 'blueHourDawnStart', 'blueHourDuskEnd'], // BLUE_HOUR
|
|
60
|
+
[-12, 'nauticalDawn', 'nauticalDusk'], // NAUTIC_DAWN
|
|
61
|
+
[-15, 'amateurDawn', 'amateurDusk'],
|
|
62
|
+
[-18, 'astronomicalDawn', 'astronomicalDusk'], // ASTRO_DAWN
|
|
63
|
+
];
|
|
64
|
+
/**
|
|
65
|
+
* Gravitational parameter of the Sun. (km³/s²)
|
|
66
|
+
*/
|
|
67
|
+
static mu = 1.32712428e11;
|
|
68
|
+
/**
|
|
69
|
+
* The angle of the penumbra of the Sun, in radians.
|
|
70
|
+
*/
|
|
71
|
+
static penumbraAngle = (0.26900424 * DEG2RAD);
|
|
72
|
+
/**
|
|
73
|
+
* The radius of the Sun in kilometers.
|
|
74
|
+
*/
|
|
75
|
+
static radius = 695500.0;
|
|
76
|
+
/**
|
|
77
|
+
* The mean solar flux of the Sun. (W/m²)
|
|
78
|
+
*/
|
|
79
|
+
static solarFlux = 1367.0;
|
|
80
|
+
/**
|
|
81
|
+
* The solar pressure exerted by the Sun. (N/m²) It is calculated as the solar
|
|
82
|
+
* flux divided by the speed of light.
|
|
83
|
+
*/
|
|
84
|
+
static solarPressure = Sun.solarFlux / (cKmPerSec * 1000);
|
|
85
|
+
/**
|
|
86
|
+
* The angle of the umbra, in radians.
|
|
87
|
+
*/
|
|
88
|
+
static umbraAngle = (0.26411888 * DEG2RAD);
|
|
89
|
+
constructor() {
|
|
90
|
+
// disable constructor
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Calculates the azimuth and elevation of the Sun for a given date, latitude,
|
|
94
|
+
* and longitude.
|
|
95
|
+
* @param date - The date for which to calculate the azimuth and elevation.
|
|
96
|
+
* @param lat - The latitude in degrees.
|
|
97
|
+
* @param lon - The longitude in degrees.
|
|
98
|
+
* @param c - The right ascension and declination of the target. Defaults to
|
|
99
|
+
* the Sun's right ascension and declination
|
|
100
|
+
* @returns An object containing the azimuth and elevation of the Sun in
|
|
101
|
+
* radians.
|
|
102
|
+
*/
|
|
103
|
+
static azEl(date, lat, lon, c) {
|
|
104
|
+
const lw = (-lon * DEG2RAD);
|
|
105
|
+
const phi = (lat * DEG2RAD);
|
|
106
|
+
const d = Sun.date2jSince2000(date);
|
|
107
|
+
c ??= Sun.raDec(date);
|
|
108
|
+
const H = Sun.siderealTime(d, lw) - c.ra;
|
|
109
|
+
return {
|
|
110
|
+
az: Celestial.azimuth(H, phi, c.dec),
|
|
111
|
+
el: Celestial.elevation(H, phi, c.dec),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* get number of days for a dateValue since 2000
|
|
116
|
+
* See: https://en.wikipedia.org/wiki/Epoch_(astronomy)
|
|
117
|
+
* @param date date as timestamp to get days
|
|
118
|
+
* @returns count of days
|
|
119
|
+
*/
|
|
120
|
+
static date2jSince2000(date) {
|
|
121
|
+
return date.getTime() / MS_PER_DAY + Sun.J1970_ - Sun.J2000_;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Calculates the angular diameter of the Sun given the observer's position
|
|
125
|
+
* and the Sun's position.
|
|
126
|
+
* @param obsPos The observer's position in kilometers.
|
|
127
|
+
* @param sunPos The Sun's position in kilometers.
|
|
128
|
+
* @returns The angular diameter of the Sun in radians.
|
|
129
|
+
*/
|
|
130
|
+
static diameter(obsPos, sunPos) {
|
|
131
|
+
return angularDiameter(this.radius * 2, obsPos.subtract(sunPos).magnitude(), AngularDiameterMethod.Sphere);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Calculate eclipse angles given a satellite ECI position and Sun ECI
|
|
135
|
+
* position.
|
|
136
|
+
* @param satPos the satellite position
|
|
137
|
+
* @param sunPos the sun position
|
|
138
|
+
* @returns [central body angle, central body apparent radius, sun apparent]
|
|
139
|
+
*/
|
|
140
|
+
static eclipseAngles(satPos, sunPos) {
|
|
141
|
+
const satSun = sunPos.subtract(satPos);
|
|
142
|
+
const r = satPos.magnitude();
|
|
143
|
+
return [
|
|
144
|
+
// central body angle
|
|
145
|
+
satSun.angle(satPos.negate()),
|
|
146
|
+
// central body apparent radius
|
|
147
|
+
Math.asin(Earth.radiusEquator / r),
|
|
148
|
+
// sun apparent radius
|
|
149
|
+
Math.asin(this.radius / satSun.magnitude()),
|
|
150
|
+
];
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Ecliptic latitude measures the distance north or south of the ecliptic,
|
|
154
|
+
* attaining +90° at the north ecliptic pole (NEP) and -90° at the south
|
|
155
|
+
* ecliptic pole (SEP). The ecliptic itself is 0° latitude.
|
|
156
|
+
* @param B - ?
|
|
157
|
+
* @returns ecliptic latitude
|
|
158
|
+
*/
|
|
159
|
+
static eclipticLatitude(B) {
|
|
160
|
+
const C = TAU / 360;
|
|
161
|
+
const L = B - 0.00569 - 0.00478 * Math.sin(C * B);
|
|
162
|
+
return TAU * (L + 0.0003 * Math.sin(C * 2 * L));
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Ecliptic longitude, also known as celestial longitude, measures the angular
|
|
166
|
+
* distance of an object along the ecliptic from the primary direction. It is
|
|
167
|
+
* measured positive eastwards in the fundamental plane (the ecliptic) from 0°
|
|
168
|
+
* to 360°. The primary direction (0° ecliptic longitude) points from the
|
|
169
|
+
* Earth towards the Sun at the vernal equinox of the Northern Hemisphere. Due
|
|
170
|
+
* to axial precession, the ecliptic longitude of most "fixed stars" increases
|
|
171
|
+
* by about 50.3 arcseconds per year, or 83.8 arcminutes per century.
|
|
172
|
+
* @param M - solar mean anomaly
|
|
173
|
+
* @returns ecliptic longitude
|
|
174
|
+
*/
|
|
175
|
+
static eclipticLongitude(M) {
|
|
176
|
+
const C = DEG2RAD * (1.9148 * Math.sin(M) + 0.02 * Math.sin(2 * M) + 0.0003 * Math.sin(3 * M));
|
|
177
|
+
const P = DEG2RAD * 102.9372; // perihelion of Earth
|
|
178
|
+
return (M + C + P + Math.PI); // Sun's mean longitude
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* returns set time for the given sun altitude
|
|
182
|
+
* @param h - height at 0
|
|
183
|
+
* @param lw - rad * -lng
|
|
184
|
+
* @param phi - rad * lat;
|
|
185
|
+
* @param dec - declination
|
|
186
|
+
* @param n - Julian cycle
|
|
187
|
+
* @param M - solar mean anomal
|
|
188
|
+
* @param L - ecliptic longitude
|
|
189
|
+
* @returns set time
|
|
190
|
+
*/
|
|
191
|
+
static getSetJulian(h, lw, phi, dec, n, M, L) {
|
|
192
|
+
const w = Sun.hourAngle(h, phi, dec);
|
|
193
|
+
const a = Sun.approxTransit_(w, lw, n);
|
|
194
|
+
return Sun.solarTransitJulian(a, M, L);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Calculates the time of the sun based on the given azimuth.
|
|
198
|
+
* @param dateValue - The date value or Date object.
|
|
199
|
+
* @param lat - The latitude in degrees.
|
|
200
|
+
* @param lon - The longitude in degrees.
|
|
201
|
+
* @param az - The azimuth in radians or degrees.
|
|
202
|
+
* @param isDegrees - Indicates if the azimuth is in degrees. Default is false.
|
|
203
|
+
* @returns The calculated time of the sun.
|
|
204
|
+
* @throws Error if the azimuth, latitude, or longitude is missing.
|
|
205
|
+
*/
|
|
206
|
+
static getSunTimeByAz(dateValue, lat, lon, az, isDegrees = false) {
|
|
207
|
+
if (isNaN(az)) {
|
|
208
|
+
throw new Error('azimuth missing');
|
|
209
|
+
}
|
|
210
|
+
if (isNaN(lat)) {
|
|
211
|
+
throw new Error('latitude missing');
|
|
212
|
+
}
|
|
213
|
+
if (isNaN(lon)) {
|
|
214
|
+
throw new Error('longitude missing');
|
|
215
|
+
}
|
|
216
|
+
if (isDegrees) {
|
|
217
|
+
az = (az * DEG2RAD);
|
|
218
|
+
}
|
|
219
|
+
const date = dateValue instanceof Date ? dateValue : new Date(dateValue);
|
|
220
|
+
const lw = (DEG2RAD * -lon);
|
|
221
|
+
const phi = (DEG2RAD * lat);
|
|
222
|
+
let dateVal = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0).getTime();
|
|
223
|
+
let addval = MS_PER_DAY; // / 2);
|
|
224
|
+
dateVal += addval;
|
|
225
|
+
while (addval > 200) {
|
|
226
|
+
const newDate = new Date(dateVal);
|
|
227
|
+
const d = Sun.date2jSince2000(newDate);
|
|
228
|
+
const c = Sun.raDec(newDate);
|
|
229
|
+
const H = Sun.siderealTime(d, lw) - c.ra;
|
|
230
|
+
const newAz = Celestial.azimuth(H, phi, c.dec);
|
|
231
|
+
addval /= 2;
|
|
232
|
+
if (newAz < az) {
|
|
233
|
+
dateVal += addval;
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
dateVal -= addval;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return new Date(Math.floor(dateVal));
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Calculates sun times for a given date and latitude/longitude
|
|
243
|
+
*
|
|
244
|
+
* Default altitude is 0 meters. If `isUtc` is `true`, the times are returned
|
|
245
|
+
* as UTC, otherwise in local time.
|
|
246
|
+
* @param dateVal - The date value or Date object.
|
|
247
|
+
* @param lat - The latitude in degrees.
|
|
248
|
+
* @param lon - The longitude in degrees.
|
|
249
|
+
* @param alt - The altitude in meters. Default is 0.
|
|
250
|
+
* @param isUtc - Indicates if the times should be returned as UTC. Default is
|
|
251
|
+
* false.
|
|
252
|
+
* @returns An object containing the times of the sun.
|
|
253
|
+
*/
|
|
254
|
+
static getTimes(dateVal, lat, lon, alt = 0, isUtc = false) {
|
|
255
|
+
if (isNaN(lat)) {
|
|
256
|
+
throw new Error('latitude missing');
|
|
257
|
+
}
|
|
258
|
+
if (isNaN(lon)) {
|
|
259
|
+
throw new Error('longitude missing');
|
|
260
|
+
}
|
|
261
|
+
// Ensure date is a Date object
|
|
262
|
+
const date = dateVal instanceof Date ? dateVal : new Date(dateVal);
|
|
263
|
+
if (isUtc) {
|
|
264
|
+
date.setUTCHours(12, 0, 0, 0);
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
date.setHours(12, 0, 0, 0);
|
|
268
|
+
}
|
|
269
|
+
let time;
|
|
270
|
+
let h0 = 0;
|
|
271
|
+
let Jset = 0;
|
|
272
|
+
let Jrise = 0;
|
|
273
|
+
const { Jnoon, dh, lw, phi, dec, n, M, L } = Sun.calculateJnoon_(lon, lat, alt, date);
|
|
274
|
+
// Determine when the sun is at its highest and lowest (darkest) points.
|
|
275
|
+
const result = {
|
|
276
|
+
solarNoon: Sun.julian2date(Jnoon),
|
|
277
|
+
nadir: Sun.julian2date(Jnoon + 0.5), // https://github.com/mourner/suncalc/pull/125
|
|
278
|
+
};
|
|
279
|
+
// Add all other unique times using Jnoon as a reference
|
|
280
|
+
for (let i = 0, len = Sun.times_.length; i < len; i += 1) {
|
|
281
|
+
time = Sun.times_[i];
|
|
282
|
+
const angle = time[0];
|
|
283
|
+
h0 = ((angle + dh) * DEG2RAD);
|
|
284
|
+
Jset = Sun.getSetJ_(h0, lw, phi, dec, n, M, L);
|
|
285
|
+
Jrise = Jnoon - (Jset - Jnoon);
|
|
286
|
+
result[time[1]] = Sun.julian2date(Jrise);
|
|
287
|
+
result[time[2]] = Sun.julian2date(Jset);
|
|
288
|
+
}
|
|
289
|
+
return result;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* hour angle
|
|
293
|
+
* @param h - heigh at 0
|
|
294
|
+
* @param phi - rad * lat;
|
|
295
|
+
* @param dec - declination
|
|
296
|
+
* @returns hour angle
|
|
297
|
+
*/
|
|
298
|
+
static hourAngle(h, phi, dec) {
|
|
299
|
+
return Math.acos((Math.sin(h) - Math.sin(phi) * Math.sin(dec)) / (Math.cos(phi) * Math.cos(dec)));
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* convert Julian calendar to date object
|
|
303
|
+
* @param julian day number in Julian calendar to convert
|
|
304
|
+
* @returns result date as timestamp
|
|
305
|
+
*/
|
|
306
|
+
static julian2date(julian) {
|
|
307
|
+
return new Date((julian - Sun.J1970_) * MS_PER_DAY);
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Julian cycle
|
|
311
|
+
*
|
|
312
|
+
* The Julian cycle is a period of 7980 years after which the positions of the
|
|
313
|
+
* Sun, Moon, and planets repeat. It is used in astronomical calculations to
|
|
314
|
+
* determine the position of celestial bodies.
|
|
315
|
+
*
|
|
316
|
+
* The Julian Period starts at noon on January 1, 4713 B.C.E. (Julian
|
|
317
|
+
* calendar) and lasts for 7980 years. This was determined because it is a
|
|
318
|
+
* time period long enough to include all of recorded history and includes
|
|
319
|
+
* some time in the future that would incorporate the three important
|
|
320
|
+
* calendrical cycles, the Golden Number Cycle, the Solar Cycle, and the Roman
|
|
321
|
+
* Indiction.
|
|
322
|
+
*
|
|
323
|
+
* The Golden Number Cycle is a cycle of 19 years, while the Solar Cycle is a
|
|
324
|
+
* cycle of 28 years and the Roman Indiction repeats every 15 years. Thus the
|
|
325
|
+
* Julian Period is calculated to be 7980 years long or 2,914,695 days because
|
|
326
|
+
* 19*28*15 = 7980.
|
|
327
|
+
* @param date - Date object for calculating julian cycle
|
|
328
|
+
* @param lon - Degrees longitude
|
|
329
|
+
* @returns julian cycle
|
|
330
|
+
*/
|
|
331
|
+
static julianCycle(date, lon) {
|
|
332
|
+
const lw = (-lon * DEG2RAD);
|
|
333
|
+
const d = Sun.date2jSince2000(date);
|
|
334
|
+
return Math.round(d - Sun.J0_ - lw / ((2 * TAU) / 2));
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Calculate the lighting ratio given a satellite ECI position [satPos] _(km)_
|
|
338
|
+
* and Sun ECI position [sunPos] _(km)_.
|
|
339
|
+
*
|
|
340
|
+
* Returns `1.0` if the satellite is fully illuminated and `0.0` when fully
|
|
341
|
+
* eclipsed.
|
|
342
|
+
* @param satPos - The position of the satellite.
|
|
343
|
+
* @param sunPos - The position of the sun.
|
|
344
|
+
* @returns The lighting ratio.
|
|
345
|
+
*/
|
|
346
|
+
static lightingRatio(satPos, sunPos) {
|
|
347
|
+
const [sunSatAngle, aCent, aSun] = Sun.eclipseAngles(satPos, sunPos);
|
|
348
|
+
if (sunSatAngle - aCent + aSun <= 1e-10) {
|
|
349
|
+
return 0.0;
|
|
350
|
+
}
|
|
351
|
+
else if (sunSatAngle - aCent - aSun < -1e-10) {
|
|
352
|
+
const ssa2 = sunSatAngle * sunSatAngle;
|
|
353
|
+
const ssaInv = 1.0 / (2.0 * sunSatAngle);
|
|
354
|
+
const ac2 = aCent * aCent;
|
|
355
|
+
const as2 = aSun * aSun;
|
|
356
|
+
const acAsDiff = ac2 - as2;
|
|
357
|
+
const a1 = (ssa2 - acAsDiff) * ssaInv;
|
|
358
|
+
const a2 = (ssa2 + acAsDiff) * ssaInv;
|
|
359
|
+
const asr1 = a1 / aSun;
|
|
360
|
+
const asr2 = as2 - a1 * a1;
|
|
361
|
+
const acr1 = a2 / aCent;
|
|
362
|
+
const acr2 = ac2 - a2 * a2;
|
|
363
|
+
const p1 = as2 * Math.acos(asr1) - a1 * Math.sqrt(asr2);
|
|
364
|
+
const p2 = ac2 * Math.acos(acr1) - a2 * Math.sqrt(acr2);
|
|
365
|
+
return 1.0 - (p1 + p2) / (Math.PI * as2);
|
|
366
|
+
}
|
|
367
|
+
return 1.0;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Calculates the lighting factor based on the position of the satellite and the sun.
|
|
371
|
+
* @deprecated This method was previously used. It is now deprecated and will be removed
|
|
372
|
+
* in a future release.
|
|
373
|
+
* @param satPos The position of the satellite.
|
|
374
|
+
* @param sunPos The position of the sun.
|
|
375
|
+
* @returns The lighting factor.
|
|
376
|
+
*/
|
|
377
|
+
static sunlightLegacy(satPos, sunPos) {
|
|
378
|
+
let lighting = 1.0;
|
|
379
|
+
const semiDiamEarth = Math.asin(Earth.radiusMean / Math.sqrt((-satPos.x) ** 2 + (-satPos.y) ** 2 + (-satPos.z) ** 2)) * RAD2DEG;
|
|
380
|
+
const semiDiamSun = Math.asin(Sun.radius / Math.sqrt((-satPos.x + sunPos.x) ** 2 + (-satPos.y + sunPos.y) ** 2 + (-satPos.z + sunPos.z) ** 2)) * RAD2DEG;
|
|
381
|
+
// Angle between earth and sun
|
|
382
|
+
const theta = Math.acos(satPos.negate().dot(sunPos.negate()) /
|
|
383
|
+
(Math.sqrt((-satPos.x) ** 2 + (-satPos.y) ** 2 + (-satPos.z) ** 2) *
|
|
384
|
+
Math.sqrt((-satPos.x + sunPos.x) ** 2 + (-satPos.y + sunPos.y) ** 2 + (-satPos.z + sunPos.z) ** 2))) * RAD2DEG;
|
|
385
|
+
if (semiDiamEarth > semiDiamSun && theta < semiDiamEarth - semiDiamSun) {
|
|
386
|
+
lighting = 0;
|
|
387
|
+
}
|
|
388
|
+
if (Math.abs(semiDiamEarth - semiDiamSun) < theta && theta < semiDiamEarth + semiDiamSun) {
|
|
389
|
+
lighting = 0.5;
|
|
390
|
+
}
|
|
391
|
+
if (semiDiamSun > semiDiamEarth) {
|
|
392
|
+
lighting = 0.5;
|
|
393
|
+
}
|
|
394
|
+
if (theta < semiDiamSun - semiDiamEarth) {
|
|
395
|
+
lighting = 0.5;
|
|
396
|
+
}
|
|
397
|
+
return lighting;
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Calculates the position vector of the Sun at a given epoch in the
|
|
401
|
+
* Earth-centered inertial (ECI) coordinate system.
|
|
402
|
+
* @param epoch - The epoch in UTC.
|
|
403
|
+
* @returns The position vector of the Sun in Kilometers.
|
|
404
|
+
*/
|
|
405
|
+
static position(epoch) {
|
|
406
|
+
const jc = epoch.toJulianCenturies();
|
|
407
|
+
const dtr = DEG2RAD;
|
|
408
|
+
const lamSun = 280.46 + 36000.77 * jc;
|
|
409
|
+
const mSun = 357.5291092 + 35999.05034 * jc;
|
|
410
|
+
const lamEc = lamSun + 1.914666471 * Math.sin(mSun * dtr) + 0.019994643 * Math.sin(2.0 * mSun * dtr);
|
|
411
|
+
const obliq = 23.439291 - 0.0130042 * jc;
|
|
412
|
+
const rMag = 1.000140612 - 0.016708617 * Math.cos(mSun * dtr) - 0.000139589 * Math.cos(2.0 * mSun * dtr);
|
|
413
|
+
const r = new Vector3D(rMag * Math.cos(lamEc * dtr), rMag * Math.cos(obliq * dtr) * Math.sin(lamEc * dtr), rMag * Math.sin(obliq * dtr) * Math.sin(lamEc * dtr));
|
|
414
|
+
const rMOD = r.scale(astronomicalUnit);
|
|
415
|
+
const p = Earth.precession(epoch);
|
|
416
|
+
return rMOD
|
|
417
|
+
.rotZ(p.zed)
|
|
418
|
+
.rotY(-p.theta)
|
|
419
|
+
.rotZ(p.zeta);
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Calculate the Sun's apparent ECI position _(km)_ from Earth for a given UTC
|
|
423
|
+
* [epoch].
|
|
424
|
+
* @param epoch - The epoch in UTC.
|
|
425
|
+
* @returns The Sun's apparent ECI position in kilometers.
|
|
426
|
+
*/
|
|
427
|
+
static positionApparent(epoch) {
|
|
428
|
+
const distance = Sun.position(epoch).magnitude();
|
|
429
|
+
const dSec = distance / cKmPerSec;
|
|
430
|
+
return Sun.position(epoch.roll(-dSec));
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Calculates the right ascension and declination of the Sun for a given date.
|
|
434
|
+
* @param date - The date for which to calculate the right ascension and declination.
|
|
435
|
+
* @returns An object containing the declination and right ascension of the Sun.
|
|
436
|
+
*/
|
|
437
|
+
static raDec(date) {
|
|
438
|
+
const d = Sun.date2jSince2000(date);
|
|
439
|
+
const M = Sun.solarMeanAnomaly_(d);
|
|
440
|
+
const L = Sun.eclipticLongitude(M);
|
|
441
|
+
return {
|
|
442
|
+
dec: Celestial.declination(L, 0),
|
|
443
|
+
ra: Celestial.rightAscension(L, 0),
|
|
444
|
+
dist: 0,
|
|
445
|
+
};
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Return `true` if the ECI satellite position [posSat] is in eclipse at the
|
|
449
|
+
* given UTC [epoch].
|
|
450
|
+
* @param epoch - The epoch in UTC.
|
|
451
|
+
* @param posSat - The ECI position of the satellite in kilometers.
|
|
452
|
+
* @returns `true` if the satellite is in eclipse.
|
|
453
|
+
*/
|
|
454
|
+
static shadow(epoch, posSat) {
|
|
455
|
+
const posSun = Sun.positionApparent(epoch);
|
|
456
|
+
let shadow = false;
|
|
457
|
+
if (posSun.dot(posSat) < 0) {
|
|
458
|
+
const angle = posSun.angle(posSat);
|
|
459
|
+
const r = posSat.magnitude();
|
|
460
|
+
const satHoriz = r * Math.cos(angle);
|
|
461
|
+
const satVert = r * Math.sin(angle);
|
|
462
|
+
const penVert = Earth.radiusEquator + Math.tan(this.penumbraAngle) * satHoriz;
|
|
463
|
+
if (satVert <= penVert) {
|
|
464
|
+
shadow = true;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
return shadow;
|
|
468
|
+
}
|
|
469
|
+
/**
|
|
470
|
+
* side real time
|
|
471
|
+
* @param d - julian day
|
|
472
|
+
* @param lw - longitude of the observer
|
|
473
|
+
* @returns sidereal time
|
|
474
|
+
*/
|
|
475
|
+
static siderealTime(d, lw) {
|
|
476
|
+
return DEG2RAD * (280.16 + 360.9856235 * d) - lw;
|
|
477
|
+
}
|
|
478
|
+
/**
|
|
479
|
+
* solar transit in Julian
|
|
480
|
+
* @param ds approxTransit
|
|
481
|
+
* @param M solar mean anomal
|
|
482
|
+
* @param L ecliptic longitude
|
|
483
|
+
* @returns solar transit in Julian
|
|
484
|
+
*/
|
|
485
|
+
static solarTransitJulian(ds, M, L) {
|
|
486
|
+
return Sun.J2000_ + ds + 0.0053 * Math.sin(M) - 0.0069 * Math.sin(2 * L);
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* The approximate transit time
|
|
490
|
+
* @param Ht hourAngle
|
|
491
|
+
* @param lw rad * -lng
|
|
492
|
+
* @param n Julian cycle
|
|
493
|
+
* @returns approx transit
|
|
494
|
+
*/
|
|
495
|
+
static approxTransit_(Ht, lw, n) {
|
|
496
|
+
return Sun.J0_ + (Ht + lw) / TAU + n;
|
|
497
|
+
}
|
|
498
|
+
static calculateJnoon_(lon, lat, alt, date) {
|
|
499
|
+
const lw = (DEG2RAD * -lon);
|
|
500
|
+
const phi = (DEG2RAD * lat);
|
|
501
|
+
const dh = Sun.observerAngle_(alt);
|
|
502
|
+
const d = Sun.date2jSince2000(date);
|
|
503
|
+
const n = Sun.julianCycle_(d, lw);
|
|
504
|
+
const ds = Sun.approxTransit_(0, lw, n);
|
|
505
|
+
const M = Sun.solarMeanAnomaly_(ds);
|
|
506
|
+
const L = Sun.eclipticLongitude(M);
|
|
507
|
+
const dec = Celestial.declination(L, 0);
|
|
508
|
+
const Jnoon = Sun.solarTransitJulian(ds, M, L);
|
|
509
|
+
return { Jnoon, dh, lw, phi, dec, n, M, L };
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* returns set time for the given sun altitude
|
|
513
|
+
* @param alt altitude at 0
|
|
514
|
+
* @param lw lng
|
|
515
|
+
* @param phi lat
|
|
516
|
+
* @param dec declination
|
|
517
|
+
* @param n Julian cycle
|
|
518
|
+
* @param M solar mean anomal
|
|
519
|
+
* @param L ecliptic longitude
|
|
520
|
+
* @returns sunset time in days since 2000
|
|
521
|
+
*/
|
|
522
|
+
static getSetJ_(alt, lw, phi, dec, n, M, L) {
|
|
523
|
+
const w = Sun.hourAngle(alt, phi, dec);
|
|
524
|
+
const a = Sun.approxTransit_(w, lw, n);
|
|
525
|
+
return Sun.solarTransitJulian(a, M, L);
|
|
526
|
+
}
|
|
527
|
+
static julianCycle_(d, lw) {
|
|
528
|
+
const lonOffset = lw / TAU;
|
|
529
|
+
return Math.round(d - Sun.J0_ - lonOffset);
|
|
530
|
+
}
|
|
531
|
+
/**
|
|
532
|
+
* calculates the obderver angle
|
|
533
|
+
* @param alt the observer altitude (in meters) relative to the horizon
|
|
534
|
+
* @returns height for further calculations
|
|
535
|
+
*/
|
|
536
|
+
static observerAngle_(alt) {
|
|
537
|
+
return ((-2.076 * Math.sqrt(alt)) / 60);
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* get solar mean anomaly
|
|
541
|
+
* @param d julian day
|
|
542
|
+
* @returns solar mean anomaly
|
|
543
|
+
*/
|
|
544
|
+
static solarMeanAnomaly_(d) {
|
|
545
|
+
return DEG2RAD * (357.5291 + 0.98560028 * d);
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
//# sourceMappingURL=Sun.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sun.js","sourceRoot":"","sources":["../../src/body/Sun.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
export { Celestial } from './Celestial.js';
|
|
24
|
+
export { Earth } from './Earth.js';
|
|
25
|
+
export { Moon } from './Moon.js';
|
|
26
|
+
export { Sun } from './Sun.js';
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
export { Celestial } from './Celestial.js';
|
|
24
|
+
export { Earth } from './Earth.js';
|
|
25
|
+
export { Moon } from './Moon.js';
|
|
26
|
+
export { Sun } from './Sun.js';
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/body/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC"}
|