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
@@ -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
@@ -26,40 +25,44 @@ import { LambertIOD } from './LambertIOD';
26
25
  * Used for orbit determination from three optical observations.
27
26
  */
28
27
  export class GoodingIOD {
28
+ _mu;
29
+ o1_;
30
+ o2_;
31
+ o3_;
32
+ vObserverPosition1_ = Vector3D.origin;
33
+ vObserverPosition2_ = Vector3D.origin;
34
+ vObserverPosition3_ = Vector3D.origin;
35
+ r_ = 0.0;
36
+ v_ = 0.0;
37
+ t_ = 0.0;
38
+ r1_ = 0.0;
39
+ r2_ = 0.0;
40
+ r3_ = 0.0;
41
+ rho1_ = 0.0;
42
+ rho2_ = 0.0;
43
+ rho3_ = 0.0;
44
+ d1_ = 0.0;
45
+ d3_ = 0.0;
46
+ facFiniteDiff_ = 0.0;
47
+ _forceModel = new ForceModel().setGravity(1.0);
29
48
  constructor(o1, o2, o3, mu = Earth.mu) {
30
- this._vObserverPosition1 = Vector3D.origin;
31
- this._vObserverPosition2 = Vector3D.origin;
32
- this._vObserverPosition3 = Vector3D.origin;
33
- this._r = 0.0;
34
- this._v = 0.0;
35
- this._t = 0.0;
36
- this._r1 = 0.0;
37
- this._r2 = 0.0;
38
- this._r3 = 0.0;
39
- this._rho1 = 0.0;
40
- this._rho2 = 0.0;
41
- this._rho3 = 0.0;
42
- this._d1 = 0.0;
43
- this._d3 = 0.0;
44
- this._facFiniteDiff = 0.0;
45
- this._forceModel = new ForceModel().setGravity(1.0);
46
49
  this._mu = mu;
47
- this._o1 = o1;
48
- this._o2 = o2;
49
- this._o3 = o3;
50
+ this.o1_ = o1;
51
+ this.o2_ = o2;
52
+ this.o3_ = o3;
50
53
  }
51
54
  _getPositionOnLoS2({ e1, r01, e3, r03, t13, t12, nRev, posigrade, }) {
52
- const p1 = this._vObserverPosition1.add(e1.scale(r01));
53
- this._r1 = p1.magnitude();
54
- const p3 = this._vObserverPosition3.add(e3.scale(r03));
55
- this._r3 = p3.magnitude();
55
+ const p1 = this.vObserverPosition1_.add(e1.scale(r01));
56
+ this.r1_ = p1.magnitude();
57
+ const p3 = this.vObserverPosition3_.add(e3.scale(r03));
58
+ this.r3_ = p3.magnitude();
56
59
  const p13 = p1.cross(p3);
57
60
  let th = Math.atan2(p13.magnitude(), p1.dot(p3));
58
61
  if (!posigrade) {
59
62
  th = TAU - th;
60
63
  }
61
64
  const v1 = new Float64Array(2);
62
- const exitflag = LambertIOD.solve(this._r1, this._r3, th, t13, nRev, v1);
65
+ const exitflag = LambertIOD.solve(this.r1_, this.r3_, th, t13, nRev, v1);
63
66
  if (exitflag) {
64
67
  const pn = p1.cross(p3);
65
68
  const pt = pn.cross(p1);
@@ -67,26 +70,26 @@ export class GoodingIOD {
67
70
  if (!posigrade) {
68
71
  rt = -rt;
69
72
  }
70
- const vel1 = p1.scale(v1[0] / this._r1).add(pt.scale(v1[1] / rt));
71
- const p2 = new RungeKutta89Propagator(new J2000(this._o1.epoch, p1, vel1), this._forceModel).propagate(this._o1.epoch.roll(t12)).position;
73
+ const vel1 = p1.scale(v1[0] / this.r1_).add(pt.scale(v1[1] / rt));
74
+ const p2 = new RungeKutta89Propagator(new J2000(this.o1_.epoch, p1, vel1), this._forceModel).propagate(this.o1_.epoch.roll(t12)).position;
72
75
  return p2;
73
76
  }
74
77
  return null;
75
78
  }
76
79
  _modifyIterate(lineOfSight1, lineOfSight3) {
77
- const r13 = this._vObserverPosition3.subtract(this._vObserverPosition1);
78
- this._d1 = r13.dot(lineOfSight1);
79
- this._d3 = r13.dot(lineOfSight3);
80
+ const r13 = this.vObserverPosition3_.subtract(this.vObserverPosition1_);
81
+ this.d1_ = r13.dot(lineOfSight1);
82
+ this.d3_ = r13.dot(lineOfSight3);
80
83
  const d2 = lineOfSight1.dot(lineOfSight3);
81
84
  const d4 = 1.0 - d2 * d2;
82
- this._rho1 = Math.max((this._d1 - this._d3 * d2) / d4, 0.0);
83
- this._rho3 = Math.max((this._d1 * d2 - this._d3) / d4, 0.0);
85
+ this.rho1_ = Math.max((this.d1_ - this.d3_ * d2) / d4, 0.0);
86
+ this.rho3_ = Math.max((this.d1_ * d2 - this.d3_) / d4, 0.0);
84
87
  }
85
88
  _computeDerivatives({ x, y, lineOfSight1, lineOfSight3, pin, ein, t13, t12, nrev, direction, fd, gd, }) {
86
89
  const p = pin.normalize();
87
90
  const en = ein.normalize();
88
- const dx = this._facFiniteDiff * x;
89
- const dy = this._facFiniteDiff * y;
91
+ const dx = this.facFiniteDiff_ * x;
92
+ const dy = this.facFiniteDiff_ * y;
90
93
  const cm1 = this._getPositionOnLoS2({
91
94
  e1: lineOfSight1,
92
95
  r01: x - dx,
@@ -96,7 +99,7 @@ export class GoodingIOD {
96
99
  t12,
97
100
  nRev: nrev,
98
101
  posigrade: direction,
99
- }).subtract(this._vObserverPosition2);
102
+ }).subtract(this.vObserverPosition2_);
100
103
  const fm1 = p.dot(cm1);
101
104
  const gm1 = en.dot(cm1);
102
105
  const cp1 = this._getPositionOnLoS2({
@@ -108,7 +111,7 @@ export class GoodingIOD {
108
111
  t12,
109
112
  nRev: nrev,
110
113
  posigrade: direction,
111
- }).subtract(this._vObserverPosition2);
114
+ }).subtract(this.vObserverPosition2_);
112
115
  const fp1 = p.dot(cp1);
113
116
  const gp1 = en.dot(cp1);
114
117
  const fx = (fp1 - fm1) / (2.0 * dx);
@@ -122,7 +125,7 @@ export class GoodingIOD {
122
125
  t12,
123
126
  nRev: nrev,
124
127
  posigrade: direction,
125
- }).subtract(this._vObserverPosition2);
128
+ }).subtract(this.vObserverPosition2_);
126
129
  const fm3 = p.dot(cm3);
127
130
  const gm3 = en.dot(cm3);
128
131
  const cp3 = this._getPositionOnLoS2({
@@ -134,7 +137,7 @@ export class GoodingIOD {
134
137
  t12,
135
138
  nRev: nrev,
136
139
  posigrade: direction,
137
- }).subtract(this._vObserverPosition2);
140
+ }).subtract(this.vObserverPosition2_);
138
141
  const fp3 = p.dot(cp3);
139
142
  const gp3 = en.dot(cp3);
140
143
  const fy = (fp3 - fm3) / (2.0 * dy);
@@ -145,21 +148,21 @@ export class GoodingIOD {
145
148
  gd[1] = gy;
146
149
  }
147
150
  solve(r1Init, r3Init, nRev = 0, direction = true) {
148
- const lineOfSight1 = this._o1.observation.lineOfSight();
149
- const lineOfSight2 = this._o2.observation.lineOfSight();
150
- const lineOfSight3 = this._o3.observation.lineOfSight();
151
- this._r = Math.max(r1Init, r3Init);
152
- this._v = Math.sqrt(this._mu / this._r);
153
- this._t = this._r / this._v;
154
- this._vObserverPosition1 = this._o1.site.position.scale(1.0 / this._r);
155
- this._vObserverPosition2 = this._o2.site.position.scale(1.0 / this._r);
156
- this._vObserverPosition3 = this._o3.site.position.scale(1.0 / this._r);
151
+ const lineOfSight1 = this.o1_.observation.lineOfSight();
152
+ const lineOfSight2 = this.o2_.observation.lineOfSight();
153
+ const lineOfSight3 = this.o3_.observation.lineOfSight();
154
+ this.r_ = Math.max(r1Init, r3Init);
155
+ this.v_ = Math.sqrt(this._mu / this.r_);
156
+ this.t_ = this.r_ / this.v_;
157
+ this.vObserverPosition1_ = this.o1_.site.position.scale(1.0 / this.r_);
158
+ this.vObserverPosition2_ = this.o2_.site.position.scale(1.0 / this.r_);
159
+ this.vObserverPosition3_ = this.o3_.site.position.scale(1.0 / this.r_);
157
160
  const maxiter = 100;
158
161
  this._solveRangeProblem({
159
- rho1init: r1Init / this._r,
160
- rho3init: r3Init / this._r,
161
- t13: this._o3.epoch.difference(this._o1.epoch) / this._t,
162
- t12: this._o2.epoch.difference(this._o1.epoch) / this._t,
162
+ rho1init: r1Init / this.r_,
163
+ rho3init: r3Init / this.r_,
164
+ t13: this.o3_.epoch.difference(this.o1_.epoch) / this.t_,
165
+ t12: this.o2_.epoch.difference(this.o1_.epoch) / this.t_,
163
166
  nrev: nRev,
164
167
  direction,
165
168
  lineOfSight1,
@@ -168,25 +171,25 @@ export class GoodingIOD {
168
171
  maxIterations: maxiter,
169
172
  });
170
173
  const gibbs = new GibbsIOD(this._mu);
171
- const p1 = this._vObserverPosition1.add(lineOfSight1.scale(this._rho1)).scale(this._r);
172
- const p2 = this._vObserverPosition2.add(lineOfSight2.scale(this._rho2)).scale(this._r);
173
- const p3 = this._vObserverPosition3.add(lineOfSight3.scale(this._rho3)).scale(this._r);
174
- return gibbs.solve(p1, p2, p3, this._o2.epoch, this._o3.epoch);
174
+ const p1 = this.vObserverPosition1_.add(lineOfSight1.scale(this.rho1_)).scale(this.r_);
175
+ const p2 = this.vObserverPosition2_.add(lineOfSight2.scale(this.rho2_)).scale(this.r_);
176
+ const p3 = this.vObserverPosition3_.add(lineOfSight3.scale(this.rho3_)).scale(this.r_);
177
+ return gibbs.solve(p1, p2, p3, this.o2_.epoch, this.o3_.epoch);
175
178
  }
176
179
  _solveRangeProblem({ rho1init, rho3init, t13, t12, nrev, direction, lineOfSight1, lineOfSight2, lineOfSight3, maxIterations, }) {
177
180
  const arbf = 1e-6;
178
181
  const cvtol = 1e-14;
179
- this._rho1 = rho1init;
180
- this._rho3 = rho3init;
182
+ this.rho1_ = rho1init;
183
+ this.rho3_ = rho3init;
181
184
  let iter = 0;
182
185
  let stoppingCriterion = 10.0 * cvtol;
183
186
  while (iter < maxIterations && Math.abs(stoppingCriterion) > cvtol) {
184
- this._facFiniteDiff = arbf;
187
+ this.facFiniteDiff_ = arbf;
185
188
  const p2 = this._getPositionOnLoS2({
186
189
  e1: lineOfSight1,
187
- r01: this._rho1,
190
+ r01: this.rho1_,
188
191
  e3: lineOfSight3,
189
- r03: this._rho3,
192
+ r03: this.rho3_,
190
193
  t13,
191
194
  t12,
192
195
  nRev: nrev,
@@ -196,9 +199,9 @@ export class GoodingIOD {
196
199
  this._modifyIterate(lineOfSight1, lineOfSight3);
197
200
  }
198
201
  else {
199
- this._r2 = p2.magnitude();
200
- const c = p2.subtract(this._vObserverPosition2);
201
- this._rho2 = c.magnitude();
202
+ this.r2_ = p2.magnitude();
203
+ const c = p2.subtract(this.vObserverPosition2_);
204
+ this.rho2_ = c.magnitude();
202
205
  const cr = lineOfSight2.dot(c);
203
206
  const u = lineOfSight2.cross(c);
204
207
  const p = u.cross(lineOfSight2).normalize();
@@ -212,8 +215,8 @@ export class GoodingIOD {
212
215
  const fd = new Float64Array(2);
213
216
  const gd = new Float64Array(2);
214
217
  this._computeDerivatives({
215
- x: this._rho1,
216
- y: this._rho3,
218
+ x: this.rho1_,
219
+ y: this.rho3_,
217
220
  lineOfSight1,
218
221
  lineOfSight3,
219
222
  pin: p,
@@ -230,11 +233,11 @@ export class GoodingIOD {
230
233
  const gr1 = gd[0];
231
234
  const gr3 = gd[1];
232
235
  const detj = fr1 * gr3 - fr3 * gr1;
233
- this._d3 = (-gr3 * fc) / detj;
234
- this._d1 = (gr1 * fc) / detj;
235
- this._rho1 += this._d3;
236
- this._rho3 += this._d1;
237
- const den = Math.max(cr, this._r2);
236
+ this.d3_ = (-gr3 * fc) / detj;
237
+ this.d1_ = (gr1 * fc) / detj;
238
+ this.rho1_ = this.rho1_ + this.d3_;
239
+ this.rho3_ = this.rho3_ + this.d1_;
240
+ const den = Math.max(cr, this.r2_);
238
241
  stoppingCriterion = fc / den;
239
242
  }
240
243
  ++iter;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoodingIOD.js","sourceRoot":"","sources":["../../src/orbit_determination/GoodingIOD.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,7 +14,7 @@
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, Vector3D } from 'ootk-core';
17
+ import { EpochUTC, J2000, Kilometers, Vector3D } from 'ootk-core';
19
18
  /**
20
19
  * Herrik-Gibbs 3-position initial orbit determination.
21
20
  *
@@ -27,7 +26,8 @@ export declare class HerrickGibbsIOD {
27
26
  /**
28
27
  * Create a new [HerrickGibbsIOD] object with optional
29
28
  * gravitational parameter [mu].
29
+ * @param mu Gravitational parameter (default: Earth.mu)
30
30
  */
31
31
  constructor(mu?: number);
32
- solve(r1: Vector3D, t1: EpochUTC, r2: Vector3D, t2: EpochUTC, r3: Vector3D, t3: EpochUTC): J2000;
32
+ solve(r1: Vector3D, t1: EpochUTC, r2: Vector3D<Kilometers>, t2: EpochUTC, r3: Vector3D, t3: EpochUTC): J2000;
33
33
  }
@@ -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,9 +22,11 @@ import { Earth, J2000 } from 'ootk-core';
23
22
  * vectors (less than 5°).
24
23
  */
25
24
  export class HerrickGibbsIOD {
25
+ mu;
26
26
  /**
27
27
  * Create a new [HerrickGibbsIOD] object with optional
28
28
  * gravitational parameter [mu].
29
+ * @param mu Gravitational parameter (default: Earth.mu)
29
30
  */
30
31
  constructor(mu = Earth.mu) {
31
32
  this.mu = mu;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HerrickGibbsIOD.js","sourceRoot":"","sources":["../../src/orbit_determination/HerrickGibbsIOD.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAY,KAAK,EAA6C,MAAM,WAAW,CAAC;AAE9F;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAMP;IALnB;;;;OAIG;IACH,YAAmB,KAAa,KAAK,CAAC,EAAE;QAArB,OAAE,GAAF,EAAE,CAAmB;QACtC,sBAAsB;IACxB,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,EAAY,EAAE,EAAY,EAAE,EAAwB,EAAE,EAAY,EAAE,EAAY,EAAE,EAAY;QAClG,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAChG,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACvF,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAkC,CAAC;QAE/D,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,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
@@ -15,17 +14,16 @@
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, Vector3D } from 'ootk-core';
17
+ import { EpochUTC, J2000, Kilometers, Vector3D } from 'ootk-core';
19
18
  export declare class LambertIOD {
20
19
  mu: number;
21
- /**
22
- * Create a new [LambertIOD] object with optional
23
- * gravitational parameter [mu].
24
- */
25
20
  constructor(mu?: number);
26
21
  /**
27
22
  * Try to guess the short path argument given an [interceptor] and
28
23
  * [target] state.
24
+ * @param interceptor Interceptor
25
+ * @param target Target
26
+ * @returns True if the short path should be used, false otherwise.
29
27
  */
30
28
  static useShortPath(interceptor: J2000, target: J2000): boolean;
31
29
  private static timeOfFlight_;
@@ -33,13 +31,28 @@ export declare class LambertIOD {
33
31
  * Attempt to solve output velocity [v1] _(km/s)_ given radii [r1] and
34
32
  * [r2] _(canonical)_, sweep angle [dth] _(rad)_, time of flight [tau]
35
33
  * _(canonical)_, and number of revolutions _(mRev)_.
34
+ * @param r1 Radius 1
35
+ * @param r2 Radius 2
36
+ * @param dth Sweep angle
37
+ * @param tau Time of flight
38
+ * @param mRev Number of revolutions
39
+ * @param v1 Output velocity
40
+ * @returns True if successful, false otherwise.
36
41
  */
37
42
  static solve(r1: number, r2: number, dth: number, tau: number, mRev: number, v1: Float64Array): boolean;
38
43
  /**
39
44
  * Estimate a state vector for inertial position [p1] _(km)_ given the
40
45
  * two epoch and positions.
46
+ * @param p1 Position vector 1
47
+ * @param p2 Position vector 2
48
+ * @param t1 Epoch 1
49
+ * @param t2 Epoch 2
50
+ * @param root0 Optional parameters
51
+ * @param root0.posigrade If true, use the positive root (default: true)
52
+ * @param root0.nRev Number of revolutions (default: 0)
53
+ * @returns A [J2000] object with the estimated state vector.
41
54
  */
42
- estimate(p1: Vector3D, p2: Vector3D, t1: EpochUTC, t2: EpochUTC, { posigrade, nRev }?: {
55
+ estimate(p1: Vector3D<Kilometers>, p2: Vector3D<Kilometers>, t1: EpochUTC, t2: EpochUTC, { posigrade, nRev }?: {
43
56
  posigrade?: boolean;
44
57
  nRev?: number;
45
58
  }): J2000 | null;
@@ -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,10 +17,7 @@
18
17
  import { Earth, J2000 } from 'ootk-core';
19
18
  // / Lambert two-position and time initial orbit determination.
20
19
  export class LambertIOD {
21
- /**
22
- * Create a new [LambertIOD] object with optional
23
- * gravitational parameter [mu].
24
- */
20
+ mu;
25
21
  constructor(mu = Earth.mu) {
26
22
  this.mu = mu;
27
23
  // Nothing to do here.
@@ -29,6 +25,9 @@ export class LambertIOD {
29
25
  /**
30
26
  * Try to guess the short path argument given an [interceptor] and
31
27
  * [target] state.
28
+ * @param interceptor Interceptor
29
+ * @param target Target
30
+ * @returns True if the short path should be used, false otherwise.
32
31
  */
33
32
  static useShortPath(interceptor, target) {
34
33
  const transN = interceptor.position.cross(target.position);
@@ -54,6 +53,13 @@ export class LambertIOD {
54
53
  * Attempt to solve output velocity [v1] _(km/s)_ given radii [r1] and
55
54
  * [r2] _(canonical)_, sweep angle [dth] _(rad)_, time of flight [tau]
56
55
  * _(canonical)_, and number of revolutions _(mRev)_.
56
+ * @param r1 Radius 1
57
+ * @param r2 Radius 2
58
+ * @param dth Sweep angle
59
+ * @param tau Time of flight
60
+ * @param mRev Number of revolutions
61
+ * @param v1 Output velocity
62
+ * @returns True if successful, false otherwise.
57
63
  */
58
64
  static solve(r1, r2, dth, tau, mRev, v1) {
59
65
  const leftBranch = dth < Math.PI;
@@ -169,6 +175,14 @@ export class LambertIOD {
169
175
  /**
170
176
  * Estimate a state vector for inertial position [p1] _(km)_ given the
171
177
  * two epoch and positions.
178
+ * @param p1 Position vector 1
179
+ * @param p2 Position vector 2
180
+ * @param t1 Epoch 1
181
+ * @param t2 Epoch 2
182
+ * @param root0 Optional parameters
183
+ * @param root0.posigrade If true, use the positive root (default: true)
184
+ * @param root0.nRev Number of revolutions (default: 0)
185
+ * @returns A [J2000] object with the estimated state vector.
172
186
  */
173
187
  estimate(p1, p2, t1, t2, { posigrade = true, nRev = 0 } = {}) {
174
188
  const r1 = p1.magnitude();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LambertIOD.js","sourceRoot":"","sources":["../../src/orbit_determination/LambertIOD.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,7 +14,7 @@
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 { J2000 } from 'ootk-core';
17
+ import { J2000, Kilometers } from 'ootk-core';
19
18
  import { ObservationOptical } from './../observation/ObservationOptical';
20
19
  type SolveOptions = {
21
20
  nRev?: number;
@@ -31,11 +30,11 @@ type SolveOptions = {
31
30
  * Used for orbit determination from multiple optical observations.
32
31
  */
33
32
  export declare class ModifiedGoodingIOD {
34
- private _observations;
35
- private _mu;
33
+ private observations_;
34
+ private mu_;
36
35
  constructor(observations: ObservationOptical[], mu?: number);
37
- private _createInitial;
36
+ private createInitial_;
38
37
  private _createErrorFunction;
39
- solve(r0: number, rN: number, { nRev, direction, posSearch, velSearch, tolerance, printIter, }: SolveOptions): J2000;
38
+ solve(r0: Kilometers, rN: Kilometers, { nRev, direction, posSearch, velSearch, tolerance, printIter, }: SolveOptions): J2000;
40
39
  }
41
40
  export {};
@@ -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
@@ -26,27 +25,29 @@ import { GoodingIOD } from './GoodingIOD';
26
25
  * Used for orbit determination from multiple optical observations.
27
26
  */
28
27
  export class ModifiedGoodingIOD {
28
+ observations_;
29
+ mu_;
29
30
  constructor(observations, mu = Earth.mu) {
30
- this._observations = observations;
31
- this._mu = mu;
31
+ this.observations_ = observations;
32
+ this.mu_ = mu;
32
33
  }
33
- _createInitial(r0, rN, nRev, direction) {
34
- const iod = new GoodingIOD(this._observations[0], this._observations[Math.floor(this._observations.length / 2)], this._observations[this._observations.length - 1], this._mu);
34
+ createInitial_(r0, rN, nRev, direction) {
35
+ const iod = new GoodingIOD(this.observations_[0], this.observations_[Math.floor(this.observations_.length / 2)], this.observations_[this.observations_.length - 1], this.mu_);
35
36
  return iod.solve(r0, rN, nRev, direction);
36
37
  }
37
38
  _createErrorFunction(aprioriEpoch) {
38
- const forceModel = new ForceModel().setGravity(this._mu);
39
+ const forceModel = new ForceModel().setGravity(this.mu_);
39
40
  const scoreFn = (x) => {
40
41
  const position = new Vector3D(x[0], x[1], x[2]);
41
42
  const velocity = new Vector3D(x[3], x[4], x[5]);
42
43
  const state = new J2000(aprioriEpoch, position, velocity);
43
44
  const propagator = new RungeKutta89Propagator(state, forceModel);
44
45
  let total = 0;
45
- for (const oC of this._observations) {
46
+ for (const oC of this.observations_) {
46
47
  const sC = propagator.propagate(oC.epoch);
47
48
  const pC = oC.site;
48
49
  const expected = oC.observation.lineOfSight();
49
- const actual = RadecTopocentric.fromStateVectors(sC, pC).lineOfSight();
50
+ const actual = RadecTopocentric.fromStateVector(sC, pC).lineOfSight();
50
51
  const error = expected.angle(actual);
51
52
  total += error;
52
53
  }
@@ -55,10 +56,10 @@ export class ModifiedGoodingIOD {
55
56
  return scoreFn;
56
57
  }
57
58
  solve(r0, rN, { nRev = 0, direction = true, posSearch = 10.0, velSearch = 0.1, tolerance = 1e-6, printIter = false, }) {
58
- if (this._observations.length < 3) {
59
+ if (this.observations_.length < 3) {
59
60
  throw new Error('At least 3 observations required for Gooding IOD.');
60
61
  }
61
- const init = this._createInitial(r0, rN, nRev, direction);
62
+ const init = this.createInitial_(r0, rN, nRev, direction);
62
63
  const guess = Float64Array.from([...init.position.toArray(), ...init.velocity.toArray()]);
63
64
  const solveFn = this._createErrorFunction(init.epoch);
64
65
  const simplex = [
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModifiedGoodingIOD.js","sourceRoot":"","sources":["../../src/orbit_determination/ModifiedGoodingIOD.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