ootk 5.0.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/dist/body/Celestial.d.ts +19 -19
  2. package/dist/body/Celestial.js +19 -19
  3. package/dist/body/Earth.d.ts +18 -18
  4. package/dist/body/Earth.js +18 -18
  5. package/dist/body/NutationAngles.d.ts +18 -18
  6. package/dist/body/NutationAngles.js +18 -18
  7. package/dist/body/PrecessionAngles.d.ts +18 -18
  8. package/dist/body/PrecessionAngles.js +18 -18
  9. package/dist/body/Sun.d.ts +14 -18
  10. package/dist/body/Sun.js +14 -18
  11. package/dist/body/Sun.js.map +1 -1
  12. package/dist/body/index.d.ts +18 -18
  13. package/dist/body/index.js +18 -18
  14. package/dist/coordinate/ClassicalElements.d.ts +18 -18
  15. package/dist/coordinate/ClassicalElements.js +19 -19
  16. package/dist/coordinate/ClassicalElements.js.map +1 -1
  17. package/dist/coordinate/EquinoctialElements.d.ts +18 -18
  18. package/dist/coordinate/EquinoctialElements.js +18 -18
  19. package/dist/coordinate/FormatTle.d.ts +18 -18
  20. package/dist/coordinate/FormatTle.js +18 -18
  21. package/dist/coordinate/Geodetic.d.ts +18 -18
  22. package/dist/coordinate/Geodetic.js +18 -18
  23. package/dist/coordinate/Hill.d.ts +1 -1
  24. package/dist/coordinate/Hill.js +1 -1
  25. package/dist/coordinate/ITRF.d.ts +18 -18
  26. package/dist/coordinate/ITRF.js +18 -19
  27. package/dist/coordinate/ITRF.js.map +1 -1
  28. package/dist/coordinate/J2000.d.ts +18 -18
  29. package/dist/coordinate/J2000.js +18 -18
  30. package/dist/coordinate/RIC.d.ts +18 -18
  31. package/dist/coordinate/RIC.js +18 -18
  32. package/dist/coordinate/RelativeState.d.ts +18 -18
  33. package/dist/coordinate/RelativeState.js +18 -18
  34. package/dist/coordinate/StateVector.d.ts +18 -18
  35. package/dist/coordinate/StateVector.js +19 -19
  36. package/dist/coordinate/StateVector.js.map +1 -1
  37. package/dist/coordinate/TEME.d.ts +18 -18
  38. package/dist/coordinate/TEME.js +18 -18
  39. package/dist/coordinate/Tle.d.ts +21 -22
  40. package/dist/coordinate/Tle.js +21 -21
  41. package/dist/coordinate/Tle.js.map +1 -1
  42. package/dist/coordinate/index.js +0 -1
  43. package/dist/coordinate/index.js.map +1 -1
  44. package/dist/coordinate/tle-format-data.d.ts +18 -18
  45. package/dist/coordinate/tle-format-data.js +18 -18
  46. package/dist/covariance/CovarianceSample.d.ts +9 -6
  47. package/dist/covariance/CovarianceSample.js +92 -18
  48. package/dist/covariance/CovarianceSample.js.map +1 -1
  49. package/dist/covariance/StateCovariance.d.ts +1 -1
  50. package/dist/covariance/StateCovariance.js +1 -1
  51. package/dist/covariance/index.d.ts +2 -0
  52. package/dist/covariance/index.js +3 -0
  53. package/dist/covariance/index.js.map +1 -0
  54. package/dist/data/DataHandler.d.ts +18 -18
  55. package/dist/data/DataHandler.js +18 -18
  56. package/dist/data/values/Egm96Data.d.ts +18 -18
  57. package/dist/data/values/Egm96Data.js +18 -18
  58. package/dist/data/values/Egm96Data.js.map +1 -1
  59. package/dist/data/values/HpAtmosphereData.d.ts +18 -18
  60. package/dist/data/values/HpAtmosphereData.js +20 -20
  61. package/dist/data/values/HpAtmosphereData.js.map +1 -1
  62. package/dist/data/values/HpAtmosphereResult.d.ts +18 -18
  63. package/dist/data/values/HpAtmosphereResult.js +18 -18
  64. package/dist/data/values/Iau1980Data.d.ts +18 -18
  65. package/dist/data/values/Iau1980Data.js +18 -18
  66. package/dist/data/values/Iau1980Data.js.map +1 -1
  67. package/dist/data/values/LeapSecond.d.ts +18 -18
  68. package/dist/data/values/LeapSecond.js +18 -18
  69. package/dist/data/values/LeapSecondData.d.ts +18 -18
  70. package/dist/data/values/LeapSecondData.js +22 -22
  71. package/dist/data/values/LeapSecondData.js.map +1 -1
  72. package/dist/data/values/egm96.d.ts +18 -18
  73. package/dist/data/values/egm96.js +18 -18
  74. package/dist/data/values/hpAtmosphere.d.ts +18 -18
  75. package/dist/data/values/hpAtmosphere.js +18 -18
  76. package/dist/data/values/iau1980.d.ts +18 -18
  77. package/dist/data/values/iau1980.js +18 -18
  78. package/dist/enums/AngularDiameterMethod.d.ts +18 -18
  79. package/dist/enums/AngularDiameterMethod.js +18 -18
  80. package/dist/enums/AngularDistanceMethod.d.ts +18 -18
  81. package/dist/enums/AngularDistanceMethod.js +18 -18
  82. package/dist/enums/OrbitRegime.d.ts +18 -18
  83. package/dist/enums/OrbitRegime.js +18 -18
  84. package/dist/enums/PassType.d.ts +18 -18
  85. package/dist/enums/PassType.js +18 -18
  86. package/dist/enums/Sgp4OpsMode.d.ts +18 -18
  87. package/dist/enums/Sgp4OpsMode.js +18 -18
  88. package/dist/force/AtmosphericDrag.d.ts +1 -1
  89. package/dist/force/AtmosphericDrag.js +2 -5
  90. package/dist/force/AtmosphericDrag.js.map +1 -1
  91. package/dist/force/EarthGravity.d.ts +1 -1
  92. package/dist/force/EarthGravity.js +1 -1
  93. package/dist/force/Force.d.ts +1 -1
  94. package/dist/force/Force.js +1 -1
  95. package/dist/force/ForceModel.d.ts +1 -1
  96. package/dist/force/ForceModel.js +1 -1
  97. package/dist/force/Gravity.d.ts +1 -1
  98. package/dist/force/Gravity.js +1 -1
  99. package/dist/force/SolarRadiationPressure.d.ts +1 -1
  100. package/dist/force/SolarRadiationPressure.js +1 -1
  101. package/dist/force/ThirdBodyGravity.d.ts +1 -1
  102. package/dist/force/ThirdBodyGravity.js +1 -1
  103. package/dist/force/Thrust.d.ts +1 -1
  104. package/dist/force/Thrust.js +1 -1
  105. package/dist/interfaces/BaseObjectParams.d.ts +18 -18
  106. package/dist/interfaces/BaseObjectParams.js +18 -18
  107. package/dist/interfaces/ClassicalElementsParams.d.ts +18 -18
  108. package/dist/interfaces/ClassicalElementsParams.js +18 -18
  109. package/dist/interfaces/EquinoctialElementsParams.d.ts +18 -18
  110. package/dist/interfaces/EquinoctialElementsParams.js +18 -18
  111. package/dist/interfaces/GroundPositionParams.d.ts +18 -18
  112. package/dist/interfaces/GroundPositionParams.js +18 -18
  113. package/dist/interpolator/ChebyshevCoefficients.d.ts +4 -4
  114. package/dist/interpolator/ChebyshevCoefficients.js +1 -1
  115. package/dist/interpolator/ChebyshevCoefficients.js.map +1 -1
  116. package/dist/interpolator/ChebyshevInterpolator.d.ts +2 -2
  117. package/dist/interpolator/ChebyshevInterpolator.js +8 -8
  118. package/dist/interpolator/ChebyshevInterpolator.js.map +1 -1
  119. package/dist/interpolator/CubicSpline.d.ts +1 -1
  120. package/dist/interpolator/CubicSpline.js +1 -1
  121. package/dist/interpolator/CubicSplineInterpolator.d.ts +3 -3
  122. package/dist/interpolator/CubicSplineInterpolator.js +9 -9
  123. package/dist/interpolator/CubicSplineInterpolator.js.map +1 -1
  124. package/dist/interpolator/FieldInterpolator.d.ts +1 -1
  125. package/dist/interpolator/FieldInterpolator.js +1 -1
  126. package/dist/interpolator/Interpolator.d.ts +1 -1
  127. package/dist/interpolator/Interpolator.js +1 -1
  128. package/dist/interpolator/LagrangeInterpolator.d.ts +6 -6
  129. package/dist/interpolator/LagrangeInterpolator.js +1 -1
  130. package/dist/interpolator/LagrangeInterpolator.js.map +1 -1
  131. package/dist/interpolator/StateInterpolator.d.ts +1 -1
  132. package/dist/interpolator/StateInterpolator.js +1 -1
  133. package/dist/interpolator/VerletBlendInterpolator.d.ts +1 -1
  134. package/dist/interpolator/VerletBlendInterpolator.js +1 -1
  135. package/dist/main.d.ts +4 -2
  136. package/dist/main.js +4 -2
  137. package/dist/main.js.map +1 -1
  138. package/dist/maneuver/TwoBurnOrbitTransfer.d.ts +1 -1
  139. package/dist/maneuver/TwoBurnOrbitTransfer.js +1 -1
  140. package/dist/maneuver/Waypoint.d.ts +1 -1
  141. package/dist/maneuver/Waypoint.js +1 -1
  142. package/dist/objects/BaseObject.d.ts +18 -18
  143. package/dist/objects/BaseObject.js +18 -18
  144. package/dist/objects/DetailedSatellite.d.ts +1 -1
  145. package/dist/objects/DetailedSatellite.js +4 -2
  146. package/dist/objects/DetailedSatellite.js.map +1 -1
  147. package/dist/objects/DetailedSensor.d.ts +1 -1
  148. package/dist/objects/DetailedSensor.js +1 -1
  149. package/dist/objects/GroundObject.d.ts +18 -18
  150. package/dist/objects/GroundObject.js +18 -18
  151. package/dist/objects/LandObject.d.ts +1 -1
  152. package/dist/objects/LandObject.js +1 -1
  153. package/dist/objects/Marker.d.ts +1 -1
  154. package/dist/objects/Marker.js +1 -1
  155. package/dist/objects/Satellite.d.ts +18 -18
  156. package/dist/objects/Satellite.js +19 -19
  157. package/dist/objects/Satellite.js.map +1 -1
  158. package/dist/objects/Sensor.d.ts +18 -19
  159. package/dist/objects/Sensor.js +18 -19
  160. package/dist/objects/Sensor.js.map +1 -1
  161. package/dist/objects/Star.d.ts +18 -18
  162. package/dist/objects/Star.js +18 -18
  163. package/dist/observation/Observation.d.ts +1 -1
  164. package/dist/observation/Observation.js +1 -1
  165. package/dist/observation/ObservationOptical.d.ts +5 -5
  166. package/dist/observation/ObservationOptical.js +8 -8
  167. package/dist/observation/ObservationOptical.js.map +1 -1
  168. package/dist/observation/ObservationRadar.d.ts +5 -5
  169. package/dist/observation/ObservationRadar.js +8 -8
  170. package/dist/observation/ObservationRadar.js.map +1 -1
  171. package/dist/observation/ObservationUtils.d.ts +1 -1
  172. package/dist/observation/ObservationUtils.js +1 -1
  173. package/dist/observation/PropagatorPairs.d.ts +4 -4
  174. package/dist/observation/PropagatorPairs.js +7 -7
  175. package/dist/observation/PropagatorPairs.js.map +1 -1
  176. package/dist/observation/RAE.d.ts +18 -18
  177. package/dist/observation/RAE.js +18 -19
  178. package/dist/observation/RAE.js.map +1 -1
  179. package/dist/observation/RadecGeocentric.d.ts +18 -18
  180. package/dist/observation/RadecGeocentric.js +18 -18
  181. package/dist/observation/RadecTopocentric.d.ts +18 -18
  182. package/dist/observation/RadecTopocentric.js +18 -18
  183. package/dist/observation/index.d.ts +18 -18
  184. package/dist/observation/index.js +18 -18
  185. package/dist/operations/BoxMuller.d.ts +1 -1
  186. package/dist/operations/BoxMuller.js +1 -1
  187. package/dist/operations/EulerAngles.d.ts +1 -1
  188. package/dist/operations/EulerAngles.js +1 -1
  189. package/dist/operations/Matrix.d.ts +18 -18
  190. package/dist/operations/Matrix.js +63 -63
  191. package/dist/operations/Matrix.js.map +1 -1
  192. package/dist/operations/Quaternion.d.ts +6 -6
  193. package/dist/operations/Quaternion.js +1 -1
  194. package/dist/operations/Quaternion.js.map +1 -1
  195. package/dist/operations/Random.d.ts +18 -18
  196. package/dist/operations/Random.js +18 -18
  197. package/dist/operations/RandomGaussianSource.d.ts +2 -2
  198. package/dist/operations/RandomGaussianSource.js +4 -4
  199. package/dist/operations/RandomGaussianSource.js.map +1 -1
  200. package/dist/operations/Vector.d.ts +18 -18
  201. package/dist/operations/Vector.js +24 -24
  202. package/dist/operations/Vector.js.map +1 -1
  203. package/dist/operations/Vector3D.d.ts +18 -18
  204. package/dist/operations/Vector3D.js +18 -18
  205. package/dist/operations/operations.d.ts +18 -18
  206. package/dist/operations/operations.js +18 -18
  207. package/dist/optimize/ChebyshevCompressor.d.ts +3 -3
  208. package/dist/optimize/ChebyshevCompressor.js +7 -7
  209. package/dist/optimize/ChebyshevCompressor.js.map +1 -1
  210. package/dist/optimize/DownhillSimplex.d.ts +1 -1
  211. package/dist/optimize/DownhillSimplex.js +1 -1
  212. package/dist/optimize/GoldenSection.d.ts +2 -2
  213. package/dist/optimize/GoldenSection.js +3 -3
  214. package/dist/optimize/PolynomialRegression.d.ts +1 -1
  215. package/dist/optimize/PolynomialRegression.js +1 -1
  216. package/dist/optimize/PolynomicalRegressionResult.d.ts +1 -1
  217. package/dist/optimize/PolynomicalRegressionResult.js +1 -1
  218. package/dist/optimize/SimpleLinearRegression.d.ts +1 -1
  219. package/dist/optimize/SimpleLinearRegression.js +1 -1
  220. package/dist/optimize/SimplexEntry.d.ts +4 -4
  221. package/dist/optimize/SimplexEntry.js +10 -10
  222. package/dist/optimize/SimplexEntry.js.map +1 -1
  223. package/dist/orbit_determination/BatchLeastSquaresOD.d.ts +10 -10
  224. package/dist/orbit_determination/BatchLeastSquaresOD.js +1 -1
  225. package/dist/orbit_determination/BatchLeastSquaresOD.js.map +1 -1
  226. package/dist/orbit_determination/BatchLeastSquaresResult.d.ts +1 -1
  227. package/dist/orbit_determination/BatchLeastSquaresResult.js +1 -1
  228. package/dist/orbit_determination/GibbsIOD.d.ts +1 -1
  229. package/dist/orbit_determination/GibbsIOD.js +1 -1
  230. package/dist/orbit_determination/GoodingIOD.d.ts +1 -1
  231. package/dist/orbit_determination/GoodingIOD.js +1 -1
  232. package/dist/orbit_determination/HerrickGibbsIOD.d.ts +1 -1
  233. package/dist/orbit_determination/HerrickGibbsIOD.js +1 -1
  234. package/dist/orbit_determination/LambertIOD.d.ts +1 -1
  235. package/dist/orbit_determination/LambertIOD.js +1 -1
  236. package/dist/orbit_determination/ModifiedGoodingIOD.d.ts +3 -3
  237. package/dist/orbit_determination/ModifiedGoodingIOD.js +1 -1
  238. package/dist/orbit_determination/ModifiedGoodingIOD.js.map +1 -1
  239. package/dist/propagator/DormandPrince54Propagator.d.ts +5 -5
  240. package/dist/propagator/DormandPrince54Propagator.js +9 -9
  241. package/dist/propagator/DormandPrince54Propagator.js.map +1 -1
  242. package/dist/propagator/KeplerPropagator.d.ts +5 -5
  243. package/dist/propagator/KeplerPropagator.js +30 -30
  244. package/dist/propagator/KeplerPropagator.js.map +1 -1
  245. package/dist/propagator/Propagator.d.ts +1 -1
  246. package/dist/propagator/Propagator.js +1 -1
  247. package/dist/propagator/RkCheckpoint.d.ts +1 -1
  248. package/dist/propagator/RkCheckpoint.js +1 -1
  249. package/dist/propagator/RkResult.d.ts +1 -1
  250. package/dist/propagator/RkResult.js +1 -1
  251. package/dist/propagator/RungeKutta4Propagator.d.ts +2 -2
  252. package/dist/propagator/RungeKutta4Propagator.js +1 -1
  253. package/dist/propagator/RungeKutta4Propagator.js.map +1 -1
  254. package/dist/propagator/RungeKutta89Propagator.d.ts +5 -5
  255. package/dist/propagator/RungeKutta89Propagator.js +1 -1
  256. package/dist/propagator/RungeKutta89Propagator.js.map +1 -1
  257. package/dist/propagator/RungeKuttaAdaptive.d.ts +3 -3
  258. package/dist/propagator/RungeKuttaAdaptive.js +1 -1
  259. package/dist/propagator/RungeKuttaAdaptive.js.map +1 -1
  260. package/dist/propagator/Sgp4Propagator.d.ts +5 -5
  261. package/dist/propagator/Sgp4Propagator.js +15 -15
  262. package/dist/propagator/Sgp4Propagator.js.map +1 -1
  263. package/dist/sgp4/index.d.ts +18 -18
  264. package/dist/sgp4/index.js +18 -18
  265. package/dist/sgp4/sgp4.d.ts +17 -20
  266. package/dist/sgp4/sgp4.js +20 -23
  267. package/dist/sgp4/sgp4.js.map +1 -1
  268. package/dist/smoothing/ExponentialSmoothing.d.ts +1 -1
  269. package/dist/smoothing/ExponentialSmoothing.js +1 -1
  270. package/dist/time/Epoch.d.ts +18 -18
  271. package/dist/time/Epoch.js +18 -18
  272. package/dist/time/EpochGPS.d.ts +19 -19
  273. package/dist/time/EpochGPS.js +19 -19
  274. package/dist/time/EpochGPS.js.map +1 -1
  275. package/dist/time/EpochTAI.d.ts +18 -18
  276. package/dist/time/EpochTAI.js +18 -18
  277. package/dist/time/EpochTDB.d.ts +18 -18
  278. package/dist/time/EpochTDB.js +18 -18
  279. package/dist/time/EpochTT.d.ts +18 -18
  280. package/dist/time/EpochTT.js +18 -18
  281. package/dist/time/EpochUTC.d.ts +18 -18
  282. package/dist/time/EpochUTC.js +18 -18
  283. package/dist/time/EpochUTC.js.map +1 -1
  284. package/dist/time/EpochWindow.d.ts +18 -18
  285. package/dist/time/EpochWindow.js +18 -18
  286. package/dist/time/TimeStamped.d.ts +18 -22
  287. package/dist/time/TimeStamped.js +18 -22
  288. package/dist/time/TimeStamped.js.map +1 -1
  289. package/dist/time/index.d.ts +0 -22
  290. package/dist/time/index.js +0 -22
  291. package/dist/time/index.js.map +1 -1
  292. package/dist/transforms/TransformCache.d.ts +18 -18
  293. package/dist/transforms/TransformCache.js +18 -18
  294. package/dist/transforms/conversions.d.ts +18 -18
  295. package/dist/transforms/conversions.js +18 -18
  296. package/dist/types/types.d.ts +2 -2
  297. package/dist/types/types.js +1 -1
  298. package/dist/utils/create-covariance-from-tle.d.ts +18 -0
  299. package/dist/utils/create-covariance-from-tle.js +57 -0
  300. package/dist/utils/create-covariance-from-tle.js.map +1 -0
  301. package/dist/utils/functions.js.map +1 -1
  302. package/dist/utils/index.d.ts +1 -0
  303. package/dist/utils/index.js +1 -0
  304. package/dist/utils/index.js.map +1 -1
  305. package/dist/utils/jacobian.d.ts +6 -0
  306. package/dist/utils/jacobian.js +6 -1
  307. package/dist/utils/jacobian.js.map +1 -1
  308. package/package.json +2 -2
  309. package/src/body/Celestial.ts +19 -19
  310. package/src/body/Earth.ts +18 -18
  311. package/src/body/NutationAngles.ts +18 -18
  312. package/src/body/PrecessionAngles.ts +18 -18
  313. package/src/body/Sun.ts +14 -18
  314. package/src/body/index.ts +18 -18
  315. package/src/coordinate/ClassicalElements.ts +21 -20
  316. package/src/coordinate/EquinoctialElements.ts +18 -18
  317. package/src/coordinate/FormatTle.ts +18 -18
  318. package/src/coordinate/Geodetic.ts +18 -18
  319. package/src/coordinate/Hill.ts +1 -1
  320. package/src/coordinate/ITRF.ts +18 -18
  321. package/src/coordinate/J2000.ts +18 -18
  322. package/src/coordinate/RIC.ts +18 -18
  323. package/src/coordinate/RelativeState.ts +18 -18
  324. package/src/coordinate/StateVector.ts +21 -20
  325. package/src/coordinate/TEME.ts +18 -18
  326. package/src/coordinate/Tle.ts +26 -26
  327. package/src/coordinate/index.ts +0 -1
  328. package/src/coordinate/tle-format-data.ts +18 -18
  329. package/src/covariance/CovarianceSample.ts +116 -18
  330. package/src/covariance/StateCovariance.ts +1 -1
  331. package/src/covariance/index.ts +2 -0
  332. package/src/data/DataHandler.ts +18 -18
  333. package/src/data/values/Egm96Data.ts +19 -19
  334. package/src/data/values/HpAtmosphereData.ts +21 -21
  335. package/src/data/values/HpAtmosphereResult.ts +18 -18
  336. package/src/data/values/Iau1980Data.ts +19 -19
  337. package/src/data/values/LeapSecond.ts +18 -18
  338. package/src/data/values/LeapSecondData.ts +24 -24
  339. package/src/data/values/egm96.ts +18 -18
  340. package/src/data/values/hpAtmosphere.ts +18 -18
  341. package/src/data/values/iau1980.ts +18 -18
  342. package/src/enums/AngularDiameterMethod.ts +18 -18
  343. package/src/enums/AngularDistanceMethod.ts +18 -18
  344. package/src/enums/OrbitRegime.ts +18 -18
  345. package/src/enums/PassType.ts +18 -18
  346. package/src/enums/Sgp4OpsMode.ts +18 -18
  347. package/src/force/AtmosphericDrag.ts +1 -3
  348. package/src/force/EarthGravity.ts +1 -1
  349. package/src/force/Force.ts +1 -1
  350. package/src/force/ForceModel.ts +1 -1
  351. package/src/force/Gravity.ts +1 -1
  352. package/src/force/SolarRadiationPressure.ts +1 -1
  353. package/src/force/ThirdBodyGravity.ts +1 -1
  354. package/src/force/Thrust.ts +1 -1
  355. package/src/interfaces/BaseObjectParams.ts +18 -18
  356. package/src/interfaces/ClassicalElementsParams.ts +18 -18
  357. package/src/interfaces/EquinoctialElementsParams.ts +18 -18
  358. package/src/interfaces/GroundPositionParams.ts +18 -18
  359. package/src/interpolator/ChebyshevCoefficients.ts +4 -4
  360. package/src/interpolator/ChebyshevInterpolator.ts +9 -9
  361. package/src/interpolator/CubicSpline.ts +1 -1
  362. package/src/interpolator/CubicSplineInterpolator.ts +7 -7
  363. package/src/interpolator/FieldInterpolator.ts +1 -1
  364. package/src/interpolator/Interpolator.ts +1 -1
  365. package/src/interpolator/LagrangeInterpolator.ts +6 -6
  366. package/src/interpolator/StateInterpolator.ts +1 -1
  367. package/src/interpolator/VerletBlendInterpolator.ts +1 -1
  368. package/src/main.ts +4 -2
  369. package/src/maneuver/TwoBurnOrbitTransfer.ts +1 -1
  370. package/src/maneuver/Waypoint.ts +1 -1
  371. package/src/objects/BaseObject.ts +18 -18
  372. package/src/objects/DetailedSatellite.ts +2 -1
  373. package/src/objects/DetailedSensor.ts +1 -1
  374. package/src/objects/GroundObject.ts +18 -18
  375. package/src/objects/LandObject.ts +1 -1
  376. package/src/objects/Marker.ts +1 -1
  377. package/src/objects/Satellite.ts +19 -19
  378. package/src/objects/Sensor.ts +18 -19
  379. package/src/objects/Star.ts +18 -18
  380. package/src/observation/Observation.ts +1 -1
  381. package/src/observation/ObservationOptical.ts +6 -6
  382. package/src/observation/ObservationRadar.ts +9 -5
  383. package/src/observation/ObservationUtils.ts +1 -1
  384. package/src/observation/PropagatorPairs.ts +3 -3
  385. package/src/observation/RAE.ts +18 -19
  386. package/src/observation/RadecGeocentric.ts +18 -18
  387. package/src/observation/RadecTopocentric.ts +18 -18
  388. package/src/observation/index.ts +18 -18
  389. package/src/operations/BoxMuller.ts +1 -1
  390. package/src/operations/EulerAngles.ts +1 -1
  391. package/src/operations/Matrix.ts +66 -66
  392. package/src/operations/Quaternion.ts +6 -6
  393. package/src/operations/Random.ts +18 -18
  394. package/src/operations/RandomGaussianSource.ts +4 -4
  395. package/src/operations/Vector.ts +24 -24
  396. package/src/operations/Vector3D.ts +18 -18
  397. package/src/operations/operations.ts +18 -18
  398. package/src/optimize/ChebyshevCompressor.ts +5 -5
  399. package/src/optimize/DownhillSimplex.ts +1 -1
  400. package/src/optimize/GoldenSection.ts +3 -3
  401. package/src/optimize/PolynomialRegression.ts +1 -1
  402. package/src/optimize/PolynomicalRegressionResult.ts +1 -1
  403. package/src/optimize/SimpleLinearRegression.ts +1 -1
  404. package/src/optimize/SimplexEntry.ts +8 -8
  405. package/src/orbit_determination/BatchLeastSquaresOD.ts +10 -10
  406. package/src/orbit_determination/BatchLeastSquaresResult.ts +1 -1
  407. package/src/orbit_determination/GibbsIOD.ts +1 -1
  408. package/src/orbit_determination/GoodingIOD.ts +1 -1
  409. package/src/orbit_determination/HerrickGibbsIOD.ts +1 -1
  410. package/src/orbit_determination/LambertIOD.ts +1 -1
  411. package/src/orbit_determination/ModifiedGoodingIOD.ts +3 -3
  412. package/src/propagator/DormandPrince54Propagator.ts +9 -9
  413. package/src/propagator/KeplerPropagator.ts +30 -30
  414. package/src/propagator/Propagator.ts +1 -1
  415. package/src/propagator/RkCheckpoint.ts +1 -1
  416. package/src/propagator/RkResult.ts +1 -1
  417. package/src/propagator/RungeKutta4Propagator.ts +2 -2
  418. package/src/propagator/RungeKutta89Propagator.ts +5 -5
  419. package/src/propagator/RungeKuttaAdaptive.ts +3 -3
  420. package/src/propagator/Sgp4Propagator.ts +13 -13
  421. package/src/sgp4/index.ts +18 -18
  422. package/src/sgp4/sgp4.LICENSE.md +2 -2
  423. package/src/sgp4/sgp4.ts +20 -23
  424. package/src/smoothing/ExponentialSmoothing.ts +1 -1
  425. package/src/time/Epoch.ts +18 -18
  426. package/src/time/EpochGPS.ts +20 -20
  427. package/src/time/EpochTAI.ts +18 -18
  428. package/src/time/EpochTDB.ts +18 -18
  429. package/src/time/EpochTT.ts +18 -18
  430. package/src/time/EpochUTC.ts +20 -20
  431. package/src/time/EpochWindow.ts +18 -18
  432. package/src/time/TimeStamped.ts +18 -22
  433. package/src/time/index.ts +0 -23
  434. package/src/transforms/TransformCache.ts +18 -18
  435. package/src/transforms/conversions.ts +18 -18
  436. package/src/types/types.ts +2 -2
  437. package/src/utils/create-covariance-from-tle.ts +75 -0
  438. package/src/utils/functions.ts +3 -3
  439. package/src/utils/index.ts +1 -0
  440. package/src/utils/jacobian.ts +6 -2
@@ -1,24 +1,24 @@
1
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:
2
+ * @author @thkruz Theodore Kruczek
3
+ * @description Orbital Object ToolKit (ootk) is a collection of tools for working
4
+ * with satellites and other orbital objects.
5
+ * @license AGPL-3.0-or-later
6
+ * @copyright (c) 2025 Kruczek Labs LLC
11
7
  *
12
- * The above copyright notice and this permission notice shall be included in
13
- * all copies or substantial portions of the Software.
8
+ * Many of the classes are based off of the work of @david-rc-dayton and his
9
+ * Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which
10
+ * is licensed under the MIT license.
14
11
  *
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.
12
+ * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
13
+ * terms of the GNU Affero General Public License as published by the Free Software
14
+ * Foundation, either version 3 of the License, or (at your option) any later version.
15
+ *
16
+ * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
17
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18
+ * See the GNU Affero General Public License for more details.
19
+ *
20
+ * You should have received a copy of the GNU Affero General Public License along with
21
+ * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
22
22
  */
23
23
 
24
24
  import { Vector3D, Vector, Radians } from '../main.js';
@@ -35,7 +35,7 @@ export class Matrix {
35
35
  constructor(elements: number[][]) {
36
36
  this.elements = elements;
37
37
  this.rows = elements.length;
38
- this.columns = (elements[0] as number[]).length;
38
+ this.columns = (elements[0]).length;
39
39
  }
40
40
 
41
41
  /**
@@ -62,7 +62,7 @@ export class Matrix {
62
62
  for (let i = 0; i < rows; i++) {
63
63
  elements[i] = [];
64
64
  for (let j = 0; j < columns; j++) {
65
- (elements[i] as number[])[j] = value;
65
+ (elements[i])[j] = value;
66
66
  }
67
67
  }
68
68
 
@@ -79,11 +79,11 @@ export class Matrix {
79
79
  const sinT = Math.sin(theta);
80
80
  const result = Matrix.zero(3, 3);
81
81
 
82
- (result.elements[0] as number[])[0] = 1.0;
83
- (result.elements[1] as number[])[1] = cosT;
84
- (result.elements[1] as number[])[2] = sinT;
85
- (result.elements[2] as number[])[1] = -sinT;
86
- (result.elements[2] as number[])[2] = cosT;
82
+ (result.elements[0])[0] = 1.0;
83
+ (result.elements[1])[1] = cosT;
84
+ (result.elements[1])[2] = sinT;
85
+ (result.elements[2])[1] = -sinT;
86
+ (result.elements[2])[2] = cosT;
87
87
 
88
88
  return result;
89
89
  }
@@ -98,11 +98,11 @@ export class Matrix {
98
98
  const sinT = Math.sin(theta);
99
99
  const result = Matrix.zero(3, 3);
100
100
 
101
- (result.elements[0] as number[])[0] = cosT;
102
- (result.elements[0] as number[])[2] = -sinT;
103
- (result.elements[1] as number[])[1] = 1.0;
104
- (result.elements[2] as number[])[0] = sinT;
105
- (result.elements[2] as number[])[2] = cosT;
101
+ (result.elements[0])[0] = cosT;
102
+ (result.elements[0])[2] = -sinT;
103
+ (result.elements[1])[1] = 1.0;
104
+ (result.elements[2])[0] = sinT;
105
+ (result.elements[2])[2] = cosT;
106
106
 
107
107
  return result;
108
108
  }
@@ -117,11 +117,11 @@ export class Matrix {
117
117
  const sinT = Math.sin(theta);
118
118
  const result = Matrix.zero(3, 3);
119
119
 
120
- (result.elements[0] as number[])[0] = cosT;
121
- (result.elements[0] as number[])[1] = sinT;
122
- (result.elements[1] as number[])[0] = -sinT;
123
- (result.elements[1] as number[])[1] = cosT;
124
- (result.elements[2] as number[])[2] = 1.0;
120
+ (result.elements[0])[0] = cosT;
121
+ (result.elements[0])[1] = sinT;
122
+ (result.elements[1])[0] = -sinT;
123
+ (result.elements[1])[1] = cosT;
124
+ (result.elements[2])[2] = 1.0;
125
125
 
126
126
  return result;
127
127
  }
@@ -138,7 +138,7 @@ export class Matrix {
138
138
  for (let i = 0; i < rows; i++) {
139
139
  elements[i] = [];
140
140
  for (let j = 0; j < columns; j++) {
141
- (elements[i] as number[])[j] = 0.0;
141
+ (elements[i])[j] = 0.0;
142
142
  }
143
143
  }
144
144
 
@@ -156,7 +156,7 @@ export class Matrix {
156
156
  for (let i = 0; i < dimension; i++) {
157
157
  elements[i] = [];
158
158
  for (let j = 0; j < dimension; j++) {
159
- (elements[i] as number[])[j] = i === j ? 1.0 : 0.0;
159
+ (elements[i])[j] = i === j ? 1.0 : 0.0;
160
160
  }
161
161
  }
162
162
 
@@ -175,7 +175,7 @@ export class Matrix {
175
175
  for (let i = 0; i < dimension; i++) {
176
176
  elements[i] = [];
177
177
  for (let j = 0; j < dimension; j++) {
178
- (elements[i] as number[])[j] = i === j ? d[i] as number : 0.0;
178
+ (elements[i])[j] = i === j ? d[i] : 0.0;
179
179
  }
180
180
  }
181
181
 
@@ -192,7 +192,7 @@ export class Matrix {
192
192
 
193
193
  for (let i = 0; i < this.rows; i++) {
194
194
  for (let j = 0; j < this.columns; j++) {
195
- (result.elements[i] ?? [])[j] = (this.elements[i]?.[j] as number) + (m.elements[i]?.[j] as number);
195
+ (result.elements[i] ?? [])[j] = (this.elements[i]?.[j]) + (m.elements[i]?.[j]);
196
196
  }
197
197
  }
198
198
 
@@ -209,7 +209,7 @@ export class Matrix {
209
209
 
210
210
  for (let i = 0; i < this.rows; i++) {
211
211
  for (let j = 0; j < this.columns; j++) {
212
- (result.elements[i] ?? [])[j] = (this.elements[i]?.[j] as number) - (m.elements[i]?.[j] as number);
212
+ (result.elements[i] ?? [])[j] = (this.elements[i]?.[j]) - (m.elements[i]?.[j]);
213
213
  }
214
214
  }
215
215
 
@@ -226,7 +226,7 @@ export class Matrix {
226
226
 
227
227
  for (let i = 0; i < this.rows; i++) {
228
228
  for (let j = 0; j < this.columns; j++) {
229
- (result.elements[i] ?? [])[j] = (this.elements[i]?.[j] as number) * n;
229
+ (result.elements[i] ?? [])[j] = (this.elements[i]?.[j]) * n;
230
230
  }
231
231
  }
232
232
 
@@ -252,8 +252,8 @@ export class Matrix {
252
252
  for (let i = 0; i < this.rows; i++) {
253
253
  for (let j = 0; j < m.columns; j++) {
254
254
  for (let k = 0; k < this.columns; k++) {
255
- ((result.elements[i] as number[])[j] as number) +=
256
- (this.elements[i]?.[k] as number) * (m.elements[k]?.[j] as number);
255
+ ((result.elements[i])[j]) +=
256
+ (this.elements[i]?.[k]) * (m.elements[k]?.[j]);
257
257
  }
258
258
  }
259
259
  }
@@ -271,7 +271,7 @@ export class Matrix {
271
271
 
272
272
  for (let i = 0; i < this.rows; i++) {
273
273
  for (let j = 0; j < this.columns; j++) {
274
- (result.elements[i] as number[])[j] = (this.elements[i]?.[j] as number) * (m.elements[i]?.[j] as number);
274
+ (result.elements[i])[j] = (this.elements[i]?.[j]) * (m.elements[i]?.[j]);
275
275
  }
276
276
  }
277
277
 
@@ -290,7 +290,7 @@ export class Matrix {
290
290
  let total = 0.0;
291
291
 
292
292
  for (let j = 0; j < this.columns; j++) {
293
- total += (this.elements[i]?.[j] as number) * (v.elements[j] as number);
293
+ total += (this.elements[i]?.[j]) * (v.elements[j]);
294
294
  }
295
295
  result[i] = total;
296
296
  }
@@ -313,13 +313,13 @@ export class Matrix {
313
313
  for (let j = 0; j < this.columns; j++) {
314
314
  switch (j) {
315
315
  case 0:
316
- total += (this.elements[i]?.[j] as number) * v.x;
316
+ total += (this.elements[i]?.[j]) * v.x;
317
317
  break;
318
318
  case 1:
319
- total += (this.elements[i]?.[j] as number) * v.y;
319
+ total += (this.elements[i]?.[j]) * v.y;
320
320
  break;
321
321
  case 2:
322
- total += (this.elements[i]?.[j] as number) * v.z;
322
+ total += (this.elements[i]?.[j]) * v.z;
323
323
  break;
324
324
  default:
325
325
  break;
@@ -328,7 +328,7 @@ export class Matrix {
328
328
  result[i] = total as T;
329
329
  }
330
330
 
331
- return new Vector3D<T>((result[0] as T), (result[1] as T), (result[2] as T));
331
+ return new Vector3D<T>((result[0]), (result[1]), (result[2]));
332
332
  }
333
333
 
334
334
  /**
@@ -345,7 +345,7 @@ export class Matrix {
345
345
  for (let i = 0; i < this.rows; i++) {
346
346
  for (let j = 0; j < this.columns; j++) {
347
347
  if ((this.elements[i]?.[j]) !== 0) {
348
- (output.elements[i] as number[])[j] = 1 / (this.elements[i]?.[j] as number);
348
+ (output.elements[i])[j] = 1 / (this.elements[i]?.[j]);
349
349
  }
350
350
  }
351
351
  }
@@ -362,7 +362,7 @@ export class Matrix {
362
362
 
363
363
  for (let i = 0; i < this.rows; i++) {
364
364
  for (let j = 0; j < this.columns; j++) {
365
- (result.elements[j] as number[])[i] = (this.elements[i] as number[])[j] as number;
365
+ (result.elements[j])[i] = (this.elements[i])[j];
366
366
  }
367
367
  }
368
368
 
@@ -382,12 +382,12 @@ export class Matrix {
382
382
  let total = 0.0;
383
383
 
384
384
  for (let j = 0; j < k; j++) {
385
- total += (result.elements[i]?.[j] as number) * (result.elements[k]?.[j] as number);
385
+ total += (result.elements[i]?.[j]) * (result.elements[k]?.[j]);
386
386
  }
387
- (result.elements[i] as number[])[k] =
387
+ (result.elements[i])[k] =
388
388
  i === k
389
- ? Math.sqrt((this.elements[i]?.[i] as number) - total)
390
- : (1 / (result.elements[k]?.[k] as number)) * ((this.elements[i]?.[k] as number) - total);
389
+ ? Math.sqrt((this.elements[i]?.[i]) - total)
390
+ : (1 / (result.elements[k]?.[k])) * ((this.elements[i]?.[k]) - total);
391
391
  }
392
392
  }
393
393
 
@@ -405,8 +405,8 @@ export class Matrix {
405
405
  }
406
406
  const tmp = this.elements[i];
407
407
 
408
- this.elements[i] = this.elements[j] as number[];
409
- this.elements[j] = tmp as number[];
408
+ this.elements[i] = this.elements[j];
409
+ this.elements[j] = tmp;
410
410
  }
411
411
 
412
412
  /**
@@ -417,7 +417,7 @@ export class Matrix {
417
417
  for (let lead = 0, row = 0; row < this.rows && lead < this.columns; ++row, ++lead) {
418
418
  let i = row;
419
419
 
420
- while ((this.elements[i]?.[lead] as number) === 0) {
420
+ while ((this.elements[i]?.[lead]) === 0) {
421
421
  if (++i === this.rows) {
422
422
  i = row;
423
423
  if (++lead === this.columns) {
@@ -426,21 +426,21 @@ export class Matrix {
426
426
  }
427
427
  }
428
428
  this._swapRows(i, row);
429
- if ((this.elements[row]?.[lead] as number) !== 0) {
430
- const f = this.elements[row]?.[lead] as number;
429
+ if ((this.elements[row]?.[lead]) !== 0) {
430
+ const f = this.elements[row]?.[lead];
431
431
 
432
432
  for (let column = 0; column < this.columns; ++column) {
433
- (this.elements[row] as number[])[column] = ((this.elements[row] as number[])[column] as number) / f;
433
+ (this.elements[row])[column] /= f;
434
434
  }
435
435
  }
436
436
  for (let j = 0; j < this.rows; ++j) {
437
437
  if (j === row) {
438
438
  continue;
439
439
  }
440
- const f = (this.elements[j]?.[lead] as number);
440
+ const f = (this.elements[j]?.[lead]);
441
441
 
442
442
  for (let column = 0; column < this.columns; ++column) {
443
- ((this.elements[j] as number[])[column] as number) -= f * (this.elements[row]?.[column] as number);
443
+ ((this.elements[j])[column]) -= f * (this.elements[row]?.[column]);
444
444
  }
445
445
  }
446
446
  }
@@ -455,16 +455,16 @@ export class Matrix {
455
455
 
456
456
  for (let row = 0; row < this.rows; ++row) {
457
457
  for (let column = 0; column < this.columns; ++column) {
458
- (tmp.elements[row] as number[])[column] = (this.elements[row] as number[])[column] as number;
458
+ (tmp.elements[row])[column] = (this.elements[row])[column];
459
459
  }
460
- (tmp.elements[row] as number[])[row + this.columns] = 1.0;
460
+ (tmp.elements[row])[row + this.columns] = 1.0;
461
461
  }
462
462
  tmp.toReducedRowEchelonForm_();
463
463
  const inv = Matrix.zero(this.rows, this.columns);
464
464
 
465
465
  for (let row = 0; row < this.rows; ++row) {
466
466
  for (let column = 0; column < this.columns; ++column) {
467
- ((inv.elements[row] as number[])[column] as number) = (tmp.elements[row]?.[column + this.columns] as number);
467
+ ((inv.elements[row])[column]) = (tmp.elements[row]?.[column + this.columns]);
468
468
  }
469
469
  }
470
470
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @author @thkruz Theodore Kruczek
3
3
  * @license AGPL-3.0-or-later
4
- * @copyright (c) 2020-2024 Theodore Kruczek
4
+ * @copyright (c) 2025 Kruczek Labs LLC
5
5
  *
6
6
  * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
7
7
  * terms of the GNU Affero General Public License as published by the Free Software
@@ -30,11 +30,11 @@ export class Quaternion {
30
30
  this.w = w;
31
31
  }
32
32
 
33
- static zero = new Quaternion(0, 0, 0, 0);
34
- static one = new Quaternion(0, 0, 0, 1);
35
- static xAxis = new Quaternion(1, 0, 0, 0);
36
- static yAxis = new Quaternion(0, 1, 0, 0);
37
- static zAxis = new Quaternion(0, 0, 1, 0);
33
+ static readonly zero = new Quaternion(0, 0, 0, 0);
34
+ static readonly one = new Quaternion(0, 0, 0, 1);
35
+ static readonly xAxis = new Quaternion(1, 0, 0, 0);
36
+ static readonly yAxis = new Quaternion(0, 1, 0, 0);
37
+ static readonly zAxis = new Quaternion(0, 0, 1, 0);
38
38
 
39
39
  toString(precision = 8): string {
40
40
  const xStr = this.x.toFixed(precision);
@@ -1,24 +1,24 @@
1
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:
2
+ * @author @thkruz Theodore Kruczek
3
+ * @description Orbital Object ToolKit (ootk) is a collection of tools for working
4
+ * with satellites and other orbital objects.
5
+ * @license AGPL-3.0-or-later
6
+ * @copyright (c) 2025 Kruczek Labs LLC
11
7
  *
12
- * The above copyright notice and this permission notice shall be included in
13
- * all copies or substantial portions of the Software.
8
+ * Many of the classes are based off of the work of @david-rc-dayton and his
9
+ * Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which
10
+ * is licensed under the MIT license.
14
11
  *
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.
12
+ * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
13
+ * terms of the GNU Affero General Public License as published by the Free Software
14
+ * Foundation, either version 3 of the License, or (at your option) any later version.
15
+ *
16
+ * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
17
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18
+ * See the GNU Affero General Public License for more details.
19
+ *
20
+ * You should have received a copy of the GNU Affero General Public License along with
21
+ * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
22
22
  */
23
23
 
24
24
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @author @thkruz Theodore Kruczek
3
3
  * @license AGPL-3.0-or-later
4
- * @copyright (c) 2020-2024 Theodore Kruczek
4
+ * @copyright (c) 2025 Kruczek Labs LLC
5
5
  *
6
6
  * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
7
7
  * terms of the GNU Affero General Public License as published by the Free Software
@@ -19,14 +19,14 @@ import { Vector, Vector3D } from '../main.js';
19
19
  import { BoxMuller } from './BoxMuller.js';
20
20
 
21
21
  export class RandomGaussianSource {
22
- private _boxMuller: BoxMuller;
22
+ private readonly boxMuller_: BoxMuller;
23
23
 
24
24
  constructor(seed = 0) {
25
- this._boxMuller = new BoxMuller(0, 1, seed);
25
+ this.boxMuller_ = new BoxMuller(0, 1, seed);
26
26
  }
27
27
 
28
28
  nextGauss(): number {
29
- return this._boxMuller.nextGauss();
29
+ return this.boxMuller_.nextGauss();
30
30
  }
31
31
 
32
32
  gaussVector(n: number): Vector {
@@ -1,24 +1,24 @@
1
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:
2
+ * @author @thkruz Theodore Kruczek
3
+ * @description Orbital Object ToolKit (ootk) is a collection of tools for working
4
+ * with satellites and other orbital objects.
5
+ * @license AGPL-3.0-or-later
6
+ * @copyright (c) 2025 Kruczek Labs LLC
11
7
  *
12
- * The above copyright notice and this permission notice shall be included in
13
- * all copies or substantial portions of the Software.
8
+ * Many of the classes are based off of the work of @david-rc-dayton and his
9
+ * Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which
10
+ * is licensed under the MIT license.
14
11
  *
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.
12
+ * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
13
+ * terms of the GNU Affero General Public License as published by the Free Software
14
+ * Foundation, either version 3 of the License, or (at your option) any later version.
15
+ *
16
+ * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
17
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18
+ * See the GNU Affero General Public License for more details.
19
+ *
20
+ * You should have received a copy of the GNU Affero General Public License along with
21
+ * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
22
22
  */
23
23
 
24
24
  import { Vector3D, Matrix, Degrees, Radians } from '../main.js';
@@ -184,7 +184,7 @@ export class Vector<T extends number = number> {
184
184
  const output = new Array(this.length);
185
185
 
186
186
  for (let i = 0; i < this.length; i++) {
187
- output[i] = (this.elements[i] as number) + (v.elements[i] as number);
187
+ output[i] = (this.elements[i] as number) + (v.elements[i]);
188
188
  }
189
189
 
190
190
  return new Vector(output);
@@ -199,7 +199,7 @@ export class Vector<T extends number = number> {
199
199
  const output = new Array(this.length);
200
200
 
201
201
  for (let i = 0; i < this.length; i++) {
202
- output[i] = (this.elements[i] as number) - (v.elements[i] as number);
202
+ output[i] = (this.elements[i] as number) - (v.elements[i]);
203
203
  }
204
204
 
205
205
  return new Vector(output);
@@ -262,7 +262,7 @@ export class Vector<T extends number = number> {
262
262
  let total = 0;
263
263
 
264
264
  for (let i = 0; i < this.length; i++) {
265
- total += (this.elements[i] as number) * (v.elements[i] as number);
265
+ total += (this.elements[i] as number) * (v.elements[i]);
266
266
  }
267
267
 
268
268
  return total;
@@ -279,7 +279,7 @@ export class Vector<T extends number = number> {
279
279
  for (let i = 0; i < this.length; i++) {
280
280
  result[i] = [];
281
281
  for (let j = 0; j < v.length; j++) {
282
- (result[i] as number[])[j] = (this.elements[i] as number) * (v.elements[j] as number);
282
+ (result[i])[j] = (this.elements[i] as number) * (v.elements[j]);
283
283
  }
284
284
  }
285
285
 
@@ -296,8 +296,8 @@ export class Vector<T extends number = number> {
296
296
 
297
297
  for (let i = 0; i < this.length; i++) {
298
298
  output[i] =
299
- (this.elements[(i + 1) % this.length] as number) * (v.elements[(i + 2) % this.length] as number) -
300
- (this.elements[(i + 2) % this.length] as number) * (v.elements[(i + 1) % this.length] as number);
299
+ (this.elements[(i + 1) % this.length] as number) * (v.elements[(i + 2) % this.length]) -
300
+ (this.elements[(i + 2) % this.length] as number) * (v.elements[(i + 1) % this.length]);
301
301
  }
302
302
 
303
303
  return new Vector(output);
@@ -1,24 +1,24 @@
1
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:
2
+ * @author @thkruz Theodore Kruczek
3
+ * @description Orbital Object ToolKit (ootk) is a collection of tools for working
4
+ * with satellites and other orbital objects.
5
+ * @license AGPL-3.0-or-later
6
+ * @copyright (c) 2025 Kruczek Labs LLC
11
7
  *
12
- * The above copyright notice and this permission notice shall be included in
13
- * all copies or substantial portions of the Software.
8
+ * Many of the classes are based off of the work of @david-rc-dayton and his
9
+ * Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which
10
+ * is licensed under the MIT license.
14
11
  *
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.
12
+ * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
13
+ * terms of the GNU Affero General Public License as published by the Free Software
14
+ * Foundation, either version 3 of the License, or (at your option) any later version.
15
+ *
16
+ * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
17
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18
+ * See the GNU Affero General Public License for more details.
19
+ *
20
+ * You should have received a copy of the GNU Affero General Public License along with
21
+ * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
22
22
  */
23
23
 
24
24
  import { Kilometers, KilometersPerSecond, Radians, linearDistance } from '../main.js';
@@ -1,24 +1,24 @@
1
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:
2
+ * @author @thkruz Theodore Kruczek
3
+ * @description Orbital Object ToolKit (ootk) is a collection of tools for working
4
+ * with satellites and other orbital objects.
5
+ * @license AGPL-3.0-or-later
6
+ * @copyright (c) 2025 Kruczek Labs LLC
11
7
  *
12
- * The above copyright notice and this permission notice shall be included in
13
- * all copies or substantial portions of the Software.
8
+ * Many of the classes are based off of the work of @david-rc-dayton and his
9
+ * Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which
10
+ * is licensed under the MIT license.
14
11
  *
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.
12
+ * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
13
+ * terms of the GNU Affero General Public License as published by the Free Software
14
+ * Foundation, either version 3 of the License, or (at your option) any later version.
15
+ *
16
+ * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
17
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18
+ * See the GNU Affero General Public License for more details.
19
+ *
20
+ * You should have received a copy of the GNU Affero General Public License along with
21
+ * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
22
22
  */
23
23
 
24
24
  export { Matrix } from './Matrix.js';
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @author @thkruz Theodore Kruczek
3
3
  * @license AGPL-3.0-or-later
4
- * @copyright (c) 2020-2024 Theodore Kruczek
4
+ * @copyright (c) 2025 Kruczek Labs LLC
5
5
  *
6
6
  * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
7
7
  * terms of the GNU Affero General Public License as published by the Free Software
@@ -23,7 +23,7 @@ import { ChebyshevInterpolator } from './../interpolator/ChebyshevInterpolator.j
23
23
  // / Ephemeris compressor.
24
24
  export class ChebyshevCompressor {
25
25
  // / Create a new [ChebyshevCompressor] object from an [Interpolator].
26
- constructor(private _interpolator: StateInterpolator) {
26
+ constructor(private readonly interpolator_: StateInterpolator) {
27
27
  // Do nothing.
28
28
  }
29
29
 
@@ -41,7 +41,7 @@ export class ChebyshevCompressor {
41
41
  for (let i = 0; i < n; i++) {
42
42
  const x = ChebyshevCompressor._cosPi((i + h) / n);
43
43
  const seconds = x * (h * (b - a)) + h * (b + a) as Seconds;
44
- const state = this._interpolator.interpolate(new EpochUTC(seconds))!;
44
+ const state = this.interpolator_.interpolate(new EpochUTC(seconds))!;
45
45
  const fx = state.position.x;
46
46
  const fy = state.position.y;
47
47
  const fz = state.position.z;
@@ -78,8 +78,8 @@ export class ChebyshevCompressor {
78
78
  * @returns A new [ChebyshevInterpolator] object.
79
79
  */
80
80
  compress(cpr = 21): ChebyshevInterpolator {
81
- const { start, end } = this._interpolator.window();
82
- const period = this._interpolator.interpolate(start)!.period;
81
+ const { start, end } = this.interpolator_.window();
82
+ const period = this.interpolator_.interpolate(start)!.period;
83
83
  const coefficients: ChebyshevCoefficients[] = [];
84
84
  let current = start;
85
85
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @author @thkruz Theodore Kruczek
3
3
  * @license AGPL-3.0-or-later
4
- * @copyright (c) 2020-2024 Theodore Kruczek
4
+ * @copyright (c) 2025 Kruczek Labs LLC
5
5
  *
6
6
  * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
7
7
  * terms of the GNU Affero General Public License as published by the Free Software