ootk 4.0.9 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (583) hide show
  1. package/README.md +0 -15
  2. package/dist/body/Celestial.d.ts +96 -0
  3. package/dist/body/Celestial.js +124 -0
  4. package/dist/body/Celestial.js.map +1 -0
  5. package/dist/body/Earth.d.ts +68 -0
  6. package/dist/body/Earth.js +198 -0
  7. package/dist/body/Earth.js.map +1 -0
  8. package/dist/body/Moon.d.ts +137 -0
  9. package/dist/body/Moon.js +464 -0
  10. package/dist/body/Moon.js.map +1 -0
  11. package/dist/body/NutationAngles.d.ts +38 -0
  12. package/dist/body/NutationAngles.js +24 -0
  13. package/dist/body/NutationAngles.js.map +1 -0
  14. package/dist/body/PrecessionAngles.d.ts +29 -0
  15. package/dist/body/PrecessionAngles.js +24 -0
  16. package/dist/body/PrecessionAngles.js.map +1 -0
  17. package/dist/body/Sun.d.ts +301 -0
  18. package/dist/body/Sun.js +544 -0
  19. package/dist/body/Sun.js.map +1 -0
  20. package/dist/body/index.d.ts +26 -0
  21. package/dist/body/index.js +27 -0
  22. package/dist/body/index.js.map +1 -0
  23. package/dist/coordinate/ClassicalElements.d.ts +132 -0
  24. package/dist/coordinate/ClassicalElements.js +279 -0
  25. package/dist/coordinate/ClassicalElements.js.map +1 -0
  26. package/dist/coordinate/EquinoctialElements.d.ts +114 -0
  27. package/dist/coordinate/EquinoctialElements.js +172 -0
  28. package/dist/coordinate/EquinoctialElements.js.map +1 -0
  29. package/dist/coordinate/FormatTle.d.ts +95 -0
  30. package/dist/coordinate/FormatTle.js +184 -0
  31. package/dist/coordinate/FormatTle.js.map +1 -0
  32. package/dist/coordinate/Geodetic.d.ts +110 -0
  33. package/dist/coordinate/Geodetic.js +163 -0
  34. package/dist/coordinate/Geodetic.js.map +1 -0
  35. package/dist/coordinate/Hill.d.ts +2 -2
  36. package/dist/coordinate/Hill.js +2 -2
  37. package/dist/coordinate/Hill.js.map +1 -1
  38. package/dist/coordinate/ITRF.d.ts +75 -0
  39. package/dist/coordinate/ITRF.js +134 -0
  40. package/dist/coordinate/ITRF.js.map +1 -0
  41. package/dist/coordinate/J2000.d.ts +65 -0
  42. package/dist/coordinate/J2000.js +120 -0
  43. package/dist/coordinate/J2000.js.map +1 -0
  44. package/dist/coordinate/RIC.d.ts +64 -0
  45. package/dist/coordinate/RIC.js +79 -0
  46. package/dist/coordinate/RIC.js.map +1 -0
  47. package/dist/coordinate/RelativeState.d.ts +70 -0
  48. package/dist/coordinate/RelativeState.js +79 -0
  49. package/dist/coordinate/RelativeState.js.map +1 -0
  50. package/dist/coordinate/StateVector.d.ts +76 -0
  51. package/dist/coordinate/StateVector.js +97 -0
  52. package/dist/coordinate/StateVector.js.map +1 -0
  53. package/dist/coordinate/TEME.d.ts +57 -0
  54. package/dist/coordinate/TEME.js +89 -0
  55. package/dist/coordinate/TEME.js.map +1 -0
  56. package/dist/coordinate/Tle.d.ts +429 -0
  57. package/dist/coordinate/Tle.js +865 -0
  58. package/dist/coordinate/Tle.js.map +1 -0
  59. package/dist/coordinate/index.d.ts +11 -0
  60. package/dist/coordinate/index.js +11 -0
  61. package/dist/coordinate/index.js.map +1 -1
  62. package/dist/coordinate/tle-format-data.d.ts +41 -0
  63. package/dist/coordinate/tle-format-data.js +46 -0
  64. package/dist/coordinate/tle-format-data.js.map +1 -0
  65. package/dist/covariance/CovarianceSample.d.ts +9 -6
  66. package/dist/covariance/CovarianceSample.js +92 -18
  67. package/dist/covariance/CovarianceSample.js.map +1 -1
  68. package/dist/covariance/StateCovariance.d.ts +2 -2
  69. package/dist/covariance/StateCovariance.js +2 -2
  70. package/dist/covariance/StateCovariance.js.map +1 -1
  71. package/dist/covariance/index.d.ts +2 -0
  72. package/dist/covariance/index.js +3 -0
  73. package/dist/covariance/index.js.map +1 -0
  74. package/dist/data/DataHandler.d.ts +66 -0
  75. package/dist/data/DataHandler.js +80 -0
  76. package/dist/data/DataHandler.js.map +1 -0
  77. package/dist/data/values/Egm96Data.d.ts +37 -0
  78. package/dist/data/values/Egm96Data.js +63 -0
  79. package/dist/data/values/Egm96Data.js.map +1 -0
  80. package/dist/data/values/HpAtmosphereData.d.ts +33 -0
  81. package/dist/data/values/HpAtmosphereData.js +58 -0
  82. package/dist/data/values/HpAtmosphereData.js.map +1 -0
  83. package/dist/data/values/HpAtmosphereResult.d.ts +29 -0
  84. package/dist/data/values/HpAtmosphereResult.js +38 -0
  85. package/dist/data/values/HpAtmosphereResult.js.map +1 -0
  86. package/dist/data/values/Iau1980Data.d.ts +36 -0
  87. package/dist/data/values/Iau1980Data.js +52 -0
  88. package/dist/data/values/Iau1980Data.js.map +1 -0
  89. package/dist/data/values/LeapSecond.d.ts +27 -0
  90. package/dist/data/values/LeapSecond.js +35 -0
  91. package/dist/data/values/LeapSecond.js.map +1 -0
  92. package/dist/data/values/LeapSecondData.d.ts +41 -0
  93. package/dist/data/values/LeapSecondData.js +103 -0
  94. package/dist/data/values/LeapSecondData.js.map +1 -0
  95. package/dist/data/values/egm96.d.ts +24 -0
  96. package/dist/data/values/egm96.js +726 -0
  97. package/dist/data/values/egm96.js.map +1 -0
  98. package/dist/data/values/hpAtmosphere.d.ts +24 -0
  99. package/dist/data/values/hpAtmosphere.js +76 -0
  100. package/dist/data/values/hpAtmosphere.js.map +1 -0
  101. package/dist/data/values/iau1980.d.ts +24 -0
  102. package/dist/data/values/iau1980.js +30 -0
  103. package/dist/data/values/iau1980.js.map +1 -0
  104. package/dist/enums/AngularDiameterMethod.d.ts +27 -0
  105. package/dist/enums/AngularDiameterMethod.js +29 -0
  106. package/dist/enums/AngularDiameterMethod.js.map +1 -0
  107. package/dist/enums/AngularDistanceMethod.d.ts +27 -0
  108. package/dist/enums/AngularDistanceMethod.js +29 -0
  109. package/dist/enums/AngularDistanceMethod.js.map +1 -0
  110. package/dist/enums/OrbitRegime.d.ts +30 -0
  111. package/dist/enums/OrbitRegime.js +32 -0
  112. package/dist/enums/OrbitRegime.js.map +1 -0
  113. package/dist/enums/PassType.d.ts +28 -0
  114. package/dist/enums/PassType.js +30 -0
  115. package/dist/enums/PassType.js.map +1 -0
  116. package/dist/enums/Sgp4OpsMode.d.ts +26 -0
  117. package/dist/enums/Sgp4OpsMode.js +28 -0
  118. package/dist/enums/Sgp4OpsMode.js.map +1 -0
  119. package/dist/enums/index.d.ts +5 -0
  120. package/dist/enums/index.js +5 -0
  121. package/dist/enums/index.js.map +1 -1
  122. package/dist/force/AtmosphericDrag.d.ts +2 -2
  123. package/dist/force/AtmosphericDrag.js +3 -6
  124. package/dist/force/AtmosphericDrag.js.map +1 -1
  125. package/dist/force/EarthGravity.d.ts +2 -2
  126. package/dist/force/EarthGravity.js +2 -2
  127. package/dist/force/EarthGravity.js.map +1 -1
  128. package/dist/force/Force.d.ts +2 -2
  129. package/dist/force/Force.js +1 -1
  130. package/dist/force/ForceModel.d.ts +2 -2
  131. package/dist/force/ForceModel.js +2 -2
  132. package/dist/force/ForceModel.js.map +1 -1
  133. package/dist/force/Gravity.d.ts +2 -2
  134. package/dist/force/Gravity.js +2 -2
  135. package/dist/force/Gravity.js.map +1 -1
  136. package/dist/force/SolarRadiationPressure.d.ts +2 -2
  137. package/dist/force/SolarRadiationPressure.js +2 -2
  138. package/dist/force/SolarRadiationPressure.js.map +1 -1
  139. package/dist/force/ThirdBodyGravity.d.ts +2 -2
  140. package/dist/force/ThirdBodyGravity.js +2 -2
  141. package/dist/force/ThirdBodyGravity.js.map +1 -1
  142. package/dist/force/Thrust.d.ts +2 -2
  143. package/dist/force/Thrust.js +2 -2
  144. package/dist/force/Thrust.js.map +1 -1
  145. package/dist/interfaces/BaseObjectParams.d.ts +31 -0
  146. package/dist/interfaces/BaseObjectParams.js +24 -0
  147. package/dist/interfaces/BaseObjectParams.js.map +1 -0
  148. package/dist/interfaces/ClassicalElementsParams.d.ts +33 -0
  149. package/dist/interfaces/ClassicalElementsParams.js +24 -0
  150. package/dist/interfaces/ClassicalElementsParams.js.map +1 -0
  151. package/dist/interfaces/EquinoctialElementsParams.d.ts +35 -0
  152. package/dist/interfaces/EquinoctialElementsParams.js +24 -0
  153. package/dist/interfaces/EquinoctialElementsParams.js.map +1 -0
  154. package/dist/interfaces/GroundPositionParams.d.ts +28 -0
  155. package/dist/interfaces/GroundPositionParams.js +24 -0
  156. package/dist/interfaces/GroundPositionParams.js.map +1 -0
  157. package/dist/interfaces/OmmFormat.d.ts +62 -0
  158. package/dist/interfaces/OmmFormat.js +2 -0
  159. package/dist/interfaces/OmmFormat.js.map +1 -0
  160. package/dist/interfaces/OptionsParams.d.ts +3 -0
  161. package/dist/interfaces/OptionsParams.js +2 -0
  162. package/dist/interfaces/OptionsParams.js.map +1 -0
  163. package/dist/interfaces/RfSensorParams.d.ts +1 -1
  164. package/dist/interfaces/SatelliteParams.d.ts +18 -0
  165. package/dist/interfaces/SatelliteParams.js +2 -0
  166. package/dist/interfaces/SatelliteParams.js.map +1 -0
  167. package/dist/interfaces/SensorParams.d.ts +38 -0
  168. package/dist/interfaces/SensorParams.js +2 -0
  169. package/dist/interfaces/SensorParams.js.map +1 -0
  170. package/dist/interfaces/StarObjectParams.d.ts +10 -0
  171. package/dist/interfaces/StarObjectParams.js +2 -0
  172. package/dist/interfaces/StarObjectParams.js.map +1 -0
  173. package/dist/interfaces/TimeVariables.d.ts +6 -0
  174. package/dist/interfaces/TimeVariables.js +2 -0
  175. package/dist/interfaces/TimeVariables.js.map +1 -0
  176. package/dist/interfaces/index.d.ts +8 -0
  177. package/dist/interpolator/ChebyshevCoefficients.d.ts +5 -5
  178. package/dist/interpolator/ChebyshevCoefficients.js +2 -2
  179. package/dist/interpolator/ChebyshevCoefficients.js.map +1 -1
  180. package/dist/interpolator/ChebyshevInterpolator.d.ts +3 -3
  181. package/dist/interpolator/ChebyshevInterpolator.js +9 -9
  182. package/dist/interpolator/ChebyshevInterpolator.js.map +1 -1
  183. package/dist/interpolator/CubicSpline.d.ts +2 -2
  184. package/dist/interpolator/CubicSpline.js +1 -1
  185. package/dist/interpolator/CubicSplineInterpolator.d.ts +4 -4
  186. package/dist/interpolator/CubicSplineInterpolator.js +10 -10
  187. package/dist/interpolator/CubicSplineInterpolator.js.map +1 -1
  188. package/dist/interpolator/FieldInterpolator.d.ts +1 -1
  189. package/dist/interpolator/FieldInterpolator.js +1 -1
  190. package/dist/interpolator/Interpolator.d.ts +2 -2
  191. package/dist/interpolator/Interpolator.js +2 -2
  192. package/dist/interpolator/Interpolator.js.map +1 -1
  193. package/dist/interpolator/LagrangeInterpolator.d.ts +7 -7
  194. package/dist/interpolator/LagrangeInterpolator.js +2 -2
  195. package/dist/interpolator/LagrangeInterpolator.js.map +1 -1
  196. package/dist/interpolator/StateInterpolator.d.ts +2 -2
  197. package/dist/interpolator/StateInterpolator.js +1 -1
  198. package/dist/interpolator/VerletBlendInterpolator.d.ts +2 -2
  199. package/dist/interpolator/VerletBlendInterpolator.js +2 -2
  200. package/dist/interpolator/VerletBlendInterpolator.js.map +1 -1
  201. package/dist/main.d.ts +15 -5
  202. package/dist/main.js +15 -5
  203. package/dist/main.js.map +1 -1
  204. package/dist/maneuver/TwoBurnOrbitTransfer.d.ts +2 -2
  205. package/dist/maneuver/TwoBurnOrbitTransfer.js +2 -2
  206. package/dist/maneuver/TwoBurnOrbitTransfer.js.map +1 -1
  207. package/dist/maneuver/Waypoint.d.ts +2 -2
  208. package/dist/maneuver/Waypoint.js +2 -2
  209. package/dist/maneuver/Waypoint.js.map +1 -1
  210. package/dist/objects/BaseObject.d.ts +74 -0
  211. package/dist/objects/BaseObject.js +151 -0
  212. package/dist/objects/BaseObject.js.map +1 -0
  213. package/dist/objects/DetailedSatellite.d.ts +3 -2
  214. package/dist/objects/DetailedSatellite.js +6 -4
  215. package/dist/objects/DetailedSatellite.js.map +1 -1
  216. package/dist/objects/DetailedSensor.d.ts +3 -2
  217. package/dist/objects/DetailedSensor.js +2 -2
  218. package/dist/objects/DetailedSensor.js.map +1 -1
  219. package/dist/objects/GroundObject.d.ts +85 -0
  220. package/dist/objects/GroundObject.js +143 -0
  221. package/dist/objects/GroundObject.js.map +1 -0
  222. package/dist/objects/LandObject.d.ts +3 -2
  223. package/dist/objects/LandObject.js +2 -2
  224. package/dist/objects/LandObject.js.map +1 -1
  225. package/dist/objects/Marker.d.ts +2 -2
  226. package/dist/objects/Marker.js +2 -2
  227. package/dist/objects/Marker.js.map +1 -1
  228. package/dist/objects/RfSensor.d.ts +1 -2
  229. package/dist/objects/RfSensor.js +1 -2
  230. package/dist/objects/RfSensor.js.map +1 -1
  231. package/dist/objects/Satellite.d.ts +226 -0
  232. package/dist/objects/Satellite.js +443 -0
  233. package/dist/objects/Satellite.js.map +1 -0
  234. package/dist/objects/Sensor.d.ts +99 -0
  235. package/dist/objects/Sensor.js +238 -0
  236. package/dist/objects/Sensor.js.map +1 -0
  237. package/dist/objects/Star.d.ts +36 -0
  238. package/dist/objects/Star.js +59 -0
  239. package/dist/objects/Star.js.map +1 -0
  240. package/dist/objects/index.d.ts +5 -0
  241. package/dist/objects/index.js +5 -0
  242. package/dist/objects/index.js.map +1 -1
  243. package/dist/observation/Observation.d.ts +2 -2
  244. package/dist/observation/Observation.js +1 -1
  245. package/dist/observation/ObservationOptical.d.ts +6 -6
  246. package/dist/observation/ObservationOptical.js +9 -9
  247. package/dist/observation/ObservationOptical.js.map +1 -1
  248. package/dist/observation/ObservationRadar.d.ts +6 -6
  249. package/dist/observation/ObservationRadar.js +9 -9
  250. package/dist/observation/ObservationRadar.js.map +1 -1
  251. package/dist/observation/ObservationUtils.d.ts +4 -2
  252. package/dist/observation/ObservationUtils.js +16 -2
  253. package/dist/observation/ObservationUtils.js.map +1 -1
  254. package/dist/observation/PropagatorPairs.d.ts +4 -4
  255. package/dist/observation/PropagatorPairs.js +7 -7
  256. package/dist/observation/PropagatorPairs.js.map +1 -1
  257. package/dist/observation/RAE.d.ts +111 -0
  258. package/dist/observation/RAE.js +214 -0
  259. package/dist/observation/RAE.js.map +1 -0
  260. package/dist/observation/RadecGeocentric.d.ts +111 -0
  261. package/dist/observation/RadecGeocentric.js +169 -0
  262. package/dist/observation/RadecGeocentric.js.map +1 -0
  263. package/dist/observation/RadecTopocentric.d.ts +123 -0
  264. package/dist/observation/RadecTopocentric.js +196 -0
  265. package/dist/observation/RadecTopocentric.js.map +1 -0
  266. package/dist/observation/index.d.ts +26 -0
  267. package/dist/observation/index.js +27 -0
  268. package/dist/observation/index.js.map +1 -0
  269. package/dist/operations/BoxMuller.d.ts +2 -2
  270. package/dist/operations/BoxMuller.js +2 -2
  271. package/dist/operations/BoxMuller.js.map +1 -1
  272. package/dist/operations/EulerAngles.d.ts +2 -2
  273. package/dist/operations/EulerAngles.js +2 -2
  274. package/dist/operations/EulerAngles.js.map +1 -1
  275. package/dist/operations/Matrix.d.ts +170 -0
  276. package/dist/operations/Matrix.js +405 -0
  277. package/dist/operations/Matrix.js.map +1 -0
  278. package/dist/operations/Quaternion.d.ts +7 -7
  279. package/dist/operations/Quaternion.js +2 -2
  280. package/dist/operations/Quaternion.js.map +1 -1
  281. package/dist/operations/Random.d.ts +40 -0
  282. package/dist/operations/Random.js +50 -0
  283. package/dist/operations/Random.js.map +1 -0
  284. package/dist/operations/RandomGaussianSource.d.ts +3 -3
  285. package/dist/operations/RandomGaussianSource.js +5 -5
  286. package/dist/operations/RandomGaussianSource.js.map +1 -1
  287. package/dist/operations/Vector.d.ts +262 -0
  288. package/dist/operations/Vector.js +415 -0
  289. package/dist/operations/Vector.js.map +1 -0
  290. package/dist/operations/Vector3D.d.ts +86 -0
  291. package/dist/operations/Vector3D.js +241 -0
  292. package/dist/operations/Vector3D.js.map +1 -0
  293. package/dist/operations/operations.d.ts +26 -0
  294. package/dist/operations/operations.js +27 -0
  295. package/dist/operations/operations.js.map +1 -0
  296. package/dist/optimize/ChebyshevCompressor.d.ts +3 -3
  297. package/dist/optimize/ChebyshevCompressor.js +8 -8
  298. package/dist/optimize/ChebyshevCompressor.js.map +1 -1
  299. package/dist/optimize/DownhillSimplex.d.ts +1 -1
  300. package/dist/optimize/DownhillSimplex.js +1 -1
  301. package/dist/optimize/GoldenSection.d.ts +2 -2
  302. package/dist/optimize/GoldenSection.js +3 -3
  303. package/dist/optimize/PolynomialRegression.d.ts +1 -1
  304. package/dist/optimize/PolynomialRegression.js +2 -2
  305. package/dist/optimize/PolynomialRegression.js.map +1 -1
  306. package/dist/optimize/PolynomicalRegressionResult.d.ts +1 -1
  307. package/dist/optimize/PolynomicalRegressionResult.js +1 -1
  308. package/dist/optimize/SimpleLinearRegression.d.ts +1 -1
  309. package/dist/optimize/SimpleLinearRegression.js +1 -1
  310. package/dist/optimize/SimplexEntry.d.ts +4 -4
  311. package/dist/optimize/SimplexEntry.js +11 -11
  312. package/dist/optimize/SimplexEntry.js.map +1 -1
  313. package/dist/orbit_determination/BatchLeastSquaresOD.d.ts +11 -11
  314. package/dist/orbit_determination/BatchLeastSquaresOD.js +2 -2
  315. package/dist/orbit_determination/BatchLeastSquaresOD.js.map +1 -1
  316. package/dist/orbit_determination/BatchLeastSquaresResult.d.ts +2 -2
  317. package/dist/orbit_determination/BatchLeastSquaresResult.js +1 -1
  318. package/dist/orbit_determination/GibbsIOD.d.ts +2 -2
  319. package/dist/orbit_determination/GibbsIOD.js +2 -2
  320. package/dist/orbit_determination/GibbsIOD.js.map +1 -1
  321. package/dist/orbit_determination/GoodingIOD.d.ts +2 -2
  322. package/dist/orbit_determination/GoodingIOD.js +2 -2
  323. package/dist/orbit_determination/GoodingIOD.js.map +1 -1
  324. package/dist/orbit_determination/HerrickGibbsIOD.d.ts +2 -2
  325. package/dist/orbit_determination/HerrickGibbsIOD.js +2 -2
  326. package/dist/orbit_determination/HerrickGibbsIOD.js.map +1 -1
  327. package/dist/orbit_determination/LambertIOD.d.ts +2 -2
  328. package/dist/orbit_determination/LambertIOD.js +2 -2
  329. package/dist/orbit_determination/LambertIOD.js.map +1 -1
  330. package/dist/orbit_determination/ModifiedGoodingIOD.d.ts +4 -4
  331. package/dist/orbit_determination/ModifiedGoodingIOD.js +2 -2
  332. package/dist/orbit_determination/ModifiedGoodingIOD.js.map +1 -1
  333. package/dist/orbit_determination/index.d.ts +7 -0
  334. package/dist/orbit_determination/index.js +8 -0
  335. package/dist/orbit_determination/index.js.map +1 -0
  336. package/dist/propagator/DormandPrince54Propagator.d.ts +5 -5
  337. package/dist/propagator/DormandPrince54Propagator.js +9 -9
  338. package/dist/propagator/DormandPrince54Propagator.js.map +1 -1
  339. package/dist/propagator/KeplerPropagator.d.ts +6 -6
  340. package/dist/propagator/KeplerPropagator.js +31 -31
  341. package/dist/propagator/KeplerPropagator.js.map +1 -1
  342. package/dist/propagator/Propagator.d.ts +2 -2
  343. package/dist/propagator/Propagator.js +2 -2
  344. package/dist/propagator/Propagator.js.map +1 -1
  345. package/dist/propagator/RkCheckpoint.d.ts +2 -2
  346. package/dist/propagator/RkCheckpoint.js +1 -1
  347. package/dist/propagator/RkResult.d.ts +2 -2
  348. package/dist/propagator/RkResult.js +1 -1
  349. package/dist/propagator/RungeKutta4Propagator.d.ts +3 -3
  350. package/dist/propagator/RungeKutta4Propagator.js +2 -2
  351. package/dist/propagator/RungeKutta4Propagator.js.map +1 -1
  352. package/dist/propagator/RungeKutta89Propagator.d.ts +5 -5
  353. package/dist/propagator/RungeKutta89Propagator.js +1 -1
  354. package/dist/propagator/RungeKutta89Propagator.js.map +1 -1
  355. package/dist/propagator/RungeKuttaAdaptive.d.ts +4 -4
  356. package/dist/propagator/RungeKuttaAdaptive.js +2 -2
  357. package/dist/propagator/RungeKuttaAdaptive.js.map +1 -1
  358. package/dist/propagator/Sgp4Propagator.d.ts +6 -6
  359. package/dist/propagator/Sgp4Propagator.js +15 -15
  360. package/dist/propagator/Sgp4Propagator.js.map +1 -1
  361. package/dist/sgp4/index.d.ts +23 -0
  362. package/dist/sgp4/index.js +24 -0
  363. package/dist/sgp4/index.js.map +1 -0
  364. package/dist/sgp4/sgp4-error.d.ts +22 -0
  365. package/dist/sgp4/sgp4-error.js +44 -0
  366. package/dist/sgp4/sgp4-error.js.map +1 -0
  367. package/dist/sgp4/sgp4.d.ts +99 -0
  368. package/dist/sgp4/sgp4.js +3164 -0
  369. package/dist/sgp4/sgp4.js.map +1 -0
  370. package/dist/smoothing/ExponentialSmoothing.d.ts +2 -2
  371. package/dist/smoothing/ExponentialSmoothing.js +1 -1
  372. package/dist/time/Epoch.d.ts +44 -0
  373. package/dist/time/Epoch.js +109 -0
  374. package/dist/time/Epoch.js.map +1 -0
  375. package/dist/time/EpochGPS.d.ts +42 -0
  376. package/dist/time/EpochGPS.js +70 -0
  377. package/dist/time/EpochGPS.js.map +1 -0
  378. package/dist/time/EpochTAI.d.ts +26 -0
  379. package/dist/time/EpochTAI.js +27 -0
  380. package/dist/time/EpochTAI.js.map +1 -0
  381. package/dist/time/EpochTDB.d.ts +26 -0
  382. package/dist/time/EpochTDB.js +27 -0
  383. package/dist/time/EpochTDB.js.map +1 -0
  384. package/dist/time/EpochTT.d.ts +26 -0
  385. package/dist/time/EpochTT.js +27 -0
  386. package/dist/time/EpochTT.js.map +1 -0
  387. package/dist/time/EpochUTC.d.ts +59 -0
  388. package/dist/time/EpochUTC.js +137 -0
  389. package/dist/time/EpochUTC.js.map +1 -0
  390. package/dist/time/EpochWindow.d.ts +28 -0
  391. package/dist/time/EpochWindow.js +31 -0
  392. package/dist/time/EpochWindow.js.map +1 -0
  393. package/dist/time/TimeStamped.d.ts +39 -0
  394. package/dist/time/TimeStamped.js +42 -0
  395. package/dist/time/TimeStamped.js.map +1 -0
  396. package/dist/time/index.d.ts +8 -0
  397. package/dist/time/index.js +9 -0
  398. package/dist/time/index.js.map +1 -0
  399. package/dist/transforms/TransformCache.d.ts +27 -0
  400. package/dist/transforms/TransformCache.js +41 -0
  401. package/dist/transforms/TransformCache.js.map +1 -0
  402. package/dist/transforms/conversions.d.ts +63 -0
  403. package/dist/transforms/conversions.js +88 -0
  404. package/dist/transforms/conversions.js.map +1 -0
  405. package/dist/transforms/index.d.ts +1 -0
  406. package/dist/transforms/index.js +1 -0
  407. package/dist/transforms/index.js.map +1 -1
  408. package/dist/transforms/transforms.d.ts +166 -2
  409. package/dist/transforms/transforms.js +372 -1
  410. package/dist/transforms/transforms.js.map +1 -1
  411. package/dist/types/types.d.ts +675 -3
  412. package/dist/types/types.js +37 -1
  413. package/dist/types/types.js.map +1 -1
  414. package/dist/utils/constants.d.ts +80 -0
  415. package/dist/utils/constants.js +87 -0
  416. package/dist/utils/constants.js.map +1 -0
  417. package/dist/utils/create-covariance-from-tle.d.ts +18 -0
  418. package/dist/utils/create-covariance-from-tle.js +57 -0
  419. package/dist/utils/create-covariance-from-tle.js.map +1 -0
  420. package/dist/utils/functions.d.ts +228 -0
  421. package/dist/utils/functions.js +476 -0
  422. package/dist/utils/functions.js.map +1 -1
  423. package/dist/utils/index.d.ts +4 -1
  424. package/dist/utils/index.js +4 -1
  425. package/dist/utils/index.js.map +1 -1
  426. package/dist/utils/jacobian.d.ts +7 -1
  427. package/dist/utils/jacobian.js +7 -2
  428. package/dist/utils/jacobian.js.map +1 -1
  429. package/dist/utils/linearDistance.d.ts +8 -0
  430. package/dist/utils/linearDistance.js +10 -0
  431. package/dist/utils/linearDistance.js.map +1 -0
  432. package/package.json +5 -8
  433. package/src/body/Celestial.ts +134 -0
  434. package/src/body/Earth.ts +260 -0
  435. package/src/body/Moon.ts +556 -0
  436. package/src/body/NutationAngles.ts +40 -0
  437. package/src/body/PrecessionAngles.ts +31 -0
  438. package/src/body/Sun.ts +665 -0
  439. package/src/body/index.ts +27 -0
  440. package/src/body/suncalc.LICENSE.md +18 -0
  441. package/src/coordinate/ClassicalElements.ts +327 -0
  442. package/src/coordinate/EquinoctialElements.ts +189 -0
  443. package/src/coordinate/FormatTle.ts +214 -0
  444. package/src/coordinate/Geodetic.ts +186 -0
  445. package/src/coordinate/Hill.ts +2 -2
  446. package/src/coordinate/ITRF.ts +146 -0
  447. package/src/coordinate/J2000.ts +130 -0
  448. package/src/coordinate/RIC.ts +87 -0
  449. package/src/coordinate/RelativeState.ts +101 -0
  450. package/src/coordinate/StateVector.ts +123 -0
  451. package/src/coordinate/TEME.ts +97 -0
  452. package/src/coordinate/Tle.ts +1024 -0
  453. package/src/coordinate/index.ts +11 -0
  454. package/src/coordinate/tle-format-data.ts +47 -0
  455. package/src/covariance/CovarianceSample.ts +117 -19
  456. package/src/covariance/StateCovariance.ts +2 -2
  457. package/src/covariance/index.ts +2 -0
  458. package/src/data/DataHandler.ts +88 -0
  459. package/src/data/values/Egm96Data.ts +75 -0
  460. package/src/data/values/HpAtmosphereData.ts +76 -0
  461. package/src/data/values/HpAtmosphereResult.ts +41 -0
  462. package/src/data/values/Iau1980Data.ts +63 -0
  463. package/src/data/values/LeapSecond.ts +37 -0
  464. package/src/data/values/LeapSecondData.ts +113 -0
  465. package/src/data/values/egm96.ts +728 -0
  466. package/src/data/values/hpAtmosphere.ts +79 -0
  467. package/src/data/values/iau1980.ts +32 -0
  468. package/src/enums/AngularDiameterMethod.ts +28 -0
  469. package/src/enums/AngularDistanceMethod.ts +28 -0
  470. package/src/enums/OrbitRegime.ts +31 -0
  471. package/src/enums/PassType.ts +29 -0
  472. package/src/enums/Sgp4OpsMode.ts +27 -0
  473. package/src/enums/index.ts +5 -0
  474. package/src/force/AtmosphericDrag.ts +2 -4
  475. package/src/force/EarthGravity.ts +2 -2
  476. package/src/force/Force.ts +2 -2
  477. package/src/force/ForceModel.ts +2 -2
  478. package/src/force/Gravity.ts +2 -2
  479. package/src/force/SolarRadiationPressure.ts +2 -2
  480. package/src/force/ThirdBodyGravity.ts +2 -2
  481. package/src/force/Thrust.ts +2 -2
  482. package/src/interfaces/BaseObjectParams.ts +33 -0
  483. package/src/interfaces/ClassicalElementsParams.ts +35 -0
  484. package/src/interfaces/EquinoctialElementsParams.ts +37 -0
  485. package/src/interfaces/GroundPositionParams.ts +30 -0
  486. package/src/interfaces/OmmFormat.ts +63 -0
  487. package/src/interfaces/OptionsParams.ts +3 -0
  488. package/src/interfaces/RfSensorParams.ts +1 -1
  489. package/src/interfaces/SatelliteParams.ts +20 -0
  490. package/src/interfaces/SensorParams.ts +39 -0
  491. package/src/interfaces/StarObjectParams.ts +11 -0
  492. package/src/interfaces/TimeVariables.ts +7 -0
  493. package/src/interfaces/index.ts +8 -0
  494. package/src/interpolator/ChebyshevCoefficients.ts +5 -5
  495. package/src/interpolator/ChebyshevInterpolator.ts +10 -10
  496. package/src/interpolator/CubicSpline.ts +2 -2
  497. package/src/interpolator/CubicSplineInterpolator.ts +8 -8
  498. package/src/interpolator/FieldInterpolator.ts +1 -1
  499. package/src/interpolator/Interpolator.ts +2 -2
  500. package/src/interpolator/LagrangeInterpolator.ts +7 -7
  501. package/src/interpolator/StateInterpolator.ts +2 -2
  502. package/src/interpolator/VerletBlendInterpolator.ts +2 -2
  503. package/src/main.ts +15 -5
  504. package/src/maneuver/TwoBurnOrbitTransfer.ts +2 -2
  505. package/src/maneuver/Waypoint.ts +2 -2
  506. package/src/objects/BaseObject.ts +171 -0
  507. package/src/objects/DetailedSatellite.ts +5 -4
  508. package/src/objects/DetailedSensor.ts +3 -2
  509. package/src/objects/GroundObject.ts +176 -0
  510. package/src/objects/LandObject.ts +3 -2
  511. package/src/objects/Marker.ts +2 -2
  512. package/src/objects/RfSensor.ts +1 -2
  513. package/src/objects/Satellite.ts +552 -0
  514. package/src/objects/Sensor.ts +279 -0
  515. package/src/objects/Star.ts +96 -0
  516. package/src/objects/index.ts +5 -0
  517. package/src/observation/Observation.ts +2 -2
  518. package/src/observation/ObservationOptical.ts +7 -7
  519. package/src/observation/ObservationRadar.ts +10 -6
  520. package/src/observation/ObservationUtils.ts +31 -2
  521. package/src/observation/PropagatorPairs.ts +3 -3
  522. package/src/observation/RAE.ts +261 -0
  523. package/src/observation/RadecGeocentric.ts +206 -0
  524. package/src/observation/RadecTopocentric.ts +241 -0
  525. package/src/observation/index.ts +27 -0
  526. package/src/operations/BoxMuller.ts +2 -2
  527. package/src/operations/EulerAngles.ts +2 -2
  528. package/src/operations/Matrix.ts +473 -0
  529. package/src/operations/Quaternion.ts +7 -7
  530. package/src/operations/Random.ts +54 -0
  531. package/src/operations/RandomGaussianSource.ts +5 -5
  532. package/src/operations/Vector.ts +484 -0
  533. package/src/operations/Vector3D.ts +289 -0
  534. package/src/operations/operations.ts +27 -0
  535. package/src/optimize/ChebyshevCompressor.ts +6 -6
  536. package/src/optimize/DownhillSimplex.ts +1 -1
  537. package/src/optimize/GoldenSection.ts +3 -3
  538. package/src/optimize/PolynomialRegression.ts +2 -2
  539. package/src/optimize/PolynomicalRegressionResult.ts +1 -1
  540. package/src/optimize/SimpleLinearRegression.ts +1 -1
  541. package/src/optimize/SimplexEntry.ts +9 -9
  542. package/src/orbit_determination/BatchLeastSquaresOD.ts +11 -11
  543. package/src/orbit_determination/BatchLeastSquaresResult.ts +2 -2
  544. package/src/orbit_determination/GibbsIOD.ts +4 -2
  545. package/src/orbit_determination/GoodingIOD.ts +2 -2
  546. package/src/orbit_determination/HerrickGibbsIOD.ts +2 -2
  547. package/src/orbit_determination/LambertIOD.ts +2 -2
  548. package/src/orbit_determination/ModifiedGoodingIOD.ts +4 -4
  549. package/src/orbit_determination/index.ts +7 -0
  550. package/src/propagator/DormandPrince54Propagator.ts +9 -9
  551. package/src/propagator/KeplerPropagator.ts +31 -31
  552. package/src/propagator/Propagator.ts +2 -2
  553. package/src/propagator/RkCheckpoint.ts +2 -2
  554. package/src/propagator/RkResult.ts +2 -2
  555. package/src/propagator/RungeKutta4Propagator.ts +3 -3
  556. package/src/propagator/RungeKutta89Propagator.ts +5 -5
  557. package/src/propagator/RungeKuttaAdaptive.ts +4 -4
  558. package/src/propagator/Sgp4Propagator.ts +14 -14
  559. package/src/sgp4/index.ts +24 -0
  560. package/src/sgp4/sgp4-error.ts +53 -0
  561. package/src/sgp4/sgp4.LICENSE.md +28 -0
  562. package/src/sgp4/sgp4.ts +3983 -0
  563. package/src/smoothing/ExponentialSmoothing.ts +2 -2
  564. package/src/time/Epoch.ts +128 -0
  565. package/src/time/EpochGPS.ts +76 -0
  566. package/src/time/EpochTAI.ts +27 -0
  567. package/src/time/EpochTDB.ts +27 -0
  568. package/src/time/EpochTT.ts +27 -0
  569. package/src/time/EpochUTC.ts +188 -0
  570. package/src/time/EpochWindow.ts +33 -0
  571. package/src/time/TimeStamped.ts +46 -0
  572. package/src/time/index.ts +8 -0
  573. package/src/transforms/TransformCache.ts +46 -0
  574. package/src/transforms/conversions.ts +98 -0
  575. package/src/transforms/index.ts +1 -0
  576. package/src/transforms/transforms.ts +478 -2
  577. package/src/types/types.ts +722 -3
  578. package/src/utils/constants.ts +113 -0
  579. package/src/utils/create-covariance-from-tle.ts +75 -0
  580. package/src/utils/functions.ts +562 -0
  581. package/src/utils/index.ts +4 -1
  582. package/src/utils/jacobian.ts +7 -3
  583. package/src/utils/linearDistance.ts +11 -0
@@ -0,0 +1,544 @@
1
+ /**
2
+ * @author @thkruz Theodore Kruczek
3
+ * @description Orbital Object ToolKit (ootk) is a collection of tools for working
4
+ * with satellites and other orbital objects.
5
+ * @license AGPL-3.0-or-later
6
+ * @copyright (c) 2025 Kruczek Labs LLC
7
+ *
8
+ * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
9
+ * terms of the GNU Affero General Public License as published by the Free Software
10
+ * Foundation, either version 3 of the License, or (at your option) any later version.
11
+ *
12
+ * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
13
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14
+ * See the GNU Affero General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Affero General Public License along with
17
+ * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
18
+ * @copyright (c) 2011-2015, Vladimir Agafonkin
19
+ * @copyright (c) 2022 Robert Gester https://github.com/hypnos3/suncalc3
20
+ * @see suncalc.LICENSE.md
21
+ * Some of the math in this file was originally created by Vladimir Agafonkin.
22
+ * Robert Gester's update was referenced for documentation. There were a couple
23
+ * of bugs in both versions so there will be some differences if you are
24
+ * migrating from either to this library.
25
+ *
26
+ * suncalc is a JavaScript library for calculating sun/moon position and light
27
+ * phases. https://github.com/mourner/suncalc
28
+ * It was reworked and enhanced by Robert Gester.
29
+ *
30
+ * The original suncalc is released under the terms of the BSD 2-Clause License.
31
+ */
32
+ import { angularDiameter, AngularDiameterMethod, astronomicalUnit, Celestial, cKmPerSec, DEG2RAD, Earth, MS_PER_DAY, RAD2DEG, TAU, Vector3D, } from '../main.js';
33
+ /**
34
+ * Sun metrics and operations.
35
+ */
36
+ export class Sun {
37
+ static J0_ = 0.0009;
38
+ static J1970_ = 2440587.5;
39
+ static J2000_ = 2451545;
40
+ static e = DEG2RAD * 23.4397;
41
+ /**
42
+ * Array representing the times for different phases of the sun. Each element
43
+ * in the array contains:
44
+ * - The angle in degrees representing the time offset from solar noon.
45
+ * - The name of the start time for the phase.
46
+ * - The name of the end time for the phase.
47
+ */
48
+ static times_ = [
49
+ [6, 'goldenHourDawnEnd', 'goldenHourDuskStart'], // GOLDEN_HOUR_2
50
+ [-0.3, 'sunriseEnd', 'sunsetStart'], // SUNRISE_END
51
+ [-0.833, 'sunriseStart', 'sunsetEnd'], // SUNRISE
52
+ [-1, 'goldenHourDawnStart', 'goldenHourDuskEnd'], // GOLDEN_HOUR_1
53
+ [-4, 'blueHourDawnEnd', 'blueHourDuskStart'], // BLUE_HOUR
54
+ [-6, 'civilDawn', 'civilDusk'], // DAWN
55
+ [-8, 'blueHourDawnStart', 'blueHourDuskEnd'], // BLUE_HOUR
56
+ [-12, 'nauticalDawn', 'nauticalDusk'], // NAUTIC_DAWN
57
+ [-15, 'amateurDawn', 'amateurDusk'],
58
+ [-18, 'astronomicalDawn', 'astronomicalDusk'], // ASTRO_DAWN
59
+ ];
60
+ /**
61
+ * Gravitational parameter of the Sun. (km³/s²)
62
+ */
63
+ static mu = 1.32712428e11;
64
+ /**
65
+ * The angle of the penumbra of the Sun, in radians.
66
+ */
67
+ static penumbraAngle = (0.26900424 * DEG2RAD);
68
+ /**
69
+ * The radius of the Sun in kilometers.
70
+ */
71
+ static radius = 695500.0;
72
+ /**
73
+ * The mean solar flux of the Sun. (W/m²)
74
+ */
75
+ static solarFlux = 1367.0;
76
+ /**
77
+ * The solar pressure exerted by the Sun. (N/m²) It is calculated as the solar
78
+ * flux divided by the speed of light.
79
+ */
80
+ static solarPressure = Sun.solarFlux / (cKmPerSec * 1000);
81
+ /**
82
+ * The angle of the umbra, in radians.
83
+ */
84
+ static umbraAngle = (0.26411888 * DEG2RAD);
85
+ constructor() {
86
+ // disable constructor
87
+ }
88
+ /**
89
+ * Calculates the azimuth and elevation of the Sun for a given date, latitude,
90
+ * and longitude.
91
+ * @param date - The date for which to calculate the azimuth and elevation.
92
+ * @param lat - The latitude in degrees.
93
+ * @param lon - The longitude in degrees.
94
+ * @param c - The right ascension and declination of the target. Defaults to
95
+ * the Sun's right ascension and declination
96
+ * @returns An object containing the azimuth and elevation of the Sun in
97
+ * radians.
98
+ */
99
+ static azEl(date, lat, lon, c) {
100
+ const lw = (-lon * DEG2RAD);
101
+ const phi = (lat * DEG2RAD);
102
+ const d = Sun.date2jSince2000(date);
103
+ c ??= Sun.raDec(date);
104
+ const H = Sun.siderealTime(d, lw) - c.ra;
105
+ return {
106
+ az: Celestial.azimuth(H, phi, c.dec),
107
+ el: Celestial.elevation(H, phi, c.dec),
108
+ };
109
+ }
110
+ /**
111
+ * get number of days for a dateValue since 2000
112
+ * See: https://en.wikipedia.org/wiki/Epoch_(astronomy)
113
+ * @param date date as timestamp to get days
114
+ * @returns count of days
115
+ */
116
+ static date2jSince2000(date) {
117
+ return date.getTime() / MS_PER_DAY + Sun.J1970_ - Sun.J2000_;
118
+ }
119
+ /**
120
+ * Calculates the angular diameter of the Sun given the observer's position
121
+ * and the Sun's position.
122
+ * @param obsPos The observer's position in kilometers.
123
+ * @param sunPos The Sun's position in kilometers.
124
+ * @returns The angular diameter of the Sun in radians.
125
+ */
126
+ static diameter(obsPos, sunPos) {
127
+ return angularDiameter(this.radius * 2, obsPos.subtract(sunPos).magnitude(), AngularDiameterMethod.Sphere);
128
+ }
129
+ /**
130
+ * Calculate eclipse angles given a satellite ECI position and Sun ECI
131
+ * position.
132
+ * @param satPos the satellite position
133
+ * @param sunPos the sun position
134
+ * @returns [central body angle, central body apparent radius, sun apparent]
135
+ */
136
+ static eclipseAngles(satPos, sunPos) {
137
+ const satSun = sunPos.subtract(satPos);
138
+ const r = satPos.magnitude();
139
+ return [
140
+ // central body angle
141
+ satSun.angle(satPos.negate()),
142
+ // central body apparent radius
143
+ Math.asin(Earth.radiusEquator / r),
144
+ // sun apparent radius
145
+ Math.asin(this.radius / satSun.magnitude()),
146
+ ];
147
+ }
148
+ /**
149
+ * Ecliptic latitude measures the distance north or south of the ecliptic,
150
+ * attaining +90° at the north ecliptic pole (NEP) and -90° at the south
151
+ * ecliptic pole (SEP). The ecliptic itself is 0° latitude.
152
+ * @param B - ?
153
+ * @returns ecliptic latitude
154
+ */
155
+ static eclipticLatitude(B) {
156
+ const C = TAU / 360;
157
+ const L = B - 0.00569 - 0.00478 * Math.sin(C * B);
158
+ return TAU * (L + 0.0003 * Math.sin(C * 2 * L));
159
+ }
160
+ /**
161
+ * Ecliptic longitude, also known as celestial longitude, measures the angular
162
+ * distance of an object along the ecliptic from the primary direction. It is
163
+ * measured positive eastwards in the fundamental plane (the ecliptic) from 0°
164
+ * to 360°. The primary direction (0° ecliptic longitude) points from the
165
+ * Earth towards the Sun at the vernal equinox of the Northern Hemisphere. Due
166
+ * to axial precession, the ecliptic longitude of most "fixed stars" increases
167
+ * by about 50.3 arcseconds per year, or 83.8 arcminutes per century.
168
+ * @param M - solar mean anomaly
169
+ * @returns ecliptic longitude
170
+ */
171
+ static eclipticLongitude(M) {
172
+ const C = DEG2RAD * (1.9148 * Math.sin(M) + 0.02 * Math.sin(2 * M) + 0.0003 * Math.sin(3 * M));
173
+ const P = DEG2RAD * 102.9372; // perihelion of Earth
174
+ return (M + C + P + Math.PI); // Sun's mean longitude
175
+ }
176
+ /**
177
+ * returns set time for the given sun altitude
178
+ * @param h - height at 0
179
+ * @param lw - rad * -lng
180
+ * @param phi - rad * lat;
181
+ * @param dec - declination
182
+ * @param n - Julian cycle
183
+ * @param M - solar mean anomal
184
+ * @param L - ecliptic longitude
185
+ * @returns set time
186
+ */
187
+ static getSetJulian(h, lw, phi, dec, n, M, L) {
188
+ const w = Sun.hourAngle(h, phi, dec);
189
+ const a = Sun.approxTransit_(w, lw, n);
190
+ return Sun.solarTransitJulian(a, M, L);
191
+ }
192
+ /**
193
+ * Calculates the time of the sun based on the given azimuth.
194
+ * @param dateValue - The date value or Date object.
195
+ * @param lat - The latitude in degrees.
196
+ * @param lon - The longitude in degrees.
197
+ * @param az - The azimuth in radians or degrees.
198
+ * @param isDegrees - Indicates if the azimuth is in degrees. Default is false.
199
+ * @returns The calculated time of the sun.
200
+ * @throws Error if the azimuth, latitude, or longitude is missing.
201
+ */
202
+ static getSunTimeByAz(dateValue, lat, lon, az, isDegrees = false) {
203
+ if (isNaN(az)) {
204
+ throw new Error('azimuth missing');
205
+ }
206
+ if (isNaN(lat)) {
207
+ throw new Error('latitude missing');
208
+ }
209
+ if (isNaN(lon)) {
210
+ throw new Error('longitude missing');
211
+ }
212
+ if (isDegrees) {
213
+ az = (az * DEG2RAD);
214
+ }
215
+ const date = dateValue instanceof Date ? dateValue : new Date(dateValue);
216
+ const lw = (DEG2RAD * -lon);
217
+ const phi = (DEG2RAD * lat);
218
+ let dateVal = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0).getTime();
219
+ let addval = MS_PER_DAY; // / 2);
220
+ dateVal += addval;
221
+ while (addval > 200) {
222
+ const newDate = new Date(dateVal);
223
+ const d = Sun.date2jSince2000(newDate);
224
+ const c = Sun.raDec(newDate);
225
+ const H = Sun.siderealTime(d, lw) - c.ra;
226
+ const newAz = Celestial.azimuth(H, phi, c.dec);
227
+ addval /= 2;
228
+ if (newAz < az) {
229
+ dateVal += addval;
230
+ }
231
+ else {
232
+ dateVal -= addval;
233
+ }
234
+ }
235
+ return new Date(Math.floor(dateVal));
236
+ }
237
+ /**
238
+ * Calculates sun times for a given date and latitude/longitude
239
+ *
240
+ * Default altitude is 0 meters. If `isUtc` is `true`, the times are returned
241
+ * as UTC, otherwise in local time.
242
+ * @param dateVal - The date value or Date object.
243
+ * @param lat - The latitude in degrees.
244
+ * @param lon - The longitude in degrees.
245
+ * @param alt - The altitude in meters. Default is 0.
246
+ * @param isUtc - Indicates if the times should be returned as UTC. Default is
247
+ * false.
248
+ * @returns An object containing the times of the sun.
249
+ */
250
+ static getTimes(dateVal, lat, lon, alt = 0, isUtc = false) {
251
+ if (isNaN(lat)) {
252
+ throw new Error('latitude missing');
253
+ }
254
+ if (isNaN(lon)) {
255
+ throw new Error('longitude missing');
256
+ }
257
+ // Ensure date is a Date object
258
+ const date = dateVal instanceof Date ? dateVal : new Date(dateVal);
259
+ if (isUtc) {
260
+ date.setUTCHours(12, 0, 0, 0);
261
+ }
262
+ else {
263
+ date.setHours(12, 0, 0, 0);
264
+ }
265
+ let time;
266
+ let h0 = 0;
267
+ let Jset = 0;
268
+ let Jrise = 0;
269
+ const { Jnoon, dh, lw, phi, dec, n, M, L } = Sun.calculateJnoon_(lon, lat, alt, date);
270
+ // Determine when the sun is at its highest and lowest (darkest) points.
271
+ const result = {
272
+ solarNoon: Sun.julian2date(Jnoon),
273
+ nadir: Sun.julian2date(Jnoon + 0.5), // https://github.com/mourner/suncalc/pull/125
274
+ };
275
+ // Add all other unique times using Jnoon as a reference
276
+ for (let i = 0, len = Sun.times_.length; i < len; i += 1) {
277
+ time = Sun.times_[i];
278
+ const angle = time[0];
279
+ h0 = ((angle + dh) * DEG2RAD);
280
+ Jset = Sun.getSetJ_(h0, lw, phi, dec, n, M, L);
281
+ Jrise = Jnoon - (Jset - Jnoon);
282
+ result[time[1]] = Sun.julian2date(Jrise);
283
+ result[time[2]] = Sun.julian2date(Jset);
284
+ }
285
+ return result;
286
+ }
287
+ /**
288
+ * hour angle
289
+ * @param h - heigh at 0
290
+ * @param phi - rad * lat;
291
+ * @param dec - declination
292
+ * @returns hour angle
293
+ */
294
+ static hourAngle(h, phi, dec) {
295
+ return Math.acos((Math.sin(h) - Math.sin(phi) * Math.sin(dec)) / (Math.cos(phi) * Math.cos(dec)));
296
+ }
297
+ /**
298
+ * convert Julian calendar to date object
299
+ * @param julian day number in Julian calendar to convert
300
+ * @returns result date as timestamp
301
+ */
302
+ static julian2date(julian) {
303
+ return new Date((julian - Sun.J1970_) * MS_PER_DAY);
304
+ }
305
+ /**
306
+ * Julian cycle
307
+ *
308
+ * The Julian cycle is a period of 7980 years after which the positions of the
309
+ * Sun, Moon, and planets repeat. It is used in astronomical calculations to
310
+ * determine the position of celestial bodies.
311
+ *
312
+ * The Julian Period starts at noon on January 1, 4713 B.C.E. (Julian
313
+ * calendar) and lasts for 7980 years. This was determined because it is a
314
+ * time period long enough to include all of recorded history and includes
315
+ * some time in the future that would incorporate the three important
316
+ * calendrical cycles, the Golden Number Cycle, the Solar Cycle, and the Roman
317
+ * Indiction.
318
+ *
319
+ * The Golden Number Cycle is a cycle of 19 years, while the Solar Cycle is a
320
+ * cycle of 28 years and the Roman Indiction repeats every 15 years. Thus the
321
+ * Julian Period is calculated to be 7980 years long or 2,914,695 days because
322
+ * 19*28*15 = 7980.
323
+ * @param date - Date object for calculating julian cycle
324
+ * @param lon - Degrees longitude
325
+ * @returns julian cycle
326
+ */
327
+ static julianCycle(date, lon) {
328
+ const lw = (-lon * DEG2RAD);
329
+ const d = Sun.date2jSince2000(date);
330
+ return Math.round(d - Sun.J0_ - lw / ((2 * TAU) / 2));
331
+ }
332
+ /**
333
+ * Calculate the lighting ratio given a satellite ECI position [satPos] _(km)_
334
+ * and Sun ECI position [sunPos] _(km)_.
335
+ *
336
+ * Returns `1.0` if the satellite is fully illuminated and `0.0` when fully
337
+ * eclipsed.
338
+ * @param satPos - The position of the satellite.
339
+ * @param sunPos - The position of the sun.
340
+ * @returns The lighting ratio.
341
+ */
342
+ static lightingRatio(satPos, sunPos) {
343
+ const [sunSatAngle, aCent, aSun] = Sun.eclipseAngles(satPos, sunPos);
344
+ if (sunSatAngle - aCent + aSun <= 1e-10) {
345
+ return 0.0;
346
+ }
347
+ else if (sunSatAngle - aCent - aSun < -1e-10) {
348
+ const ssa2 = sunSatAngle * sunSatAngle;
349
+ const ssaInv = 1.0 / (2.0 * sunSatAngle);
350
+ const ac2 = aCent * aCent;
351
+ const as2 = aSun * aSun;
352
+ const acAsDiff = ac2 - as2;
353
+ const a1 = (ssa2 - acAsDiff) * ssaInv;
354
+ const a2 = (ssa2 + acAsDiff) * ssaInv;
355
+ const asr1 = a1 / aSun;
356
+ const asr2 = as2 - a1 * a1;
357
+ const acr1 = a2 / aCent;
358
+ const acr2 = ac2 - a2 * a2;
359
+ const p1 = as2 * Math.acos(asr1) - a1 * Math.sqrt(asr2);
360
+ const p2 = ac2 * Math.acos(acr1) - a2 * Math.sqrt(acr2);
361
+ return 1.0 - (p1 + p2) / (Math.PI * as2);
362
+ }
363
+ return 1.0;
364
+ }
365
+ /**
366
+ * Calculates the lighting factor based on the position of the satellite and the sun.
367
+ * @deprecated This method was previously used. It is now deprecated and will be removed
368
+ * in a future release.
369
+ * @param satPos The position of the satellite.
370
+ * @param sunPos The position of the sun.
371
+ * @returns The lighting factor.
372
+ */
373
+ static sunlightLegacy(satPos, sunPos) {
374
+ let lighting = 1.0;
375
+ const semiDiamEarth = Math.asin(Earth.radiusMean / Math.sqrt((-satPos.x) ** 2 + (-satPos.y) ** 2 + (-satPos.z) ** 2)) * RAD2DEG;
376
+ const semiDiamSun = Math.asin(Sun.radius / Math.sqrt((-satPos.x + sunPos.x) ** 2 + (-satPos.y + sunPos.y) ** 2 + (-satPos.z + sunPos.z) ** 2)) * RAD2DEG;
377
+ // Angle between earth and sun
378
+ const theta = Math.acos(satPos.negate().dot(sunPos.negate()) /
379
+ (Math.sqrt((-satPos.x) ** 2 + (-satPos.y) ** 2 + (-satPos.z) ** 2) *
380
+ Math.sqrt((-satPos.x + sunPos.x) ** 2 + (-satPos.y + sunPos.y) ** 2 + (-satPos.z + sunPos.z) ** 2))) * RAD2DEG;
381
+ if (semiDiamEarth > semiDiamSun && theta < semiDiamEarth - semiDiamSun) {
382
+ lighting = 0;
383
+ }
384
+ if (Math.abs(semiDiamEarth - semiDiamSun) < theta && theta < semiDiamEarth + semiDiamSun) {
385
+ lighting = 0.5;
386
+ }
387
+ if (semiDiamSun > semiDiamEarth) {
388
+ lighting = 0.5;
389
+ }
390
+ if (theta < semiDiamSun - semiDiamEarth) {
391
+ lighting = 0.5;
392
+ }
393
+ return lighting;
394
+ }
395
+ /**
396
+ * Calculates the position vector of the Sun at a given epoch in the
397
+ * Earth-centered inertial (ECI) coordinate system.
398
+ * @param epoch - The epoch in UTC.
399
+ * @returns The position vector of the Sun in Kilometers.
400
+ */
401
+ static position(epoch) {
402
+ const jc = epoch.toJulianCenturies();
403
+ const dtr = DEG2RAD;
404
+ const lamSun = 280.46 + 36000.77 * jc;
405
+ const mSun = 357.5291092 + 35999.05034 * jc;
406
+ const lamEc = lamSun + 1.914666471 * Math.sin(mSun * dtr) + 0.019994643 * Math.sin(2.0 * mSun * dtr);
407
+ const obliq = 23.439291 - 0.0130042 * jc;
408
+ const rMag = 1.000140612 - 0.016708617 * Math.cos(mSun * dtr) - 0.000139589 * Math.cos(2.0 * mSun * dtr);
409
+ 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));
410
+ const rMOD = r.scale(astronomicalUnit);
411
+ const p = Earth.precession(epoch);
412
+ return rMOD
413
+ .rotZ(p.zed)
414
+ .rotY(-p.theta)
415
+ .rotZ(p.zeta);
416
+ }
417
+ /**
418
+ * Calculate the Sun's apparent ECI position _(km)_ from Earth for a given UTC
419
+ * [epoch].
420
+ * @param epoch - The epoch in UTC.
421
+ * @returns The Sun's apparent ECI position in kilometers.
422
+ */
423
+ static positionApparent(epoch) {
424
+ const distance = Sun.position(epoch).magnitude();
425
+ const dSec = distance / cKmPerSec;
426
+ return Sun.position(epoch.roll(-dSec));
427
+ }
428
+ /**
429
+ * Calculates the right ascension and declination of the Sun for a given date.
430
+ * @param date - The date for which to calculate the right ascension and declination.
431
+ * @returns An object containing the declination and right ascension of the Sun.
432
+ */
433
+ static raDec(date) {
434
+ const d = Sun.date2jSince2000(date);
435
+ const M = Sun.solarMeanAnomaly_(d);
436
+ const L = Sun.eclipticLongitude(M);
437
+ return {
438
+ dec: Celestial.declination(L, 0),
439
+ ra: Celestial.rightAscension(L, 0),
440
+ dist: 0,
441
+ };
442
+ }
443
+ /**
444
+ * Return `true` if the ECI satellite position [posSat] is in eclipse at the
445
+ * given UTC [epoch].
446
+ * @param epoch - The epoch in UTC.
447
+ * @param posSat - The ECI position of the satellite in kilometers.
448
+ * @returns `true` if the satellite is in eclipse.
449
+ */
450
+ static shadow(epoch, posSat) {
451
+ const posSun = Sun.positionApparent(epoch);
452
+ let shadow = false;
453
+ if (posSun.dot(posSat) < 0) {
454
+ const angle = posSun.angle(posSat);
455
+ const r = posSat.magnitude();
456
+ const satHoriz = r * Math.cos(angle);
457
+ const satVert = r * Math.sin(angle);
458
+ const penVert = Earth.radiusEquator + Math.tan(this.penumbraAngle) * satHoriz;
459
+ if (satVert <= penVert) {
460
+ shadow = true;
461
+ }
462
+ }
463
+ return shadow;
464
+ }
465
+ /**
466
+ * side real time
467
+ * @param d - julian day
468
+ * @param lw - longitude of the observer
469
+ * @returns sidereal time
470
+ */
471
+ static siderealTime(d, lw) {
472
+ return DEG2RAD * (280.16 + 360.9856235 * d) - lw;
473
+ }
474
+ /**
475
+ * solar transit in Julian
476
+ * @param ds approxTransit
477
+ * @param M solar mean anomal
478
+ * @param L ecliptic longitude
479
+ * @returns solar transit in Julian
480
+ */
481
+ static solarTransitJulian(ds, M, L) {
482
+ return Sun.J2000_ + ds + 0.0053 * Math.sin(M) - 0.0069 * Math.sin(2 * L);
483
+ }
484
+ /**
485
+ * The approximate transit time
486
+ * @param Ht hourAngle
487
+ * @param lw rad * -lng
488
+ * @param n Julian cycle
489
+ * @returns approx transit
490
+ */
491
+ static approxTransit_(Ht, lw, n) {
492
+ return Sun.J0_ + (Ht + lw) / TAU + n;
493
+ }
494
+ static calculateJnoon_(lon, lat, alt, date) {
495
+ const lw = (DEG2RAD * -lon);
496
+ const phi = (DEG2RAD * lat);
497
+ const dh = Sun.observerAngle_(alt);
498
+ const d = Sun.date2jSince2000(date);
499
+ const n = Sun.julianCycle_(d, lw);
500
+ const ds = Sun.approxTransit_(0, lw, n);
501
+ const M = Sun.solarMeanAnomaly_(ds);
502
+ const L = Sun.eclipticLongitude(M);
503
+ const dec = Celestial.declination(L, 0);
504
+ const Jnoon = Sun.solarTransitJulian(ds, M, L);
505
+ return { Jnoon, dh, lw, phi, dec, n, M, L };
506
+ }
507
+ /**
508
+ * returns set time for the given sun altitude
509
+ * @param alt altitude at 0
510
+ * @param lw lng
511
+ * @param phi lat
512
+ * @param dec declination
513
+ * @param n Julian cycle
514
+ * @param M solar mean anomal
515
+ * @param L ecliptic longitude
516
+ * @returns sunset time in days since 2000
517
+ */
518
+ static getSetJ_(alt, lw, phi, dec, n, M, L) {
519
+ const w = Sun.hourAngle(alt, phi, dec);
520
+ const a = Sun.approxTransit_(w, lw, n);
521
+ return Sun.solarTransitJulian(a, M, L);
522
+ }
523
+ static julianCycle_(d, lw) {
524
+ const lonOffset = lw / TAU;
525
+ return Math.round(d - Sun.J0_ - lonOffset);
526
+ }
527
+ /**
528
+ * calculates the obderver angle
529
+ * @param alt the observer altitude (in meters) relative to the horizon
530
+ * @returns height for further calculations
531
+ */
532
+ static observerAngle_(alt) {
533
+ return ((-2.076 * Math.sqrt(alt)) / 60);
534
+ }
535
+ /**
536
+ * get solar mean anomaly
537
+ * @param d julian day
538
+ * @returns solar mean anomaly
539
+ */
540
+ static solarMeanAnomaly_(d) {
541
+ return DEG2RAD * (357.5291 + 0.98560028 * d);
542
+ }
543
+ }
544
+ //# 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 @thkruz Theodore Kruczek
3
+ * @description Orbital Object ToolKit (ootk) is a collection of tools for working
4
+ * with satellites and other orbital objects.
5
+ * @license AGPL-3.0-or-later
6
+ * @copyright (c) 2025 Kruczek Labs LLC
7
+ *
8
+ * Many of the classes are based off of the work of @david-rc-dayton and his
9
+ * Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which
10
+ * is licensed under the MIT license.
11
+ *
12
+ * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
13
+ * terms of the GNU Affero General Public License as published by the Free Software
14
+ * Foundation, either version 3 of the License, or (at your option) any later version.
15
+ *
16
+ * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
17
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18
+ * See the GNU Affero General Public License for more details.
19
+ *
20
+ * You should have received a copy of the GNU Affero General Public License along with
21
+ * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
22
+ */
23
+ 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 @thkruz Theodore Kruczek
3
+ * @description Orbital Object ToolKit (ootk) is a collection of tools for working
4
+ * with satellites and other orbital objects.
5
+ * @license AGPL-3.0-or-later
6
+ * @copyright (c) 2025 Kruczek Labs LLC
7
+ *
8
+ * Many of the classes are based off of the work of @david-rc-dayton and his
9
+ * Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which
10
+ * is licensed under the MIT license.
11
+ *
12
+ * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
13
+ * terms of the GNU Affero General Public License as published by the Free Software
14
+ * Foundation, either version 3 of the License, or (at your option) any later version.
15
+ *
16
+ * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
17
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18
+ * See the GNU Affero General Public License for more details.
19
+ *
20
+ * You should have received a copy of the GNU Affero General Public License along with
21
+ * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
22
+ */
23
+ 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"}