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
@@ -22,16 +21,16 @@ import { StateCovariance } from './StateCovariance';
22
21
  export declare class CovarianceSample {
23
22
  private _origin;
24
23
  private _samples;
25
- private _pts;
24
+ private matrix_;
26
25
  /**
27
26
  * Create a new [CovarianceSample] object from an inertial state, covariance
28
27
  * and optional force models for the origin state and samples.
29
28
  *
30
29
  * Two-body physics will be used if a force model is not provided.
31
- * @param state
32
- * @param covariance
33
- * @param originForceModel
34
- * @param sampleForceModel
30
+ * @param state The origin state.
31
+ * @param covariance The covariance.
32
+ * @param originForceModel The force model for the origin state.
33
+ * @param sampleForceModel The force model for the samples.
35
34
  */
36
35
  constructor(state: J2000, covariance: StateCovariance, originForceModel?: ForceModel, sampleForceModel?: ForceModel);
37
36
  get epoch(): Epoch;
@@ -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
@@ -16,29 +15,30 @@
16
15
  * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
17
16
  */
18
17
  /* eslint-disable class-methods-use-this */
19
- import { J2000, Matrix, RelativeState, RIC, Vector, Vector3D } from 'ootk-core';
18
+ import { J2000, Matrix, RelativeState, RIC, Vector, Vector3D, } from 'ootk-core';
20
19
  import { ForceModel } from '../force/ForceModel';
21
20
  import { RungeKutta89Propagator } from '../propagator/RungeKutta89Propagator';
22
21
  import { CovarianceFrame, StateCovariance } from './StateCovariance';
23
22
  // / Sigma point covariance sample.
24
23
  export class CovarianceSample {
24
+ _origin;
25
+ _samples = [];
26
+ matrix_ = Matrix.zero(6, 12);
25
27
  /**
26
28
  * Create a new [CovarianceSample] object from an inertial state, covariance
27
29
  * and optional force models for the origin state and samples.
28
30
  *
29
31
  * Two-body physics will be used if a force model is not provided.
30
- * @param state
31
- * @param covariance
32
- * @param originForceModel
33
- * @param sampleForceModel
32
+ * @param state The origin state.
33
+ * @param covariance The covariance.
34
+ * @param originForceModel The force model for the origin state.
35
+ * @param sampleForceModel The force model for the samples.
34
36
  */
35
37
  constructor(state, covariance, originForceModel, sampleForceModel) {
36
- this._samples = [];
37
- this._pts = Matrix.zero(6, 12);
38
38
  originForceModel ??= new ForceModel().setGravity();
39
39
  sampleForceModel ??= new ForceModel().setGravity();
40
40
  this._origin = new RungeKutta89Propagator(state, originForceModel);
41
- const s = covariance.matrix.cholesky();
41
+ const s = covariance.matrix.cholesky().elements;
42
42
  const sqrt6 = Math.sqrt(6.0);
43
43
  for (let i = 0; i < 6; i++) {
44
44
  for (let j = 0; j < 6; j++) {
@@ -46,7 +46,7 @@ export class CovarianceSample {
46
46
  }
47
47
  }
48
48
  // 6 x 12 matrix
49
- const sigmapts = Matrix.zero(6, 12);
49
+ const sigmapts = Matrix.zero(6, 12).elements;
50
50
  for (let i = 0; i < 6; i++) {
51
51
  const jj = (i - 1) * 2 + 2;
52
52
  for (let j = 0; j < 3; j++) {
@@ -78,9 +78,10 @@ export class CovarianceSample {
78
78
  return this._origin.state;
79
79
  }
80
80
  // / Rebuild covariance from sigma points.
81
- _rebuildCovariance(pts) {
81
+ _rebuildCovariance(matrix) {
82
+ const pts = matrix.elements;
82
83
  const c = 1.0 / 12.0;
83
- const yu = new Vector([0, 0, 0, 0, 0, 0]);
84
+ const yu = new Vector([0, 0, 0, 0, 0, 0]).elements;
84
85
  const y = Matrix.zero(6, 12);
85
86
  for (let i = 0; i < 12; i++) {
86
87
  for (let j = 0; j < 6; j++) {
@@ -92,7 +93,7 @@ export class CovarianceSample {
92
93
  }
93
94
  for (let i = 0; i < 12; i++) {
94
95
  for (let j = 0; j < 6; j++) {
95
- y[j][i] = pts[j][i] - yu[j];
96
+ y.elements[j][i] = pts[j][i] - yu[j];
96
97
  }
97
98
  }
98
99
  const yt = y.transpose();
@@ -117,14 +118,14 @@ export class CovarianceSample {
117
118
  desampleJ2000() {
118
119
  for (let i = 0; i < 12; i++) {
119
120
  const state = this._samples[i].state;
120
- this._pts[0][i] = state.position[0];
121
- this._pts[1][i] = state.position[1];
122
- this._pts[2][i] = state.position[2];
123
- this._pts[3][i] = state.velocity[0];
124
- this._pts[4][i] = state.velocity[1];
125
- this._pts[5][i] = state.velocity[2];
121
+ this.matrix_.elements[0][i] = state.position.x;
122
+ this.matrix_.elements[1][i] = state.position.y;
123
+ this.matrix_.elements[2][i] = state.position.z;
124
+ this.matrix_.elements[3][i] = state.velocity.x;
125
+ this.matrix_.elements[4][i] = state.velocity.y;
126
+ this.matrix_.elements[5][i] = state.velocity.z;
126
127
  }
127
- const matrix = this._rebuildCovariance(this._pts);
128
+ const matrix = this._rebuildCovariance(this.matrix_);
128
129
  return new StateCovariance(matrix, CovarianceFrame.ECI);
129
130
  }
130
131
  // / Desample covariance in RIC frame.
@@ -132,14 +133,14 @@ export class CovarianceSample {
132
133
  const rot = RelativeState.createMatrix(this._origin.state.position, this._origin.state.velocity);
133
134
  for (let i = 0; i < 12; i++) {
134
135
  const state = RIC.fromJ2000Matrix(this._samples[i].state, this._origin.state, rot);
135
- this._pts[0][i] = state.position[0];
136
- this._pts[1][i] = state.position[1];
137
- this._pts[2][i] = state.position[2];
138
- this._pts[3][i] = state.velocity[0];
139
- this._pts[4][i] = state.velocity[1];
140
- this._pts[5][i] = state.velocity[2];
136
+ this.matrix_.elements[0][i] = state.position.x;
137
+ this.matrix_.elements[1][i] = state.position.y;
138
+ this.matrix_.elements[2][i] = state.position.z;
139
+ this.matrix_.elements[3][i] = state.velocity.x;
140
+ this.matrix_.elements[4][i] = state.velocity.y;
141
+ this.matrix_.elements[5][i] = state.velocity.z;
141
142
  }
142
- const matrix = this._rebuildCovariance(this._pts);
143
+ const matrix = this._rebuildCovariance(this.matrix_);
143
144
  return new StateCovariance(matrix, CovarianceFrame.RIC);
144
145
  }
145
146
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CovarianceSample.js","sourceRoot":"","sources":["../../src/covariance/CovarianceSample.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
@@ -29,12 +28,14 @@ export declare class StateCovariance {
29
28
  /**
30
29
  * Create a new [StateCovariance] object given its covariance [matrix] and
31
30
  * [CovarianceFrame].
31
+ * @param matrix The covariance matrix.
32
+ * @param frame The covariance frame.
33
+ * @returns A new [StateCovariance] object.
32
34
  */
33
35
  constructor(matrix: Matrix, frame: CovarianceFrame);
34
36
  static fromSigmas(sigmas: number[], frame: CovarianceFrame): StateCovariance;
35
37
  /**
36
38
  * Calculates the standard deviations (sigmas) of each element in the covariance matrix.
37
- *
38
39
  * @returns A vector containing the standard deviations of each element in the covariance matrix.
39
40
  */
40
41
  sigmas(): Vector;
@@ -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,9 +25,14 @@ export var CovarianceFrame;
26
25
  })(CovarianceFrame || (CovarianceFrame = {}));
27
26
  // / State covariance.
28
27
  export class StateCovariance {
28
+ matrix;
29
+ frame;
29
30
  /**
30
31
  * Create a new [StateCovariance] object given its covariance [matrix] and
31
32
  * [CovarianceFrame].
33
+ * @param matrix The covariance matrix.
34
+ * @param frame The covariance frame.
35
+ * @returns A new [StateCovariance] object.
32
36
  */
33
37
  constructor(matrix, frame) {
34
38
  this.matrix = matrix;
@@ -40,20 +44,19 @@ export class StateCovariance {
40
44
  const n = sigmas.length;
41
45
  const output = Matrix.zero(n, n);
42
46
  for (let i = 0; i < n; i++) {
43
- output[i][i] = Math.max(sigmas[i] * sigmas[i], 1e-32);
47
+ output.elements[i][i] = Math.max(sigmas[i] * sigmas[i], 1e-32);
44
48
  }
45
49
  return new StateCovariance(output, frame);
46
50
  }
47
51
  /**
48
52
  * Calculates the standard deviations (sigmas) of each element in the covariance matrix.
49
- *
50
53
  * @returns A vector containing the standard deviations of each element in the covariance matrix.
51
54
  */
52
55
  sigmas() {
53
56
  const c = this.matrix.columns;
54
57
  const result = new Float64Array(c);
55
58
  for (let i = 0; i < c; i++) {
56
- const variance = this.matrix[i][i];
59
+ const variance = this.matrix.elements[i][i];
57
60
  result[i] = Math.sqrt(variance);
58
61
  }
59
62
  return new Vector(result);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateCovariance.js","sourceRoot":"","sources":["../../src/covariance/StateCovariance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE3C,uBAAuB;AACvB,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,8BAA8B;IAC9B,8BAAW,CAAA;IACX,gCAAgC;IAChC,8BAAW,CAAA;AACb,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED,sBAAsB;AACtB,MAAM,OAAO,eAAe;IAQP;IAAuB;IAP1C;;;;;;OAMG;IACH,YAAmB,MAAc,EAAS,KAAsB;QAA7C,WAAM,GAAN,MAAM,CAAQ;QAAS,UAAK,GAAL,KAAK,CAAiB;QAC9D,sBAAsB;IACxB,CAAC;IAED,+DAA+D;IAC/D,MAAM,CAAC,UAAU,CAAC,MAAgB,EAAE,KAAsB;QACxD,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SAChE;QAED,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE5C,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;QAED,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,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
@@ -15,12 +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 { DataHandler, DEG2RAD, Earth, ITRF, J2000, Sun, Vector3D } from 'ootk-core';
17
+ import { DataHandler, DEG2RAD, Earth, ITRF, J2000, Sun, Vector3D, } from 'ootk-core';
19
18
  /**
20
19
  * Harris-Priester atmospheric drag force model.
21
20
  * Atmospheric density model assumes mean solar flux.
22
21
  */
23
22
  export class AtmosphericDrag {
23
+ mass;
24
+ area;
25
+ dragCoeff;
26
+ cosine;
24
27
  constructor(mass, area, dragCoeff, cosine) {
25
28
  this.mass = mass;
26
29
  this.area = area;
@@ -28,7 +31,7 @@ export class AtmosphericDrag {
28
31
  this.cosine = cosine;
29
32
  }
30
33
  static _getHPDensity(state, n) {
31
- const hpa = DataHandler.getInstance().getHpAtmosphere(state.getHeight());
34
+ const hpa = DataHandler.getInstance().getHpAtmosphere(state.height);
32
35
  if (hpa === null) {
33
36
  return 0.0;
34
37
  }
@@ -56,8 +59,12 @@ export class AtmosphericDrag {
56
59
  if (density === 0) {
57
60
  return Vector3D.origin;
58
61
  }
59
- const rotation = new ITRF(state.epoch, Earth.rotation, Vector3D.origin).toJ2000().position;
60
- const vRel = state.velocity.subtract(rotation.cross(state.position)).scale(1000.0);
62
+ const rotation = new ITRF(state.epoch,
63
+ // TODO: #26 This is a bit of a hack to get Radians/Second to work with StateVector class
64
+ Earth.rotation, Vector3D.origin).toJ2000().position;
65
+ // TODO: #26 This is a bit of a hack to get Radians/Second to work with StateVector class
66
+ const vRel = state.velocity.subtract(rotation.cross(state.position))
67
+ .scale(1000.0);
61
68
  const vm = vRel.magnitude();
62
69
  const fScale = -0.5 * density * ((this.dragCoeff * this.area) / this.mass) * vm;
63
70
  return vRel.scale(fScale / 1000.0);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtmosphericDrag.js","sourceRoot":"","sources":["../../src/force/AtmosphericDrag.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
@@ -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,6 +17,9 @@
18
17
  import { DataHandler, Earth, ITRF, Vector3D } from 'ootk-core';
19
18
  // / tesseral geopotential perturbations.
20
19
  export class EarthGravity {
20
+ degree;
21
+ order;
22
+ _asphericalFlag;
21
23
  constructor(degree, order) {
22
24
  this.degree = Math.min(Math.max(degree, 0), 36);
23
25
  this.order = Math.min(Math.max(order, 0), 36);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EarthGravity.js","sourceRoot":"","sources":["../../src/force/EarthGravity.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
@@ -20,6 +19,8 @@ export declare abstract class Force {
20
19
  /**
21
20
  * Calculate the acceleration due to the perturbing force on a given
22
21
  * state vector.
22
+ * @param state The state vector.
23
+ * @throws If the force cannot be calculated.
23
24
  */
24
25
  acceleration(state: J2000): Vector3D;
25
26
  }
@@ -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
@@ -22,6 +21,8 @@ export class Force {
22
21
  /**
23
22
  * Calculate the acceleration due to the perturbing force on a given
24
23
  * state vector.
24
+ * @param state The state vector.
25
+ * @throws If the force cannot be calculated.
25
26
  */
26
27
  acceleration(state) {
27
28
  throw Error('Not implemented');
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Force.js","sourceRoot":"","sources":["../../src/force/Force.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,sDAAsD;AACtD,2CAA2C;AAE3C,wCAAwC;AACxC,MAAM,OAAgB,KAAK;IACzB;;;;;OAKG;IACH,YAAY,CAAC,KAAY;QACvB,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjC,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
@@ -22,12 +21,12 @@ export declare class ForceModel {
22
21
  private _thirdBodyGravity?;
23
22
  private _solarRadiationPressure?;
24
23
  private _atmosphericDrag?;
25
- private _maneuverThrust?;
24
+ private _maneuverThrust;
26
25
  setGravity(mu?: number): this;
27
26
  setEarthGravity(degree: number, order: number): void;
28
27
  setThirdBodyGravity({ moon, sun }: {
29
- moon?: boolean;
30
- sun?: boolean;
28
+ moon?: boolean | undefined;
29
+ sun?: boolean | undefined;
31
30
  }): void;
32
31
  setSolarRadiationPressure(mass: number, area: number, coeff?: number): void;
33
32
  setAtmosphericDrag(mass: number, area: number, coeff?: number, cosine?: 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,6 +22,11 @@ import { SolarRadiationPressure } from './SolarRadiationPressure';
23
22
  import { ThirdBodyGravity } from './ThirdBodyGravity';
24
23
  // / Force model for spacecraft propagation.
25
24
  export class ForceModel {
25
+ _centralGravity;
26
+ _thirdBodyGravity;
27
+ _solarRadiationPressure;
28
+ _atmosphericDrag;
29
+ _maneuverThrust = null;
26
30
  setGravity(mu = Earth.mu) {
27
31
  this._centralGravity = new Gravity(mu);
28
32
  return this;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ForceModel.js","sourceRoot":"","sources":["../../src/force/ForceModel.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
@@ -26,14 +25,12 @@ export declare class Gravity implements Force {
26
25
  constructor(mu?: number);
27
26
  /**
28
27
  * Calculates the gravitational force in spherical coordinates.
29
- *
30
28
  * @param state The J2000 state containing the position and velocity vectors.
31
29
  * @returns The gravitational force vector in spherical coordinates.
32
30
  */
33
31
  private _spherical;
34
32
  /**
35
33
  * Calculates the acceleration due to gravity at a given state.
36
- *
37
34
  * @param state The J2000 state at which to calculate the acceleration.
38
35
  * @returns The acceleration vector.
39
36
  */
@@ -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,6 +17,8 @@
18
17
  import { Earth } from 'ootk-core';
19
18
  // / Simple central-body gravity model.
20
19
  export class Gravity {
20
+ // / Gravitational parameter _(km²/s³)_.
21
+ mu;
21
22
  /**
22
23
  * Create a new [Gravity] object with optional gravitational
23
24
  * @param mu Gravitational parameter _(km²/s³)_.
@@ -27,7 +28,6 @@ export class Gravity {
27
28
  }
28
29
  /**
29
30
  * Calculates the gravitational force in spherical coordinates.
30
- *
31
31
  * @param state The J2000 state containing the position and velocity vectors.
32
32
  * @returns The gravitational force vector in spherical coordinates.
33
33
  */
@@ -37,7 +37,6 @@ export class Gravity {
37
37
  }
38
38
  /**
39
39
  * Calculates the acceleration due to gravity at a given state.
40
- *
41
40
  * @param state The J2000 state at which to calculate the acceleration.
42
41
  * @returns The acceleration vector.
43
42
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Gravity.js","sourceRoot":"","sources":["../../src/force/Gravity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,WAAW,CAAC;AAGnD,uCAAuC;AACvC,MAAM,OAAO,OAAO;IAClB,wCAAwC;IACxC,EAAE,CAAS;IAEX;;;OAGG;IACH,YAAY,KAAa,KAAK,CAAC,EAAE;QAC/B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;;;OAIG;IACK,UAAU,CAAC,KAAY;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAExC,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,KAAY;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,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
@@ -19,6 +18,9 @@ import { astronomicalUnit, Sun } from 'ootk-core';
19
18
  import { Force } from './Force';
20
19
  // / Solar radiation pressure model.
21
20
  export class SolarRadiationPressure extends Force {
21
+ mass;
22
+ area;
23
+ reflectCoeff;
22
24
  // / Create a new [SolarRadiationPressure] object.
23
25
  constructor(mass, area, reflectCoeff) {
24
26
  super();
@@ -26,6 +28,8 @@ export class SolarRadiationPressure extends Force {
26
28
  this.area = area;
27
29
  this.reflectCoeff = reflectCoeff;
28
30
  }
31
+ // / Solar pressure _(N/m²)_;
32
+ static _kRef = 4.56e-6 * astronomicalUnit ** 2;
29
33
  acceleration(state) {
30
34
  const rSun = Sun.positionApparent(state.epoch);
31
35
  const r = state.position.subtract(rSun);
@@ -37,6 +41,4 @@ export class SolarRadiationPressure extends Force {
37
41
  return flux.scale(((this.area * this.reflectCoeff) / this.mass) * 1e-3);
38
42
  }
39
43
  }
40
- // / Solar pressure _(N/m²)_;
41
- SolarRadiationPressure._kRef = 4.56e-6 * astronomicalUnit ** 2;
42
44
  //# sourceMappingURL=SolarRadiationPressure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolarRadiationPressure.js","sourceRoot":"","sources":["../../src/force/SolarRadiationPressure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,gBAAgB,EAAS,GAAG,EAAY,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,oCAAoC;AACpC,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAE5B;IAAqB;IAAqB;IAD7D,kDAAkD;IAClD,YAAmB,IAAY,EAAS,IAAY,EAAS,YAAoB;QAC/E,KAAK,EAAE,CAAC;QADS,SAAI,GAAJ,IAAI,CAAQ;QAAS,SAAI,GAAJ,IAAI,CAAQ;QAAS,iBAAY,GAAZ,YAAY,CAAQ;IAEjF,CAAC;IAED,6BAA6B;IACrB,MAAM,CAAU,KAAK,GAAW,OAAO,GAAG,gBAAgB,IAAI,CAAC,CAAC;IAExE,YAAY,CAAC,KAAY;QACvB,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAE/B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1E,CAAC"}
@@ -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
@@ -18,6 +17,8 @@
18
17
  import { Moon, Sun, Vector3D } from 'ootk-core';
19
18
  // / Third-body gravity model.
20
19
  export class ThirdBodyGravity {
20
+ moon;
21
+ sun;
21
22
  // / Create a new [ThirdBodyGravity] object with the selected bodies enabled.
22
23
  constructor(moon = false, sun = false) {
23
24
  this.moon = moon;
@@ -25,7 +26,7 @@ export class ThirdBodyGravity {
25
26
  // Nothing to do here.
26
27
  }
27
28
  static _moonGravity(state) {
28
- const rMoon = Moon.position(state.epoch);
29
+ const rMoon = Moon.eci(state.epoch);
29
30
  const aNum = rMoon.subtract(state.position);
30
31
  const aDen = aNum.magnitude() ** 3;
31
32
  const bNum = rMoon;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThirdBodyGravity.js","sourceRoot":"","sources":["../../src/force/ThirdBodyGravity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAS,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGvD,8BAA8B;AAC9B,MAAM,OAAO,gBAAgB;IAER;IAA8B;IADjD,6EAA6E;IAC7E,YAAmB,OAAgB,KAAK,EAAS,MAAe,KAAK;QAAlD,SAAI,GAAJ,IAAI,CAAiB;QAAS,QAAG,GAAH,GAAG,CAAiB;QACnE,sBAAsB;IACxB,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,KAAY;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC;QACnB,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAEhE,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,KAAY;QACrC,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAEhE,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,KAAY;QACvB,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAE7B,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3D;QACD,IAAI,IAAI,CAAC,GAAG,EAAE;YACZ,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;SAC1D;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}