ootk 6.0.0-rc.4 → 6.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 (1008) hide show
  1. package/dist/main.cjs +29551 -0
  2. package/dist/main.d.cts +16961 -0
  3. package/dist/main.d.ts +16940 -32
  4. package/dist/main.js +29243 -35
  5. package/package.json +38 -25
  6. package/.claude/PROMPT.md +0 -13
  7. package/.claude/hooks/post-tool-use.ts +0 -33
  8. package/.claude/hooks/user-prompt-submit.ts +0 -138
  9. package/.claude/settings.local.json +0 -21
  10. package/.claude/skill-rules.json +0 -11
  11. package/.claude/skills/ootk-dev/SKILL.md +0 -16
  12. package/ADVANCED_FEATURES_GUIDE.md +0 -1025
  13. package/CHANGELOG.md +0 -511
  14. package/CLAUDE.md +0 -67
  15. package/FUTURE-WORK.md +0 -325
  16. package/dist/body/CelestialBody.d.ts +0 -155
  17. package/dist/body/CelestialBody.js +0 -207
  18. package/dist/body/CelestialBody.js.map +0 -1
  19. package/dist/body/CelestialBodyType.d.ts +0 -41
  20. package/dist/body/CelestialBodyType.js +0 -55
  21. package/dist/body/CelestialBodyType.js.map +0 -1
  22. package/dist/body/Earth.d.ts +0 -68
  23. package/dist/body/Earth.js +0 -198
  24. package/dist/body/Earth.js.map +0 -1
  25. package/dist/body/EphemerisBody.d.ts +0 -153
  26. package/dist/body/EphemerisBody.js +0 -235
  27. package/dist/body/EphemerisBody.js.map +0 -1
  28. package/dist/body/MoonBody.d.ts +0 -200
  29. package/dist/body/MoonBody.js +0 -414
  30. package/dist/body/MoonBody.js.map +0 -1
  31. package/dist/body/NutationAngles.d.ts +0 -38
  32. package/dist/body/NutationAngles.js +0 -24
  33. package/dist/body/NutationAngles.js.map +0 -1
  34. package/dist/body/PlanetBody.d.ts +0 -130
  35. package/dist/body/PlanetBody.js +0 -293
  36. package/dist/body/PlanetBody.js.map +0 -1
  37. package/dist/body/PrecessionAngles.d.ts +0 -29
  38. package/dist/body/PrecessionAngles.js +0 -24
  39. package/dist/body/PrecessionAngles.js.map +0 -1
  40. package/dist/body/SolarSystem.d.ts +0 -124
  41. package/dist/body/SolarSystem.js +0 -218
  42. package/dist/body/SolarSystem.js.map +0 -1
  43. package/dist/body/SunBody.d.ts +0 -253
  44. package/dist/body/SunBody.js +0 -433
  45. package/dist/body/SunBody.js.map +0 -1
  46. package/dist/body/index.d.ts +0 -36
  47. package/dist/body/index.js +0 -39
  48. package/dist/body/index.js.map +0 -1
  49. package/dist/comm/Antenna.d.ts +0 -112
  50. package/dist/comm/Antenna.js +0 -173
  51. package/dist/comm/Antenna.js.map +0 -1
  52. package/dist/comm/Beacon.d.ts +0 -141
  53. package/dist/comm/Beacon.js +0 -268
  54. package/dist/comm/Beacon.js.map +0 -1
  55. package/dist/comm/CommTypes.d.ts +0 -181
  56. package/dist/comm/CommTypes.js +0 -115
  57. package/dist/comm/CommTypes.js.map +0 -1
  58. package/dist/comm/CommunicationDevice.d.ts +0 -115
  59. package/dist/comm/CommunicationDevice.js +0 -142
  60. package/dist/comm/CommunicationDevice.js.map +0 -1
  61. package/dist/comm/Receiver.d.ts +0 -139
  62. package/dist/comm/Receiver.js +0 -219
  63. package/dist/comm/Receiver.js.map +0 -1
  64. package/dist/comm/Transmitter.d.ts +0 -136
  65. package/dist/comm/Transmitter.js +0 -273
  66. package/dist/comm/Transmitter.js.map +0 -1
  67. package/dist/comm/Transponder.d.ts +0 -154
  68. package/dist/comm/Transponder.js +0 -281
  69. package/dist/comm/Transponder.js.map +0 -1
  70. package/dist/comm/index.d.ts +0 -30
  71. package/dist/comm/index.js +0 -26
  72. package/dist/comm/index.js.map +0 -1
  73. package/dist/conjunction/CatalogScreener.d.ts +0 -134
  74. package/dist/conjunction/CatalogScreener.js +0 -213
  75. package/dist/conjunction/CatalogScreener.js.map +0 -1
  76. package/dist/conjunction/ConjunctionAssessment.d.ts +0 -149
  77. package/dist/conjunction/ConjunctionAssessment.js +0 -288
  78. package/dist/conjunction/ConjunctionAssessment.js.map +0 -1
  79. package/dist/conjunction/ConjunctionEvent.d.ts +0 -110
  80. package/dist/conjunction/ConjunctionEvent.js +0 -154
  81. package/dist/conjunction/ConjunctionEvent.js.map +0 -1
  82. package/dist/conjunction/CovarianceRealism.d.ts +0 -189
  83. package/dist/conjunction/CovarianceRealism.js +0 -348
  84. package/dist/conjunction/CovarianceRealism.js.map +0 -1
  85. package/dist/conjunction/ProbabilityOfCollision.d.ts +0 -102
  86. package/dist/conjunction/ProbabilityOfCollision.js +0 -242
  87. package/dist/conjunction/ProbabilityOfCollision.js.map +0 -1
  88. package/dist/conjunction/ScreeningFilter.d.ts +0 -112
  89. package/dist/conjunction/ScreeningFilter.js +0 -160
  90. package/dist/conjunction/ScreeningFilter.js.map +0 -1
  91. package/dist/conjunction/index.d.ts +0 -22
  92. package/dist/conjunction/index.js +0 -23
  93. package/dist/conjunction/index.js.map +0 -1
  94. package/dist/constellation/ConstellationGenerator.d.ts +0 -137
  95. package/dist/constellation/ConstellationGenerator.js +0 -270
  96. package/dist/constellation/ConstellationGenerator.js.map +0 -1
  97. package/dist/constellation/index.d.ts +0 -17
  98. package/dist/constellation/index.js +0 -18
  99. package/dist/constellation/index.js.map +0 -1
  100. package/dist/coordinate/ClassicalElements.d.ts +0 -170
  101. package/dist/coordinate/ClassicalElements.js +0 -334
  102. package/dist/coordinate/ClassicalElements.js.map +0 -1
  103. package/dist/coordinate/EquinoctialElements.d.ts +0 -114
  104. package/dist/coordinate/EquinoctialElements.js +0 -172
  105. package/dist/coordinate/EquinoctialElements.js.map +0 -1
  106. package/dist/coordinate/FormatTle.d.ts +0 -95
  107. package/dist/coordinate/FormatTle.js +0 -188
  108. package/dist/coordinate/FormatTle.js.map +0 -1
  109. package/dist/coordinate/Geodetic.d.ts +0 -110
  110. package/dist/coordinate/Geodetic.js +0 -164
  111. package/dist/coordinate/Geodetic.js.map +0 -1
  112. package/dist/coordinate/Hill.d.ts +0 -49
  113. package/dist/coordinate/Hill.js +0 -222
  114. package/dist/coordinate/Hill.js.map +0 -1
  115. package/dist/coordinate/ITRF.d.ts +0 -75
  116. package/dist/coordinate/ITRF.js +0 -135
  117. package/dist/coordinate/ITRF.js.map +0 -1
  118. package/dist/coordinate/J2000.d.ts +0 -65
  119. package/dist/coordinate/J2000.js +0 -120
  120. package/dist/coordinate/J2000.js.map +0 -1
  121. package/dist/coordinate/RIC.d.ts +0 -64
  122. package/dist/coordinate/RIC.js +0 -79
  123. package/dist/coordinate/RIC.js.map +0 -1
  124. package/dist/coordinate/RelativeState.d.ts +0 -70
  125. package/dist/coordinate/RelativeState.js +0 -79
  126. package/dist/coordinate/RelativeState.js.map +0 -1
  127. package/dist/coordinate/StateVector.d.ts +0 -76
  128. package/dist/coordinate/StateVector.js +0 -97
  129. package/dist/coordinate/StateVector.js.map +0 -1
  130. package/dist/coordinate/TEME.d.ts +0 -57
  131. package/dist/coordinate/TEME.js +0 -89
  132. package/dist/coordinate/TEME.js.map +0 -1
  133. package/dist/coordinate/Tle.d.ts +0 -429
  134. package/dist/coordinate/Tle.js +0 -866
  135. package/dist/coordinate/Tle.js.map +0 -1
  136. package/dist/coordinate/index.d.ts +0 -12
  137. package/dist/coordinate/index.js +0 -13
  138. package/dist/coordinate/index.js.map +0 -1
  139. package/dist/coordinate/tle-format-data.d.ts +0 -41
  140. package/dist/coordinate/tle-format-data.js +0 -46
  141. package/dist/coordinate/tle-format-data.js.map +0 -1
  142. package/dist/covariance/CovarianceSample.d.ts +0 -46
  143. package/dist/covariance/CovarianceSample.js +0 -221
  144. package/dist/covariance/CovarianceSample.js.map +0 -1
  145. package/dist/covariance/StateCovariance.d.ts +0 -42
  146. package/dist/covariance/StateCovariance.js +0 -65
  147. package/dist/covariance/StateCovariance.js.map +0 -1
  148. package/dist/covariance/index.d.ts +0 -2
  149. package/dist/covariance/index.js +0 -3
  150. package/dist/covariance/index.js.map +0 -1
  151. package/dist/data/DataHandler.d.ts +0 -66
  152. package/dist/data/DataHandler.js +0 -80
  153. package/dist/data/DataHandler.js.map +0 -1
  154. package/dist/data/values/Egm96Data.d.ts +0 -37
  155. package/dist/data/values/Egm96Data.js +0 -63
  156. package/dist/data/values/Egm96Data.js.map +0 -1
  157. package/dist/data/values/HpAtmosphereData.d.ts +0 -33
  158. package/dist/data/values/HpAtmosphereData.js +0 -58
  159. package/dist/data/values/HpAtmosphereData.js.map +0 -1
  160. package/dist/data/values/HpAtmosphereResult.d.ts +0 -29
  161. package/dist/data/values/HpAtmosphereResult.js +0 -38
  162. package/dist/data/values/HpAtmosphereResult.js.map +0 -1
  163. package/dist/data/values/Iau1980Data.d.ts +0 -36
  164. package/dist/data/values/Iau1980Data.js +0 -52
  165. package/dist/data/values/Iau1980Data.js.map +0 -1
  166. package/dist/data/values/LeapSecond.d.ts +0 -27
  167. package/dist/data/values/LeapSecond.js +0 -35
  168. package/dist/data/values/LeapSecond.js.map +0 -1
  169. package/dist/data/values/LeapSecondData.d.ts +0 -41
  170. package/dist/data/values/LeapSecondData.js +0 -103
  171. package/dist/data/values/LeapSecondData.js.map +0 -1
  172. package/dist/data/values/egm96.d.ts +0 -24
  173. package/dist/data/values/egm96.js +0 -726
  174. package/dist/data/values/egm96.js.map +0 -1
  175. package/dist/data/values/hpAtmosphere.d.ts +0 -24
  176. package/dist/data/values/hpAtmosphere.js +0 -76
  177. package/dist/data/values/hpAtmosphere.js.map +0 -1
  178. package/dist/data/values/iau1980.d.ts +0 -24
  179. package/dist/data/values/iau1980.js +0 -30
  180. package/dist/data/values/iau1980.js.map +0 -1
  181. package/dist/enums/AngularDiameterMethod.d.ts +0 -27
  182. package/dist/enums/AngularDiameterMethod.js +0 -29
  183. package/dist/enums/AngularDiameterMethod.js.map +0 -1
  184. package/dist/enums/AngularDistanceMethod.d.ts +0 -27
  185. package/dist/enums/AngularDistanceMethod.js +0 -29
  186. package/dist/enums/AngularDistanceMethod.js.map +0 -1
  187. package/dist/enums/CatalogSource.d.ts +0 -10
  188. package/dist/enums/CatalogSource.js +0 -12
  189. package/dist/enums/CatalogSource.js.map +0 -1
  190. package/dist/enums/CommLink.d.ts +0 -7
  191. package/dist/enums/CommLink.js +0 -9
  192. package/dist/enums/CommLink.js.map +0 -1
  193. package/dist/enums/FovFrame.d.ts +0 -25
  194. package/dist/enums/FovFrame.js +0 -27
  195. package/dist/enums/FovFrame.js.map +0 -1
  196. package/dist/enums/FovShape.d.ts +0 -25
  197. package/dist/enums/FovShape.js +0 -27
  198. package/dist/enums/FovShape.js.map +0 -1
  199. package/dist/enums/OrbitRegime.d.ts +0 -30
  200. package/dist/enums/OrbitRegime.js +0 -32
  201. package/dist/enums/OrbitRegime.js.map +0 -1
  202. package/dist/enums/PassType.d.ts +0 -28
  203. package/dist/enums/PassType.js +0 -30
  204. package/dist/enums/PassType.js.map +0 -1
  205. package/dist/enums/SensorType.d.ts +0 -33
  206. package/dist/enums/SensorType.js +0 -35
  207. package/dist/enums/SensorType.js.map +0 -1
  208. package/dist/enums/Sgp4OpsMode.d.ts +0 -26
  209. package/dist/enums/Sgp4OpsMode.js +0 -28
  210. package/dist/enums/Sgp4OpsMode.js.map +0 -1
  211. package/dist/enums/index.d.ts +0 -10
  212. package/dist/enums/index.js +0 -11
  213. package/dist/enums/index.js.map +0 -1
  214. package/dist/errors/index.d.ts +0 -153
  215. package/dist/errors/index.js +0 -179
  216. package/dist/errors/index.js.map +0 -1
  217. package/dist/force/AtmosphericDrag.d.ts +0 -50
  218. package/dist/force/AtmosphericDrag.js +0 -92
  219. package/dist/force/AtmosphericDrag.js.map +0 -1
  220. package/dist/force/EarthGravity.d.ts +0 -53
  221. package/dist/force/EarthGravity.js +0 -142
  222. package/dist/force/EarthGravity.js.map +0 -1
  223. package/dist/force/Force.d.ts +0 -26
  224. package/dist/force/Force.js +0 -22
  225. package/dist/force/Force.js.map +0 -1
  226. package/dist/force/ForceModel.d.ts +0 -45
  227. package/dist/force/ForceModel.js +0 -83
  228. package/dist/force/ForceModel.js.map +0 -1
  229. package/dist/force/Gravity.d.ts +0 -38
  230. package/dist/force/Gravity.js +0 -47
  231. package/dist/force/Gravity.js.map +0 -1
  232. package/dist/force/SolarRadiationPressure.d.ts +0 -26
  233. package/dist/force/SolarRadiationPressure.js +0 -45
  234. package/dist/force/SolarRadiationPressure.js.map +0 -1
  235. package/dist/force/ThirdBodyGravity.d.ts +0 -26
  236. package/dist/force/ThirdBodyGravity.js +0 -59
  237. package/dist/force/ThirdBodyGravity.js.map +0 -1
  238. package/dist/force/Thrust.d.ts +0 -34
  239. package/dist/force/Thrust.js +0 -58
  240. package/dist/force/Thrust.js.map +0 -1
  241. package/dist/force/index.d.ts +0 -8
  242. package/dist/force/index.js +0 -9
  243. package/dist/force/index.js.map +0 -1
  244. package/dist/interfaces/BaseObjectParams.d.ts +0 -30
  245. package/dist/interfaces/BaseObjectParams.js +0 -24
  246. package/dist/interfaces/BaseObjectParams.js.map +0 -1
  247. package/dist/interfaces/ClassicalElementsParams.d.ts +0 -33
  248. package/dist/interfaces/ClassicalElementsParams.js +0 -24
  249. package/dist/interfaces/ClassicalElementsParams.js.map +0 -1
  250. package/dist/interfaces/EquinoctialElementsParams.d.ts +0 -35
  251. package/dist/interfaces/EquinoctialElementsParams.js +0 -24
  252. package/dist/interfaces/EquinoctialElementsParams.js.map +0 -1
  253. package/dist/interfaces/GroundPositionParams.d.ts +0 -28
  254. package/dist/interfaces/GroundPositionParams.js +0 -24
  255. package/dist/interfaces/GroundPositionParams.js.map +0 -1
  256. package/dist/interfaces/OmmFormat.d.ts +0 -62
  257. package/dist/interfaces/OmmFormat.js +0 -2
  258. package/dist/interfaces/OmmFormat.js.map +0 -1
  259. package/dist/interfaces/OptionsParams.d.ts +0 -3
  260. package/dist/interfaces/OptionsParams.js +0 -2
  261. package/dist/interfaces/OptionsParams.js.map +0 -1
  262. package/dist/interfaces/SatelliteParams.d.ts +0 -38
  263. package/dist/interfaces/SatelliteParams.js +0 -2
  264. package/dist/interfaces/SatelliteParams.js.map +0 -1
  265. package/dist/interfaces/StarObjectParams.d.ts +0 -10
  266. package/dist/interfaces/StarObjectParams.js +0 -2
  267. package/dist/interfaces/StarObjectParams.js.map +0 -1
  268. package/dist/interfaces/TimeVariables.d.ts +0 -6
  269. package/dist/interfaces/TimeVariables.js +0 -2
  270. package/dist/interfaces/TimeVariables.js.map +0 -1
  271. package/dist/interfaces/index.d.ts +0 -7
  272. package/dist/interfaces/index.js +0 -2
  273. package/dist/interfaces/index.js.map +0 -1
  274. package/dist/interpolator/ChebyshevCoefficients.d.ts +0 -50
  275. package/dist/interpolator/ChebyshevCoefficients.js +0 -94
  276. package/dist/interpolator/ChebyshevCoefficients.js.map +0 -1
  277. package/dist/interpolator/ChebyshevInterpolator.d.ts +0 -38
  278. package/dist/interpolator/ChebyshevInterpolator.js +0 -71
  279. package/dist/interpolator/ChebyshevInterpolator.js.map +0 -1
  280. package/dist/interpolator/CubicSpline.d.ts +0 -35
  281. package/dist/interpolator/CubicSpline.js +0 -69
  282. package/dist/interpolator/CubicSpline.js.map +0 -1
  283. package/dist/interpolator/CubicSplineInterpolator.d.ts +0 -36
  284. package/dist/interpolator/CubicSplineInterpolator.js +0 -80
  285. package/dist/interpolator/CubicSplineInterpolator.js.map +0 -1
  286. package/dist/interpolator/FieldInterpolator.d.ts +0 -28
  287. package/dist/interpolator/FieldInterpolator.js +0 -24
  288. package/dist/interpolator/FieldInterpolator.js.map +0 -1
  289. package/dist/interpolator/Interpolator.d.ts +0 -22
  290. package/dist/interpolator/Interpolator.js +0 -47
  291. package/dist/interpolator/Interpolator.js.map +0 -1
  292. package/dist/interpolator/LagrangeInterpolator.d.ts +0 -40
  293. package/dist/interpolator/LagrangeInterpolator.js +0 -159
  294. package/dist/interpolator/LagrangeInterpolator.js.map +0 -1
  295. package/dist/interpolator/StateInterpolator.d.ts +0 -27
  296. package/dist/interpolator/StateInterpolator.js +0 -27
  297. package/dist/interpolator/StateInterpolator.js.map +0 -1
  298. package/dist/interpolator/VerletBlendInterpolator.d.ts +0 -43
  299. package/dist/interpolator/VerletBlendInterpolator.js +0 -118
  300. package/dist/interpolator/VerletBlendInterpolator.js.map +0 -1
  301. package/dist/interpolator/index.d.ts +0 -31
  302. package/dist/interpolator/index.js +0 -32
  303. package/dist/interpolator/index.js.map +0 -1
  304. package/dist/main.js.map +0 -1
  305. package/dist/maneuver/TwoBurnOrbitTransfer.d.ts +0 -41
  306. package/dist/maneuver/TwoBurnOrbitTransfer.js +0 -65
  307. package/dist/maneuver/TwoBurnOrbitTransfer.js.map +0 -1
  308. package/dist/maneuver/Waypoint.d.ts +0 -91
  309. package/dist/maneuver/Waypoint.js +0 -179
  310. package/dist/maneuver/Waypoint.js.map +0 -1
  311. package/dist/maneuver/index.d.ts +0 -24
  312. package/dist/maneuver/index.js +0 -25
  313. package/dist/maneuver/index.js.map +0 -1
  314. package/dist/objects/AccessCalculator.d.ts +0 -112
  315. package/dist/objects/AccessCalculator.js +0 -268
  316. package/dist/objects/AccessCalculator.js.map +0 -1
  317. package/dist/objects/AccessWindow.d.ts +0 -95
  318. package/dist/objects/AccessWindow.js +0 -69
  319. package/dist/objects/AccessWindow.js.map +0 -1
  320. package/dist/objects/BaseObject.d.ts +0 -119
  321. package/dist/objects/BaseObject.js +0 -203
  322. package/dist/objects/BaseObject.js.map +0 -1
  323. package/dist/objects/CenterBody.d.ts +0 -41
  324. package/dist/objects/CenterBody.js +0 -85
  325. package/dist/objects/CenterBody.js.map +0 -1
  326. package/dist/objects/DynamicGroundObject.d.ts +0 -309
  327. package/dist/objects/DynamicGroundObject.js +0 -758
  328. package/dist/objects/DynamicGroundObject.js.map +0 -1
  329. package/dist/objects/EphemerisSatellite.d.ts +0 -209
  330. package/dist/objects/EphemerisSatellite.js +0 -480
  331. package/dist/objects/EphemerisSatellite.js.map +0 -1
  332. package/dist/objects/GroundObject.d.ts +0 -124
  333. package/dist/objects/GroundObject.js +0 -192
  334. package/dist/objects/GroundObject.js.map +0 -1
  335. package/dist/objects/GroundStation.d.ts +0 -60
  336. package/dist/objects/GroundStation.js +0 -113
  337. package/dist/objects/GroundStation.js.map +0 -1
  338. package/dist/objects/History.d.ts +0 -101
  339. package/dist/objects/History.js +0 -180
  340. package/dist/objects/History.js.map +0 -1
  341. package/dist/objects/InterpolatorType.d.ts +0 -39
  342. package/dist/objects/InterpolatorType.js +0 -41
  343. package/dist/objects/InterpolatorType.js.map +0 -1
  344. package/dist/objects/LandObject.d.ts +0 -38
  345. package/dist/objects/LandObject.js +0 -48
  346. package/dist/objects/LandObject.js.map +0 -1
  347. package/dist/objects/Marker.d.ts +0 -24
  348. package/dist/objects/Marker.js +0 -30
  349. package/dist/objects/Marker.js.map +0 -1
  350. package/dist/objects/ObjectTypes.d.ts +0 -60
  351. package/dist/objects/ObjectTypes.js +0 -18
  352. package/dist/objects/ObjectTypes.js.map +0 -1
  353. package/dist/objects/Satellite.d.ts +0 -443
  354. package/dist/objects/Satellite.js +0 -843
  355. package/dist/objects/Satellite.js.map +0 -1
  356. package/dist/objects/SpaceObject.d.ts +0 -205
  357. package/dist/objects/SpaceObject.js +0 -149
  358. package/dist/objects/SpaceObject.js.map +0 -1
  359. package/dist/objects/Star.d.ts +0 -44
  360. package/dist/objects/Star.js +0 -95
  361. package/dist/objects/Star.js.map +0 -1
  362. package/dist/objects/VisualizationHelpers.d.ts +0 -148
  363. package/dist/objects/VisualizationHelpers.js +0 -218
  364. package/dist/objects/VisualizationHelpers.js.map +0 -1
  365. package/dist/objects/index.d.ts +0 -24
  366. package/dist/objects/index.js +0 -16
  367. package/dist/objects/index.js.map +0 -1
  368. package/dist/observation/Observation.d.ts +0 -89
  369. package/dist/observation/Observation.js +0 -51
  370. package/dist/observation/Observation.js.map +0 -1
  371. package/dist/observation/ObservationOptical.d.ts +0 -48
  372. package/dist/observation/ObservationOptical.js +0 -105
  373. package/dist/observation/ObservationOptical.js.map +0 -1
  374. package/dist/observation/ObservationRadar.d.ts +0 -46
  375. package/dist/observation/ObservationRadar.js +0 -96
  376. package/dist/observation/ObservationRadar.js.map +0 -1
  377. package/dist/observation/ObservationUtils.d.ts +0 -22
  378. package/dist/observation/ObservationUtils.js +0 -46
  379. package/dist/observation/ObservationUtils.js.map +0 -1
  380. package/dist/observation/PropagatorPairs.d.ts +0 -32
  381. package/dist/observation/PropagatorPairs.js +0 -43
  382. package/dist/observation/PropagatorPairs.js.map +0 -1
  383. package/dist/observation/RAE.d.ts +0 -111
  384. package/dist/observation/RAE.js +0 -214
  385. package/dist/observation/RAE.js.map +0 -1
  386. package/dist/observation/RadecGeocentric.d.ts +0 -111
  387. package/dist/observation/RadecGeocentric.js +0 -169
  388. package/dist/observation/RadecGeocentric.js.map +0 -1
  389. package/dist/observation/RadecTopocentric.d.ts +0 -123
  390. package/dist/observation/RadecTopocentric.js +0 -200
  391. package/dist/observation/RadecTopocentric.js.map +0 -1
  392. package/dist/observation/index.d.ts +0 -26
  393. package/dist/observation/index.js +0 -27
  394. package/dist/observation/index.js.map +0 -1
  395. package/dist/operations/BoxMuller.d.ts +0 -46
  396. package/dist/operations/BoxMuller.js +0 -77
  397. package/dist/operations/BoxMuller.js.map +0 -1
  398. package/dist/operations/EulerAngles.d.ts +0 -105
  399. package/dist/operations/EulerAngles.js +0 -161
  400. package/dist/operations/EulerAngles.js.map +0 -1
  401. package/dist/operations/Matrix.d.ts +0 -170
  402. package/dist/operations/Matrix.js +0 -405
  403. package/dist/operations/Matrix.js.map +0 -1
  404. package/dist/operations/Quaternion.d.ts +0 -56
  405. package/dist/operations/Quaternion.js +0 -167
  406. package/dist/operations/Quaternion.js.map +0 -1
  407. package/dist/operations/Random.d.ts +0 -40
  408. package/dist/operations/Random.js +0 -50
  409. package/dist/operations/Random.js.map +0 -1
  410. package/dist/operations/RandomGaussianSource.d.ts +0 -24
  411. package/dist/operations/RandomGaussianSource.js +0 -43
  412. package/dist/operations/RandomGaussianSource.js.map +0 -1
  413. package/dist/operations/Vector.d.ts +0 -262
  414. package/dist/operations/Vector.js +0 -415
  415. package/dist/operations/Vector.js.map +0 -1
  416. package/dist/operations/Vector3D.d.ts +0 -80
  417. package/dist/operations/Vector3D.js +0 -224
  418. package/dist/operations/Vector3D.js.map +0 -1
  419. package/dist/operations/index.d.ts +0 -4
  420. package/dist/operations/index.js +0 -5
  421. package/dist/operations/index.js.map +0 -1
  422. package/dist/operations/operations.d.ts +0 -26
  423. package/dist/operations/operations.js +0 -27
  424. package/dist/operations/operations.js.map +0 -1
  425. package/dist/optimize/ChebyshevCompressor.d.ts +0 -80
  426. package/dist/optimize/ChebyshevCompressor.js +0 -128
  427. package/dist/optimize/ChebyshevCompressor.js.map +0 -1
  428. package/dist/optimize/DownhillSimplex.d.ts +0 -98
  429. package/dist/optimize/DownhillSimplex.js +0 -216
  430. package/dist/optimize/DownhillSimplex.js.map +0 -1
  431. package/dist/optimize/GoldenSection.d.ts +0 -177
  432. package/dist/optimize/GoldenSection.js +0 -202
  433. package/dist/optimize/GoldenSection.js.map +0 -1
  434. package/dist/optimize/PolynomialRegression.d.ts +0 -151
  435. package/dist/optimize/PolynomialRegression.js +0 -184
  436. package/dist/optimize/PolynomialRegression.js.map +0 -1
  437. package/dist/optimize/SimpleLinearRegression.d.ts +0 -153
  438. package/dist/optimize/SimpleLinearRegression.js +0 -212
  439. package/dist/optimize/SimpleLinearRegression.js.map +0 -1
  440. package/dist/optimize/index.d.ts +0 -5
  441. package/dist/optimize/index.js +0 -6
  442. package/dist/optimize/index.js.map +0 -1
  443. package/dist/optimize/internal/PolynomicalRegressionResult.d.ts +0 -118
  444. package/dist/optimize/internal/PolynomicalRegressionResult.js +0 -123
  445. package/dist/optimize/internal/PolynomicalRegressionResult.js.map +0 -1
  446. package/dist/optimize/internal/SimplexEntry.d.ts +0 -150
  447. package/dist/optimize/internal/SimplexEntry.js +0 -147
  448. package/dist/optimize/internal/SimplexEntry.js.map +0 -1
  449. package/dist/orbit-design/RepeatGroundTrack.d.ts +0 -184
  450. package/dist/orbit-design/RepeatGroundTrack.js +0 -359
  451. package/dist/orbit-design/RepeatGroundTrack.js.map +0 -1
  452. package/dist/orbit-design/index.d.ts +0 -18
  453. package/dist/orbit-design/index.js +0 -18
  454. package/dist/orbit-design/index.js.map +0 -1
  455. package/dist/orbit-determination/BatchLeastSquaresOD.d.ts +0 -69
  456. package/dist/orbit-determination/BatchLeastSquaresOD.js +0 -143
  457. package/dist/orbit-determination/BatchLeastSquaresOD.js.map +0 -1
  458. package/dist/orbit-determination/BatchLeastSquaresResult.d.ts +0 -31
  459. package/dist/orbit-determination/BatchLeastSquaresResult.js +0 -36
  460. package/dist/orbit-determination/BatchLeastSquaresResult.js.map +0 -1
  461. package/dist/orbit-determination/GaussIOD.d.ts +0 -98
  462. package/dist/orbit-determination/GaussIOD.js +0 -294
  463. package/dist/orbit-determination/GaussIOD.js.map +0 -1
  464. package/dist/orbit-determination/GibbsIOD.d.ts +0 -38
  465. package/dist/orbit-determination/GibbsIOD.js +0 -77
  466. package/dist/orbit-determination/GibbsIOD.js.map +0 -1
  467. package/dist/orbit-determination/GoodingIOD.d.ts +0 -155
  468. package/dist/orbit-determination/GoodingIOD.js +0 -492
  469. package/dist/orbit-determination/GoodingIOD.js.map +0 -1
  470. package/dist/orbit-determination/HerrickGibbsIOD.d.ts +0 -33
  471. package/dist/orbit-determination/HerrickGibbsIOD.js +0 -50
  472. package/dist/orbit-determination/HerrickGibbsIOD.js.map +0 -1
  473. package/dist/orbit-determination/LambertIOD.d.ts +0 -59
  474. package/dist/orbit-determination/LambertIOD.js +0 -213
  475. package/dist/orbit-determination/LambertIOD.js.map +0 -1
  476. package/dist/orbit-determination/LevenbergMarquardtOD.d.ts +0 -72
  477. package/dist/orbit-determination/LevenbergMarquardtOD.js +0 -202
  478. package/dist/orbit-determination/LevenbergMarquardtOD.js.map +0 -1
  479. package/dist/orbit-determination/LevenbergMarquardtResult.d.ts +0 -36
  480. package/dist/orbit-determination/LevenbergMarquardtResult.js +0 -43
  481. package/dist/orbit-determination/LevenbergMarquardtResult.js.map +0 -1
  482. package/dist/orbit-determination/ModifiedGoodingIOD.d.ts +0 -41
  483. package/dist/orbit-determination/ModifiedGoodingIOD.js +0 -94
  484. package/dist/orbit-determination/ModifiedGoodingIOD.js.map +0 -1
  485. package/dist/orbit-determination/index.d.ts +0 -9
  486. package/dist/orbit-determination/index.js +0 -10
  487. package/dist/orbit-determination/index.js.map +0 -1
  488. package/dist/parsers/CdmExporter.d.ts +0 -85
  489. package/dist/parsers/CdmExporter.js +0 -235
  490. package/dist/parsers/CdmExporter.js.map +0 -1
  491. package/dist/parsers/CdmParser.d.ts +0 -97
  492. package/dist/parsers/CdmParser.js +0 -396
  493. package/dist/parsers/CdmParser.js.map +0 -1
  494. package/dist/parsers/CdmTypes.d.ts +0 -240
  495. package/dist/parsers/CdmTypes.js +0 -18
  496. package/dist/parsers/CdmTypes.js.map +0 -1
  497. package/dist/parsers/HorizonsParser.d.ts +0 -128
  498. package/dist/parsers/HorizonsParser.js +0 -320
  499. package/dist/parsers/HorizonsParser.js.map +0 -1
  500. package/dist/parsers/OemParser.d.ts +0 -56
  501. package/dist/parsers/OemParser.js +0 -235
  502. package/dist/parsers/OemParser.js.map +0 -1
  503. package/dist/parsers/OemTypes.d.ts +0 -100
  504. package/dist/parsers/OemTypes.js +0 -18
  505. package/dist/parsers/OemTypes.js.map +0 -1
  506. package/dist/parsers/index.d.ts +0 -23
  507. package/dist/parsers/index.js +0 -24
  508. package/dist/parsers/index.js.map +0 -1
  509. package/dist/propagator/DormandPrince54Propagator.d.ts +0 -28
  510. package/dist/propagator/DormandPrince54Propagator.js +0 -64
  511. package/dist/propagator/DormandPrince54Propagator.js.map +0 -1
  512. package/dist/propagator/KeplerPropagator.d.ts +0 -35
  513. package/dist/propagator/KeplerPropagator.js +0 -83
  514. package/dist/propagator/KeplerPropagator.js.map +0 -1
  515. package/dist/propagator/Propagator.d.ts +0 -34
  516. package/dist/propagator/Propagator.js +0 -162
  517. package/dist/propagator/Propagator.js.map +0 -1
  518. package/dist/propagator/RkCheckpoint.d.ts +0 -22
  519. package/dist/propagator/RkCheckpoint.js +0 -27
  520. package/dist/propagator/RkCheckpoint.js.map +0 -1
  521. package/dist/propagator/RkResult.d.ts +0 -23
  522. package/dist/propagator/RkResult.js +0 -30
  523. package/dist/propagator/RkResult.js.map +0 -1
  524. package/dist/propagator/RungeKutta4Propagator.d.ts +0 -50
  525. package/dist/propagator/RungeKutta4Propagator.js +0 -141
  526. package/dist/propagator/RungeKutta4Propagator.js.map +0 -1
  527. package/dist/propagator/RungeKutta89Propagator.d.ts +0 -28
  528. package/dist/propagator/RungeKutta89Propagator.js +0 -126
  529. package/dist/propagator/RungeKutta89Propagator.js.map +0 -1
  530. package/dist/propagator/RungeKuttaAdaptive.d.ts +0 -51
  531. package/dist/propagator/RungeKuttaAdaptive.js +0 -199
  532. package/dist/propagator/RungeKuttaAdaptive.js.map +0 -1
  533. package/dist/propagator/Sgp4Propagator.d.ts +0 -76
  534. package/dist/propagator/Sgp4Propagator.js +0 -96
  535. package/dist/propagator/Sgp4Propagator.js.map +0 -1
  536. package/dist/propagator/index.d.ts +0 -9
  537. package/dist/propagator/index.js +0 -10
  538. package/dist/propagator/index.js.map +0 -1
  539. package/dist/scheduling/ContactScheduler.d.ts +0 -248
  540. package/dist/scheduling/ContactScheduler.js +0 -503
  541. package/dist/scheduling/ContactScheduler.js.map +0 -1
  542. package/dist/scheduling/ScheduledContact.d.ts +0 -155
  543. package/dist/scheduling/ScheduledContact.js +0 -189
  544. package/dist/scheduling/ScheduledContact.js.map +0 -1
  545. package/dist/scheduling/index.d.ts +0 -5
  546. package/dist/scheduling/index.js +0 -4
  547. package/dist/scheduling/index.js.map +0 -1
  548. package/dist/sensor/FieldOfView.d.ts +0 -250
  549. package/dist/sensor/FieldOfView.js +0 -470
  550. package/dist/sensor/FieldOfView.js.map +0 -1
  551. package/dist/sensor/LaserRangingSensor.d.ts +0 -122
  552. package/dist/sensor/LaserRangingSensor.js +0 -174
  553. package/dist/sensor/LaserRangingSensor.js.map +0 -1
  554. package/dist/sensor/MechanicalRadar.d.ts +0 -86
  555. package/dist/sensor/MechanicalRadar.js +0 -130
  556. package/dist/sensor/MechanicalRadar.js.map +0 -1
  557. package/dist/sensor/OpticalSensor.d.ts +0 -111
  558. package/dist/sensor/OpticalSensor.js +0 -164
  559. package/dist/sensor/OpticalSensor.js.map +0 -1
  560. package/dist/sensor/PassiveRFSensor.d.ts +0 -115
  561. package/dist/sensor/PassiveRFSensor.js +0 -168
  562. package/dist/sensor/PassiveRFSensor.js.map +0 -1
  563. package/dist/sensor/PhasedArrayRadar.d.ts +0 -170
  564. package/dist/sensor/PhasedArrayRadar.js +0 -290
  565. package/dist/sensor/PhasedArrayRadar.js.map +0 -1
  566. package/dist/sensor/RadarSensor.d.ts +0 -94
  567. package/dist/sensor/RadarSensor.js +0 -106
  568. package/dist/sensor/RadarSensor.js.map +0 -1
  569. package/dist/sensor/Sensor.d.ts +0 -271
  570. package/dist/sensor/Sensor.js +0 -343
  571. package/dist/sensor/Sensor.js.map +0 -1
  572. package/dist/sensor/index.d.ts +0 -74
  573. package/dist/sensor/index.js +0 -70
  574. package/dist/sensor/index.js.map +0 -1
  575. package/dist/sgp4/index.d.ts +0 -25
  576. package/dist/sgp4/index.js +0 -25
  577. package/dist/sgp4/index.js.map +0 -1
  578. package/dist/sgp4/sgp4-error.d.ts +0 -22
  579. package/dist/sgp4/sgp4-error.js +0 -44
  580. package/dist/sgp4/sgp4-error.js.map +0 -1
  581. package/dist/sgp4/sgp4.d.ts +0 -99
  582. package/dist/sgp4/sgp4.js +0 -3170
  583. package/dist/sgp4/sgp4.js.map +0 -1
  584. package/dist/smoothing/ExponentialSmoothing.d.ts +0 -37
  585. package/dist/smoothing/ExponentialSmoothing.js +0 -75
  586. package/dist/smoothing/ExponentialSmoothing.js.map +0 -1
  587. package/dist/time/Epoch.d.ts +0 -81
  588. package/dist/time/Epoch.js +0 -146
  589. package/dist/time/Epoch.js.map +0 -1
  590. package/dist/time/EpochGPS.d.ts +0 -106
  591. package/dist/time/EpochGPS.js +0 -134
  592. package/dist/time/EpochGPS.js.map +0 -1
  593. package/dist/time/EpochTAI.d.ts +0 -62
  594. package/dist/time/EpochTAI.js +0 -63
  595. package/dist/time/EpochTAI.js.map +0 -1
  596. package/dist/time/EpochTDB.d.ts +0 -72
  597. package/dist/time/EpochTDB.js +0 -73
  598. package/dist/time/EpochTDB.js.map +0 -1
  599. package/dist/time/EpochTT.d.ts +0 -75
  600. package/dist/time/EpochTT.js +0 -76
  601. package/dist/time/EpochTT.js.map +0 -1
  602. package/dist/time/EpochUTC.d.ts +0 -123
  603. package/dist/time/EpochUTC.js +0 -200
  604. package/dist/time/EpochUTC.js.map +0 -1
  605. package/dist/time/EpochWindow.d.ts +0 -28
  606. package/dist/time/EpochWindow.js +0 -31
  607. package/dist/time/EpochWindow.js.map +0 -1
  608. package/dist/time/TimeStamped.d.ts +0 -61
  609. package/dist/time/TimeStamped.js +0 -73
  610. package/dist/time/TimeStamped.js.map +0 -1
  611. package/dist/time/index.d.ts +0 -8
  612. package/dist/time/index.js +0 -9
  613. package/dist/time/index.js.map +0 -1
  614. package/dist/transforms/TransformCache.d.ts +0 -27
  615. package/dist/transforms/TransformCache.js +0 -41
  616. package/dist/transforms/TransformCache.js.map +0 -1
  617. package/dist/transforms/conversions.d.ts +0 -63
  618. package/dist/transforms/conversions.js +0 -89
  619. package/dist/transforms/conversions.js.map +0 -1
  620. package/dist/transforms/index.d.ts +0 -2
  621. package/dist/transforms/index.js +0 -3
  622. package/dist/transforms/index.js.map +0 -1
  623. package/dist/transforms/transforms.d.ts +0 -241
  624. package/dist/transforms/transforms.js +0 -479
  625. package/dist/transforms/transforms.js.map +0 -1
  626. package/dist/types/types.d.ts +0 -757
  627. package/dist/types/types.js +0 -90
  628. package/dist/types/types.js.map +0 -1
  629. package/dist/utils/constants.d.ts +0 -80
  630. package/dist/utils/constants.js +0 -87
  631. package/dist/utils/constants.js.map +0 -1
  632. package/dist/utils/create-covariance-from-tle.d.ts +0 -18
  633. package/dist/utils/create-covariance-from-tle.js +0 -57
  634. package/dist/utils/create-covariance-from-tle.js.map +0 -1
  635. package/dist/utils/functions.d.ts +0 -236
  636. package/dist/utils/functions.js +0 -501
  637. package/dist/utils/functions.js.map +0 -1
  638. package/dist/utils/index.d.ts +0 -5
  639. package/dist/utils/index.js +0 -6
  640. package/dist/utils/index.js.map +0 -1
  641. package/dist/utils/jacobian.d.ts +0 -17
  642. package/dist/utils/jacobian.js +0 -34
  643. package/dist/utils/jacobian.js.map +0 -1
  644. package/dist/utils/linearDistance.d.ts +0 -8
  645. package/dist/utils/linearDistance.js +0 -10
  646. package/dist/utils/linearDistance.js.map +0 -1
  647. package/docs/README.md +0 -151
  648. package/docs/getting-started.md +0 -792
  649. package/docs/lambert-satellite-integration-guide.md +0 -766
  650. package/docs/user-guide.md +0 -1935
  651. package/jest.config.mjs +0 -29
  652. package/src/body/CelestialBody.ts +0 -316
  653. package/src/body/CelestialBodyType.ts +0 -55
  654. package/src/body/Earth.ts +0 -260
  655. package/src/body/EphemerisBody.ts +0 -349
  656. package/src/body/MoonBody.ts +0 -552
  657. package/src/body/NutationAngles.ts +0 -40
  658. package/src/body/PlanetBody.ts +0 -354
  659. package/src/body/PrecessionAngles.ts +0 -31
  660. package/src/body/SolarSystem.ts +0 -276
  661. package/src/body/SunBody.ts +0 -538
  662. package/src/body/__tests__/Earth.test.ts +0 -135
  663. package/src/body/__tests__/EphemerisBody.test.ts +0 -323
  664. package/src/body/__tests__/MoonBody.test.ts +0 -198
  665. package/src/body/__tests__/PlanetBody.test.ts +0 -257
  666. package/src/body/__tests__/SolarSystem.test.ts +0 -237
  667. package/src/body/__tests__/SunBody.test.ts +0 -227
  668. package/src/body/__tests__/__snapshots__/Earth.test.ts.snap +0 -39
  669. package/src/body/index.ts +0 -64
  670. package/src/body/suncalc.LICENSE.md +0 -18
  671. package/src/comm/Antenna.ts +0 -213
  672. package/src/comm/Beacon.ts +0 -328
  673. package/src/comm/CommTypes.ts +0 -216
  674. package/src/comm/CommunicationDevice.ts +0 -199
  675. package/src/comm/Receiver.ts +0 -263
  676. package/src/comm/Transmitter.ts +0 -349
  677. package/src/comm/Transponder.ts +0 -360
  678. package/src/comm/__tests__/Antenna.test.ts +0 -155
  679. package/src/comm/__tests__/Beacon.test.ts +0 -333
  680. package/src/comm/__tests__/CommTypes.test.ts +0 -165
  681. package/src/comm/__tests__/Receiver.test.ts +0 -215
  682. package/src/comm/__tests__/Transmitter.test.ts +0 -164
  683. package/src/comm/__tests__/Transponder.test.ts +0 -181
  684. package/src/comm/index.ts +0 -60
  685. package/src/conjunction/CatalogScreener.ts +0 -322
  686. package/src/conjunction/ConjunctionAssessment.ts +0 -410
  687. package/src/conjunction/ConjunctionEvent.ts +0 -185
  688. package/src/conjunction/CovarianceRealism.ts +0 -472
  689. package/src/conjunction/ProbabilityOfCollision.ts +0 -302
  690. package/src/conjunction/ScreeningFilter.ts +0 -206
  691. package/src/conjunction/__tests__/CatalogScreener.test.ts +0 -280
  692. package/src/conjunction/__tests__/ConjunctionAssessment.basic.test.ts +0 -250
  693. package/src/conjunction/__tests__/ConjunctionAssessment.highfidelity.test.ts +0 -76
  694. package/src/conjunction/__tests__/CovarianceRealism.test.ts +0 -296
  695. package/src/conjunction/index.ts +0 -35
  696. package/src/constellation/ConstellationGenerator.ts +0 -377
  697. package/src/constellation/__tests__/ConstellationGenerator.test.ts +0 -446
  698. package/src/constellation/index.ts +0 -18
  699. package/src/coordinate/ClassicalElements.ts +0 -394
  700. package/src/coordinate/EquinoctialElements.ts +0 -189
  701. package/src/coordinate/FormatTle.ts +0 -219
  702. package/src/coordinate/Geodetic.ts +0 -191
  703. package/src/coordinate/Hill.ts +0 -326
  704. package/src/coordinate/ITRF.ts +0 -146
  705. package/src/coordinate/J2000.ts +0 -130
  706. package/src/coordinate/README.md +0 -788
  707. package/src/coordinate/RIC.ts +0 -87
  708. package/src/coordinate/RelativeState.ts +0 -101
  709. package/src/coordinate/StateVector.ts +0 -128
  710. package/src/coordinate/TEME.ts +0 -97
  711. package/src/coordinate/Tle.ts +0 -1025
  712. package/src/coordinate/__tests__/ClassicalElements.test.ts +0 -129
  713. package/src/coordinate/__tests__/EquinoctialElements.test.ts +0 -108
  714. package/src/coordinate/__tests__/FormatTle.test.ts +0 -92
  715. package/src/coordinate/__tests__/Geodetic.test.ts +0 -165
  716. package/src/coordinate/__tests__/Hill.test.ts +0 -195
  717. package/src/coordinate/__tests__/ITRF.test.ts +0 -231
  718. package/src/coordinate/__tests__/J2000.test.ts +0 -132
  719. package/src/coordinate/__tests__/RIC.test.ts +0 -107
  720. package/src/coordinate/__tests__/TEME.test.ts +0 -48
  721. package/src/coordinate/__tests__/Tle.test.ts +0 -185
  722. package/src/coordinate/__tests__/__snapshots__/ClassicalElements.test.ts.snap +0 -106
  723. package/src/coordinate/__tests__/__snapshots__/EquinoctialElements.test.ts.snap +0 -93
  724. package/src/coordinate/__tests__/__snapshots__/Geodetic.test.ts.snap +0 -54
  725. package/src/coordinate/__tests__/__snapshots__/ITRF.test.ts.snap +0 -321
  726. package/src/coordinate/__tests__/__snapshots__/J2000.test.ts.snap +0 -26
  727. package/src/coordinate/__tests__/__snapshots__/RIC.test.ts.snap +0 -79
  728. package/src/coordinate/__tests__/__snapshots__/TEME.test.ts.snap +0 -41
  729. package/src/coordinate/__tests__/__snapshots__/Tle.test.ts.snap +0 -180
  730. package/src/coordinate/index.ts +0 -13
  731. package/src/coordinate/tle-format-data.ts +0 -47
  732. package/src/covariance/CovarianceSample.ts +0 -292
  733. package/src/covariance/StateCovariance.ts +0 -69
  734. package/src/covariance/__tests__/CovarianceSample.test.ts +0 -143
  735. package/src/covariance/__tests__/StateCovariance.test.ts +0 -90
  736. package/src/covariance/index.ts +0 -3
  737. package/src/data/DataHandler.ts +0 -88
  738. package/src/data/values/Egm96Data.ts +0 -75
  739. package/src/data/values/HpAtmosphereData.ts +0 -76
  740. package/src/data/values/HpAtmosphereResult.ts +0 -41
  741. package/src/data/values/Iau1980Data.ts +0 -63
  742. package/src/data/values/LeapSecond.ts +0 -37
  743. package/src/data/values/LeapSecondData.ts +0 -113
  744. package/src/data/values/__tests__/Egm96Data.test.ts +0 -33
  745. package/src/data/values/__tests__/HpAtmosphereData.test.ts +0 -82
  746. package/src/data/values/__tests__/LeapSecondData.test.ts +0 -59
  747. package/src/data/values/egm96.ts +0 -728
  748. package/src/data/values/hpAtmosphere.ts +0 -79
  749. package/src/data/values/iau1980.ts +0 -32
  750. package/src/enums/AngularDiameterMethod.ts +0 -28
  751. package/src/enums/AngularDistanceMethod.ts +0 -28
  752. package/src/enums/CatalogSource.ts +0 -10
  753. package/src/enums/CommLink.ts +0 -7
  754. package/src/enums/FovFrame.ts +0 -26
  755. package/src/enums/FovShape.ts +0 -26
  756. package/src/enums/OrbitRegime.ts +0 -31
  757. package/src/enums/PassType.ts +0 -29
  758. package/src/enums/SensorType.ts +0 -34
  759. package/src/enums/Sgp4OpsMode.ts +0 -27
  760. package/src/enums/index.ts +0 -11
  761. package/src/errors/__tests__/errors.test.ts +0 -196
  762. package/src/errors/index.ts +0 -185
  763. package/src/fetch/horizons-constants.ts +0 -53
  764. package/src/fetch/horizons-interfaces.ts +0 -38
  765. package/src/fetch/horizons.ts +0 -300
  766. package/src/fetch/index.ts +0 -26
  767. package/src/force/AtmosphericDrag.ts +0 -120
  768. package/src/force/EarthGravity.ts +0 -182
  769. package/src/force/Force.ts +0 -31
  770. package/src/force/ForceModel.ts +0 -99
  771. package/src/force/Gravity.ts +0 -53
  772. package/src/force/README.md +0 -99
  773. package/src/force/SolarRadiationPressure.ts +0 -43
  774. package/src/force/ThirdBodyGravity.ts +0 -64
  775. package/src/force/Thrust.ts +0 -83
  776. package/src/force/__tests__/AtmosphericDrag.test.ts +0 -168
  777. package/src/force/__tests__/EarthGravity.test.ts +0 -115
  778. package/src/force/__tests__/ForceModel.test.ts +0 -188
  779. package/src/force/__tests__/Gravity.test.ts +0 -81
  780. package/src/force/__tests__/SolarRadiationPressure.test.ts +0 -115
  781. package/src/force/__tests__/ThirdBodyGravity.test.ts +0 -119
  782. package/src/force/__tests__/Thrust.test.ts +0 -132
  783. package/src/force/index.ts +0 -9
  784. package/src/interfaces/BaseObjectParams.ts +0 -32
  785. package/src/interfaces/ClassicalElementsParams.ts +0 -35
  786. package/src/interfaces/EquinoctialElementsParams.ts +0 -37
  787. package/src/interfaces/GroundPositionParams.ts +0 -30
  788. package/src/interfaces/OmmFormat.ts +0 -63
  789. package/src/interfaces/OptionsParams.ts +0 -3
  790. package/src/interfaces/SatelliteParams.ts +0 -57
  791. package/src/interfaces/StarObjectParams.ts +0 -11
  792. package/src/interfaces/TimeVariables.ts +0 -7
  793. package/src/interfaces/index.ts +0 -8
  794. package/src/interpolator/ChebyshevCoefficients.ts +0 -109
  795. package/src/interpolator/ChebyshevInterpolator.ts +0 -87
  796. package/src/interpolator/CubicSpline.ts +0 -72
  797. package/src/interpolator/CubicSplineInterpolator.ts +0 -90
  798. package/src/interpolator/FieldInterpolator.ts +0 -35
  799. package/src/interpolator/Interpolator.ts +0 -56
  800. package/src/interpolator/LagrangeInterpolator.ts +0 -192
  801. package/src/interpolator/StateInterpolator.ts +0 -37
  802. package/src/interpolator/VerletBlendInterpolator.ts +0 -146
  803. package/src/interpolator/__tests__/ChebyshevCoefficients.test.ts +0 -105
  804. package/src/interpolator/__tests__/ChebyshevInterpolator.test.ts +0 -81
  805. package/src/interpolator/__tests__/CubicSpline.test.ts +0 -80
  806. package/src/interpolator/__tests__/CubicSplineInterpolator.test.ts +0 -94
  807. package/src/interpolator/__tests__/FieldInterpolator.test.ts +0 -59
  808. package/src/interpolator/__tests__/Interpolator.test.ts +0 -131
  809. package/src/interpolator/__tests__/LagrangeInterpolator.test.ts +0 -121
  810. package/src/interpolator/__tests__/StateInterpolator.test.ts +0 -57
  811. package/src/interpolator/__tests__/VerletBlendInterpolator.test.ts +0 -116
  812. package/src/interpolator/index.ts +0 -32
  813. package/src/main.ts +0 -87
  814. package/src/maneuver/TwoBurnOrbitTransfer.ts +0 -79
  815. package/src/maneuver/Waypoint.ts +0 -267
  816. package/src/maneuver/__tests__/TwoBurnOrbitTransfer.test.ts +0 -90
  817. package/src/maneuver/__tests__/Waypoint.test.ts +0 -427
  818. package/src/maneuver/index.ts +0 -25
  819. package/src/objects/AccessCalculator.ts +0 -345
  820. package/src/objects/AccessWindow.ts +0 -129
  821. package/src/objects/BaseObject.ts +0 -242
  822. package/src/objects/CenterBody.ts +0 -88
  823. package/src/objects/DynamicGroundObject.ts +0 -975
  824. package/src/objects/EphemerisSatellite.ts +0 -629
  825. package/src/objects/GroundObject.ts +0 -246
  826. package/src/objects/GroundStation.ts +0 -130
  827. package/src/objects/History.ts +0 -228
  828. package/src/objects/InterpolatorType.ts +0 -42
  829. package/src/objects/LandObject.ts +0 -62
  830. package/src/objects/Marker.ts +0 -32
  831. package/src/objects/ObjectTypes.ts +0 -66
  832. package/src/objects/Satellite.ts +0 -1013
  833. package/src/objects/SpaceObject.ts +0 -304
  834. package/src/objects/Star.ts +0 -135
  835. package/src/objects/VisualizationHelpers.ts +0 -324
  836. package/src/objects/__tests__/AccessCalculator.test.ts +0 -499
  837. package/src/objects/__tests__/DynamicGroundObject.test.ts +0 -859
  838. package/src/objects/__tests__/EphemerisSatellite.test.ts +0 -589
  839. package/src/objects/__tests__/GroundStation.test.ts +0 -204
  840. package/src/objects/__tests__/Satellite.test.ts +0 -487
  841. package/src/objects/__tests__/SpaceObject.rae.test.ts +0 -156
  842. package/src/objects/__tests__/VisualizationHelpers.test.ts +0 -438
  843. package/src/objects/index.ts +0 -31
  844. package/src/observation/Observation.ts +0 -113
  845. package/src/observation/ObservationOptical.ts +0 -146
  846. package/src/observation/ObservationRadar.ts +0 -135
  847. package/src/observation/ObservationUtils.ts +0 -69
  848. package/src/observation/PropagatorPairs.ts +0 -45
  849. package/src/observation/RAE.ts +0 -261
  850. package/src/observation/RadecGeocentric.ts +0 -206
  851. package/src/observation/RadecTopocentric.ts +0 -247
  852. package/src/observation/__tests__/RAE.test.ts +0 -135
  853. package/src/observation/__tests__/RadecGeocentric.test.ts +0 -107
  854. package/src/observation/__tests__/RadecTopocentric.test.ts +0 -121
  855. package/src/observation/__tests__/__snapshots__/RAE.test.ts.snap +0 -91
  856. package/src/observation/__tests__/__snapshots__/RadecGeocentric.test.ts.snap +0 -71
  857. package/src/observation/__tests__/__snapshots__/RadecTopocentric.test.ts.snap +0 -71
  858. package/src/observation/index.ts +0 -28
  859. package/src/operations/BoxMuller.ts +0 -87
  860. package/src/operations/EulerAngles.ts +0 -183
  861. package/src/operations/Matrix.ts +0 -473
  862. package/src/operations/Quaternion.ts +0 -222
  863. package/src/operations/Random.ts +0 -54
  864. package/src/operations/RandomGaussianSource.ts +0 -51
  865. package/src/operations/Vector.ts +0 -484
  866. package/src/operations/Vector3D.ts +0 -272
  867. package/src/operations/__tests__/Matrix.test.ts +0 -277
  868. package/src/operations/__tests__/Random.test.ts +0 -24
  869. package/src/operations/__tests__/Vector.test.ts +0 -269
  870. package/src/operations/__tests__/Vector3D.test.ts +0 -100
  871. package/src/operations/__tests__/__snapshots__/Matrix.test.ts.snap +0 -161
  872. package/src/operations/__tests__/__snapshots__/Random.test.ts.snap +0 -7
  873. package/src/operations/__tests__/__snapshots__/Vector.test.ts.snap +0 -218
  874. package/src/operations/__tests__/__snapshots__/Vector3D.test.ts.snap +0 -138
  875. package/src/operations/index.ts +0 -5
  876. package/src/operations/operations.ts +0 -28
  877. package/src/optimize/ChebyshevCompressor.ts +0 -141
  878. package/src/optimize/DownhillSimplex.ts +0 -246
  879. package/src/optimize/GoldenSection.ts +0 -230
  880. package/src/optimize/PolynomialRegression.ts +0 -211
  881. package/src/optimize/README.md +0 -343
  882. package/src/optimize/SimpleLinearRegression.ts +0 -227
  883. package/src/optimize/__tests__/ChebyshevCompressor.test.ts +0 -40
  884. package/src/optimize/__tests__/DownhillSimplex.test.ts +0 -168
  885. package/src/optimize/__tests__/GoldenSection.test.ts +0 -21
  886. package/src/optimize/__tests__/PolynomialRegression.test.ts +0 -24
  887. package/src/optimize/__tests__/SimpleLinearRegression.test.ts +0 -31
  888. package/src/optimize/index.ts +0 -6
  889. package/src/optimize/internal/PolynomicalRegressionResult.ts +0 -126
  890. package/src/optimize/internal/SimplexEntry.ts +0 -169
  891. package/src/orbit-design/RepeatGroundTrack.ts +0 -516
  892. package/src/orbit-design/__tests__/RepeatGroundTrack.test.ts +0 -526
  893. package/src/orbit-design/index.ts +0 -23
  894. package/src/orbit-determination/BatchLeastSquaresOD.ts +0 -174
  895. package/src/orbit-determination/BatchLeastSquaresResult.ts +0 -33
  896. package/src/orbit-determination/GaussIOD.ts +0 -396
  897. package/src/orbit-determination/GibbsIOD.ts +0 -98
  898. package/src/orbit-determination/GoodingIOD.ts +0 -680
  899. package/src/orbit-determination/HerrickGibbsIOD.ts +0 -51
  900. package/src/orbit-determination/LambertIOD.ts +0 -260
  901. package/src/orbit-determination/LevenbergMarquardtOD.ts +0 -258
  902. package/src/orbit-determination/LevenbergMarquardtResult.ts +0 -42
  903. package/src/orbit-determination/ModifiedGoodingIOD.test.ts +0 -86
  904. package/src/orbit-determination/ModifiedGoodingIOD.ts +0 -145
  905. package/src/orbit-determination/README.md +0 -353
  906. package/src/orbit-determination/__tests__/BatchLeastSquaresOD.accuracy.test.ts +0 -320
  907. package/src/orbit-determination/__tests__/BatchLeastSquaresOD.observations.test.ts +0 -279
  908. package/src/orbit-determination/__tests__/BatchLeastSquaresOD.robustness.test.ts +0 -439
  909. package/src/orbit-determination/__tests__/GaussIOD.test.ts +0 -395
  910. package/src/orbit-determination/__tests__/GibbsIOD.test.ts +0 -423
  911. package/src/orbit-determination/__tests__/GoodingIOD.test.ts +0 -356
  912. package/src/orbit-determination/__tests__/HerrickGibbsIOD.test.ts +0 -501
  913. package/src/orbit-determination/__tests__/LambertIOD.test.ts +0 -643
  914. package/src/orbit-determination/__tests__/LevenbergMarquardtOD.test.ts +0 -1039
  915. package/src/orbit-determination/index.ts +0 -10
  916. package/src/parsers/CdmExporter.ts +0 -298
  917. package/src/parsers/CdmParser.ts +0 -474
  918. package/src/parsers/CdmTypes.ts +0 -259
  919. package/src/parsers/HorizonsParser.ts +0 -432
  920. package/src/parsers/OemParser.ts +0 -277
  921. package/src/parsers/OemTypes.ts +0 -111
  922. package/src/parsers/__tests__/CdmExporter.test.ts +0 -305
  923. package/src/parsers/__tests__/CdmParser.test.ts +0 -305
  924. package/src/parsers/__tests__/HorizonsParser.test.ts +0 -126
  925. package/src/parsers/__tests__/OemParser.test.ts +0 -398
  926. package/src/parsers/index.ts +0 -49
  927. package/src/propagator/DormandPrince54Propagator.ts +0 -73
  928. package/src/propagator/KeplerPropagator.ts +0 -101
  929. package/src/propagator/Propagator.ts +0 -253
  930. package/src/propagator/README.md +0 -241
  931. package/src/propagator/RkCheckpoint.ts +0 -25
  932. package/src/propagator/RkResult.ts +0 -26
  933. package/src/propagator/RungeKutta4Propagator.ts +0 -179
  934. package/src/propagator/RungeKutta89Propagator.ts +0 -132
  935. package/src/propagator/RungeKuttaAdaptive.ts +0 -282
  936. package/src/propagator/Sgp4Propagator.ts +0 -111
  937. package/src/propagator/__tests__/KeplerPropagator.test.ts +0 -250
  938. package/src/propagator/__tests__/Propagator.test.ts +0 -180
  939. package/src/propagator/__tests__/RungeKutta4Propagator.test.ts +0 -289
  940. package/src/propagator/__tests__/RungeKuttaAdaptive.test.ts +0 -244
  941. package/src/propagator/__tests__/Sgp4Propagator.test.ts +0 -144
  942. package/src/propagator/index.ts +0 -10
  943. package/src/scheduling/ContactScheduler.ts +0 -760
  944. package/src/scheduling/ScheduledContact.ts +0 -249
  945. package/src/scheduling/__tests__/ContactScheduler.test.ts +0 -389
  946. package/src/scheduling/__tests__/ScheduledContact.test.ts +0 -293
  947. package/src/scheduling/index.ts +0 -10
  948. package/src/sensor/FieldOfView.ts +0 -666
  949. package/src/sensor/LaserRangingSensor.ts +0 -210
  950. package/src/sensor/MechanicalRadar.ts +0 -156
  951. package/src/sensor/OpticalSensor.ts +0 -198
  952. package/src/sensor/PassiveRFSensor.ts +0 -205
  953. package/src/sensor/PhasedArrayRadar.ts +0 -352
  954. package/src/sensor/RadarSensor.ts +0 -150
  955. package/src/sensor/Sensor.ts +0 -487
  956. package/src/sensor/__tests__/Sensor.test.ts +0 -135
  957. package/src/sensor/index.ts +0 -81
  958. package/src/sensor/v2-docs/field-of-view-design-document.md +0 -466
  959. package/src/sgp4/index.ts +0 -27
  960. package/src/sgp4/sgp4-error.ts +0 -53
  961. package/src/sgp4/sgp4.LICENSE.md +0 -28
  962. package/src/sgp4/sgp4.ts +0 -3983
  963. package/src/smoothing/ExponentialSmoothing.ts +0 -83
  964. package/src/smoothing/__tests__/ExponentialSmoothing.test.ts +0 -108
  965. package/src/time/Epoch.ts +0 -165
  966. package/src/time/EpochGPS.ts +0 -141
  967. package/src/time/EpochTAI.ts +0 -63
  968. package/src/time/EpochTDB.ts +0 -73
  969. package/src/time/EpochTT.ts +0 -76
  970. package/src/time/EpochUTC.ts +0 -253
  971. package/src/time/EpochWindow.ts +0 -33
  972. package/src/time/README.md +0 -212
  973. package/src/time/TimeStamped.ts +0 -80
  974. package/src/time/__tests__/Epoch.test.ts +0 -250
  975. package/src/time/__tests__/EpochGPS.test.ts +0 -78
  976. package/src/time/__tests__/EpochUTC.test.ts +0 -149
  977. package/src/time/__tests__/EpochWindow.test.ts +0 -30
  978. package/src/time/__tests__/TimeStamped.test.ts +0 -62
  979. package/src/time/__tests__/__snapshots__/Epoch.test.ts.snap +0 -46
  980. package/src/time/__tests__/__snapshots__/EpochGPS.test.ts.snap +0 -13
  981. package/src/time/__tests__/__snapshots__/EpochUTC.test.ts.snap +0 -112
  982. package/src/time/__tests__/__snapshots__/TimeStamped.test.ts.snap +0 -10
  983. package/src/time/index.ts +0 -9
  984. package/src/transforms/TransformCache.ts +0 -46
  985. package/src/transforms/__tests__/__snapshots__/transforms.test.ts.snap +0 -16
  986. package/src/transforms/__tests__/__snapshots__/transforms2.test.ts.snap +0 -49
  987. package/src/transforms/__tests__/conversions.test.ts +0 -80
  988. package/src/transforms/__tests__/transforms.test.ts +0 -128
  989. package/src/transforms/__tests__/transforms2.test.ts +0 -275
  990. package/src/transforms/__tests__/transformsData.ts +0 -289
  991. package/src/transforms/conversions.ts +0 -99
  992. package/src/transforms/index.ts +0 -3
  993. package/src/transforms/transforms.ts +0 -614
  994. package/src/types/types.ts +0 -829
  995. package/src/utils/__tests__/__snapshots__/functions.test.ts.snap +0 -89
  996. package/src/utils/__tests__/__snapshots__/utils.test.ts.snap +0 -5
  997. package/src/utils/__tests__/create-covariance-from-tle.test.ts +0 -90
  998. package/src/utils/__tests__/functions.test.ts +0 -450
  999. package/src/utils/__tests__/jacobian.test.ts +0 -37
  1000. package/src/utils/__tests__/linearDistance.test.ts +0 -44
  1001. package/src/utils/__tests__/utils.test.ts +0 -164
  1002. package/src/utils/constants.ts +0 -113
  1003. package/src/utils/create-covariance-from-tle.ts +0 -75
  1004. package/src/utils/functions.ts +0 -590
  1005. package/src/utils/index.ts +0 -6
  1006. package/src/utils/jacobian.ts +0 -42
  1007. package/src/utils/linearDistance.ts +0 -11
  1008. /package/{LICENSE.md → LICENSE.MD} +0 -0
@@ -1,320 +0,0 @@
1
- /**
2
- * @author Theodore Kruczek
3
- * @license AGPL-3.0-or-later
4
- * @copyright (c) 2025 Kruczek Labs LLC
5
- *
6
- * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
7
- * terms of the GNU Affero General Public License as published by the Free Software
8
- * Foundation, either version 3 of the License, or (at your option) any later version.
9
- *
10
- * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
11
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
- * See the GNU Affero General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU Affero General Public License along with
15
- * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
16
- */
17
- import { ParseError } from '../errors';
18
- import { Vector3D } from '../operations/Vector3D';
19
- import { EpochUTC } from '../time/EpochUTC';
20
- /**
21
- * Converts a Julian Date to a JavaScript Date.
22
- * @param jd - Julian Date
23
- * @returns JavaScript Date object
24
- */
25
- function julianDateToDate(jd) {
26
- // Julian Date to Unix timestamp (milliseconds)
27
- // JD 2440587.5 = Unix epoch (Jan 1, 1970 00:00:00 UTC)
28
- const unixMs = (jd - 2440587.5) * 86400000;
29
- return new Date(unixMs);
30
- }
31
- /**
32
- * Parser for NASA JPL Horizons ephemeris data.
33
- *
34
- * Horizons is a NASA/JPL system that provides precise ephemerides for solar
35
- * system objects. This parser handles the vector table format (positions and
36
- * velocities in Cartesian coordinates).
37
- *
38
- * @see https://ssd.jpl.nasa.gov/horizons/
39
- *
40
- * @example
41
- * ```typescript
42
- * // Parse vector table output from Horizons
43
- * const result = HorizonsParser.parseVectors(horizonsOutput);
44
- *
45
- * // Create an EphemerisBody from the data
46
- * const ceres = EphemerisBody.fromData(
47
- * 'ceres',
48
- * result.targetName,
49
- * CelestialBodyType.DWARF_PLANET,
50
- * result.ephemeris.map(ep => ({
51
- * date: ep.epoch.toDateTime(),
52
- * position: { x: ep.position.x, y: ep.position.y, z: ep.position.z },
53
- * velocity: ep.velocity ? { x: ep.velocity.x, y: ep.velocity.y, z: ep.velocity.z } : undefined,
54
- * })),
55
- * { isHeliocentric: result.isHeliocentric }
56
- * );
57
- * ```
58
- */
59
- export class HorizonsParser {
60
- constructor() {
61
- // Static class - prevent instantiation
62
- }
63
- /**
64
- * Parses NASA Horizons vector table format.
65
- *
66
- * Expects output from Horizons with settings:
67
- * - VECTORS (type 2 or 3)
68
- * - Output in km and km/s
69
- *
70
- * @param data - Raw Horizons output text
71
- * @returns Parsed ephemeris data
72
- */
73
- static parseVectors(data) {
74
- if (!data || data.trim().length === 0) {
75
- throw new ParseError('Horizons data is empty', 'HORIZONS');
76
- }
77
- const lines = data.split('\n');
78
- // Validate required markers exist
79
- const hasSOE = lines.some((l) => l.trim() === '$$SOE');
80
- const hasEOE = lines.some((l) => l.trim() === '$$EOE');
81
- if (!hasSOE || !hasEOE) {
82
- throw new ParseError('Missing $$SOE or $$EOE markers in Horizons data', 'HORIZONS');
83
- }
84
- const metadata = {};
85
- const ephemeris = [];
86
- let inData = false;
87
- let targetName = '';
88
- let centerBody = '';
89
- let referenceFrame = '';
90
- for (let i = 0; i < lines.length; i++) {
91
- const line = lines[i].trim();
92
- // Parse metadata
93
- if (line.startsWith('Target body name:')) {
94
- targetName = this.extractValue_(line, 'Target body name:');
95
- metadata.targetName = targetName;
96
- }
97
- else if (line.startsWith('Center body name:')) {
98
- centerBody = this.extractValue_(line, 'Center body name:');
99
- metadata.centerBody = centerBody;
100
- }
101
- else if (line.startsWith('Center-site name:')) {
102
- centerBody = this.extractValue_(line, 'Center-site name:');
103
- metadata.centerBody = centerBody;
104
- }
105
- else if (line.startsWith('Output type:')) {
106
- metadata.outputType = this.extractValue_(line, 'Output type:');
107
- }
108
- else if (line.startsWith('Reference frame:')) {
109
- referenceFrame = this.extractValue_(line, 'Reference frame:');
110
- metadata.referenceFrame = referenceFrame;
111
- }
112
- else if (line.startsWith('Output units:')) {
113
- metadata.outputUnits = this.extractValue_(line, 'Output units:');
114
- }
115
- // Check for data section start/end
116
- if (line === '$$SOE') {
117
- inData = true;
118
- continue;
119
- }
120
- if (line === '$$EOE') {
121
- inData = false;
122
- continue;
123
- }
124
- // Parse data lines
125
- if (inData && line.length > 0) {
126
- const parsed = this.parseVectorLine_(line, lines, i);
127
- if (parsed) {
128
- ephemeris.push(parsed.data);
129
- i = parsed.nextIndex - 1; // -1 because loop will increment
130
- }
131
- }
132
- }
133
- // Validate we found some data
134
- if (ephemeris.length === 0) {
135
- throw new ParseError('No valid ephemeris data found between $$SOE and $$EOE markers', 'HORIZONS');
136
- }
137
- // Determine if heliocentric
138
- const isHeliocentric = centerBody.toLowerCase().includes('sun') ||
139
- centerBody.toLowerCase().includes('solar') ||
140
- centerBody === 'Sun';
141
- return {
142
- targetName,
143
- centerBody,
144
- referenceFrame: referenceFrame || 'ICRF',
145
- isHeliocentric,
146
- ephemeris,
147
- metadata,
148
- };
149
- }
150
- /**
151
- * Parses NASA Horizons observer table format.
152
- *
153
- * @param data - Raw Horizons output text
154
- * @returns Parsed observer data
155
- */
156
- static parseObserver(data) {
157
- const lines = data.split('\n');
158
- const observations = [];
159
- let inData = false;
160
- let targetName = '';
161
- let observerLocation = '';
162
- for (let i = 0; i < lines.length; i++) {
163
- const line = lines[i].trim();
164
- // Parse metadata
165
- if (line.startsWith('Target body name:')) {
166
- targetName = this.extractValue_(line, 'Target body name:');
167
- }
168
- else if (line.startsWith('Center-site name:')) {
169
- observerLocation = this.extractValue_(line, 'Center-site name:');
170
- }
171
- // Check for data section
172
- if (line === '$$SOE') {
173
- inData = true;
174
- continue;
175
- }
176
- if (line === '$$EOE') {
177
- inData = false;
178
- continue;
179
- }
180
- // Parse observation lines
181
- if (inData && line.length > 0) {
182
- const parsed = this.parseObserverLine_(line);
183
- if (parsed) {
184
- observations.push(parsed);
185
- }
186
- }
187
- }
188
- return {
189
- targetName,
190
- observerLocation,
191
- observations,
192
- };
193
- }
194
- // ==================== Private Helper Methods ====================
195
- /**
196
- * Extracts a value from a key: value line.
197
- */
198
- static extractValue_(line, key) {
199
- const value = line.substring(key.length).trim();
200
- // Remove trailing metadata like (1 Ceres)
201
- return value.split(/\s{2,}/)[0].trim();
202
- }
203
- /**
204
- * Parses a vector data line from Horizons output.
205
- * Horizons vector output can span multiple lines.
206
- */
207
- static parseVectorLine_(line, allLines, currentIndex) {
208
- // Horizons vector format varies, but typically:
209
- // Line 1: JD, Calendar date
210
- // Line 2: X, Y, Z (position)
211
- // Line 3: VX, VY, VZ (velocity) - optional
212
- // Try to parse the Julian Date / Calendar date line
213
- const dateMatch = line.match(/^(\d+\.\d+)\s*=\s*A\.D\.\s*(\d{4})-(\w{3})-(\d{2})\s+(\d{2}):(\d{2}):(\d{2}\.?\d*)/);
214
- if (!dateMatch) {
215
- // Try alternate format with just numbers
216
- const parts = line.split(/\s+/);
217
- if (parts.length >= 7) {
218
- // Assume: JD X Y Z VX VY VZ format
219
- try {
220
- const jd = parseFloat(parts[0]);
221
- if (isNaN(jd)) {
222
- return null;
223
- }
224
- const epoch = EpochUTC.fromDateTime(julianDateToDate(jd));
225
- const x = parseFloat(parts[1]);
226
- const y = parseFloat(parts[2]);
227
- const z = parseFloat(parts[3]);
228
- let velocity;
229
- if (parts.length >= 7 && !isNaN(parseFloat(parts[4]))) {
230
- velocity = new Vector3D(parseFloat(parts[4]), parseFloat(parts[5]), parseFloat(parts[6]));
231
- }
232
- return {
233
- data: {
234
- epoch,
235
- position: new Vector3D(x, y, z),
236
- velocity,
237
- },
238
- nextIndex: currentIndex + 1,
239
- };
240
- }
241
- catch {
242
- return null;
243
- }
244
- }
245
- return null;
246
- }
247
- // Parse the date
248
- const year = parseInt(dateMatch[2], 10);
249
- const monthStr = dateMatch[3];
250
- const day = parseInt(dateMatch[4], 10);
251
- const hour = parseInt(dateMatch[5], 10);
252
- const minute = parseInt(dateMatch[6], 10);
253
- const second = parseFloat(dateMatch[7]);
254
- const monthMap = {
255
- Jan: 0, Feb: 1, Mar: 2, Apr: 3, May: 4, Jun: 5,
256
- Jul: 6, Aug: 7, Sep: 8, Oct: 9, Nov: 10, Dec: 11,
257
- };
258
- const month = monthMap[monthStr] ?? 0;
259
- const date = new Date(Date.UTC(year, month, day, hour, minute, Math.floor(second), (second % 1) * 1000));
260
- const epoch = EpochUTC.fromDateTime(date);
261
- // Parse position line (next line)
262
- let nextIndex = currentIndex + 1;
263
- if (nextIndex >= allLines.length) {
264
- return null;
265
- }
266
- const posLine = allLines[nextIndex].trim();
267
- const posMatch = posLine.match(/X\s*=\s*([-\d.E+]+)\s+Y\s*=\s*([-\d.E+]+)\s+Z\s*=\s*([-\d.E+]+)/i);
268
- if (!posMatch) {
269
- return null;
270
- }
271
- const x = parseFloat(posMatch[1]);
272
- const y = parseFloat(posMatch[2]);
273
- const z = parseFloat(posMatch[3]);
274
- const position = new Vector3D(x, y, z);
275
- nextIndex++;
276
- // Try to parse velocity line (optional)
277
- let velocity;
278
- if (nextIndex < allLines.length) {
279
- const velLine = allLines[nextIndex].trim();
280
- const velMatch = velLine.match(/VX\s*=\s*([-\d.E+]+)\s+VY\s*=\s*([-\d.E+]+)\s+VZ\s*=\s*([-\d.E+]+)/i);
281
- if (velMatch) {
282
- velocity = new Vector3D(parseFloat(velMatch[1]), parseFloat(velMatch[2]), parseFloat(velMatch[3]));
283
- nextIndex++;
284
- }
285
- }
286
- return {
287
- data: { epoch, position, velocity },
288
- nextIndex,
289
- };
290
- }
291
- /**
292
- * Parses an observer table data line.
293
- */
294
- static parseObserverLine_(line) {
295
- // Observer format typically includes:
296
- // Date, RA (HMS), Dec (DMS), Delta (AU), Delta-dot, S-O-T, etc.
297
- // This is a simplified parser
298
- const parts = line.split(/\s+/);
299
- if (parts.length < 5) {
300
- return null;
301
- }
302
- try {
303
- // Try to parse as JD RA Dec Delta LT format
304
- const jd = parseFloat(parts[0]);
305
- if (isNaN(jd)) {
306
- return null;
307
- }
308
- const epoch = EpochUTC.fromDateTime(julianDateToDate(jd));
309
- const ra = parseFloat(parts[1]); // Assuming already in degrees
310
- const dec = parseFloat(parts[2]);
311
- const distance = parseFloat(parts[3]);
312
- const lightTime = parseFloat(parts[4]) * 60; // Convert minutes to seconds if needed
313
- return { epoch, ra, dec, distance, lightTime };
314
- }
315
- catch {
316
- return null;
317
- }
318
- }
319
- }
320
- //# sourceMappingURL=HorizonsParser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HorizonsParser.js","sourceRoot":"","sources":["../../src/parsers/HorizonsParser.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- /**
2
- * @author Theodore Kruczek
3
- * @license AGPL-3.0-or-later
4
- * @copyright (c) 2025 Kruczek Labs LLC
5
- *
6
- * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
7
- * terms of the GNU Affero General Public License as published by the Free Software
8
- * Foundation, either version 3 of the License, or (at your option) any later version.
9
- *
10
- * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
11
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
- * See the GNU Affero General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU Affero General Public License along with
15
- * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
16
- */
17
- import { InterpolatorType } from '../objects/InterpolatorType';
18
- import type { OemMetadata, ParsedOem } from './OemTypes';
19
- /**
20
- * Parser for CCSDS Orbit Ephemeris Message (OEM) files.
21
- * Separates parsing concern from EphemerisSatellite object management.
22
- *
23
- * @see https://public.ccsds.org/Pubs/502x0b3e1.pdf CCSDS OEM Standard
24
- *
25
- * @example
26
- * ```typescript
27
- * const oemContent = fs.readFileSync('orbit.oem', 'utf-8');
28
- * const parsed = OemParser.parse(oemContent);
29
- * const satellite = EphemerisSatellite.fromParsedOem(parsed);
30
- * ```
31
- */
32
- export declare class OemParser {
33
- /**
34
- * Parse OEM text content into structured data.
35
- * @param content - The raw OEM file content as a string
36
- * @returns Parsed OEM structure with header and data blocks
37
- * @throws Error if the file cannot be parsed
38
- */
39
- static parse(content: string): ParsedOem;
40
- /**
41
- * Get recommended interpolator type from OEM metadata.
42
- * @param metadata - The OEM metadata block
43
- * @returns The recommended InterpolatorType based on INTERPOLATION field
44
- */
45
- static getRecommendedInterpolator(metadata: OemMetadata): InterpolatorType;
46
- /**
47
- * Get interpolation order from OEM metadata.
48
- * @param metadata - The OEM metadata block
49
- * @returns The interpolation order (degree), defaults to 10
50
- */
51
- static getInterpolationOrder(metadata: OemMetadata): number;
52
- private static parseHeader_;
53
- private static parseDataBlocks_;
54
- private static parseStateVector_;
55
- private static parseCovarianceLine_;
56
- }
@@ -1,235 +0,0 @@
1
- /**
2
- * @author Theodore Kruczek
3
- * @license AGPL-3.0-or-later
4
- * @copyright (c) 2025 Kruczek Labs LLC
5
- *
6
- * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
7
- * terms of the GNU Affero General Public License as published by the Free Software
8
- * Foundation, either version 3 of the License, or (at your option) any later version.
9
- *
10
- * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
11
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
- * See the GNU Affero General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU Affero General Public License along with
15
- * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
16
- */
17
- import { J2000 } from '../coordinate/J2000';
18
- import { ParseError } from '../errors';
19
- import { InterpolatorType } from '../objects/InterpolatorType';
20
- import { EpochUTC } from '../time/EpochUTC';
21
- import { Vector3D } from '../main';
22
- /**
23
- * Parser for CCSDS Orbit Ephemeris Message (OEM) files.
24
- * Separates parsing concern from EphemerisSatellite object management.
25
- *
26
- * @see https://public.ccsds.org/Pubs/502x0b3e1.pdf CCSDS OEM Standard
27
- *
28
- * @example
29
- * ```typescript
30
- * const oemContent = fs.readFileSync('orbit.oem', 'utf-8');
31
- * const parsed = OemParser.parse(oemContent);
32
- * const satellite = EphemerisSatellite.fromParsedOem(parsed);
33
- * ```
34
- */
35
- export class OemParser {
36
- /**
37
- * Parse OEM text content into structured data.
38
- * @param content - The raw OEM file content as a string
39
- * @returns Parsed OEM structure with header and data blocks
40
- * @throws Error if the file cannot be parsed
41
- */
42
- static parse(content) {
43
- const lines = content
44
- .split(/\r?\n/)
45
- .map((l) => l.trim())
46
- .filter((l) => l.length > 0);
47
- const header = OemParser.parseHeader_(lines);
48
- const dataBlocks = OemParser.parseDataBlocks_(lines);
49
- if (dataBlocks.length === 0) {
50
- throw new ParseError('OEM file contains no data blocks', 'OEM');
51
- }
52
- return { header, dataBlocks };
53
- }
54
- /**
55
- * Get recommended interpolator type from OEM metadata.
56
- * @param metadata - The OEM metadata block
57
- * @returns The recommended InterpolatorType based on INTERPOLATION field
58
- */
59
- static getRecommendedInterpolator(metadata) {
60
- const interp = metadata.INTERPOLATION?.toUpperCase();
61
- if (interp === 'LAGRANGE') {
62
- return InterpolatorType.LAGRANGE;
63
- }
64
- if (interp === 'HERMITE') {
65
- return InterpolatorType.CUBIC_SPLINE;
66
- }
67
- if (interp === 'CHEBYSHEV') {
68
- return InterpolatorType.CHEBYSHEV;
69
- }
70
- // Default to Lagrange for unspecified or unknown
71
- return InterpolatorType.LAGRANGE;
72
- }
73
- /**
74
- * Get interpolation order from OEM metadata.
75
- * @param metadata - The OEM metadata block
76
- * @returns The interpolation order (degree), defaults to 10
77
- */
78
- static getInterpolationOrder(metadata) {
79
- return metadata.INTERPOLATION_DEGREE ?? 10;
80
- }
81
- static parseHeader_(lines) {
82
- const header = {};
83
- const comments = [];
84
- for (const line of lines) {
85
- // Stop at first META_START
86
- if (line.startsWith('META_START')) {
87
- break;
88
- }
89
- if (line.startsWith('COMMENT')) {
90
- comments.push(line.substring(7).trim());
91
- }
92
- else if (line.includes('=')) {
93
- const eqIndex = line.indexOf('=');
94
- const key = line.substring(0, eqIndex).trim();
95
- const value = line.substring(eqIndex + 1).trim();
96
- header[key] = value;
97
- }
98
- }
99
- if (comments.length > 0) {
100
- header.COMMENT = comments;
101
- }
102
- return header;
103
- }
104
- static parseDataBlocks_(lines) {
105
- const blocks = [];
106
- let currentBlock = null;
107
- let currentMetadata = {};
108
- let metadataComments = [];
109
- let inMeta = false;
110
- let inData = false;
111
- let inCovariance = false;
112
- let covarianceData = [];
113
- for (const line of lines) {
114
- // Handle block delimiters
115
- if (line === 'META_START') {
116
- currentMetadata = {};
117
- metadataComments = [];
118
- inMeta = true;
119
- continue;
120
- }
121
- if (line === 'META_STOP') {
122
- if (metadataComments.length > 0) {
123
- currentMetadata.COMMENT = metadataComments;
124
- }
125
- currentBlock = {
126
- metadata: currentMetadata,
127
- ephemeris: [],
128
- };
129
- inMeta = false;
130
- continue;
131
- }
132
- // Handle various data block markers (OEM 1.0 and 2.0 formats)
133
- if (line === 'DATA_START' || line.match(/^EPHEMERIS_DATA_BLOCK/i)) {
134
- inData = true;
135
- continue;
136
- }
137
- if (line === 'DATA_STOP' || line.match(/^EPHEMERIS_DATA_BLOCK.*STOP/i)) {
138
- inData = false;
139
- if (currentBlock) {
140
- if (covarianceData.length > 0) {
141
- currentBlock.covariance = covarianceData;
142
- covarianceData = [];
143
- }
144
- blocks.push(currentBlock);
145
- currentBlock = null;
146
- }
147
- continue;
148
- }
149
- if (line === 'COVARIANCE_START') {
150
- inCovariance = true;
151
- continue;
152
- }
153
- if (line === 'COVARIANCE_STOP') {
154
- inCovariance = false;
155
- continue;
156
- }
157
- // Parse metadata key-value pairs
158
- if (inMeta && line.includes('=')) {
159
- if (line.startsWith('COMMENT')) {
160
- metadataComments.push(line.substring(7).trim());
161
- }
162
- else {
163
- const eqIndex = line.indexOf('=');
164
- const key = line.substring(0, eqIndex).trim();
165
- const value = line.substring(eqIndex + 1).trim();
166
- if (key === 'INTERPOLATION_DEGREE') {
167
- currentMetadata[key] = parseInt(value, 10);
168
- }
169
- else {
170
- currentMetadata[key] = value;
171
- }
172
- }
173
- }
174
- // Parse ephemeris data lines
175
- if (inData && currentBlock && !line.startsWith('COMMENT')) {
176
- const state = OemParser.parseStateVector_(line);
177
- if (state) {
178
- currentBlock.ephemeris.push(state);
179
- }
180
- }
181
- // Parse covariance data (stored but not processed)
182
- if (inCovariance && currentBlock) {
183
- const cov = OemParser.parseCovarianceLine_(line);
184
- if (cov) {
185
- covarianceData.push(cov);
186
- }
187
- }
188
- }
189
- return blocks;
190
- }
191
- static parseStateVector_(line) {
192
- const parts = line.trim().split(/\s+/);
193
- // Need at least: epoch x y z vx vy vz
194
- if (parts.length < 7) {
195
- return null;
196
- }
197
- try {
198
- const epoch = EpochUTC.fromDateTimeString(parts[0]);
199
- const position = new Vector3D(parseFloat(parts[1]), parseFloat(parts[2]), parseFloat(parts[3]));
200
- const velocity = new Vector3D(parseFloat(parts[4]), parseFloat(parts[5]), parseFloat(parts[6]));
201
- return new J2000(epoch, position, velocity);
202
- }
203
- catch {
204
- // Skip malformed lines
205
- return null;
206
- }
207
- }
208
- static parseCovarianceLine_(line) {
209
- // Covariance parsing is minimal - just store the raw data
210
- // Full processing is deferred to future enhancement
211
- const parts = line.trim().split(/\s+/);
212
- if (parts.length < 2) {
213
- return null;
214
- }
215
- // Check if this looks like an EPOCH line
216
- if (line.includes('EPOCH')) {
217
- return null; // Skip epoch markers, actual data comes on following lines
218
- }
219
- try {
220
- // Try to parse as covariance values (21 values for 6x6 lower triangular)
221
- const values = parts.map((p) => parseFloat(p)).filter((n) => !isNaN(n));
222
- if (values.length > 0) {
223
- return {
224
- epoch: new Date(), // Placeholder - proper epoch handling deferred
225
- values,
226
- };
227
- }
228
- return null;
229
- }
230
- catch {
231
- return null;
232
- }
233
- }
234
- }
235
- //# sourceMappingURL=OemParser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OemParser.js","sourceRoot":"","sources":["../../src/parsers/OemParser.ts"],"names":[],"mappings":"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"}