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.
Files changed (536) hide show
  1. package/CHANGELOG.md +9 -2
  2. package/README.md +0 -15
  3. package/dist/body/Celestial.d.ts +96 -0
  4. package/dist/body/Celestial.js +124 -0
  5. package/dist/body/Celestial.js.map +1 -0
  6. package/dist/body/Earth.d.ts +68 -0
  7. package/dist/body/Earth.js +198 -0
  8. package/dist/body/Earth.js.map +1 -0
  9. package/dist/body/Moon.d.ts +137 -0
  10. package/dist/body/Moon.js +464 -0
  11. package/dist/body/Moon.js.map +1 -0
  12. package/dist/body/NutationAngles.d.ts +38 -0
  13. package/dist/body/NutationAngles.js +24 -0
  14. package/dist/body/NutationAngles.js.map +1 -0
  15. package/dist/body/PrecessionAngles.d.ts +29 -0
  16. package/dist/body/PrecessionAngles.js +24 -0
  17. package/dist/body/PrecessionAngles.js.map +1 -0
  18. package/dist/body/Sun.d.ts +305 -0
  19. package/dist/body/Sun.js +548 -0
  20. package/dist/body/Sun.js.map +1 -0
  21. package/dist/body/index.d.ts +26 -0
  22. package/dist/body/index.js +27 -0
  23. package/dist/body/index.js.map +1 -0
  24. package/dist/coordinate/ClassicalElements.d.ts +132 -0
  25. package/dist/coordinate/ClassicalElements.js +279 -0
  26. package/dist/coordinate/ClassicalElements.js.map +1 -0
  27. package/dist/coordinate/EquinoctialElements.d.ts +114 -0
  28. package/dist/coordinate/EquinoctialElements.js +172 -0
  29. package/dist/coordinate/EquinoctialElements.js.map +1 -0
  30. package/dist/coordinate/FormatTle.d.ts +95 -0
  31. package/dist/coordinate/FormatTle.js +184 -0
  32. package/dist/coordinate/FormatTle.js.map +1 -0
  33. package/dist/coordinate/Geodetic.d.ts +110 -0
  34. package/dist/coordinate/Geodetic.js +163 -0
  35. package/dist/coordinate/Geodetic.js.map +1 -0
  36. package/dist/coordinate/Hill.d.ts +1 -1
  37. package/dist/coordinate/Hill.js +1 -1
  38. package/dist/coordinate/Hill.js.map +1 -1
  39. package/dist/coordinate/ITRF.d.ts +75 -0
  40. package/dist/coordinate/ITRF.js +135 -0
  41. package/dist/coordinate/ITRF.js.map +1 -0
  42. package/dist/coordinate/J2000.d.ts +65 -0
  43. package/dist/coordinate/J2000.js +120 -0
  44. package/dist/coordinate/J2000.js.map +1 -0
  45. package/dist/coordinate/RIC.d.ts +64 -0
  46. package/dist/coordinate/RIC.js +79 -0
  47. package/dist/coordinate/RIC.js.map +1 -0
  48. package/dist/coordinate/RelativeState.d.ts +70 -0
  49. package/dist/coordinate/RelativeState.js +79 -0
  50. package/dist/coordinate/RelativeState.js.map +1 -0
  51. package/dist/coordinate/StateVector.d.ts +76 -0
  52. package/dist/coordinate/StateVector.js +97 -0
  53. package/dist/coordinate/StateVector.js.map +1 -0
  54. package/dist/coordinate/TEME.d.ts +57 -0
  55. package/dist/coordinate/TEME.js +89 -0
  56. package/dist/coordinate/TEME.js.map +1 -0
  57. package/dist/coordinate/Tle.d.ts +430 -0
  58. package/dist/coordinate/Tle.js +865 -0
  59. package/dist/coordinate/Tle.js.map +1 -0
  60. package/dist/coordinate/index.d.ts +11 -0
  61. package/dist/coordinate/index.js +12 -0
  62. package/dist/coordinate/index.js.map +1 -1
  63. package/dist/coordinate/tle-format-data.d.ts +41 -0
  64. package/dist/coordinate/tle-format-data.js +46 -0
  65. package/dist/coordinate/tle-format-data.js.map +1 -0
  66. package/dist/covariance/CovarianceSample.d.ts +1 -1
  67. package/dist/covariance/CovarianceSample.js +1 -1
  68. package/dist/covariance/CovarianceSample.js.map +1 -1
  69. package/dist/covariance/StateCovariance.d.ts +1 -1
  70. package/dist/covariance/StateCovariance.js +1 -1
  71. package/dist/covariance/StateCovariance.js.map +1 -1
  72. package/dist/data/DataHandler.d.ts +66 -0
  73. package/dist/data/DataHandler.js +80 -0
  74. package/dist/data/DataHandler.js.map +1 -0
  75. package/dist/data/values/Egm96Data.d.ts +37 -0
  76. package/dist/data/values/Egm96Data.js +63 -0
  77. package/dist/data/values/Egm96Data.js.map +1 -0
  78. package/dist/data/values/HpAtmosphereData.d.ts +33 -0
  79. package/dist/data/values/HpAtmosphereData.js +58 -0
  80. package/dist/data/values/HpAtmosphereData.js.map +1 -0
  81. package/dist/data/values/HpAtmosphereResult.d.ts +29 -0
  82. package/dist/data/values/HpAtmosphereResult.js +38 -0
  83. package/dist/data/values/HpAtmosphereResult.js.map +1 -0
  84. package/dist/data/values/Iau1980Data.d.ts +36 -0
  85. package/dist/data/values/Iau1980Data.js +52 -0
  86. package/dist/data/values/Iau1980Data.js.map +1 -0
  87. package/dist/data/values/LeapSecond.d.ts +27 -0
  88. package/dist/data/values/LeapSecond.js +35 -0
  89. package/dist/data/values/LeapSecond.js.map +1 -0
  90. package/dist/data/values/LeapSecondData.d.ts +41 -0
  91. package/dist/data/values/LeapSecondData.js +103 -0
  92. package/dist/data/values/LeapSecondData.js.map +1 -0
  93. package/dist/data/values/egm96.d.ts +24 -0
  94. package/dist/data/values/egm96.js +726 -0
  95. package/dist/data/values/egm96.js.map +1 -0
  96. package/dist/data/values/hpAtmosphere.d.ts +24 -0
  97. package/dist/data/values/hpAtmosphere.js +76 -0
  98. package/dist/data/values/hpAtmosphere.js.map +1 -0
  99. package/dist/data/values/iau1980.d.ts +24 -0
  100. package/dist/data/values/iau1980.js +30 -0
  101. package/dist/data/values/iau1980.js.map +1 -0
  102. package/dist/enums/AngularDiameterMethod.d.ts +27 -0
  103. package/dist/enums/AngularDiameterMethod.js +29 -0
  104. package/dist/enums/AngularDiameterMethod.js.map +1 -0
  105. package/dist/enums/AngularDistanceMethod.d.ts +27 -0
  106. package/dist/enums/AngularDistanceMethod.js +29 -0
  107. package/dist/enums/AngularDistanceMethod.js.map +1 -0
  108. package/dist/enums/OrbitRegime.d.ts +30 -0
  109. package/dist/enums/OrbitRegime.js +32 -0
  110. package/dist/enums/OrbitRegime.js.map +1 -0
  111. package/dist/enums/PassType.d.ts +28 -0
  112. package/dist/enums/PassType.js +30 -0
  113. package/dist/enums/PassType.js.map +1 -0
  114. package/dist/enums/Sgp4OpsMode.d.ts +26 -0
  115. package/dist/enums/Sgp4OpsMode.js +28 -0
  116. package/dist/enums/Sgp4OpsMode.js.map +1 -0
  117. package/dist/enums/index.d.ts +5 -0
  118. package/dist/enums/index.js +5 -0
  119. package/dist/enums/index.js.map +1 -1
  120. package/dist/force/AtmosphericDrag.d.ts +1 -1
  121. package/dist/force/AtmosphericDrag.js +1 -1
  122. package/dist/force/AtmosphericDrag.js.map +1 -1
  123. package/dist/force/EarthGravity.d.ts +1 -1
  124. package/dist/force/EarthGravity.js +1 -1
  125. package/dist/force/EarthGravity.js.map +1 -1
  126. package/dist/force/Force.d.ts +1 -1
  127. package/dist/force/ForceModel.d.ts +1 -1
  128. package/dist/force/ForceModel.js +1 -1
  129. package/dist/force/ForceModel.js.map +1 -1
  130. package/dist/force/Gravity.d.ts +1 -1
  131. package/dist/force/Gravity.js +1 -1
  132. package/dist/force/Gravity.js.map +1 -1
  133. package/dist/force/SolarRadiationPressure.d.ts +1 -1
  134. package/dist/force/SolarRadiationPressure.js +1 -1
  135. package/dist/force/SolarRadiationPressure.js.map +1 -1
  136. package/dist/force/ThirdBodyGravity.d.ts +1 -1
  137. package/dist/force/ThirdBodyGravity.js +1 -1
  138. package/dist/force/ThirdBodyGravity.js.map +1 -1
  139. package/dist/force/Thrust.d.ts +1 -1
  140. package/dist/force/Thrust.js +1 -1
  141. package/dist/force/Thrust.js.map +1 -1
  142. package/dist/interfaces/BaseObjectParams.d.ts +31 -0
  143. package/dist/interfaces/BaseObjectParams.js +24 -0
  144. package/dist/interfaces/BaseObjectParams.js.map +1 -0
  145. package/dist/interfaces/ClassicalElementsParams.d.ts +33 -0
  146. package/dist/interfaces/ClassicalElementsParams.js +24 -0
  147. package/dist/interfaces/ClassicalElementsParams.js.map +1 -0
  148. package/dist/interfaces/EquinoctialElementsParams.d.ts +35 -0
  149. package/dist/interfaces/EquinoctialElementsParams.js +24 -0
  150. package/dist/interfaces/EquinoctialElementsParams.js.map +1 -0
  151. package/dist/interfaces/GroundPositionParams.d.ts +28 -0
  152. package/dist/interfaces/GroundPositionParams.js +24 -0
  153. package/dist/interfaces/GroundPositionParams.js.map +1 -0
  154. package/dist/interfaces/OmmFormat.d.ts +62 -0
  155. package/dist/interfaces/OmmFormat.js +2 -0
  156. package/dist/interfaces/OmmFormat.js.map +1 -0
  157. package/dist/interfaces/OptionsParams.d.ts +3 -0
  158. package/dist/interfaces/OptionsParams.js +2 -0
  159. package/dist/interfaces/OptionsParams.js.map +1 -0
  160. package/dist/interfaces/RfSensorParams.d.ts +1 -1
  161. package/dist/interfaces/SatelliteParams.d.ts +18 -0
  162. package/dist/interfaces/SatelliteParams.js +2 -0
  163. package/dist/interfaces/SatelliteParams.js.map +1 -0
  164. package/dist/interfaces/SensorParams.d.ts +38 -0
  165. package/dist/interfaces/SensorParams.js +2 -0
  166. package/dist/interfaces/SensorParams.js.map +1 -0
  167. package/dist/interfaces/StarObjectParams.d.ts +10 -0
  168. package/dist/interfaces/StarObjectParams.js +2 -0
  169. package/dist/interfaces/StarObjectParams.js.map +1 -0
  170. package/dist/interfaces/TimeVariables.d.ts +6 -0
  171. package/dist/interfaces/TimeVariables.js +2 -0
  172. package/dist/interfaces/TimeVariables.js.map +1 -0
  173. package/dist/interfaces/index.d.ts +8 -0
  174. package/dist/interpolator/ChebyshevCoefficients.d.ts +1 -1
  175. package/dist/interpolator/ChebyshevCoefficients.js +1 -1
  176. package/dist/interpolator/ChebyshevCoefficients.js.map +1 -1
  177. package/dist/interpolator/ChebyshevInterpolator.d.ts +1 -1
  178. package/dist/interpolator/ChebyshevInterpolator.js +1 -1
  179. package/dist/interpolator/ChebyshevInterpolator.js.map +1 -1
  180. package/dist/interpolator/CubicSpline.d.ts +1 -1
  181. package/dist/interpolator/CubicSplineInterpolator.d.ts +1 -1
  182. package/dist/interpolator/CubicSplineInterpolator.js +1 -1
  183. package/dist/interpolator/CubicSplineInterpolator.js.map +1 -1
  184. package/dist/interpolator/Interpolator.d.ts +1 -1
  185. package/dist/interpolator/Interpolator.js +1 -1
  186. package/dist/interpolator/Interpolator.js.map +1 -1
  187. package/dist/interpolator/LagrangeInterpolator.d.ts +1 -1
  188. package/dist/interpolator/LagrangeInterpolator.js +1 -1
  189. package/dist/interpolator/LagrangeInterpolator.js.map +1 -1
  190. package/dist/interpolator/StateInterpolator.d.ts +1 -1
  191. package/dist/interpolator/VerletBlendInterpolator.d.ts +1 -1
  192. package/dist/interpolator/VerletBlendInterpolator.js +1 -1
  193. package/dist/interpolator/VerletBlendInterpolator.js.map +1 -1
  194. package/dist/main.d.ts +11 -3
  195. package/dist/main.js +11 -3
  196. package/dist/main.js.map +1 -1
  197. package/dist/maneuver/TwoBurnOrbitTransfer.d.ts +1 -1
  198. package/dist/maneuver/TwoBurnOrbitTransfer.js +1 -1
  199. package/dist/maneuver/TwoBurnOrbitTransfer.js.map +1 -1
  200. package/dist/maneuver/Waypoint.d.ts +1 -1
  201. package/dist/maneuver/Waypoint.js +1 -1
  202. package/dist/maneuver/Waypoint.js.map +1 -1
  203. package/dist/objects/BaseObject.d.ts +74 -0
  204. package/dist/objects/BaseObject.js +151 -0
  205. package/dist/objects/BaseObject.js.map +1 -0
  206. package/dist/objects/DetailedSatellite.d.ts +3 -1
  207. package/dist/objects/DetailedSatellite.js +4 -2
  208. package/dist/objects/DetailedSatellite.js.map +1 -1
  209. package/dist/objects/DetailedSensor.d.ts +2 -1
  210. package/dist/objects/DetailedSensor.js +1 -1
  211. package/dist/objects/DetailedSensor.js.map +1 -1
  212. package/dist/objects/GroundObject.d.ts +85 -0
  213. package/dist/objects/GroundObject.js +143 -0
  214. package/dist/objects/GroundObject.js.map +1 -0
  215. package/dist/objects/LandObject.d.ts +2 -1
  216. package/dist/objects/LandObject.js +1 -1
  217. package/dist/objects/LandObject.js.map +1 -1
  218. package/dist/objects/Marker.d.ts +1 -1
  219. package/dist/objects/Marker.js +1 -1
  220. package/dist/objects/Marker.js.map +1 -1
  221. package/dist/objects/RfSensor.d.ts +1 -2
  222. package/dist/objects/RfSensor.js +1 -2
  223. package/dist/objects/RfSensor.js.map +1 -1
  224. package/dist/objects/Satellite.d.ts +226 -0
  225. package/dist/objects/Satellite.js +443 -0
  226. package/dist/objects/Satellite.js.map +1 -0
  227. package/dist/objects/Sensor.d.ts +100 -0
  228. package/dist/objects/Sensor.js +239 -0
  229. package/dist/objects/Sensor.js.map +1 -0
  230. package/dist/objects/Star.d.ts +36 -0
  231. package/dist/objects/Star.js +59 -0
  232. package/dist/objects/Star.js.map +1 -0
  233. package/dist/objects/index.d.ts +5 -0
  234. package/dist/objects/index.js +5 -0
  235. package/dist/objects/index.js.map +1 -1
  236. package/dist/observation/Observation.d.ts +1 -1
  237. package/dist/observation/ObservationOptical.d.ts +1 -1
  238. package/dist/observation/ObservationOptical.js +1 -1
  239. package/dist/observation/ObservationOptical.js.map +1 -1
  240. package/dist/observation/ObservationRadar.d.ts +1 -1
  241. package/dist/observation/ObservationRadar.js +1 -1
  242. package/dist/observation/ObservationRadar.js.map +1 -1
  243. package/dist/observation/ObservationUtils.d.ts +3 -1
  244. package/dist/observation/ObservationUtils.js +15 -1
  245. package/dist/observation/ObservationUtils.js.map +1 -1
  246. package/dist/observation/RAE.d.ts +111 -0
  247. package/dist/observation/RAE.js +215 -0
  248. package/dist/observation/RAE.js.map +1 -0
  249. package/dist/observation/RadecGeocentric.d.ts +111 -0
  250. package/dist/observation/RadecGeocentric.js +169 -0
  251. package/dist/observation/RadecGeocentric.js.map +1 -0
  252. package/dist/observation/RadecTopocentric.d.ts +123 -0
  253. package/dist/observation/RadecTopocentric.js +196 -0
  254. package/dist/observation/RadecTopocentric.js.map +1 -0
  255. package/dist/observation/index.d.ts +26 -0
  256. package/dist/observation/index.js +27 -0
  257. package/dist/observation/index.js.map +1 -0
  258. package/dist/operations/BoxMuller.d.ts +1 -1
  259. package/dist/operations/BoxMuller.js +1 -1
  260. package/dist/operations/BoxMuller.js.map +1 -1
  261. package/dist/operations/EulerAngles.d.ts +1 -1
  262. package/dist/operations/EulerAngles.js +1 -1
  263. package/dist/operations/EulerAngles.js.map +1 -1
  264. package/dist/operations/Matrix.d.ts +170 -0
  265. package/dist/operations/Matrix.js +405 -0
  266. package/dist/operations/Matrix.js.map +1 -0
  267. package/dist/operations/Quaternion.d.ts +1 -1
  268. package/dist/operations/Quaternion.js +1 -1
  269. package/dist/operations/Quaternion.js.map +1 -1
  270. package/dist/operations/Random.d.ts +40 -0
  271. package/dist/operations/Random.js +50 -0
  272. package/dist/operations/Random.js.map +1 -0
  273. package/dist/operations/RandomGaussianSource.d.ts +1 -1
  274. package/dist/operations/RandomGaussianSource.js +1 -1
  275. package/dist/operations/RandomGaussianSource.js.map +1 -1
  276. package/dist/operations/Vector.d.ts +262 -0
  277. package/dist/operations/Vector.js +415 -0
  278. package/dist/operations/Vector.js.map +1 -0
  279. package/dist/operations/Vector3D.d.ts +86 -0
  280. package/dist/operations/Vector3D.js +241 -0
  281. package/dist/operations/Vector3D.js.map +1 -0
  282. package/dist/operations/operations.d.ts +26 -0
  283. package/dist/operations/operations.js +27 -0
  284. package/dist/operations/operations.js.map +1 -0
  285. package/dist/optimize/ChebyshevCompressor.js +1 -1
  286. package/dist/optimize/ChebyshevCompressor.js.map +1 -1
  287. package/dist/optimize/PolynomialRegression.js +1 -1
  288. package/dist/optimize/PolynomialRegression.js.map +1 -1
  289. package/dist/optimize/SimplexEntry.js +1 -1
  290. package/dist/optimize/SimplexEntry.js.map +1 -1
  291. package/dist/orbit_determination/BatchLeastSquaresOD.d.ts +1 -1
  292. package/dist/orbit_determination/BatchLeastSquaresOD.js +1 -1
  293. package/dist/orbit_determination/BatchLeastSquaresOD.js.map +1 -1
  294. package/dist/orbit_determination/BatchLeastSquaresResult.d.ts +1 -1
  295. package/dist/orbit_determination/GibbsIOD.d.ts +1 -1
  296. package/dist/orbit_determination/GibbsIOD.js +1 -1
  297. package/dist/orbit_determination/GibbsIOD.js.map +1 -1
  298. package/dist/orbit_determination/GoodingIOD.d.ts +1 -1
  299. package/dist/orbit_determination/GoodingIOD.js +1 -1
  300. package/dist/orbit_determination/GoodingIOD.js.map +1 -1
  301. package/dist/orbit_determination/HerrickGibbsIOD.d.ts +1 -1
  302. package/dist/orbit_determination/HerrickGibbsIOD.js +1 -1
  303. package/dist/orbit_determination/HerrickGibbsIOD.js.map +1 -1
  304. package/dist/orbit_determination/LambertIOD.d.ts +1 -1
  305. package/dist/orbit_determination/LambertIOD.js +1 -1
  306. package/dist/orbit_determination/LambertIOD.js.map +1 -1
  307. package/dist/orbit_determination/ModifiedGoodingIOD.d.ts +1 -1
  308. package/dist/orbit_determination/ModifiedGoodingIOD.js +1 -1
  309. package/dist/orbit_determination/ModifiedGoodingIOD.js.map +1 -1
  310. package/dist/orbit_determination/index.d.ts +7 -0
  311. package/dist/orbit_determination/index.js +8 -0
  312. package/dist/orbit_determination/index.js.map +1 -0
  313. package/dist/propagator/KeplerPropagator.d.ts +1 -1
  314. package/dist/propagator/KeplerPropagator.js +1 -1
  315. package/dist/propagator/KeplerPropagator.js.map +1 -1
  316. package/dist/propagator/Propagator.d.ts +1 -1
  317. package/dist/propagator/Propagator.js +1 -1
  318. package/dist/propagator/Propagator.js.map +1 -1
  319. package/dist/propagator/RkCheckpoint.d.ts +1 -1
  320. package/dist/propagator/RkResult.d.ts +1 -1
  321. package/dist/propagator/RungeKutta4Propagator.d.ts +1 -1
  322. package/dist/propagator/RungeKutta4Propagator.js +1 -1
  323. package/dist/propagator/RungeKutta4Propagator.js.map +1 -1
  324. package/dist/propagator/RungeKuttaAdaptive.d.ts +1 -1
  325. package/dist/propagator/RungeKuttaAdaptive.js +1 -1
  326. package/dist/propagator/RungeKuttaAdaptive.js.map +1 -1
  327. package/dist/propagator/Sgp4Propagator.d.ts +1 -1
  328. package/dist/sgp4/index.d.ts +23 -0
  329. package/dist/sgp4/index.js +24 -0
  330. package/dist/sgp4/index.js.map +1 -0
  331. package/dist/sgp4/sgp4-error.d.ts +22 -0
  332. package/dist/sgp4/sgp4-error.js +44 -0
  333. package/dist/sgp4/sgp4-error.js.map +1 -0
  334. package/dist/sgp4/sgp4.d.ts +102 -0
  335. package/dist/sgp4/sgp4.js +3167 -0
  336. package/dist/sgp4/sgp4.js.map +1 -0
  337. package/dist/smoothing/ExponentialSmoothing.d.ts +1 -1
  338. package/dist/time/Epoch.d.ts +44 -0
  339. package/dist/time/Epoch.js +109 -0
  340. package/dist/time/Epoch.js.map +1 -0
  341. package/dist/time/EpochGPS.d.ts +42 -0
  342. package/dist/time/EpochGPS.js +70 -0
  343. package/dist/time/EpochGPS.js.map +1 -0
  344. package/dist/time/EpochTAI.d.ts +26 -0
  345. package/dist/time/EpochTAI.js +27 -0
  346. package/dist/time/EpochTAI.js.map +1 -0
  347. package/dist/time/EpochTDB.d.ts +26 -0
  348. package/dist/time/EpochTDB.js +27 -0
  349. package/dist/time/EpochTDB.js.map +1 -0
  350. package/dist/time/EpochTT.d.ts +26 -0
  351. package/dist/time/EpochTT.js +27 -0
  352. package/dist/time/EpochTT.js.map +1 -0
  353. package/dist/time/EpochUTC.d.ts +59 -0
  354. package/dist/time/EpochUTC.js +137 -0
  355. package/dist/time/EpochUTC.js.map +1 -0
  356. package/dist/time/EpochWindow.d.ts +28 -0
  357. package/dist/time/EpochWindow.js +31 -0
  358. package/dist/time/EpochWindow.js.map +1 -0
  359. package/dist/time/TimeStamped.d.ts +43 -0
  360. package/dist/time/TimeStamped.js +46 -0
  361. package/dist/time/TimeStamped.js.map +1 -0
  362. package/dist/time/index.d.ts +30 -0
  363. package/dist/time/index.js +31 -0
  364. package/dist/time/index.js.map +1 -0
  365. package/dist/transforms/TransformCache.d.ts +27 -0
  366. package/dist/transforms/TransformCache.js +41 -0
  367. package/dist/transforms/TransformCache.js.map +1 -0
  368. package/dist/transforms/conversions.d.ts +63 -0
  369. package/dist/transforms/conversions.js +88 -0
  370. package/dist/transforms/conversions.js.map +1 -0
  371. package/dist/transforms/index.d.ts +1 -0
  372. package/dist/transforms/index.js +1 -0
  373. package/dist/transforms/index.js.map +1 -1
  374. package/dist/transforms/transforms.d.ts +166 -2
  375. package/dist/transforms/transforms.js +372 -1
  376. package/dist/transforms/transforms.js.map +1 -1
  377. package/dist/types/types.d.ts +674 -2
  378. package/dist/types/types.js +36 -0
  379. package/dist/types/types.js.map +1 -1
  380. package/dist/utils/constants.d.ts +80 -0
  381. package/dist/utils/constants.js +87 -0
  382. package/dist/utils/constants.js.map +1 -0
  383. package/dist/utils/functions.d.ts +228 -0
  384. package/dist/utils/functions.js +476 -0
  385. package/dist/utils/functions.js.map +1 -1
  386. package/dist/utils/index.d.ts +3 -1
  387. package/dist/utils/index.js +3 -1
  388. package/dist/utils/index.js.map +1 -1
  389. package/dist/utils/jacobian.d.ts +1 -1
  390. package/dist/utils/jacobian.js +1 -1
  391. package/dist/utils/jacobian.js.map +1 -1
  392. package/dist/utils/linearDistance.d.ts +8 -0
  393. package/dist/utils/linearDistance.js +10 -0
  394. package/dist/utils/linearDistance.js.map +1 -0
  395. package/package.json +4 -7
  396. package/src/body/Celestial.ts +134 -0
  397. package/src/body/Earth.ts +260 -0
  398. package/src/body/Moon.ts +556 -0
  399. package/src/body/NutationAngles.ts +40 -0
  400. package/src/body/PrecessionAngles.ts +31 -0
  401. package/src/body/Sun.ts +669 -0
  402. package/src/body/index.ts +27 -0
  403. package/src/body/suncalc.LICENSE.md +18 -0
  404. package/src/coordinate/ClassicalElements.ts +326 -0
  405. package/src/coordinate/EquinoctialElements.ts +189 -0
  406. package/src/coordinate/FormatTle.ts +214 -0
  407. package/src/coordinate/Geodetic.ts +186 -0
  408. package/src/coordinate/Hill.ts +1 -1
  409. package/src/coordinate/ITRF.ts +146 -0
  410. package/src/coordinate/J2000.ts +130 -0
  411. package/src/coordinate/RIC.ts +87 -0
  412. package/src/coordinate/RelativeState.ts +101 -0
  413. package/src/coordinate/StateVector.ts +122 -0
  414. package/src/coordinate/TEME.ts +97 -0
  415. package/src/coordinate/Tle.ts +1024 -0
  416. package/src/coordinate/index.ts +12 -0
  417. package/src/coordinate/tle-format-data.ts +47 -0
  418. package/src/covariance/CovarianceSample.ts +1 -1
  419. package/src/covariance/StateCovariance.ts +1 -1
  420. package/src/data/DataHandler.ts +88 -0
  421. package/src/data/values/Egm96Data.ts +75 -0
  422. package/src/data/values/HpAtmosphereData.ts +76 -0
  423. package/src/data/values/HpAtmosphereResult.ts +41 -0
  424. package/src/data/values/Iau1980Data.ts +63 -0
  425. package/src/data/values/LeapSecond.ts +37 -0
  426. package/src/data/values/LeapSecondData.ts +113 -0
  427. package/src/data/values/egm96.ts +728 -0
  428. package/src/data/values/hpAtmosphere.ts +79 -0
  429. package/src/data/values/iau1980.ts +32 -0
  430. package/src/enums/AngularDiameterMethod.ts +28 -0
  431. package/src/enums/AngularDistanceMethod.ts +28 -0
  432. package/src/enums/OrbitRegime.ts +31 -0
  433. package/src/enums/PassType.ts +29 -0
  434. package/src/enums/Sgp4OpsMode.ts +27 -0
  435. package/src/enums/index.ts +5 -0
  436. package/src/force/AtmosphericDrag.ts +1 -1
  437. package/src/force/EarthGravity.ts +1 -1
  438. package/src/force/Force.ts +1 -1
  439. package/src/force/ForceModel.ts +1 -1
  440. package/src/force/Gravity.ts +1 -1
  441. package/src/force/SolarRadiationPressure.ts +1 -1
  442. package/src/force/ThirdBodyGravity.ts +1 -1
  443. package/src/force/Thrust.ts +1 -1
  444. package/src/interfaces/BaseObjectParams.ts +33 -0
  445. package/src/interfaces/ClassicalElementsParams.ts +35 -0
  446. package/src/interfaces/EquinoctialElementsParams.ts +37 -0
  447. package/src/interfaces/GroundPositionParams.ts +30 -0
  448. package/src/interfaces/OmmFormat.ts +63 -0
  449. package/src/interfaces/OptionsParams.ts +3 -0
  450. package/src/interfaces/RfSensorParams.ts +1 -1
  451. package/src/interfaces/SatelliteParams.ts +20 -0
  452. package/src/interfaces/SensorParams.ts +39 -0
  453. package/src/interfaces/StarObjectParams.ts +11 -0
  454. package/src/interfaces/TimeVariables.ts +7 -0
  455. package/src/interfaces/index.ts +8 -0
  456. package/src/interpolator/ChebyshevCoefficients.ts +1 -1
  457. package/src/interpolator/ChebyshevInterpolator.ts +1 -1
  458. package/src/interpolator/CubicSpline.ts +1 -1
  459. package/src/interpolator/CubicSplineInterpolator.ts +1 -1
  460. package/src/interpolator/Interpolator.ts +1 -1
  461. package/src/interpolator/LagrangeInterpolator.ts +1 -1
  462. package/src/interpolator/StateInterpolator.ts +1 -1
  463. package/src/interpolator/VerletBlendInterpolator.ts +1 -1
  464. package/src/main.ts +11 -3
  465. package/src/maneuver/TwoBurnOrbitTransfer.ts +1 -1
  466. package/src/maneuver/Waypoint.ts +1 -1
  467. package/src/objects/BaseObject.ts +171 -0
  468. package/src/objects/DetailedSatellite.ts +5 -3
  469. package/src/objects/DetailedSensor.ts +2 -1
  470. package/src/objects/GroundObject.ts +176 -0
  471. package/src/objects/LandObject.ts +2 -1
  472. package/src/objects/Marker.ts +1 -1
  473. package/src/objects/RfSensor.ts +1 -2
  474. package/src/objects/Satellite.ts +552 -0
  475. package/src/objects/Sensor.ts +280 -0
  476. package/src/objects/Star.ts +96 -0
  477. package/src/objects/index.ts +5 -0
  478. package/src/observation/Observation.ts +1 -1
  479. package/src/observation/ObservationOptical.ts +1 -1
  480. package/src/observation/ObservationRadar.ts +1 -1
  481. package/src/observation/ObservationUtils.ts +30 -1
  482. package/src/observation/RAE.ts +262 -0
  483. package/src/observation/RadecGeocentric.ts +206 -0
  484. package/src/observation/RadecTopocentric.ts +241 -0
  485. package/src/observation/index.ts +27 -0
  486. package/src/operations/BoxMuller.ts +1 -1
  487. package/src/operations/EulerAngles.ts +1 -1
  488. package/src/operations/Matrix.ts +473 -0
  489. package/src/operations/Quaternion.ts +1 -1
  490. package/src/operations/Random.ts +54 -0
  491. package/src/operations/RandomGaussianSource.ts +1 -1
  492. package/src/operations/Vector.ts +484 -0
  493. package/src/operations/Vector3D.ts +289 -0
  494. package/src/operations/operations.ts +27 -0
  495. package/src/optimize/ChebyshevCompressor.ts +1 -1
  496. package/src/optimize/PolynomialRegression.ts +1 -1
  497. package/src/optimize/SimplexEntry.ts +1 -1
  498. package/src/orbit_determination/BatchLeastSquaresOD.ts +1 -1
  499. package/src/orbit_determination/BatchLeastSquaresResult.ts +1 -1
  500. package/src/orbit_determination/GibbsIOD.ts +3 -1
  501. package/src/orbit_determination/GoodingIOD.ts +1 -1
  502. package/src/orbit_determination/HerrickGibbsIOD.ts +1 -1
  503. package/src/orbit_determination/LambertIOD.ts +1 -1
  504. package/src/orbit_determination/ModifiedGoodingIOD.ts +1 -1
  505. package/src/orbit_determination/index.ts +7 -0
  506. package/src/propagator/KeplerPropagator.ts +1 -1
  507. package/src/propagator/Propagator.ts +1 -1
  508. package/src/propagator/RkCheckpoint.ts +1 -1
  509. package/src/propagator/RkResult.ts +1 -1
  510. package/src/propagator/RungeKutta4Propagator.ts +1 -1
  511. package/src/propagator/RungeKuttaAdaptive.ts +1 -1
  512. package/src/propagator/Sgp4Propagator.ts +1 -1
  513. package/src/sgp4/index.ts +24 -0
  514. package/src/sgp4/sgp4-error.ts +53 -0
  515. package/src/sgp4/sgp4.LICENSE.md +28 -0
  516. package/src/sgp4/sgp4.ts +3986 -0
  517. package/src/smoothing/ExponentialSmoothing.ts +1 -1
  518. package/src/time/Epoch.ts +128 -0
  519. package/src/time/EpochGPS.ts +76 -0
  520. package/src/time/EpochTAI.ts +27 -0
  521. package/src/time/EpochTDB.ts +27 -0
  522. package/src/time/EpochTT.ts +27 -0
  523. package/src/time/EpochUTC.ts +188 -0
  524. package/src/time/EpochWindow.ts +33 -0
  525. package/src/time/TimeStamped.ts +50 -0
  526. package/src/time/index.ts +31 -0
  527. package/src/transforms/TransformCache.ts +46 -0
  528. package/src/transforms/conversions.ts +98 -0
  529. package/src/transforms/index.ts +1 -0
  530. package/src/transforms/transforms.ts +478 -2
  531. package/src/types/types.ts +721 -2
  532. package/src/utils/constants.ts +113 -0
  533. package/src/utils/functions.ts +562 -0
  534. package/src/utils/index.ts +3 -1
  535. package/src/utils/jacobian.ts +1 -1
  536. package/src/utils/linearDistance.ts +11 -0
@@ -15,8 +15,727 @@
15
15
  * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
16
16
  */
17
17
 
18
- import { Kilometers, Milliseconds, SatelliteParams, SensorParams, Vec3 } from 'ootk-core';
19
- import { CommLink } from '../main.js';
18
+ import { Vector3D, PassType, Satellite, CommLink, SatelliteParams, SensorParams } from '../main.js';
19
+ import { Sgp4ErrorCode } from '../sgp4/sgp4-error.js';
20
+
21
+ /**
22
+ * Represents a distinct type.
23
+ *
24
+ * This type is used to create new types based on existing ones, but with a
25
+ * unique identifier. This can be useful for creating types that are
26
+ * semantically different but structurally the same.
27
+ * @template T The base type from which the distinct type is created.
28
+ * @template DistinctName A unique identifier for the distinct type.
29
+ * __TYPE__ A property that holds the unique identifier for the
30
+ * distinct type.
31
+ */
32
+ type Distinct<T, DistinctName> = T & { __TYPE__: DistinctName };
33
+
34
+ // Possible usages
35
+
36
+ /**
37
+ * Represents a quantity of days.
38
+ */
39
+ export type Days = Distinct<number, 'Days'>;
40
+
41
+ /**
42
+ * Represents a quantity of hours.
43
+ *
44
+ * This type is based on the number type, but is distinct and cannot be used
45
+ * interchangeably with other number-based types.
46
+ */
47
+ export type Hours = Distinct<number, 'Hours'>;
48
+
49
+ /**
50
+ * Represents a quantity of minutes.
51
+ */
52
+ export type Minutes = Distinct<number, 'Minutes'>;
53
+
54
+ /**
55
+ * Represents a quantity of seconds.
56
+ */
57
+ export type Seconds = Distinct<number, 'Seconds'>;
58
+
59
+ /**
60
+ * Represents a quantity of milliseconds.
61
+ */
62
+ export type Milliseconds = Distinct<number, 'Milliseconds'>;
63
+
64
+ /**
65
+ * Represents a quantity of degrees.
66
+ */
67
+ export type Degrees = Distinct<number, 'Degrees'>;
68
+
69
+ /**
70
+ * Represents a quantity of radians.
71
+ */
72
+ export type Radians = Distinct<number, 'Radians'>;
73
+
74
+ /**
75
+ * Represents a quantity of kilometers.
76
+ */
77
+ export type Kilometers = Distinct<number, 'Kilometers'>;
78
+
79
+ /**
80
+ * Represents a quantity of meters.
81
+ */
82
+ export type Meters = Distinct<number, 'Meters'>;
83
+
84
+ /**
85
+ * Represents the type for seconds per meter per second.
86
+ */
87
+ export type SecondsPerMeterPerSecond = Distinct<number, 'SecondsPerMeterPerSecond'>;
88
+
89
+ /**
90
+ * Represents a value in kilometers per second.
91
+ */
92
+ export type KilometersPerSecond = Distinct<number, 'KilometersPerSecond'>;
93
+
94
+ /**
95
+ * Represents a value in Radians per second.
96
+ */
97
+ export type RadiansPerSecond = Distinct<number, 'RadiansPerSecond'>;
98
+
99
+ /**
100
+ * Represents a value in degrees per second.
101
+ */
102
+ export type DegreesPerSecond = Distinct<number, 'DegreesPerSecond'>;
103
+
104
+ /**
105
+ * Represents a value in meters per second.
106
+ */
107
+ export type MetersPerSecond = Distinct<number, 'MetersPerSecond'>;
108
+
109
+ /**
110
+ * Represents a three-dimensional vector.
111
+ *
112
+ * This type is used to represent a point in space in terms of x, y, and z
113
+ * coordinates. It is a generic type that allows for flexibility in the units of
114
+ * measure used for each dimension. The default unit of measure is Kilometers.
115
+ * @template Units The unit of measure used for the dimensions. This is
116
+ * typically a type representing a distance, such as kilometers or meters. The
117
+ * default is Kilometers.
118
+ * x The x dimension of the vector, representing the distance from the
119
+ * origin to the point in the x direction.
120
+ * y The y dimension of the vector, representing the distance from the
121
+ * origin to the point in the y direction. @property z The z dimension of the
122
+ * vector, representing the distance from the origin to the point in the z
123
+ * direction.
124
+ */
125
+ export type Vec3<Units = Kilometers> = {
126
+ x: Units;
127
+ y: Units;
128
+ z: Units;
129
+ };
130
+
131
+ /**
132
+ * Represents a three-dimensional vector in Earth-Centered Inertial (ECI)
133
+ * coordinates.
134
+ *
135
+ * This type is used to represent a point in space in terms of x, y, and z
136
+ * coordinates. It is a generic type that allows for flexibility in the units of
137
+ * measure used for each dimension. The default unit of measure is Kilometers.
138
+ * x The x dimension of the vector, representing the distance from the
139
+ * origin to the point in the x direction.
140
+ * y The y dimension of the vector, representing the distance from the
141
+ * origin to the point in the y direction. @property z The z dimension of the
142
+ * vector, representing the distance from the origin to the point in the z
143
+ * direction.
144
+ */
145
+ export type EciVec3<Units = Kilometers> = Vec3<Units>;
146
+
147
+ /**
148
+ * Represents a three-dimensional vector in Earth-Centered Fixed (ECF)
149
+ * coordinates.
150
+ *
151
+ * NOTE: ECF (Earth-Centered Fixed) and ECEF (Earth-Centered, Earth-Fixed) are
152
+ * essentially the same thing. Both refer to a coordinate system that is fixed
153
+ * with respect to the Earth, meaning that the coordinates of a point in this
154
+ * system do not change even as the Earth rotates.
155
+ *
156
+ * The difference between the two is that ECF is a Cartesian coordinate system,
157
+ * while ECEF is a spherical coordinate system. The ECF system is used in this
158
+ * library because it is easier to work with in the context of the SGP4
159
+ * algorithm.
160
+ *
161
+ * This type is used to represent a point in space in terms of x, y, and z
162
+ * coordinates. It is a generic type that allows for flexibility in the units of
163
+ * measure used for each dimension. The default unit of measure is Kilometers.
164
+ * x The x dimension of the vector, representing the distance from the
165
+ * origin to the point in the x direction.
166
+ * y The y dimension of the vector, representing the distance from the
167
+ * origin to the point in the y direction. @property z The z dimension of the
168
+ * vector, representing the distance from the origin to the point in the z
169
+ * direction.
170
+ */
171
+ export type EcfVec3<Units = Kilometers> = Vec3<Units>;
172
+
173
+ /**
174
+ * Represents a three-dimensional vector in Earth-Centered Earth-Fixed (ECEF)
175
+ * coordinates.
176
+ */
177
+ export type EcefVec3<Units = Kilometers> = EcfVec3<Units>;
178
+
179
+ /**
180
+ * Represents a three-dimensional vector in East, North, Up (ENU) coordinates.
181
+ *
182
+ * East–west tangent to parallels, North–south tangent to meridians, and Up–down
183
+ * in the direction normal to the oblate spheroid used as Earth's ellipsoid,
184
+ * which does not generally pass through the center of Earth.
185
+ *
186
+ * In many targeting and tracking applications the local East, North, Up (ENU)
187
+ * Cartesian coordinate system is far more intuitive and practical than ECEF or
188
+ * Geodetic coordinates. The local ENU coordinates are formed from a plane
189
+ * tangent to the Earth's surface fixed to a specific location and hence it is
190
+ * sometimes known as a "Local Tangent" or "local geodetic" plane. By convention
191
+ * the east axis is labeled x, the north y, and the up z.
192
+ * @see https://en.wikipedia.org/wiki/Local_tangent_plane_coordinates
193
+ * @template Units The unit of measure used for the dimensions. This is
194
+ * typically a type representing a distance, such as kilometers or meters. The
195
+ * default is Kilometers.
196
+ * e The east dimension of the vector, representing the distance from
197
+ * the origin to the point in the east direction.
198
+ * n The north dimension of the vector, representing the distance from
199
+ * the origin to the point in the north direction. @property u The up dimension
200
+ * of the vector, representing the distance from the origin to the point in the
201
+ * upward direction.
202
+ */
203
+ export type EnuVec3<Units = Kilometers> = Vec3<Units>;
204
+
205
+ /**
206
+ * Represents a three-dimensional vector in geographical coordinates.
207
+ *
208
+ * This type is used to represent a point in space in terms of latitude,
209
+ * longitude, and altitude. It is a generic type that allows for flexibility in
210
+ * the units of measure used for each dimension.
211
+ * @template A The unit of measure used for the latitude and longitude
212
+ * dimensions. This is typically a type representing an angle, such as degrees
213
+ * or radians. The default is Radians.
214
+ * @template D The unit of measure used for the altitude dimension. This is
215
+ * typically a type representing a distance, such as kilometers or meters. The
216
+ * default is Kilometers.
217
+ */
218
+ export type LlaVec3<A = Degrees, D = Kilometers> = {
219
+ lat: A;
220
+ lon: A;
221
+ alt: D;
222
+ };
223
+
224
+ /**
225
+ * Represents a three-dimensional vector in Range, Azimuth, and Elevation (RAE)
226
+ * coordinates.
227
+ *
228
+ * This type is used to represent a point in space in terms of range, azimuth,
229
+ * and elevation. It is a generic type that allows for flexibility in the units
230
+ * of measure used for each dimension.
231
+ * @template DistanceUnit The unit of measure used for the altitude dimension.
232
+ * This is typically a type representing a distance, such as kilometers or
233
+ * meters. The default is Kilometers.
234
+ * @template AngleUnit The unit of measure used for the latitude and longitude
235
+ * dimensions. This is typically a type representing an angle, such as degrees
236
+ * or radians. The default is Radians.
237
+ * rng The range dimension of the vector, representing the distance
238
+ * from the origin to the point.
239
+ * az The azimuth dimension of the vector, representing the angle in
240
+ * the horizontal plane from a reference direction. @property el The elevation
241
+ * dimension of the vector, representing the angle from the horizontal plane to
242
+ * the point.
243
+ */
244
+ export type RaeVec3<DistanceUnit = Kilometers, AngleUnit = Degrees> = {
245
+ rng: DistanceUnit;
246
+ az: AngleUnit;
247
+ el: AngleUnit;
248
+ };
249
+
250
+ /**
251
+ * Represents a three-dimensional vector in South, East, and Zenith (SEZ)
252
+ * coordinates.
253
+ *
254
+ * This type is used to represent a point in space in terms of south, east, and
255
+ * zenith. It is a generic type that allows for flexibility in the units of
256
+ * measure used for each dimension.
257
+ * s The south dimension of the vector
258
+ * e The east dimension of the vector @property z The zenith dimension
259
+ * of the vector
260
+ */
261
+ export type SezVec3<D = Kilometers> = {
262
+ s: D;
263
+ e: D;
264
+ z: D;
265
+ };
266
+
267
+ /**
268
+ * SatelliteRecord contains all of the orbital parameters necessary for running SGP4. It is generated by Sgp4.
269
+ */
270
+ export interface SatelliteRecord {
271
+ Om: number;
272
+ PInco: number;
273
+ a: number;
274
+ alta: number;
275
+ altp: number;
276
+ am: number;
277
+ argpdot: number;
278
+ argpo: number;
279
+ atime: number;
280
+ aycof: number;
281
+ bstar: number;
282
+ cc1: number;
283
+ cc4: number;
284
+ cc5: number;
285
+ con41: number;
286
+ d2: number;
287
+ d2201: number;
288
+ d2211: number;
289
+ d3: number;
290
+ d3210: number;
291
+ d3222: number;
292
+ d4: number;
293
+ d4410: number;
294
+ d4422: number;
295
+ d5220: number;
296
+ d5232: number;
297
+ d5421: number;
298
+ d5433: number;
299
+ dedt: number;
300
+ del1: number;
301
+ del2: number;
302
+ del3: number;
303
+ delmo: number;
304
+ didt: number;
305
+ dmdt: number;
306
+ dnodt: number;
307
+ domdt: number;
308
+ e3: number;
309
+ ecco: number;
310
+ ee2: number;
311
+ em: number;
312
+ epochdays: number;
313
+ epochyr: number;
314
+ error: Sgp4ErrorCode;
315
+ eta: number;
316
+ gsto: number;
317
+ im: number;
318
+ inclo: number;
319
+ init: boolean;
320
+ irez: number;
321
+ /** is imprecise flag */
322
+ isimp: boolean;
323
+ j2: number;
324
+ j3: number;
325
+ j3oj2: number;
326
+ j4: number;
327
+ jdsatepoch: number;
328
+ mdot: number;
329
+ method: string;
330
+ mm: number;
331
+ mo: number;
332
+ mus: number;
333
+ nddot: number;
334
+ ndot: number;
335
+ nm: number;
336
+ no: number;
337
+ nodecf: number;
338
+ nodedot: number;
339
+ nodeo: number;
340
+ om: number;
341
+ omgcof: number;
342
+ operationmode: string;
343
+ peo: number;
344
+ pgho: number;
345
+ pho: number;
346
+ plo: number;
347
+ radiusearthkm: number;
348
+ satnum: string;
349
+ se2: number;
350
+ se3: number;
351
+ sgh2: number;
352
+ sgh3: number;
353
+ sgh4: number;
354
+ sh2: number;
355
+ sh3: number;
356
+ si2: number;
357
+ si3: number;
358
+ sinmao: number;
359
+ sl2: number;
360
+ sl3: number;
361
+ sl4: number;
362
+ t: number;
363
+ t2cof: number;
364
+ t3cof: number;
365
+ t4cof: number;
366
+ t5cof: number;
367
+ tumin: number;
368
+ vkmpersec: number;
369
+ x1mth2: number;
370
+ x7thm1: number;
371
+ xfact: number;
372
+ xgh2: number;
373
+ xgh3: number;
374
+ xgh4: number;
375
+ xh2: number;
376
+ xh3: number;
377
+ xi2: number;
378
+ xi3: number;
379
+ xke: number;
380
+ xl2: number;
381
+ xl3: number;
382
+ xl4: number;
383
+ xlamo: number;
384
+ xlcof: number;
385
+ xli: number;
386
+ xmcof: number;
387
+ xni: number;
388
+ zmol: number;
389
+ zmos: number;
390
+ }
391
+
392
+ /**
393
+ * The StateVector is a type that represents the output from the Sgp4.propagate
394
+ * function. It consists of two main properties: position and velocity, each of
395
+ * which is a three-dimensional vector.
396
+ *
397
+ * The position and velocity vectors are represented as objects with x, y, and z
398
+ * properties, each of which is a number. Alternatively, they can be a boolean
399
+ * value.
400
+ *
401
+ * This type is primarily used in the context of satellite tracking and
402
+ * prediction, where it is crucial to know both the current position and
403
+ * velocity of a satellite.
404
+ */
405
+ export type StateVectorSgp4 = {
406
+ position:
407
+ | {
408
+ x: Kilometers;
409
+ y: Kilometers;
410
+ z: Kilometers;
411
+ }
412
+ | false;
413
+ velocity:
414
+ | {
415
+ x: KilometersPerSecond;
416
+ y: KilometersPerSecond;
417
+ z: KilometersPerSecond;
418
+ }
419
+ | false;
420
+ };
421
+
422
+ export type PosVel<T = Kilometers, T2 = KilometersPerSecond> = {
423
+ position: Vec3<T>;
424
+ velocity: Vec3<T2>;
425
+ };
426
+
427
+ /**
428
+ * A type that represents a three-dimensional vector in a flat array format.
429
+ * This type is used in vector mathematics and physics calculations.
430
+ *
431
+ * It is an array of three numbers, where each number represents a coordinate in
432
+ * 3D space:
433
+ * - The first number represents the x-coordinate.
434
+ * - The second number represents the y-coordinate.
435
+ * - The third number represents the z-coordinate.
436
+ *
437
+ * This format is particularly useful in scenarios where you need to perform
438
+ * operations on vectors, such as addition, subtraction, scalar multiplication,
439
+ * dot product, and cross product.
440
+ */
441
+ export type Vec3Flat<T = number> = [T, T, T];
442
+
443
+ /**
444
+ * A type that represents a two-line element set (TLE). A TLE is a data format
445
+ * used to convey sets of orbital elements that describe the orbits of
446
+ * Earth-orbiting objects. It consists of two lines of text, each of which is 69
447
+ * characters long.
448
+ * @see https://en.wikipedia.org/wiki/Two-line_element_set
449
+ */
450
+ export type TleLine1 = Distinct<string, 'TLE Line 1'>;
451
+
452
+ /**
453
+ * A type that represents a two-line element set (TLE). A TLE is a data format
454
+ * used to convey sets of orbital elements that describe the orbits of
455
+ * Earth-orbiting objects. It consists of two lines of text, each of which is 69
456
+ * characters long.
457
+ * @see https://en.wikipedia.org/wiki/Two-line_element_set
458
+ */
459
+ export type TleLine2 = Distinct<string, 'TLE Line 2'>;
460
+
461
+ /**
462
+ * The Line1Data type represents the first line of a two-line element set (TLE).
463
+ * A TLE is a data format used to convey sets of orbital elements that describe
464
+ * the orbits of Earth-orbiting objects.
465
+ *
466
+ * The properties of this type include:
467
+ * - lineNumber1: The line number of the TLE (should be 1 for this line).
468
+ * - satNum: The satellite number.
469
+ * - satNumRaw: The raw string representation of the satellite number.
470
+ * - classification: The classification of the satellite (e.g., "U" for
471
+ * unclassified).
472
+ * - intlDes: The international designator for the satellite.
473
+ * - intlDesYear: The year of the international designator.
474
+ * - intlDesLaunchNum: The launch number of the international designator.
475
+ * - intlDesLaunchPiece: The piece of the launch of the international
476
+ * designator.
477
+ * - epochYear: The last two digits of the year of the epoch.
478
+ * - epochYearFull: The full four-digit year of the epoch.
479
+ * - epochDay: The day of the year of the epoch.
480
+ * - meanMoDev1: The first derivative of the Mean Motion.
481
+ * - meanMoDev2: The second derivative of the Mean Motion.
482
+ * - bstar: The BSTAR drag term.
483
+ * - ephemerisType: The type of ephemeris used.
484
+ * - elsetNum: The element set number.
485
+ * - checksum1: The checksum of the first line of the TLE.
486
+ * @see https://en.wikipedia.org/wiki/Two-line_element_set
487
+ */
488
+ export type Line1Data = {
489
+ lineNumber1: number;
490
+ satNum: number;
491
+ satNumRaw: string;
492
+ classification: string;
493
+ intlDes: string;
494
+ intlDesYear: number;
495
+ intlDesLaunchNum: number;
496
+ intlDesLaunchPiece: string;
497
+ epochYear: number;
498
+ epochYearFull: number;
499
+ epochDay: number;
500
+ meanMoDev1: number;
501
+ meanMoDev2: number;
502
+ bstar: number;
503
+ ephemerisType: number;
504
+ elsetNum: number;
505
+ checksum1: number;
506
+ };
507
+
508
+ /**
509
+ * The Line2Data type represents the second line of a two-line element set
510
+ * (TLE). A TLE is a data format used to convey sets of orbital elements that
511
+ * describe the orbits of Earth-orbiting objects.
512
+ *
513
+ * The properties of this type include:
514
+ * - lineNumber2: The line number of the TLE (should be 2 for this line).
515
+ * - satNum: The satellite number.
516
+ * - satNumRaw: The raw string representation of the satellite number.
517
+ * - inclination: The inclination of the satellite's orbit.
518
+ * - rightAscension: The Right Ascension of the Ascending Node.
519
+ * - eccentricity: The eccentricity of the satellite's orbit.
520
+ * - argOfPerigee: The argument of perigee.
521
+ * - meanAnomaly: The mean anomaly of the satellite.
522
+ * - meanMotion: The mean motion of the satellite.
523
+ * - revNum: The revolution number at epoch.
524
+ * - checksum2: The checksum of the second line of the TLE.
525
+ * - period: The period of the satellite's orbit, derived from the mean motion.
526
+ * @see https://en.wikipedia.org/wiki/Two-line_element_set
527
+ */
528
+ export type Line2Data = {
529
+ lineNumber2: number;
530
+ satNum: number;
531
+ satNumRaw: string;
532
+ inclination: Degrees;
533
+ rightAscension: Degrees;
534
+ eccentricity: number;
535
+ argOfPerigee: Degrees;
536
+ meanAnomaly: Degrees;
537
+ meanMotion: number;
538
+ revNum: number;
539
+ checksum2: number;
540
+ period: Minutes;
541
+ };
542
+
543
+ /**
544
+ * Enum representing different types of objects.
545
+ */
546
+ export enum SpaceObjectType {
547
+ UNKNOWN = 0,
548
+ PAYLOAD = 1,
549
+ ROCKET_BODY = 2,
550
+ DEBRIS = 3,
551
+ SPECIAL = 4,
552
+ BALLISTIC_MISSILE = 8,
553
+ STAR = 9,
554
+ INTERGOVERNMENTAL_ORGANIZATION = 10,
555
+ SUBORBITAL_PAYLOAD_OPERATOR = 11,
556
+ PAYLOAD_OWNER = 12,
557
+ METEOROLOGICAL_ROCKET_LAUNCH_AGENCY_OR_MANUFACTURER = 13,
558
+ PAYLOAD_MANUFACTURER = 14,
559
+ LAUNCH_AGENCY = 15,
560
+ LAUNCH_SITE = 16,
561
+ LAUNCH_POSITION = 17,
562
+ LAUNCH_FACILITY = 18,
563
+ CONTROL_FACILITY = 19,
564
+ GROUND_SENSOR_STATION = 20,
565
+ OPTICAL = 21,
566
+ MECHANICAL = 22,
567
+ PHASED_ARRAY_RADAR = 23,
568
+ OBSERVER = 24,
569
+ BISTATIC_RADIO_TELESCOPE = 25,
570
+ COUNTRY = 26,
571
+ LAUNCH_VEHICLE_MANUFACTURER = 27,
572
+ ENGINE_MANUFACTURER = 28,
573
+ NOTIONAL = 29,
574
+ FRAGMENT = 30,
575
+ SHORT_TERM_FENCE = 31,
576
+ MAX_SPACE_OBJECT_TYPE = 32,
577
+ }
578
+
579
+ /**
580
+ * Represents the Greenwich Mean Sidereal Time (GMST).
581
+ *
582
+ * GMST is a time system that is a measure of the angle, on the celestial
583
+ * equator, from the Greenwich meridian to the meridian that passes through the
584
+ * vernal equinox.
585
+ */
586
+ export type GreenwichMeanSiderealTime = Distinct<number, 'Greenwich Mean Sidereal Time'>;
587
+
588
+ /**
589
+ * Represents the azimuth and elevation of an object in the sky. Azimuth and
590
+ * elevation are the two coordinates that define the position of a celestial
591
+ * body (sun, moon, planet, star, etc.) in the sky as observed from a specific
592
+ * location on the Earth's surface.
593
+ * @template Units The units in which the azimuth and elevation are expressed.
594
+ * By default, this is radians.
595
+ * az The azimuth of the object. This is the angle between the
596
+ * observer's north vector and the perpendicular projection of the object onto
597
+ * the observer's local horizon.
598
+ * el The elevation of the object. This is the angle between the
599
+ * object and the observer's local horizon.
600
+ */
601
+ export type AzEl<Units = Radians> = {
602
+ az: Units;
603
+ el: Units;
604
+ };
605
+
606
+ /**
607
+ * Represents the coordinates of a celestial object in Right Ascension (RA) and
608
+ * Declination (Dec).
609
+ */
610
+ export type RaDec = {
611
+ dec: Radians;
612
+ ra: Radians;
613
+ dist: Kilometers;
614
+ };
615
+
616
+ /**
617
+ * Represents the solar noon and nadir times.
618
+ * solarNoon The time at which the sun is at its highest point in the
619
+ * sky (directly above the observer's head). This is the midpoint of the day.
620
+ * nadir The time at which the sun is at its lowest point, directly
621
+ * below the observer. This is the midpoint of the night.
622
+ */
623
+ export type SunTime = {
624
+ solarNoon: Date;
625
+ nadir: Date;
626
+ goldenHourDuskStart: Date;
627
+ goldenHourDawnEnd: Date;
628
+ sunsetStart: Date;
629
+ sunriseEnd: Date;
630
+ sunsetEnd: Date;
631
+ sunriseStart: Date;
632
+ goldenHourDuskEnd: Date;
633
+ goldenHourDawnStart: Date;
634
+ blueHourDuskStart: Date;
635
+ blueHourDawnEnd: Date;
636
+ civilDusk: Date;
637
+ civilDawn: Date;
638
+ blueHourDuskEnd: Date;
639
+ blueHourDawnStart: Date;
640
+ nauticalDusk: Date;
641
+ nauticalDawn: Date;
642
+ amateurDusk: Date;
643
+ amateurDawn: Date;
644
+ astronomicalDusk: Date;
645
+ astronomicalDawn: Date;
646
+ };
647
+
648
+ export type LaunchDetails = {
649
+ launchDate?: string;
650
+ launchMass?: string;
651
+ launchSite?: string;
652
+ launchVehicle?: string;
653
+ launchPad?: string;
654
+ };
655
+
656
+ export type SpaceCraftDetails = {
657
+ lifetime?: string | number;
658
+ maneuver?: string;
659
+ manufacturer?: string;
660
+ motor?: string;
661
+ power?: string;
662
+ payload?: string;
663
+ purpose?: string;
664
+ shape?: string;
665
+ span?: string;
666
+ bus?: string;
667
+ configuration?: string;
668
+ equipment?: string;
669
+ dryMass?: string;
670
+ };
671
+
672
+ export type OperationsDetails = {
673
+ user?: string;
674
+ mission?: string;
675
+ owner?: string;
676
+ country?: string;
677
+ };
678
+
679
+ export type Lookangle = {
680
+ type: PassType;
681
+ time: Date;
682
+ az: Degrees;
683
+ el: Degrees;
684
+ rng: Kilometers;
685
+ maxElPass?: Degrees;
686
+ };
687
+ /**
688
+ * Two-line element set data for a satellite.
689
+ */
690
+ export type TleData = {
691
+ satNum: number;
692
+ intlDes: string;
693
+ epochYear: number;
694
+ epochDay: number;
695
+ meanMoDev1: number;
696
+ meanMoDev2: number;
697
+ bstar: number;
698
+ inclination: Degrees;
699
+ rightAscension: Degrees;
700
+ eccentricity: number;
701
+ argOfPerigee: Degrees;
702
+ meanAnomaly: Degrees;
703
+ meanMotion: number;
704
+ period: Minutes;
705
+ };
706
+ /**
707
+ * Represents a set of data containing both Line 1 and Line 2 TLE information.
708
+ */
709
+ export type TleDataFull = Line1Data & Line2Data;
710
+ export type StringifiedNumber = `${number}.${number}`;
711
+
712
+ /**
713
+ * Represents a set of data containing both Line 1 and Line 2 TLE information.
714
+ *
715
+ * TODO: #22 TleParams types should be more consistent.
716
+ */
717
+ export type TleParams = {
718
+ sat?: Satellite;
719
+ inc: string | number;
720
+ meanmo: string | number;
721
+ rasc: string | number;
722
+ argPe: string | number;
723
+ meana: string | number;
724
+ ecen: string;
725
+ epochyr: string;
726
+ epochday: string;
727
+ /** COSPAR International Designator */
728
+ intl: string;
729
+ /** alpha 5 satellite number */
730
+ scc: string;
731
+ };
732
+ // / Position and velocity [Vector3D] container.
733
+
734
+ export type PositionVelocity = {
735
+ position: Vector3D<Kilometers>;
736
+ velocity: Vector3D<KilometersPerSecond>;
737
+ };
738
+
20
739
 
21
740
  export enum ZoomValue {
22
741
  LEO = 0.45,