ootk 4.0.0-0 → 4.0.0-2

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 (356) hide show
  1. package/CHANGELOG.md +142 -31
  2. package/{lib → dist}/coordinate/Hill.d.ts +17 -18
  3. package/{lib → dist}/coordinate/Hill.js +44 -36
  4. package/dist/coordinate/Hill.js.map +1 -0
  5. package/{lib → dist}/covariance/CovarianceSample.d.ts +6 -7
  6. package/{lib → dist}/covariance/CovarianceSample.js +29 -28
  7. package/dist/covariance/CovarianceSample.js.map +1 -0
  8. package/{lib → dist}/covariance/StateCovariance.d.ts +4 -3
  9. package/{lib → dist}/covariance/StateCovariance.js +8 -5
  10. package/dist/covariance/StateCovariance.js.map +1 -0
  11. package/{lib → dist}/force/AtmosphericDrag.d.ts +1 -2
  12. package/{lib → dist}/force/AtmosphericDrag.js +13 -6
  13. package/dist/force/AtmosphericDrag.js.map +1 -0
  14. package/{lib → dist}/force/EarthGravity.d.ts +1 -2
  15. package/{lib → dist}/force/EarthGravity.js +4 -2
  16. package/dist/force/EarthGravity.js.map +1 -0
  17. package/{lib → dist}/force/Force.d.ts +3 -2
  18. package/{lib → dist}/force/Force.js +3 -2
  19. package/dist/force/Force.js.map +1 -0
  20. package/{lib → dist}/force/ForceModel.d.ts +4 -5
  21. package/{lib → dist}/force/ForceModel.js +6 -2
  22. package/dist/force/ForceModel.js.map +1 -0
  23. package/{lib → dist}/force/Gravity.d.ts +1 -4
  24. package/{lib → dist}/force/Gravity.js +3 -4
  25. package/dist/force/Gravity.js.map +1 -0
  26. package/{lib → dist}/force/SolarRadiationPressure.d.ts +1 -2
  27. package/{lib → dist}/force/SolarRadiationPressure.js +6 -4
  28. package/dist/force/SolarRadiationPressure.js.map +1 -0
  29. package/{lib → dist}/force/ThirdBodyGravity.d.ts +1 -2
  30. package/{lib → dist}/force/ThirdBodyGravity.js +4 -3
  31. package/dist/force/ThirdBodyGravity.js.map +1 -0
  32. package/{lib → dist}/force/Thrust.d.ts +10 -11
  33. package/{lib → dist}/force/Thrust.js +8 -3
  34. package/dist/force/Thrust.js.map +1 -0
  35. package/dist/interfaces/RfSensorParams.d.ts +28 -0
  36. package/dist/interfaces/RfSensorParams.js +24 -0
  37. package/dist/interfaces/RfSensorParams.js.map +1 -0
  38. package/dist/interfaces/index.d.ts +1 -0
  39. package/dist/interfaces/index.js +2 -0
  40. package/dist/interfaces/index.js.map +1 -0
  41. package/{lib → dist}/interpolator/ChebyshevCoefficients.d.ts +11 -15
  42. package/{lib → dist}/interpolator/ChebyshevCoefficients.js +19 -15
  43. package/dist/interpolator/ChebyshevCoefficients.js.map +1 -0
  44. package/{lib → dist}/interpolator/ChebyshevInterpolator.d.ts +1 -2
  45. package/{lib → dist}/interpolator/ChebyshevInterpolator.js +2 -2
  46. package/dist/interpolator/ChebyshevInterpolator.js.map +1 -0
  47. package/{lib → dist}/interpolator/CubicSpline.d.ts +8 -9
  48. package/{lib → dist}/interpolator/CubicSpline.js +10 -5
  49. package/dist/interpolator/CubicSpline.js.map +1 -0
  50. package/{lib → dist}/interpolator/CubicSplineInterpolator.d.ts +2 -3
  51. package/{lib → dist}/interpolator/CubicSplineInterpolator.js +6 -4
  52. package/dist/interpolator/CubicSplineInterpolator.js.map +1 -0
  53. package/{lib → dist}/interpolator/FieldInterpolator.d.ts +7 -5
  54. package/{lib → dist}/interpolator/FieldInterpolator.js +6 -3
  55. package/dist/interpolator/FieldInterpolator.js.map +1 -0
  56. package/{lib → dist}/interpolator/Interpolator.d.ts +1 -2
  57. package/{lib → dist}/interpolator/Interpolator.js +1 -2
  58. package/dist/interpolator/Interpolator.js.map +1 -0
  59. package/{lib → dist}/interpolator/LagrangeInterpolator.d.ts +8 -10
  60. package/{lib → dist}/interpolator/LagrangeInterpolator.js +32 -29
  61. package/dist/interpolator/LagrangeInterpolator.js.map +1 -0
  62. package/{lib → dist}/interpolator/StateInterpolator.d.ts +2 -4
  63. package/{lib → dist}/interpolator/StateInterpolator.js +2 -4
  64. package/dist/interpolator/StateInterpolator.js.map +1 -0
  65. package/{lib → dist}/interpolator/VerletBlendInterpolator.d.ts +4 -5
  66. package/{lib → dist}/interpolator/VerletBlendInterpolator.js +16 -13
  67. package/dist/interpolator/VerletBlendInterpolator.js.map +1 -0
  68. package/{lib/ootk.d.ts → dist/main.d.ts} +4 -2
  69. package/dist/main.js +32 -0
  70. package/dist/main.js.map +1 -0
  71. package/{lib → dist}/maneuver/TwoBurnOrbitTransfer.d.ts +5 -7
  72. package/{lib → dist}/maneuver/TwoBurnOrbitTransfer.js +6 -3
  73. package/dist/maneuver/TwoBurnOrbitTransfer.js.map +1 -0
  74. package/{lib → dist}/maneuver/Waypoint.d.ts +30 -5
  75. package/{lib → dist}/maneuver/Waypoint.js +31 -4
  76. package/dist/maneuver/Waypoint.js.map +1 -0
  77. package/{lib → dist}/objects/DetailedSatellite.d.ts +7 -31
  78. package/{lib → dist}/objects/DetailedSatellite.js +68 -72
  79. package/dist/objects/DetailedSatellite.js.map +1 -0
  80. package/{lib → dist}/objects/DetailedSensor.d.ts +1 -2
  81. package/{lib → dist}/objects/DetailedSensor.js +22 -2
  82. package/dist/objects/DetailedSensor.js.map +1 -0
  83. package/{lib → dist}/objects/LandObject.d.ts +3 -6
  84. package/{lib → dist}/objects/LandObject.js +9 -3
  85. package/dist/objects/LandObject.js.map +1 -0
  86. package/{lib → dist}/objects/Marker.d.ts +1 -2
  87. package/{lib → dist}/objects/Marker.js +1 -2
  88. package/dist/objects/Marker.js.map +1 -0
  89. package/dist/objects/RfSensor.d.ts +41 -0
  90. package/dist/objects/RfSensor.js +67 -0
  91. package/dist/objects/RfSensor.js.map +1 -0
  92. package/{lib → dist}/objects/index.d.ts +1 -1
  93. package/{lib → dist}/objects/index.js +1 -1
  94. package/dist/objects/index.js.map +1 -0
  95. package/{lib → dist}/observation/Observation.d.ts +42 -4
  96. package/{lib → dist}/observation/Observation.js +41 -10
  97. package/dist/observation/Observation.js.map +1 -0
  98. package/{lib → dist}/observation/ObservationOptical.d.ts +7 -6
  99. package/{lib → dist}/observation/ObservationOptical.js +19 -15
  100. package/dist/observation/ObservationOptical.js.map +1 -0
  101. package/{lib → dist}/observation/ObservationRadar.d.ts +7 -4
  102. package/{lib → dist}/observation/ObservationRadar.js +25 -19
  103. package/dist/observation/ObservationRadar.js.map +1 -0
  104. package/{lib → dist}/observation/ObservationUtils.d.ts +1 -2
  105. package/{lib → dist}/observation/ObservationUtils.js +1 -2
  106. package/dist/observation/ObservationUtils.js.map +1 -0
  107. package/{lib → dist}/observation/PropagatorPairs.d.ts +3 -2
  108. package/{lib → dist}/observation/PropagatorPairs.js +7 -4
  109. package/dist/observation/PropagatorPairs.js.map +1 -0
  110. package/{lib → dist}/operations/BoxMuller.d.ts +7 -2
  111. package/{lib → dist}/operations/BoxMuller.js +15 -4
  112. package/dist/operations/BoxMuller.js.map +1 -0
  113. package/dist/operations/EulerAngles.d.ts +105 -0
  114. package/{lib → dist}/operations/EulerAngles.js +72 -22
  115. package/dist/operations/EulerAngles.js.map +1 -0
  116. package/{lib → dist}/operations/Quaternion.d.ts +5 -6
  117. package/{lib → dist}/operations/Quaternion.js +12 -9
  118. package/dist/operations/Quaternion.js.map +1 -0
  119. package/{lib → dist}/operations/RandomGaussianSource.d.ts +1 -2
  120. package/{lib → dist}/operations/RandomGaussianSource.js +3 -3
  121. package/dist/operations/RandomGaussianSource.js.map +1 -0
  122. package/{lib → dist}/optimize/ChebyshevCompressor.d.ts +3 -2
  123. package/{lib → dist}/optimize/ChebyshevCompressor.js +7 -4
  124. package/dist/optimize/ChebyshevCompressor.js.map +1 -0
  125. package/{lib → dist}/optimize/DownhillSimplex.d.ts +16 -2
  126. package/{lib → dist}/optimize/DownhillSimplex.js +16 -2
  127. package/dist/optimize/DownhillSimplex.js.map +1 -0
  128. package/{lib → dist}/optimize/GoldenSection.d.ts +9 -3
  129. package/{lib → dist}/optimize/GoldenSection.js +9 -3
  130. package/dist/optimize/GoldenSection.js.map +1 -0
  131. package/{lib → dist}/optimize/PolynomialRegression.d.ts +14 -2
  132. package/{lib → dist}/optimize/PolynomialRegression.js +19 -2
  133. package/dist/optimize/PolynomialRegression.js.map +1 -0
  134. package/{lib → dist}/optimize/PolynomicalRegressionResult.d.ts +5 -2
  135. package/{lib → dist}/optimize/PolynomicalRegressionResult.js +8 -2
  136. package/dist/optimize/PolynomicalRegressionResult.js.map +1 -0
  137. package/{lib → dist}/optimize/SimpleLinearRegression.d.ts +5 -2
  138. package/{lib → dist}/optimize/SimpleLinearRegression.js +12 -7
  139. package/dist/optimize/SimpleLinearRegression.js.map +1 -0
  140. package/{lib → dist}/optimize/SimplexEntry.d.ts +1 -2
  141. package/{lib → dist}/optimize/SimplexEntry.js +5 -2
  142. package/dist/optimize/SimplexEntry.js.map +1 -0
  143. package/{lib → dist}/orbit_determination/BatchLeastSquaresOD.d.ts +14 -3
  144. package/{lib → dist}/orbit_determination/BatchLeastSquaresOD.js +29 -4
  145. package/dist/orbit_determination/BatchLeastSquaresOD.js.map +1 -0
  146. package/{lib → dist}/orbit_determination/BatchLeastSquaresResult.d.ts +4 -2
  147. package/{lib → dist}/orbit_determination/BatchLeastSquaresResult.js +7 -2
  148. package/dist/orbit_determination/BatchLeastSquaresResult.js.map +1 -0
  149. package/{lib → dist}/orbit_determination/GibbsIOD.d.ts +9 -4
  150. package/{lib → dist}/orbit_determination/GibbsIOD.js +11 -5
  151. package/dist/orbit_determination/GibbsIOD.js.map +1 -0
  152. package/{lib → dist}/orbit_determination/GoodingIOD.d.ts +21 -22
  153. package/{lib → dist}/orbit_determination/GoodingIOD.js +74 -71
  154. package/dist/orbit_determination/GoodingIOD.js.map +1 -0
  155. package/{lib → dist}/orbit_determination/HerrickGibbsIOD.d.ts +4 -4
  156. package/{lib → dist}/orbit_determination/HerrickGibbsIOD.js +3 -2
  157. package/dist/orbit_determination/HerrickGibbsIOD.js.map +1 -0
  158. package/{lib → dist}/orbit_determination/LambertIOD.d.ts +21 -8
  159. package/{lib → dist}/orbit_determination/LambertIOD.js +20 -6
  160. package/dist/orbit_determination/LambertIOD.js.map +1 -0
  161. package/{lib → dist}/orbit_determination/ModifiedGoodingIOD.d.ts +6 -7
  162. package/{lib → dist}/orbit_determination/ModifiedGoodingIOD.js +12 -11
  163. package/dist/orbit_determination/ModifiedGoodingIOD.js.map +1 -0
  164. package/{lib → dist}/propagator/DormandPrince54Propagator.d.ts +1 -2
  165. package/dist/propagator/DormandPrince54Propagator.js +64 -0
  166. package/dist/propagator/DormandPrince54Propagator.js.map +1 -0
  167. package/{lib → dist}/propagator/KeplerPropagator.d.ts +1 -2
  168. package/{lib → dist}/propagator/KeplerPropagator.js +5 -2
  169. package/{lib → dist}/propagator/KeplerPropagator.js.map +1 -1
  170. package/{lib → dist}/propagator/Propagator.d.ts +5 -6
  171. package/{lib → dist}/propagator/Propagator.js +5 -6
  172. package/dist/propagator/Propagator.js.map +1 -0
  173. package/{lib → dist}/propagator/RkCheckpoint.d.ts +1 -2
  174. package/{lib → dist}/propagator/RkCheckpoint.js +3 -2
  175. package/dist/propagator/RkCheckpoint.js.map +1 -0
  176. package/{lib → dist}/propagator/RkResult.d.ts +1 -2
  177. package/{lib → dist}/propagator/RkResult.js +4 -2
  178. package/dist/propagator/RkResult.js.map +1 -0
  179. package/{lib → dist}/propagator/RungeKutta4Propagator.d.ts +14 -10
  180. package/{lib → dist}/propagator/RungeKutta4Propagator.js +45 -36
  181. package/dist/propagator/RungeKutta4Propagator.js.map +1 -0
  182. package/{lib → dist}/propagator/RungeKutta89Propagator.d.ts +1 -2
  183. package/dist/propagator/RungeKutta89Propagator.js +126 -0
  184. package/dist/propagator/RungeKutta89Propagator.js.map +1 -0
  185. package/{lib → dist}/propagator/RungeKuttaAdaptive.d.ts +13 -11
  186. package/{lib → dist}/propagator/RungeKuttaAdaptive.js +31 -24
  187. package/dist/propagator/RungeKuttaAdaptive.js.map +1 -0
  188. package/{lib → dist}/propagator/Sgp4Propagator.d.ts +3 -4
  189. package/{lib → dist}/propagator/Sgp4Propagator.js +4 -3
  190. package/dist/propagator/Sgp4Propagator.js.map +1 -0
  191. package/{lib → dist}/smoothing/ExponentialSmoothing.d.ts +1 -2
  192. package/{lib → dist}/smoothing/ExponentialSmoothing.js +1 -2
  193. package/dist/smoothing/ExponentialSmoothing.js.map +1 -0
  194. package/dist/transforms/index.d.ts +1 -0
  195. package/dist/transforms/index.js +2 -0
  196. package/dist/transforms/index.js.map +1 -0
  197. package/dist/transforms/transforms.d.ts +58 -0
  198. package/dist/transforms/transforms.js +94 -0
  199. package/dist/transforms/transforms.js.map +1 -0
  200. package/{lib → dist}/types/types.d.ts +44 -4
  201. package/{lib → dist}/types/types.js +1 -2
  202. package/dist/types/types.js.map +1 -0
  203. package/dist/utils/functions.d.ts +8 -0
  204. package/dist/utils/functions.js +18 -0
  205. package/dist/utils/functions.js.map +1 -0
  206. package/dist/utils/index.d.ts +2 -0
  207. package/dist/utils/index.js +3 -0
  208. package/dist/utils/index.js.map +1 -0
  209. package/dist/utils/jacobian.d.ts +11 -0
  210. package/dist/utils/jacobian.js +29 -0
  211. package/dist/utils/jacobian.js.map +1 -0
  212. package/package.json +32 -42
  213. package/src/coordinate/Hill.ts +326 -0
  214. package/src/coordinate/index.ts +1 -0
  215. package/src/covariance/CovarianceSample.ts +194 -0
  216. package/src/covariance/StateCovariance.ts +69 -0
  217. package/src/force/AtmosphericDrag.ts +101 -0
  218. package/src/force/EarthGravity.ts +157 -0
  219. package/src/force/Force.ts +33 -0
  220. package/src/force/ForceModel.ts +91 -0
  221. package/src/force/Gravity.ts +53 -0
  222. package/src/force/SolarRadiationPressure.ts +42 -0
  223. package/src/force/ThirdBodyGravity.ts +62 -0
  224. package/src/force/Thrust.ts +83 -0
  225. package/src/interfaces/RfSensorParams.ts +30 -0
  226. package/src/interfaces/index.ts +1 -0
  227. package/src/interpolator/ChebyshevCoefficients.ts +109 -0
  228. package/src/interpolator/ChebyshevInterpolator.ts +87 -0
  229. package/src/interpolator/CubicSpline.ts +72 -0
  230. package/src/interpolator/CubicSplineInterpolator.ts +90 -0
  231. package/src/interpolator/FieldInterpolator.ts +37 -0
  232. package/src/interpolator/Interpolator.ts +56 -0
  233. package/src/interpolator/LagrangeInterpolator.ts +192 -0
  234. package/src/interpolator/StateInterpolator.ts +39 -0
  235. package/src/interpolator/VerletBlendInterpolator.ts +146 -0
  236. package/{lib/ootk.js → src/main.ts} +7 -3
  237. package/src/maneuver/TwoBurnOrbitTransfer.ts +79 -0
  238. package/src/maneuver/Waypoint.ts +267 -0
  239. package/src/objects/DetailedSatellite.ts +159 -0
  240. package/src/objects/DetailedSensor.ts +68 -0
  241. package/src/objects/LandObject.ts +46 -0
  242. package/src/objects/Marker.ts +25 -0
  243. package/src/objects/RfSensor.ts +78 -0
  244. package/src/objects/index.ts +5 -0
  245. package/src/observation/Observation.ts +125 -0
  246. package/src/observation/ObservationOptical.ts +146 -0
  247. package/src/observation/ObservationRadar.ts +131 -0
  248. package/src/observation/ObservationUtils.ts +40 -0
  249. package/src/observation/PropagatorPairs.ts +45 -0
  250. package/src/operations/BoxMuller.ts +87 -0
  251. package/src/operations/EulerAngles.ts +183 -0
  252. package/src/operations/Quaternion.ts +222 -0
  253. package/src/operations/RandomGaussianSource.ts +51 -0
  254. package/src/operations/index.ts +4 -0
  255. package/src/optimize/ChebyshevCompressor.ts +96 -0
  256. package/src/optimize/DownhillSimplex.ts +212 -0
  257. package/src/optimize/GoldenSection.ts +71 -0
  258. package/src/optimize/PolynomialRegression.ts +109 -0
  259. package/src/optimize/PolynomicalRegressionResult.ts +32 -0
  260. package/src/optimize/SimpleLinearRegression.ts +127 -0
  261. package/src/optimize/SimplexEntry.ts +50 -0
  262. package/src/orbit_determination/BatchLeastSquaresOD.ts +174 -0
  263. package/src/orbit_determination/BatchLeastSquaresResult.ts +33 -0
  264. package/src/orbit_determination/GibbsIOD.ts +95 -0
  265. package/src/orbit_determination/GoodingIOD.ts +380 -0
  266. package/src/orbit_determination/HerrickGibbsIOD.ts +51 -0
  267. package/src/orbit_determination/LambertIOD.ts +260 -0
  268. package/src/orbit_determination/ModifiedGoodingIOD.ts +133 -0
  269. package/src/propagator/DormandPrince54Propagator.ts +73 -0
  270. package/src/propagator/KeplerPropagator.ts +102 -0
  271. package/src/propagator/Propagator.ts +253 -0
  272. package/src/propagator/RkCheckpoint.ts +25 -0
  273. package/src/propagator/RkResult.ts +26 -0
  274. package/src/propagator/RungeKutta4Propagator.ts +179 -0
  275. package/src/propagator/RungeKutta89Propagator.ts +132 -0
  276. package/src/propagator/RungeKuttaAdaptive.ts +232 -0
  277. package/src/propagator/Sgp4Propagator.ts +71 -0
  278. package/src/smoothing/ExponentialSmoothing.ts +90 -0
  279. package/src/transforms/index.ts +1 -0
  280. package/src/transforms/transforms.ts +117 -0
  281. package/src/types/types.ts +135 -0
  282. package/src/utils/functions.ts +21 -0
  283. package/src/utils/index.ts +2 -0
  284. package/src/utils/jacobian.ts +38 -0
  285. package/.eslintrc.json +0 -244
  286. package/jest.config.ts +0 -30
  287. package/lib/coordinate/Hill.js.map +0 -1
  288. package/lib/covariance/CovarianceSample.js.map +0 -1
  289. package/lib/covariance/StateCovariance.js.map +0 -1
  290. package/lib/force/AtmosphericDrag.js.map +0 -1
  291. package/lib/force/EarthGravity.js.map +0 -1
  292. package/lib/force/Force.js.map +0 -1
  293. package/lib/force/ForceModel.js.map +0 -1
  294. package/lib/force/Gravity.js.map +0 -1
  295. package/lib/force/SolarRadiationPressure.js.map +0 -1
  296. package/lib/force/ThirdBodyGravity.js.map +0 -1
  297. package/lib/force/Thrust.js.map +0 -1
  298. package/lib/interpolator/ChebyshevCoefficients.js.map +0 -1
  299. package/lib/interpolator/ChebyshevInterpolator.js.map +0 -1
  300. package/lib/interpolator/CubicSpline.js.map +0 -1
  301. package/lib/interpolator/CubicSplineInterpolator.js.map +0 -1
  302. package/lib/interpolator/FieldInterpolator.js.map +0 -1
  303. package/lib/interpolator/Interpolator.js.map +0 -1
  304. package/lib/interpolator/LagrangeInterpolator.js.map +0 -1
  305. package/lib/interpolator/StateInterpolator.js.map +0 -1
  306. package/lib/interpolator/VerletBlendInterpolator.js.map +0 -1
  307. package/lib/maneuver/TwoBurnOrbitTransfer.js.map +0 -1
  308. package/lib/maneuver/Waypoint.js.map +0 -1
  309. package/lib/objects/DetailedSatellite.js.map +0 -1
  310. package/lib/objects/DetailedSensor.js.map +0 -1
  311. package/lib/objects/LandObject.js.map +0 -1
  312. package/lib/objects/Marker.js.map +0 -1
  313. package/lib/objects/index.js.map +0 -1
  314. package/lib/observation/Observation.js.map +0 -1
  315. package/lib/observation/ObservationOptical.js.map +0 -1
  316. package/lib/observation/ObservationRadar.js.map +0 -1
  317. package/lib/observation/ObservationUtils.js.map +0 -1
  318. package/lib/observation/PropagatorPairs.js.map +0 -1
  319. package/lib/ootk.js.map +0 -1
  320. package/lib/operations/BoxMuller.js.map +0 -1
  321. package/lib/operations/EulerAngles.d.ts +0 -50
  322. package/lib/operations/EulerAngles.js.map +0 -1
  323. package/lib/operations/Quaternion.js.map +0 -1
  324. package/lib/operations/RandomGaussianSource.js.map +0 -1
  325. package/lib/optimize/ChebyshevCompressor.js.map +0 -1
  326. package/lib/optimize/DownhillSimplex.js.map +0 -1
  327. package/lib/optimize/GoldenSection.js.map +0 -1
  328. package/lib/optimize/PolynomialRegression.js.map +0 -1
  329. package/lib/optimize/PolynomicalRegressionResult.js.map +0 -1
  330. package/lib/optimize/SimpleLinearRegression.js.map +0 -1
  331. package/lib/optimize/SimplexEntry.js.map +0 -1
  332. package/lib/orbit_determination/BatchLeastSquaresOD.js.map +0 -1
  333. package/lib/orbit_determination/BatchLeastSquaresResult.js.map +0 -1
  334. package/lib/orbit_determination/GibbsIOD.js.map +0 -1
  335. package/lib/orbit_determination/GoodingIOD.js.map +0 -1
  336. package/lib/orbit_determination/HerrickGibbsIOD.js.map +0 -1
  337. package/lib/orbit_determination/LambertIOD.js.map +0 -1
  338. package/lib/orbit_determination/ModifiedGoodingIOD.js.map +0 -1
  339. package/lib/propagator/DormandPrince54Propagator.js +0 -68
  340. package/lib/propagator/DormandPrince54Propagator.js.map +0 -1
  341. package/lib/propagator/Propagator.js.map +0 -1
  342. package/lib/propagator/RkCheckpoint.js.map +0 -1
  343. package/lib/propagator/RkResult.js.map +0 -1
  344. package/lib/propagator/RungeKutta4Propagator.js.map +0 -1
  345. package/lib/propagator/RungeKutta89Propagator.js +0 -130
  346. package/lib/propagator/RungeKutta89Propagator.js.map +0 -1
  347. package/lib/propagator/RungeKuttaAdaptive.js.map +0 -1
  348. package/lib/propagator/Sgp4Propagator.js.map +0 -1
  349. package/lib/smoothing/ExponentialSmoothing.js.map +0 -1
  350. package/lib/types/types.js.map +0 -1
  351. /package/{lib → dist}/coordinate/index.d.ts +0 -0
  352. /package/{lib → dist}/coordinate/index.js +0 -0
  353. /package/{lib → dist}/coordinate/index.js.map +0 -0
  354. /package/{lib → dist}/operations/index.d.ts +0 -0
  355. /package/{lib → dist}/operations/index.js +0 -0
  356. /package/{lib → dist}/operations/index.js.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RungeKutta89Propagator.js","sourceRoot":"","sources":["../../src/propagator/RungeKutta89Propagator.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * @author @thkruz Theodore Kruczek
3
- *
4
3
  * @license AGPL-3.0-or-later
5
- * @Copyright (c) 2020-2024 Theodore Kruczek
4
+ * @copyright (c) 2020-2024 Theodore Kruczek
6
5
  *
7
6
  * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
8
7
  * terms of the GNU Affero General Public License as published by the Free Software
@@ -15,20 +14,23 @@
15
14
  * You should have received a copy of the GNU Affero General Public License along with
16
15
  * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
17
16
  */
18
- import { EpochUTC, J2000 } from 'ootk-core';
17
+ import { EpochUTC, J2000, Seconds } from 'ootk-core';
19
18
  import { ForceModel } from '../force/ForceModel';
20
19
  import { Thrust } from '../force/Thrust';
21
20
  import { VerletBlendInterpolator } from './../interpolator/VerletBlendInterpolator';
22
21
  import { Propagator } from './Propagator';
23
22
  export declare abstract class RungeKuttaAdaptive extends Propagator {
24
- private _initState;
25
- private _forceModel;
26
- private _tolerance;
23
+ private initState_;
24
+ private forceModel_;
25
+ private tolerance_;
27
26
  /**
28
27
  * Create a new [RungeKuttaAdaptive] object from an initial state vector
29
28
  * along with an optional [ForceModel] and [tolerance].
29
+ * @param initState_ Initial state vector.
30
+ * @param forceModel_ Numerical integration force model.
31
+ * @param tolerance_ Minimum allowable local error tolerance.
30
32
  */
31
- constructor(_initState: J2000, _forceModel?: ForceModel, _tolerance?: number);
33
+ constructor(initState_: J2000, forceModel_?: ForceModel, tolerance_?: number);
32
34
  private _cacheState;
33
35
  private readonly _checkpoints;
34
36
  private _stepSize;
@@ -41,11 +43,11 @@ export declare abstract class RungeKuttaAdaptive extends Propagator {
41
43
  get state(): J2000;
42
44
  reset(): void;
43
45
  setForceModel(forceModel: ForceModel): void;
44
- private _kfn;
45
- private _integrate;
46
+ private kfn_;
47
+ private integrate_;
46
48
  propagate(epoch: EpochUTC): J2000;
47
- maneuver(maneuver: Thrust, interval?: number): J2000[];
48
- ephemerisManeuver(start: EpochUTC, finish: EpochUTC, maneuvers: Thrust[], interval?: number): VerletBlendInterpolator;
49
+ maneuver(maneuver: Thrust, interval?: Seconds): J2000[];
50
+ ephemerisManeuver(start: EpochUTC, finish: EpochUTC, maneuvers: Thrust[], interval?: Seconds): VerletBlendInterpolator;
49
51
  checkpoint(): number;
50
52
  clearCheckpoints(): void;
51
53
  restore(index: number): void;
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * @author @thkruz Theodore Kruczek
3
- *
4
3
  * @license AGPL-3.0-or-later
5
- * @Copyright (c) 2020-2024 Theodore Kruczek
4
+ * @copyright (c) 2020-2024 Theodore Kruczek
6
5
  *
7
6
  * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
8
7
  * terms of the GNU Affero General Public License as published by the Free Software
@@ -23,39 +22,49 @@ import { RkCheckpoint } from './RkCheckpoint';
23
22
  import { RkResult } from './RkResult';
24
23
  // / Adaptive Runge-Kutta propagator base class.
25
24
  export class RungeKuttaAdaptive extends Propagator {
25
+ initState_;
26
+ forceModel_;
27
+ tolerance_;
26
28
  /**
27
29
  * Create a new [RungeKuttaAdaptive] object from an initial state vector
28
30
  * along with an optional [ForceModel] and [tolerance].
31
+ * @param initState_ Initial state vector.
32
+ * @param forceModel_ Numerical integration force model.
33
+ * @param tolerance_ Minimum allowable local error tolerance.
29
34
  */
30
- constructor(_initState, _forceModel = new ForceModel().setGravity(), _tolerance = 1e-9) {
35
+ constructor(initState_, forceModel_ = new ForceModel().setGravity(), tolerance_ = 1e-9) {
31
36
  super();
32
- this._initState = _initState;
33
- this._forceModel = _forceModel;
34
- this._tolerance = _tolerance;
35
- this._checkpoints = [];
36
- // / Integration step size _(seconds)_.
37
- this._stepSize = 60.0;
38
- this._cacheState = this._initState;
39
- this._tolerance = Math.max(RungeKuttaAdaptive._minTolerance, Math.abs(_tolerance));
37
+ this.initState_ = initState_;
38
+ this.forceModel_ = forceModel_;
39
+ this.tolerance_ = tolerance_;
40
+ this._cacheState = this.initState_;
41
+ this.tolerance_ = Math.max(RungeKuttaAdaptive._minTolerance, Math.abs(tolerance_));
40
42
  }
43
+ // / Initial state vector.
44
+ _cacheState;
45
+ _checkpoints = [];
46
+ // / Integration step size _(seconds)_.
47
+ _stepSize = 60.0;
48
+ // / Minimum allowable local error tolerance.
49
+ static _minTolerance = 1e-15;
41
50
  get state() {
42
51
  return this._cacheState;
43
52
  }
44
53
  reset() {
45
- this._cacheState = this._initState;
54
+ this._cacheState = this.initState_;
46
55
  this._stepSize = 60.0;
47
56
  }
48
57
  // / Set numerical integration force model.
49
58
  setForceModel(forceModel) {
50
- this._forceModel = forceModel;
59
+ this.forceModel_ = forceModel;
51
60
  }
52
- _kfn(epoch, rv, hArg, kArg, step) {
61
+ kfn_(epoch, rv, hArg, kArg, step) {
53
62
  const t = epoch.roll(hArg * step);
54
63
  const rvNew = rv.add(kArg);
55
64
  const sample = new J2000(t, rvNew.toVector3D(0), rvNew.toVector3D(3));
56
- return this._forceModel.derivative(sample).scale(step);
65
+ return this.forceModel_.derivative(sample).scale(step);
57
66
  }
58
- _integrate(state, step) {
67
+ integrate_(state, step) {
59
68
  const k = new Array(this.a.length).fill(Vector.origin3);
60
69
  const y = state.position.join(state.velocity);
61
70
  for (let i = 0; i < this.a.length; i++) {
@@ -65,7 +74,7 @@ export class RungeKuttaAdaptive extends Propagator {
65
74
  kArg = kArg.add(k[j].scale(this.b[i][j]));
66
75
  }
67
76
  }
68
- k[i] = this._kfn(state.epoch, y, this.a[i], kArg, step);
77
+ k[i] = this.kfn_(state.epoch, y, this.a[i], kArg, step);
69
78
  }
70
79
  let y1 = y;
71
80
  let y2 = y;
@@ -74,7 +83,7 @@ export class RungeKuttaAdaptive extends Propagator {
74
83
  y2 = y2.add(k[i].scale(this.c[i]));
75
84
  }
76
85
  const teVal = y1.distance(y2);
77
- let hNew = 0.9 * step * (this._tolerance / teVal) ** (1.0 / this.order);
86
+ let hNew = 0.9 * step * (this.tolerance_ / teVal) ** (1.0 / this.order);
78
87
  const hOld = Math.abs(step);
79
88
  hNew = Math.max(0.2 * hOld, Math.min(5.0 * hOld, hNew));
80
89
  hNew = Math.max(1e-5, Math.min(1000.0, hNew));
@@ -85,9 +94,9 @@ export class RungeKuttaAdaptive extends Propagator {
85
94
  while (delta !== 0) {
86
95
  const direction = delta >= 0 ? 1 : -1;
87
96
  const dt = Math.min(Math.abs(delta), this._stepSize) * direction;
88
- const result = this._integrate(this._cacheState, dt);
97
+ const result = this.integrate_(this._cacheState, dt);
89
98
  this._stepSize = result.newStep;
90
- if (result.error > this._tolerance) {
99
+ if (result.error > this.tolerance_) {
91
100
  continue;
92
101
  }
93
102
  this._cacheState = result.state;
@@ -101,14 +110,14 @@ export class RungeKuttaAdaptive extends Propagator {
101
110
  return [this._cacheState];
102
111
  }
103
112
  let tState = this.propagate(maneuver.start);
104
- this._forceModel.loadManeuver(maneuver);
113
+ this.forceModel_.loadManeuver(maneuver);
105
114
  const ephemeris = [tState];
106
115
  while (tState.epoch < maneuver.stop) {
107
116
  const step = Math.min(maneuver.stop.difference(tState.epoch), interval);
108
117
  tState = this.propagate(tState.epoch.roll(step));
109
118
  ephemeris.push(tState);
110
119
  }
111
- this._forceModel.clearManeuver();
120
+ this.forceModel_.clearManeuver();
112
121
  return ephemeris;
113
122
  }
114
123
  ephemerisManeuver(start, finish, maneuvers, interval = 60.0) {
@@ -147,6 +156,4 @@ export class RungeKuttaAdaptive extends Propagator {
147
156
  this._stepSize = checkpoint.stepSize;
148
157
  }
149
158
  }
150
- // / Minimum allowable local error tolerance.
151
- RungeKuttaAdaptive._minTolerance = 1e-15;
152
159
  //# sourceMappingURL=RungeKuttaAdaptive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RungeKuttaAdaptive.js","sourceRoot":"","sources":["../../src/propagator/RungeKuttaAdaptive.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * @author @thkruz Theodore Kruczek
3
- *
4
3
  * @license AGPL-3.0-or-later
5
- * @Copyright (c) 2020-2024 Theodore Kruczek
4
+ * @copyright (c) 2020-2024 Theodore Kruczek
6
5
  *
7
6
  * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
8
7
  * terms of the GNU Affero General Public License as published by the Free Software
@@ -15,13 +14,13 @@
15
14
  * You should have received a copy of the GNU Affero General Public License along with
16
15
  * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
17
16
  */
18
- import { EpochUTC, J2000, TLE } from 'ootk-core';
17
+ import { EpochUTC, J2000, Tle } from 'ootk-core';
19
18
  import { Thrust } from '../force/Thrust';
20
19
  import { VerletBlendInterpolator } from '../interpolator/VerletBlendInterpolator';
21
20
  import { Propagator } from './Propagator';
22
21
  export declare class Sgp4Propagator extends Propagator {
23
22
  private tle;
24
- constructor(tle: TLE);
23
+ constructor(tle: Tle);
25
24
  private _cacheState;
26
25
  private _checkpoints;
27
26
  get state(): J2000;
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * @author @thkruz Theodore Kruczek
3
- *
4
3
  * @license AGPL-3.0-or-later
5
- * @Copyright (c) 2020-2024 Theodore Kruczek
4
+ * @copyright (c) 2020-2024 Theodore Kruczek
6
5
  *
7
6
  * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
8
7
  * terms of the GNU Affero General Public License as published by the Free Software
@@ -18,13 +17,15 @@
18
17
  import { Propagator } from './Propagator';
19
18
  // / SGP4 propagator.
20
19
  export class Sgp4Propagator extends Propagator {
20
+ tle;
21
21
  // / Create a new [Sgp4Propagator] object from a [TLE].
22
22
  constructor(tle) {
23
23
  super();
24
24
  this.tle = tle;
25
- this._checkpoints = [];
26
25
  this._cacheState = tle.state.toJ2000();
27
26
  }
27
+ _cacheState;
28
+ _checkpoints = [];
28
29
  get state() {
29
30
  return this._cacheState;
30
31
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sgp4Propagator.js","sourceRoot":"","sources":["../../src/propagator/Sgp4Propagator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAqB;AACrB,MAAM,OAAO,cAAe,SAAQ,UAAU;IAExB;IADpB,uDAAuD;IACvD,YAAoB,GAAQ;QAC1B,KAAK,EAAE,CAAC;QADU,QAAG,GAAH,GAAG,CAAK;QAE1B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;IAEO,WAAW,CAAQ;IACnB,YAAY,GAAY,EAAE,CAAC;IAEnC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,iBAAiB,CAAC,KAAe,EAAE,MAAgB,EAAE,SAAmB,EAAE,QAAQ,GAAG,IAAI;QACvF,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,QAAQ,CAAC,QAAgB,EAAE,QAAQ,GAAG,IAAI;QACxC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,SAAS,CAAC,KAAe;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAEvD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9C,CAAC;IAED,UAAU;QACR,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEzC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;CACF"}
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * @author @thkruz Theodore Kruczek
3
- *
4
3
  * @license AGPL-3.0-or-later
5
- * @Copyright (c) 2020-2024 Theodore Kruczek
4
+ * @copyright (c) 2020-2024 Theodore Kruczek
6
5
  *
7
6
  * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
8
7
  * terms of the GNU Affero General Public License as published by the Free Software
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * @author @thkruz Theodore Kruczek
3
- *
4
3
  * @license AGPL-3.0-or-later
5
- * @Copyright (c) 2020-2024 Theodore Kruczek
4
+ * @copyright (c) 2020-2024 Theodore Kruczek
6
5
  *
7
6
  * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
8
7
  * terms of the GNU Affero General Public License as published by the Free Software
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExponentialSmoothing.js","sourceRoot":"","sources":["../../src/smoothing/ExponentialSmoothing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,wCAAwC;AACxC,MAAM,OAAO,oBAAoB;IAC/B;QACE,sBAAsB;IACxB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,EAAY,EAAE,KAAa;QACvC,MAAM,EAAE,GAAa,EAAE,CAAC;QAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACX,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAChB;iBAAM;gBACL,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAClD;SACF;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,EAAY,EAAE,KAAa,EAAE,IAAY;QAC3D,MAAM,EAAE,GAAa,EAAE,CAAC;QACxB,MAAM,EAAE,GAAa,EAAE,CAAC;QAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACX,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACf,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aACxB;iBAAM;gBACL,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC9D;SACF;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,MAAkB,EAAE,EAAY,EAAE,YAAoB;QACtE,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,EAAE,GAAa,EAAE,CAAC;QAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACX,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAChB;iBAAM;gBACL,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;gBAE5D,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC1C;SACF;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ export * from './transforms';
@@ -0,0 +1,2 @@
1
+ export * from './transforms';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transforms/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { Degrees, EnuVec3, Radians, RaeVec3 } from 'ootk-core';
2
+ import { RfSensor } from 'src/objects/RfSensor';
3
+ import { RfVec3, RuvVec3 } from 'src/types/types';
4
+ /**
5
+ * Converts Azimuth and Elevation to U and V.
6
+ * Azimuth is the angle off of boresight in the horizontal plane.
7
+ * Elevation is the angle off of boresight in the vertical plane.
8
+ * Cone half angle is the angle of the cone of the radar max field of view.
9
+ * @param az - Azimuth in radians
10
+ * @param el - Elevation in radians
11
+ * @param coneHalfAngle - Cone half angle in radians
12
+ * @returns U and V in radians
13
+ */
14
+ export declare function azel2uv(az: Radians, el: Radians, coneHalfAngle: Radians): {
15
+ u: number;
16
+ v: number;
17
+ };
18
+ /**
19
+ * Determine azimuth and elevation off of boresight based on sensor orientation and RAE.
20
+ * @param rae Range, Azimuth, Elevation
21
+ * @param sensor Radar sensor object
22
+ * @param maxSensorAz Maximum sensor azimuth
23
+ * @returns Azimuth and Elevation off of boresight
24
+ */
25
+ export declare function rae2raeOffBoresight(rae: RaeVec3, sensor: RfSensor, maxSensorAz: Degrees): {
26
+ az: Radians;
27
+ el: Radians;
28
+ };
29
+ /**
30
+ * Converts Range Az El to Range U V.
31
+ * @param rae Range, Azimuth, Elevation
32
+ * @param sensor Radar sensor object
33
+ * @param maxSensorAz Maximum sensor azimuth
34
+ * @returns Range, U, V
35
+ */
36
+ export declare function rae2ruv(rae: RaeVec3, sensor: RfSensor, maxSensorAz: Degrees): RuvVec3;
37
+ /**
38
+ * Converts U and V to Azimuth and Elevation off of boresight.
39
+ * @param u The U coordinate.
40
+ * @param v The V coordinate.
41
+ * @param coneHalfAngle The cone half angle of the radar.
42
+ * @returns Azimuth and Elevation off of boresight.
43
+ */
44
+ export declare function uv2azel(u: number, v: number, coneHalfAngle: Radians): {
45
+ az: Radians;
46
+ el: Radians;
47
+ };
48
+ /**
49
+ * Converts coordinates from East-North-Up (ENU) to Right-Front-Up (RF) coordinate system.
50
+ * @param enu - The ENU coordinates to be converted.
51
+ * @param enu.x - The east coordinate.
52
+ * @param enu.y - The north coordinate.
53
+ * @param enu.z - The up coordinate.
54
+ * @param az - The azimuth angle in radians.
55
+ * @param el - The elevation angle in radians.
56
+ * @returns The converted RF coordinates.
57
+ */
58
+ export declare function enu2rf<D extends number, A extends number = Radians>({ x, y, z }: EnuVec3<D>, az: A, el: A): RfVec3<D>;
@@ -0,0 +1,94 @@
1
+ import { DEG2RAD, RAD2DEG, TAU } from 'ootk-core';
2
+ /**
3
+ * Converts Azimuth and Elevation to U and V.
4
+ * Azimuth is the angle off of boresight in the horizontal plane.
5
+ * Elevation is the angle off of boresight in the vertical plane.
6
+ * Cone half angle is the angle of the cone of the radar max field of view.
7
+ * @param az - Azimuth in radians
8
+ * @param el - Elevation in radians
9
+ * @param coneHalfAngle - Cone half angle in radians
10
+ * @returns U and V in radians
11
+ */
12
+ export function azel2uv(az, el, coneHalfAngle) {
13
+ if (az > coneHalfAngle && az < coneHalfAngle) {
14
+ throw new RangeError(`Azimuth is out of bounds: ${az}`);
15
+ }
16
+ if (el > coneHalfAngle && el < coneHalfAngle) {
17
+ throw new RangeError(`Elevation is out of bounds: ${el}`);
18
+ }
19
+ const alpha = (az / (coneHalfAngle * RAD2DEG)) * 90;
20
+ const beta = (el / (coneHalfAngle * RAD2DEG)) * 90;
21
+ const u = Math.sin(alpha);
22
+ let v = -Math.sin(beta);
23
+ v = Object.is(v, -0) ? 0 : v;
24
+ return { u, v };
25
+ }
26
+ /**
27
+ * Determine azimuth and elevation off of boresight based on sensor orientation and RAE.
28
+ * @param rae Range, Azimuth, Elevation
29
+ * @param sensor Radar sensor object
30
+ * @param maxSensorAz Maximum sensor azimuth
31
+ * @returns Azimuth and Elevation off of boresight
32
+ */
33
+ export function rae2raeOffBoresight(rae, sensor, maxSensorAz) {
34
+ let az = (rae.az * DEG2RAD);
35
+ let el = (rae.el * DEG2RAD);
36
+ // Correct azimuth for sensor orientation.
37
+ az = az > maxSensorAz * DEG2RAD ? (az - TAU) : az;
38
+ az = (az - sensor.boresightAz);
39
+ el = (el - sensor.boresightEl);
40
+ return { az, el };
41
+ }
42
+ /**
43
+ * Converts Range Az El to Range U V.
44
+ * @param rae Range, Azimuth, Elevation
45
+ * @param sensor Radar sensor object
46
+ * @param maxSensorAz Maximum sensor azimuth
47
+ * @returns Range, U, V
48
+ */
49
+ export function rae2ruv(rae, sensor, maxSensorAz) {
50
+ const { az, el } = rae2raeOffBoresight(rae, sensor, maxSensorAz);
51
+ const { u, v } = azel2uv(az, el, sensor.coneHalfAngleRad);
52
+ return { rng: rae.rng, u, v };
53
+ }
54
+ /**
55
+ * Converts U and V to Azimuth and Elevation off of boresight.
56
+ * @param u The U coordinate.
57
+ * @param v The V coordinate.
58
+ * @param coneHalfAngle The cone half angle of the radar.
59
+ * @returns Azimuth and Elevation off of boresight.
60
+ */
61
+ export function uv2azel(u, v, coneHalfAngle) {
62
+ if (u > 1 || u < -1) {
63
+ throw new RangeError(`u is out of bounds: ${u}`);
64
+ }
65
+ if (v > 1 || v < -1) {
66
+ throw new RangeError(`v is out of bounds: ${v}`);
67
+ }
68
+ const alpha = Math.asin(u);
69
+ const beta = Math.asin(v);
70
+ const az = ((alpha / 90) * (coneHalfAngle * RAD2DEG));
71
+ const el = ((beta / 90) * (coneHalfAngle * RAD2DEG));
72
+ return { az, el };
73
+ }
74
+ /**
75
+ * Converts coordinates from East-North-Up (ENU) to Right-Front-Up (RF) coordinate system.
76
+ * @param enu - The ENU coordinates to be converted.
77
+ * @param enu.x - The east coordinate.
78
+ * @param enu.y - The north coordinate.
79
+ * @param enu.z - The up coordinate.
80
+ * @param az - The azimuth angle in radians.
81
+ * @param el - The elevation angle in radians.
82
+ * @returns The converted RF coordinates.
83
+ */
84
+ export function enu2rf({ x, y, z }, az, el) {
85
+ const xrf = Math.cos(el) * Math.cos(az) * x - Math.sin(az) * y + Math.sin(el) * Math.cos(az) * z;
86
+ const yrf = Math.cos(el) * Math.sin(az) * x + Math.cos(az) * y + Math.sin(el) * Math.sin(az) * z;
87
+ const zrf = -Math.sin(el) * x + Math.cos(el) * z;
88
+ return {
89
+ x: xrf,
90
+ y: yrf,
91
+ z: zrf,
92
+ };
93
+ }
94
+ //# sourceMappingURL=transforms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transforms.js","sourceRoot":"","sources":["../../src/transforms/transforms.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * @author @thkruz Theodore Kruczek
3
- *
4
3
  * @license AGPL-3.0-or-later
5
- * @Copyright (c) 2020-2024 Theodore Kruczek
4
+ * @copyright (c) 2020-2024 Theodore Kruczek
6
5
  *
7
6
  * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
8
7
  * terms of the GNU Affero General Public License as published by the Free Software
@@ -15,13 +14,13 @@
15
14
  * You should have received a copy of the GNU Affero General Public License along with
16
15
  * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
17
16
  */
18
- import { Degrees, Milliseconds } from 'ootk-core';
17
+ import { Degrees, Kilometers, Milliseconds, SatelliteParams, Vec3 } from 'ootk-core';
19
18
  export declare enum ZoomValue {
20
19
  LEO = 0.45,
21
20
  GEO = 0.82,
22
21
  MAX = 1
23
22
  }
24
- export interface DetailedSatelliteParams {
23
+ export interface DetailedSatelliteParams extends SatelliteParams {
25
24
  id: number;
26
25
  active?: boolean;
27
26
  configuration?: string;
@@ -84,3 +83,44 @@ export interface DetailedSensorParams {
84
83
  /** This is who operates the sensor */
85
84
  operator?: string;
86
85
  }
86
+ /**
87
+ * The RUV coordinate system is a spherical coordinate system with the origin at
88
+ * the radar. The RUV coordinate system is defined with respect to the radar
89
+ * boresight. The R-axis points outward along the boresight with the origin at
90
+ * the radar. The U-axis is in the horizontal plane and points to the right of
91
+ * the boresight. The V-axis is in the vertical plane and points down from the
92
+ * boresight.
93
+ * @template DistanceUnit The unit of measure used for the altitude dimension.
94
+ * This is typically a type representing a distance, such as kilometers or
95
+ * meters. The default is Kilometers.
96
+ * @template AngleUnit The unit of measure used for the latitude and longitude
97
+ * dimensions. This is typically a type representing an angle, such as degrees
98
+ * or radians. The default is Radians.
99
+ */
100
+ export type RuvVec3<DistanceUnit = Kilometers> = {
101
+ rng: DistanceUnit;
102
+ u: number;
103
+ v: number;
104
+ };
105
+ /**
106
+ * Phased Array Radar Face Cartesian Coordinates The cartesian coordinates (XRF,
107
+ * YRF ZRF) are defined with respect to the phased array radar face. The radar
108
+ * face lies in the XRF-YRF plane, with the XRF-axis horizontal and the YRF-axis
109
+ * pointing upward. The ZRF-axis points outward along the normal to the array
110
+ * face.
111
+ *
112
+ * The orientation of the phased array face is defined by the azimuth and the
113
+ * elevation of the phased array boresight (i.e., the phased array Z-axis).
114
+ */
115
+ export type RfVec3<Units = Kilometers> = Vec3<Units>;
116
+ /**
117
+ * Represents a function that calculates the Jacobian matrix.
118
+ * @param xs - The input values as a Float64Array. @returns The Jacobian matrix
119
+ * as a Float64Array.
120
+ */
121
+ export type JacobianFunction = (xs: Float64Array) => Float64Array;
122
+ /**
123
+ * Represents a differentiable function.
124
+ * @param x The input value. @returns The output value.
125
+ */
126
+ export type DifferentiableFunction = (x: number) => number;
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * @author @thkruz Theodore Kruczek
3
- *
4
3
  * @license AGPL-3.0-or-later
5
- * @Copyright (c) 2020-2024 Theodore Kruczek
4
+ * @copyright (c) 2020-2024 Theodore Kruczek
6
5
  *
7
6
  * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
8
7
  * terms of the GNU Affero General Public License as published by the Free Software
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,0CAAU,CAAA;IACV,0CAAU,CAAA;IACV,uCAAO,CAAA;AACT,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB"}
@@ -0,0 +1,8 @@
1
+ import { DifferentiableFunction } from '../main';
2
+ /**
3
+ * Calculates the derivative of a differentiable function.
4
+ * @param f The differentiable function.
5
+ * @param h The step size for numerical differentiation. Default value is 1e-3.
6
+ * @returns The derivative function.
7
+ */
8
+ export declare function derivative(f: DifferentiableFunction, h?: number): DifferentiableFunction;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Calculates the derivative of a differentiable function.
3
+ * @param f The differentiable function.
4
+ * @param h The step size for numerical differentiation. Default value is 1e-3.
5
+ * @returns The derivative function.
6
+ */
7
+ export function derivative(f, h = 1e-3) {
8
+ /**
9
+ * @param x The value at which to calculate the derivative.
10
+ * @returns The derivative of the function at the given value.
11
+ */
12
+ function df(x) {
13
+ const hh = h * 0.5;
14
+ return (f(x + hh) - f(x - hh)) / h;
15
+ }
16
+ return df;
17
+ }
18
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/utils/functions.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,CAAyB,EAAE,CAAC,GAAG,IAAI;IAC5D;;;OAGG;IACH,SAAS,EAAE,CAAC,CAAS;QACnB,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;QAEnB,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './jacobian';
2
+ export * from './functions';
@@ -0,0 +1,3 @@
1
+ export * from './jacobian';
2
+ export * from './functions';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Matrix } from 'ootk-core';
2
+ import { JacobianFunction } from '../types/types';
3
+ /**
4
+ * Calculates the Jacobian matrix of a given Jacobian function.
5
+ * @param f The Jacobian function.
6
+ * @param m The number of rows in the Jacobian matrix.
7
+ * @param x0 The initial values of the variables.
8
+ * @param step The step size for numerical differentiation (default: 1e-5).
9
+ * @returns The Jacobian matrix.
10
+ */
11
+ export declare const jacobian: (f: JacobianFunction, m: number, x0: Float64Array, step?: number) => Matrix;
@@ -0,0 +1,29 @@
1
+ import { array2d, Matrix, Vector } from 'ootk-core';
2
+ // TODO: #11 Expand documentation of Jacobian function.
3
+ /**
4
+ * Calculates the Jacobian matrix of a given Jacobian function.
5
+ * @param f The Jacobian function.
6
+ * @param m The number of rows in the Jacobian matrix.
7
+ * @param x0 The initial values of the variables.
8
+ * @param step The step size for numerical differentiation (default: 1e-5).
9
+ * @returns The Jacobian matrix.
10
+ */
11
+ export const jacobian = (f, m, x0, step = 0.00001) => {
12
+ const n = x0.length;
13
+ const j = array2d(m, n, 0);
14
+ const h = 0.5 * step;
15
+ for (let k = 0; k < n; k++) {
16
+ const xp = x0.slice();
17
+ xp[k] += h;
18
+ const fp = new Vector(f(xp));
19
+ const xm = x0.slice();
20
+ xm[k] -= h;
21
+ const fm = new Vector(f(xm));
22
+ const cd = fp.subtract(fm).scale(1 / step);
23
+ for (let i = 0; i < m; i++) {
24
+ j[i][k] = cd.elements[i];
25
+ }
26
+ }
27
+ return new Matrix(j);
28
+ };
29
+ //# sourceMappingURL=jacobian.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jacobian.js","sourceRoot":"","sources":["../../src/utils/jacobian.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGpD,uDAAuD;AAEvD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAmB,EAAE,CAAS,EAAE,EAAgB,EAAE,IAAI,GAAG,OAAO,EAAU,EAAE;IACnG,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IACpB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;QAEtB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACX,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7B,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;QAEtB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACX,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7B,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SAC1B;KACF;IAED,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC,CAAC"}