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
@@ -0,0 +1,64 @@
1
+ /**
2
+ * @author Theodore Kruczek.
3
+ * @license MIT
4
+ * @copyright (c) 2022-2025 Theodore Kruczek Permission is
5
+ * hereby granted, free of charge, to any person obtaining a copy of this
6
+ * software and associated documentation files (the "Software"), to deal in the
7
+ * Software without restriction, including without limitation the rights to use,
8
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ * the Software, and to permit persons to whom the Software is furnished to do
10
+ * so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in
13
+ * all copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ import { Matrix } from '../operations/Matrix.js';
24
+ import { J2000 } from './J2000.js';
25
+ import { RelativeState } from './RelativeState.js';
26
+ /**
27
+ * Represents a Radial-Intrack-Crosstrack (RIC) coordinates.
28
+ */
29
+ export declare class RIC extends RelativeState {
30
+ /**
31
+ * Gets the name of the RIC coordinate system.
32
+ * @returns The name of the RIC coordinate system.
33
+ */
34
+ get name(): string;
35
+ /**
36
+ * Creates a new RIC (Radial-Intrack-Crosstrack) coordinate from the J2000 state vectors.
37
+ * @param state - The J2000 state vector.
38
+ * @param origin - The J2000 state vector of the origin.
39
+ * @param transform - The transformation matrix.
40
+ * @returns The RIC coordinate.
41
+ */
42
+ static fromJ2000Matrix(state: J2000, origin: J2000, transform: Matrix): RIC;
43
+ /**
44
+ * Creates a RIC (Radial-Intrack-Crosstrack) coordinate system from a J2000 state and origin.
45
+ * @param state The J2000 state.
46
+ * @param origin The J2000 origin.
47
+ * @returns The RIC coordinate system.
48
+ */
49
+ static fromJ2000(state: J2000, origin: J2000): RIC;
50
+ /**
51
+ * Transforms the current RIC coordinate to the J2000 coordinate system using the provided origin and transform
52
+ * matrix.
53
+ * @param origin The origin J2000 coordinate.
54
+ * @param transform The transformation matrix.
55
+ * @returns The transformed J2000 coordinate.
56
+ */
57
+ toJ2000Matrix(origin: J2000, transform: Matrix): J2000;
58
+ /**
59
+ * Transforms the current RIC coordinate to the J2000 coordinate system using the provided origin.
60
+ * @param origin The origin J2000 coordinate.
61
+ * @returns The transformed J2000 coordinate.
62
+ */
63
+ toJ2000(origin: J2000): J2000;
64
+ }
@@ -0,0 +1,79 @@
1
+ /**
2
+ * @author Theodore Kruczek.
3
+ * @license MIT
4
+ * @copyright (c) 2022-2025 Theodore Kruczek Permission is
5
+ * hereby granted, free of charge, to any person obtaining a copy of this
6
+ * software and associated documentation files (the "Software"), to deal in the
7
+ * Software without restriction, including without limitation the rights to use,
8
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ * the Software, and to permit persons to whom the Software is furnished to do
10
+ * so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in
13
+ * all copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ import { J2000 } from './J2000.js';
24
+ import { RelativeState } from './RelativeState.js';
25
+ /**
26
+ * Represents a Radial-Intrack-Crosstrack (RIC) coordinates.
27
+ */
28
+ export class RIC extends RelativeState {
29
+ /**
30
+ * Gets the name of the RIC coordinate system.
31
+ * @returns The name of the RIC coordinate system.
32
+ */
33
+ get name() {
34
+ return 'RIC';
35
+ }
36
+ /**
37
+ * Creates a new RIC (Radial-Intrack-Crosstrack) coordinate from the J2000 state vectors.
38
+ * @param state - The J2000 state vector.
39
+ * @param origin - The J2000 state vector of the origin.
40
+ * @param transform - The transformation matrix.
41
+ * @returns The RIC coordinate.
42
+ */
43
+ static fromJ2000Matrix(state, origin, transform) {
44
+ const dr = state.position.subtract(origin.position);
45
+ const dv = state.velocity.subtract(origin.velocity);
46
+ return new RIC(transform.multiplyVector3D(dr), transform.multiplyVector3D(dv));
47
+ }
48
+ /**
49
+ * Creates a RIC (Radial-Intrack-Crosstrack) coordinate system from a J2000 state and origin.
50
+ * @param state The J2000 state.
51
+ * @param origin The J2000 origin.
52
+ * @returns The RIC coordinate system.
53
+ */
54
+ static fromJ2000(state, origin) {
55
+ return RIC.fromJ2000Matrix(state, origin, RelativeState.createMatrix(origin.position, origin.velocity));
56
+ }
57
+ /**
58
+ * Transforms the current RIC coordinate to the J2000 coordinate system using the provided origin and transform
59
+ * matrix.
60
+ * @param origin The origin J2000 coordinate.
61
+ * @param transform The transformation matrix.
62
+ * @returns The transformed J2000 coordinate.
63
+ */
64
+ toJ2000Matrix(origin, transform) {
65
+ const tt = transform.transpose();
66
+ const tr = tt.multiplyVector3D(this.position);
67
+ const tv = tt.multiplyVector3D(this.velocity);
68
+ return new J2000(origin.epoch, origin.position.add(tr), origin.velocity.add(tv));
69
+ }
70
+ /**
71
+ * Transforms the current RIC coordinate to the J2000 coordinate system using the provided origin.
72
+ * @param origin The origin J2000 coordinate.
73
+ * @returns The transformed J2000 coordinate.
74
+ */
75
+ toJ2000(origin) {
76
+ return this.toJ2000Matrix(origin, RelativeState.createMatrix(origin.position, origin.velocity));
77
+ }
78
+ }
79
+ //# sourceMappingURL=RIC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RIC.js","sourceRoot":"","sources":["../../src/coordinate/RIC.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,MAAM,OAAO,GAAI,SAAQ,aAAa;IACpC;;;OAGG;IACH,IAAI,IAAI;QACN,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,KAAY,EAAE,MAAa,EAAE,SAAiB;QACnE,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEpD,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,KAAY,EAAE,MAAa;QAC1C,OAAO,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CAAC,MAAa,EAAE,SAAiB;QAC5C,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QACjC,MAAM,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9C,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAa;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClG,CAAC;CACF"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * @author Theodore Kruczek.
3
+ * @license MIT
4
+ * @copyright (c) 2022-2025 Theodore Kruczek Permission is
5
+ * hereby granted, free of charge, to any person obtaining a copy of this
6
+ * software and associated documentation files (the "Software"), to deal in the
7
+ * Software without restriction, including without limitation the rights to use,
8
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ * the Software, and to permit persons to whom the Software is furnished to do
10
+ * so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in
13
+ * all copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ import { Kilometers, KilometersPerSecond } from '../main.js';
24
+ import { Matrix } from '../operations/Matrix.js';
25
+ import { Vector3D } from '../operations/Vector3D.js';
26
+ import { J2000 } from './J2000.js';
27
+ /**
28
+ * Represents the relative state of an object in 3D space.
29
+ */
30
+ export declare abstract class RelativeState {
31
+ position: Vector3D<Kilometers>;
32
+ velocity: Vector3D<KilometersPerSecond>;
33
+ constructor(position: Vector3D<Kilometers>, velocity: Vector3D<KilometersPerSecond>);
34
+ /**
35
+ * Gets the name of the coordinate system.
36
+ * @returns The name of the coordinate system.
37
+ */
38
+ abstract get name(): string;
39
+ /**
40
+ * Returns a string representation of the RelativeState object. The string includes the name, position, and velocity
41
+ * of the object.
42
+ * @returns A string representation of the RelativeState object.
43
+ */
44
+ toString(): string;
45
+ /**
46
+ * Transforms the current RelativeState coordinate to the J2000 coordinate
47
+ * @param origin The origin J2000 coordinate.
48
+ * @returns The transformed J2000 coordinate.
49
+ */
50
+ abstract toJ2000(origin: J2000): J2000;
51
+ /**
52
+ * Creates a matrix based on the given position and velocity vectors. The matrix represents the relative state of an
53
+ * object in 3D space.
54
+ * @param position - The position vector.
55
+ * @param velocity - The velocity vector.
56
+ * @returns The matrix representing the relative state.
57
+ */
58
+ static createMatrix(position: Vector3D, velocity: Vector3D): Matrix;
59
+ /**
60
+ * Calculates the range of the relative state.
61
+ * @returns The range in kilometers.
62
+ */
63
+ get range(): Kilometers;
64
+ /**
65
+ * Calculates the range rate of the relative state. Range rate is the dot product of the position and velocity divided
66
+ * by the range.
67
+ * @returns The range rate in Kilometers per second.
68
+ */
69
+ get rangeRate(): number;
70
+ }
@@ -0,0 +1,79 @@
1
+ /**
2
+ * @author Theodore Kruczek.
3
+ * @license MIT
4
+ * @copyright (c) 2022-2025 Theodore Kruczek Permission is
5
+ * hereby granted, free of charge, to any person obtaining a copy of this
6
+ * software and associated documentation files (the "Software"), to deal in the
7
+ * Software without restriction, including without limitation the rights to use,
8
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ * the Software, and to permit persons to whom the Software is furnished to do
10
+ * so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in
13
+ * all copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ import { Matrix } from '../operations/Matrix.js';
24
+ /**
25
+ * Represents the relative state of an object in 3D space.
26
+ */
27
+ export class RelativeState {
28
+ position;
29
+ velocity;
30
+ constructor(position, velocity) {
31
+ this.position = position;
32
+ this.velocity = velocity;
33
+ }
34
+ /**
35
+ * Returns a string representation of the RelativeState object. The string includes the name, position, and velocity
36
+ * of the object.
37
+ * @returns A string representation of the RelativeState object.
38
+ */
39
+ toString() {
40
+ return [
41
+ `[${this.name}]`,
42
+ ` Position: ${this.position.toString(6)} km`,
43
+ ` Velocity: ${this.velocity.toString(9)} km/s`,
44
+ ].join('\n');
45
+ }
46
+ /**
47
+ * Creates a matrix based on the given position and velocity vectors. The matrix represents the relative state of an
48
+ * object in 3D space.
49
+ * @param position - The position vector.
50
+ * @param velocity - The velocity vector.
51
+ * @returns The matrix representing the relative state.
52
+ */
53
+ static createMatrix(position, velocity) {
54
+ const ru = position.normalize();
55
+ const cu = position.cross(velocity).normalize();
56
+ const iu = cu.cross(ru).normalize();
57
+ return new Matrix([
58
+ [ru.x, ru.y, ru.z],
59
+ [iu.x, iu.y, iu.z],
60
+ [cu.x, cu.y, cu.z],
61
+ ]);
62
+ }
63
+ /**
64
+ * Calculates the range of the relative state.
65
+ * @returns The range in kilometers.
66
+ */
67
+ get range() {
68
+ return this.position.magnitude();
69
+ }
70
+ /**
71
+ * Calculates the range rate of the relative state. Range rate is the dot product of the position and velocity divided
72
+ * by the range.
73
+ * @returns The range rate in Kilometers per second.
74
+ */
75
+ get rangeRate() {
76
+ return this.position.dot(this.velocity) / this.range;
77
+ }
78
+ }
79
+ //# sourceMappingURL=RelativeState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RelativeState.js","sourceRoot":"","sources":["../../src/coordinate/RelativeState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAIjD;;GAEG;AACH,MAAM,OAAgB,aAAa;IACjC,QAAQ,CAAuB;IAC/B,QAAQ,CAAgC;IACxC,YAAY,QAA8B,EAAE,QAAuC;QACjF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAQD;;;;OAIG;IACH,QAAQ;QACN,OAAO;YACL,IAAI,IAAI,CAAC,IAAI,GAAG;YAChB,eAAe,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;YAC7C,eAAe,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;SAChD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IASD;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,CAAC,QAAkB,EAAE,QAAkB;QACxD,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;QAChD,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;QAEpC,OAAO,IAAI,MAAM,CAAC;YAChB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAClB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAClB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACnB,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,CAAC;CACF"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * @author Theodore Kruczek.
3
+ * @license MIT
4
+ * @copyright (c) 2022-2025 Theodore Kruczek Permission is
5
+ * hereby granted, free of charge, to any person obtaining a copy of this
6
+ * software and associated documentation files (the "Software"), to deal in the
7
+ * Software without restriction, including without limitation the rights to use,
8
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ * the Software, and to permit persons to whom the Software is furnished to do
10
+ * so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in
13
+ * all copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ import { ClassicalElements, Kilometers, KilometersPerSecond, Minutes, EpochUTC, Vector3D } from '../main.js';
24
+ /**
25
+ * A state vector is a set of coordinates used to specify the position and
26
+ * velocity of an object in a particular reference frame.
27
+ */
28
+ export declare abstract class StateVector {
29
+ epoch: EpochUTC;
30
+ position: Vector3D<Kilometers>;
31
+ velocity: Vector3D<KilometersPerSecond>;
32
+ constructor(epoch: EpochUTC, position: Vector3D<Kilometers>, velocity: Vector3D<KilometersPerSecond>);
33
+ /**
34
+ * The name of the reference frame in which the state vector is defined.
35
+ * @returns The name of the reference frame.
36
+ */
37
+ abstract get name(): string;
38
+ /**
39
+ * Whether the state vector is defined in an inertial reference frame.
40
+ * @returns True if the state vector is defined in an inertial reference
41
+ */
42
+ abstract get inertial(): boolean;
43
+ /**
44
+ * Returns a string representation of the StateVector object. The string includes the name, epoch, position, and
45
+ * velocity.
46
+ * @returns A string representation of the StateVector object.
47
+ */
48
+ toString(): string;
49
+ /**
50
+ * Calculates the mechanical energy of the state vector.
51
+ * @returns The mechanical energy value.
52
+ */
53
+ get mechanicalEnergy(): number;
54
+ /**
55
+ * Calculates the semimajor axis of the state vector.
56
+ * @returns The semimajor axis in kilometers.
57
+ */
58
+ get semimajorAxis(): Kilometers;
59
+ /**
60
+ * Gets the period of the state vector in minutes.
61
+ * @returns The period in minutes.
62
+ */
63
+ get period(): Minutes;
64
+ /**
65
+ * Gets the angular rate of the state vector.
66
+ * @returns The angular rate.
67
+ */
68
+ get angularRate(): number;
69
+ /**
70
+ * Converts the state vector to classical elements.
71
+ * @param mu The gravitational parameter of the celestial body. Defaults to Earth's gravitational parameter.
72
+ * @returns The classical elements corresponding to the state vector.
73
+ * @throws Error if classical elements are undefined for fixed frames.
74
+ */
75
+ toClassicalElements(mu?: number): ClassicalElements;
76
+ }
@@ -0,0 +1,97 @@
1
+ /**
2
+ * @author Theodore Kruczek.
3
+ * @license MIT
4
+ * @copyright (c) 2022-2025 Theodore Kruczek Permission is
5
+ * hereby granted, free of charge, to any person obtaining a copy of this
6
+ * software and associated documentation files (the "Software"), to deal in the
7
+ * Software without restriction, including without limitation the rights to use,
8
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ * the Software, and to permit persons to whom the Software is furnished to do
10
+ * so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in
13
+ * all copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ import { ClassicalElements, TAU, Earth } from '../main.js';
24
+ /**
25
+ * A state vector is a set of coordinates used to specify the position and
26
+ * velocity of an object in a particular reference frame.
27
+ */
28
+ export class StateVector {
29
+ epoch;
30
+ position;
31
+ velocity;
32
+ constructor(epoch, position, velocity) {
33
+ this.epoch = epoch;
34
+ this.position = position;
35
+ this.velocity = velocity;
36
+ }
37
+ /**
38
+ * Returns a string representation of the StateVector object. The string includes the name, epoch, position, and
39
+ * velocity.
40
+ * @returns A string representation of the StateVector object.
41
+ */
42
+ toString() {
43
+ return [
44
+ `[${this.name}]`,
45
+ ` Epoch: ${this.epoch}`,
46
+ ` Position: ${this.position.toString(6)} km`,
47
+ ` Velocity: ${this.velocity.toString(9)} km/s`,
48
+ ].join('\n');
49
+ }
50
+ /**
51
+ * Calculates the mechanical energy of the state vector.
52
+ * @returns The mechanical energy value.
53
+ */
54
+ get mechanicalEnergy() {
55
+ const r = this.position.magnitude();
56
+ const v = this.velocity.magnitude();
57
+ return v * v * 0.5 - Earth.mu / r;
58
+ }
59
+ /**
60
+ * Calculates the semimajor axis of the state vector.
61
+ * @returns The semimajor axis in kilometers.
62
+ */
63
+ get semimajorAxis() {
64
+ const energy = this.mechanicalEnergy;
65
+ return (-Earth.mu / (2.0 * energy));
66
+ }
67
+ /**
68
+ * Gets the period of the state vector in minutes.
69
+ * @returns The period in minutes.
70
+ */
71
+ get period() {
72
+ const a = this.semimajorAxis;
73
+ const periodSeconds = TAU * Math.sqrt((a * a * a) / Earth.mu);
74
+ return (periodSeconds / 60.0);
75
+ }
76
+ /**
77
+ * Gets the angular rate of the state vector.
78
+ * @returns The angular rate.
79
+ */
80
+ get angularRate() {
81
+ const a = this.semimajorAxis;
82
+ return Math.sqrt(Earth.mu / (a * a * a));
83
+ }
84
+ /**
85
+ * Converts the state vector to classical elements.
86
+ * @param mu The gravitational parameter of the celestial body. Defaults to Earth's gravitational parameter.
87
+ * @returns The classical elements corresponding to the state vector.
88
+ * @throws Error if classical elements are undefined for fixed frames.
89
+ */
90
+ toClassicalElements(mu = Earth.mu) {
91
+ if (!this.inertial) {
92
+ throw new Error('Classical elements are undefined for fixed frames.');
93
+ }
94
+ return ClassicalElements.fromStateVector(this, mu);
95
+ }
96
+ }
97
+ //# sourceMappingURL=StateVector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateVector.js","sourceRoot":"","sources":["../../src/coordinate/StateVector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,KAAK,EAAgE,MAC/F,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,OAAgB,WAAW;IAC/B,KAAK,CAAW;IAChB,QAAQ,CAAuB;IAC/B,QAAQ,CAAgC;IACxC,YAAY,KAAe,EAAE,QAA8B,EAAE,QAAuC;QAClG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAcD;;;;OAIG;IACH,QAAQ;QACN,OAAO;YACL,IAAI,IAAI,CAAC,IAAI,GAAG;YAChB,YAAY,IAAI,CAAC,KAAK,EAAE;YACxB,eAAe,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;YAC7C,eAAe,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;SAChD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,IAAI,gBAAgB;QAClB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAEpC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,IAAI,aAAa;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAErC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,CAAe,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,IAAI,MAAM;QACR,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QAC7B,MAAM,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QAE9D,OAAO,CAAC,aAAa,GAAG,IAAI,CAAY,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QAE7B,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;QAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,iBAAiB,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC;CACF"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @author Theodore Kruczek.
3
+ * @license MIT
4
+ * @copyright (c) 2022-2025 Theodore Kruczek Permission is
5
+ * hereby granted, free of charge, to any person obtaining a copy of this
6
+ * software and associated documentation files (the "Software"), to deal in the
7
+ * Software without restriction, including without limitation the rights to use,
8
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ * the Software, and to permit persons to whom the Software is furnished to do
10
+ * so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in
13
+ * all copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ import type { ClassicalElements } from './ClassicalElements.js';
24
+ import { J2000 } from './J2000.js';
25
+ import { StateVector } from './StateVector.js';
26
+ /**
27
+ * True Equator Mean Equinox (TEME) is a coordinate system commonly used in satellite tracking and orbit prediction. It
28
+ * is a reference frame that defines the position and orientation of an object relative to the Earth's equator and
29
+ * equinox.
30
+ *
31
+ * By using the True Equator Mean Equinox (TEME) coordinate system, we can accurately describe the position and motion
32
+ * of satellites relative to the Earth's equator and equinox. This is particularly useful for tracking and predicting
33
+ * satellite orbits in various applications, such as satellite communication, navigation, and remote sensing.
34
+ */
35
+ export declare class TEME extends StateVector {
36
+ /**
37
+ * Gets the name of the coordinate system.
38
+ * @returns The name of the coordinate system.
39
+ */
40
+ get name(): string;
41
+ /**
42
+ * Gets a value indicating whether the coordinate is inertial.
43
+ * @returns A boolean value indicating whether the coordinate is inertial.
44
+ */
45
+ get inertial(): boolean;
46
+ /**
47
+ * Creates a TEME (True Equator Mean Equinox) object from classical orbital elements.
48
+ * @param elements - The classical orbital elements.
49
+ * @returns A new TEME object.
50
+ */
51
+ static fromClassicalElements(elements: ClassicalElements): TEME;
52
+ /**
53
+ * Converts the TEME (True Equator Mean Equinox) coordinates to J2000 coordinates.
54
+ * @returns The J2000 coordinates.
55
+ */
56
+ toJ2000(): J2000;
57
+ }
@@ -0,0 +1,89 @@
1
+ /**
2
+ * @author Theodore Kruczek.
3
+ * @license MIT
4
+ * @copyright (c) 2022-2025 Theodore Kruczek Permission is
5
+ * hereby granted, free of charge, to any person obtaining a copy of this
6
+ * software and associated documentation files (the "Software"), to deal in the
7
+ * Software without restriction, including without limitation the rights to use,
8
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ * the Software, and to permit persons to whom the Software is furnished to do
10
+ * so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in
13
+ * all copies or substantial portions of the Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+ import { Earth } from '../body/Earth.js';
24
+ import { J2000 } from './J2000.js';
25
+ import { StateVector } from './StateVector.js';
26
+ /**
27
+ * True Equator Mean Equinox (TEME) is a coordinate system commonly used in satellite tracking and orbit prediction. It
28
+ * is a reference frame that defines the position and orientation of an object relative to the Earth's equator and
29
+ * equinox.
30
+ *
31
+ * By using the True Equator Mean Equinox (TEME) coordinate system, we can accurately describe the position and motion
32
+ * of satellites relative to the Earth's equator and equinox. This is particularly useful for tracking and predicting
33
+ * satellite orbits in various applications, such as satellite communication, navigation, and remote sensing.
34
+ */
35
+ export class TEME extends StateVector {
36
+ /**
37
+ * Gets the name of the coordinate system.
38
+ * @returns The name of the coordinate system.
39
+ */
40
+ get name() {
41
+ return 'TEME';
42
+ }
43
+ /**
44
+ * Gets a value indicating whether the coordinate is inertial.
45
+ * @returns A boolean value indicating whether the coordinate is inertial.
46
+ */
47
+ get inertial() {
48
+ return true;
49
+ }
50
+ /**
51
+ * Creates a TEME (True Equator Mean Equinox) object from classical orbital elements.
52
+ * @param elements - The classical orbital elements.
53
+ * @returns A new TEME object.
54
+ */
55
+ static fromClassicalElements(elements) {
56
+ const rv = elements.toPositionVelocity();
57
+ return new TEME(elements.epoch, rv.position, rv.velocity);
58
+ }
59
+ /**
60
+ * Converts the TEME (True Equator Mean Equinox) coordinates to J2000 coordinates.
61
+ * @returns The J2000 coordinates.
62
+ */
63
+ toJ2000() {
64
+ const p = Earth.precession(this.epoch);
65
+ const n = Earth.nutation(this.epoch);
66
+ const eps = n.mEps + n.dEps;
67
+ const dPsiCosEps = n.dPsi * Math.cos(eps);
68
+ const rMOD = this.position
69
+ .rotZ(-dPsiCosEps)
70
+ .rotX(eps)
71
+ .rotZ(n.dPsi)
72
+ .rotX(-n.mEps);
73
+ const vMOD = this.velocity
74
+ .rotZ(-dPsiCosEps)
75
+ .rotX(eps)
76
+ .rotZ(n.dPsi)
77
+ .rotX(-n.mEps);
78
+ const rJ2K = rMOD
79
+ .rotZ(p.zed)
80
+ .rotY(-p.theta)
81
+ .rotZ(p.zeta);
82
+ const vJ2K = vMOD
83
+ .rotZ(p.zed)
84
+ .rotY(-p.theta)
85
+ .rotZ(p.zeta);
86
+ return new J2000(this.epoch, rJ2K, vJ2K);
87
+ }
88
+ }
89
+ //# sourceMappingURL=TEME.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TEME.js","sourceRoot":"","sources":["../../src/coordinate/TEME.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;;;;;;GAQG;AACH,MAAM,OAAO,IAAK,SAAQ,WAAW;IACnC;;;OAGG;IACH,IAAI,IAAI;QACN,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAA2B;QACtD,MAAM,EAAE,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QAEzC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QAC5B,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ;aACvB,IAAI,CAAC,CAAC,UAAqB,CAAC;aAC5B,IAAI,CAAC,GAAG,CAAC;aACT,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;aACZ,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ;aACvB,IAAI,CAAC,CAAC,UAAqB,CAAC;aAC5B,IAAI,CAAC,GAAG,CAAC;aACT,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;aACZ,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI;aACd,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;aACX,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,CAAC;aACzB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAyB,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI;aACd,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;aACX,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgB,CAAC;aACzB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAkC,CAAC;QAEjD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF"}