ootk 3.0.0 → 4.0.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/.eslintrc.json +10 -10
  2. package/CHANGELOG.md +122 -0
  3. package/README.md +27 -40
  4. package/lib/coordinate/Hill.d.ts +50 -0
  5. package/lib/coordinate/Hill.js +214 -0
  6. package/lib/coordinate/Hill.js.map +1 -0
  7. package/lib/coordinate/index.d.ts +1 -0
  8. package/lib/coordinate/index.js +2 -0
  9. package/lib/coordinate/index.js.map +1 -0
  10. package/lib/covariance/CovarianceSample.d.ts +44 -0
  11. package/lib/covariance/CovarianceSample.js +146 -0
  12. package/lib/covariance/CovarianceSample.js.map +1 -0
  13. package/lib/covariance/StateCovariance.d.ts +41 -0
  14. package/lib/covariance/StateCovariance.js +62 -0
  15. package/lib/covariance/StateCovariance.js.map +1 -0
  16. package/lib/force/AtmosphericDrag.d.ts +32 -0
  17. package/lib/force/AtmosphericDrag.js +66 -0
  18. package/lib/force/AtmosphericDrag.js.map +1 -0
  19. package/lib/force/EarthGravity.d.ts +28 -0
  20. package/lib/force/EarthGravity.js +115 -0
  21. package/lib/force/EarthGravity.js.map +1 -0
  22. package/{dist/ootk.d.ts → lib/force/Force.d.ts} +10 -10
  23. package/lib/force/Force.js +30 -0
  24. package/lib/force/Force.js.map +1 -0
  25. package/lib/force/ForceModel.d.ts +38 -0
  26. package/lib/force/ForceModel.js +71 -0
  27. package/lib/force/ForceModel.js.map +1 -0
  28. package/lib/force/Gravity.d.ts +41 -0
  29. package/lib/force/Gravity.js +48 -0
  30. package/lib/force/Gravity.js.map +1 -0
  31. package/lib/force/SolarRadiationPressure.d.ts +27 -0
  32. package/lib/force/SolarRadiationPressure.js +42 -0
  33. package/lib/force/SolarRadiationPressure.js.map +1 -0
  34. package/lib/force/ThirdBodyGravity.d.ts +27 -0
  35. package/lib/force/ThirdBodyGravity.js +56 -0
  36. package/lib/force/ThirdBodyGravity.js.map +1 -0
  37. package/lib/force/Thrust.d.ts +35 -0
  38. package/lib/force/Thrust.js +53 -0
  39. package/lib/force/Thrust.js.map +1 -0
  40. package/lib/interpolator/ChebyshevCoefficients.d.ts +54 -0
  41. package/lib/interpolator/ChebyshevCoefficients.js +90 -0
  42. package/lib/interpolator/ChebyshevCoefficients.js.map +1 -0
  43. package/lib/interpolator/ChebyshevInterpolator.d.ts +39 -0
  44. package/lib/interpolator/ChebyshevInterpolator.js +71 -0
  45. package/lib/interpolator/ChebyshevInterpolator.js.map +1 -0
  46. package/lib/interpolator/CubicSpline.d.ts +36 -0
  47. package/lib/interpolator/CubicSpline.js +64 -0
  48. package/lib/interpolator/CubicSpline.js.map +1 -0
  49. package/lib/interpolator/CubicSplineInterpolator.d.ts +37 -0
  50. package/lib/interpolator/CubicSplineInterpolator.js +78 -0
  51. package/lib/interpolator/CubicSplineInterpolator.js.map +1 -0
  52. package/lib/interpolator/FieldInterpolator.d.ts +26 -0
  53. package/lib/interpolator/FieldInterpolator.js +31 -0
  54. package/lib/interpolator/FieldInterpolator.js.map +1 -0
  55. package/lib/interpolator/Interpolator.d.ts +23 -0
  56. package/lib/interpolator/Interpolator.js +48 -0
  57. package/lib/interpolator/Interpolator.js.map +1 -0
  58. package/lib/interpolator/LagrangeInterpolator.d.ts +42 -0
  59. package/lib/interpolator/LagrangeInterpolator.js +156 -0
  60. package/lib/interpolator/LagrangeInterpolator.js.map +1 -0
  61. package/lib/interpolator/StateInterpolator.d.ts +29 -0
  62. package/lib/interpolator/StateInterpolator.js +37 -0
  63. package/lib/interpolator/StateInterpolator.js.map +1 -0
  64. package/lib/interpolator/VerletBlendInterpolator.d.ts +44 -0
  65. package/lib/interpolator/VerletBlendInterpolator.js +115 -0
  66. package/lib/interpolator/VerletBlendInterpolator.js.map +1 -0
  67. package/lib/maneuver/TwoBurnOrbitTransfer.d.ts +43 -0
  68. package/lib/maneuver/TwoBurnOrbitTransfer.js +62 -0
  69. package/lib/maneuver/TwoBurnOrbitTransfer.js.map +1 -0
  70. package/lib/maneuver/Waypoint.d.ts +66 -0
  71. package/lib/maneuver/Waypoint.js +152 -0
  72. package/lib/maneuver/Waypoint.js.map +1 -0
  73. package/lib/objects/DetailedSatellite.d.ts +94 -0
  74. package/lib/objects/DetailedSatellite.js +140 -0
  75. package/lib/objects/DetailedSatellite.js.map +1 -0
  76. package/lib/objects/DetailedSensor.d.ts +43 -0
  77. package/lib/objects/DetailedSensor.js +45 -0
  78. package/lib/objects/DetailedSensor.js.map +1 -0
  79. package/{dist/objects/space-object.d.ts → lib/objects/LandObject.d.ts} +19 -21
  80. package/lib/objects/LandObject.js +28 -0
  81. package/lib/objects/LandObject.js.map +1 -0
  82. package/lib/objects/Marker.d.ts +21 -0
  83. package/lib/objects/Marker.js +25 -0
  84. package/lib/objects/Marker.js.map +1 -0
  85. package/lib/objects/index.d.ts +5 -4
  86. package/lib/objects/index.js +5 -4
  87. package/lib/objects/index.js.map +1 -1
  88. package/lib/observation/Observation.d.ts +51 -0
  89. package/lib/observation/Observation.js +71 -0
  90. package/lib/observation/Observation.js.map +1 -0
  91. package/lib/observation/ObservationOptical.d.ts +47 -0
  92. package/lib/observation/ObservationOptical.js +101 -0
  93. package/lib/observation/ObservationOptical.js.map +1 -0
  94. package/lib/observation/ObservationRadar.d.ts +43 -0
  95. package/lib/observation/ObservationRadar.js +90 -0
  96. package/lib/observation/ObservationRadar.js.map +1 -0
  97. package/lib/observation/ObservationUtils.d.ts +21 -0
  98. package/lib/observation/ObservationUtils.js +33 -0
  99. package/lib/observation/ObservationUtils.js.map +1 -0
  100. package/lib/observation/PropagatorPairs.d.ts +31 -0
  101. package/lib/observation/PropagatorPairs.js +40 -0
  102. package/lib/observation/PropagatorPairs.js.map +1 -0
  103. package/lib/ootk.d.ts +10 -8
  104. package/lib/ootk.js +10 -8
  105. package/lib/ootk.js.map +1 -1
  106. package/lib/operations/BoxMuller.d.ts +41 -0
  107. package/lib/operations/BoxMuller.js +66 -0
  108. package/lib/operations/BoxMuller.js.map +1 -0
  109. package/lib/operations/EulerAngles.d.ts +50 -0
  110. package/lib/operations/EulerAngles.js +111 -0
  111. package/lib/operations/EulerAngles.js.map +1 -0
  112. package/lib/operations/Quaternion.d.ts +57 -0
  113. package/lib/operations/Quaternion.js +164 -0
  114. package/lib/operations/Quaternion.js.map +1 -0
  115. package/lib/operations/RandomGaussianSource.d.ts +25 -0
  116. package/lib/operations/RandomGaussianSource.js +43 -0
  117. package/lib/operations/RandomGaussianSource.js.map +1 -0
  118. package/lib/operations/index.d.ts +4 -0
  119. package/lib/operations/index.js +5 -0
  120. package/lib/operations/index.js.map +1 -0
  121. package/lib/optimize/ChebyshevCompressor.d.ts +31 -0
  122. package/lib/optimize/ChebyshevCompressor.js +80 -0
  123. package/lib/optimize/ChebyshevCompressor.js.map +1 -0
  124. package/lib/optimize/DownhillSimplex.d.ts +50 -0
  125. package/lib/optimize/DownhillSimplex.js +168 -0
  126. package/lib/optimize/DownhillSimplex.js.map +1 -0
  127. package/lib/optimize/GoldenSection.d.ts +33 -0
  128. package/lib/optimize/GoldenSection.js +49 -0
  129. package/lib/optimize/GoldenSection.js.map +1 -0
  130. package/lib/optimize/PolynomialRegression.d.ts +37 -0
  131. package/lib/optimize/PolynomialRegression.js +66 -0
  132. package/lib/optimize/PolynomialRegression.js.map +1 -0
  133. package/lib/optimize/PolynomicalRegressionResult.d.ts +28 -0
  134. package/lib/optimize/PolynomicalRegressionResult.js +32 -0
  135. package/lib/optimize/PolynomicalRegressionResult.js.map +1 -0
  136. package/lib/optimize/SimpleLinearRegression.d.ts +41 -0
  137. package/lib/optimize/SimpleLinearRegression.js +107 -0
  138. package/lib/optimize/SimpleLinearRegression.js.map +1 -0
  139. package/lib/optimize/SimplexEntry.d.ts +33 -0
  140. package/lib/optimize/SimplexEntry.js +39 -0
  141. package/lib/optimize/SimplexEntry.js.map +1 -0
  142. package/lib/orbit_determination/BatchLeastSquaresOD.d.ts +54 -0
  143. package/lib/orbit_determination/BatchLeastSquaresOD.js +118 -0
  144. package/lib/orbit_determination/BatchLeastSquaresOD.js.map +1 -0
  145. package/lib/orbit_determination/BatchLeastSquaresResult.d.ts +29 -0
  146. package/lib/orbit_determination/BatchLeastSquaresResult.js +31 -0
  147. package/lib/orbit_determination/BatchLeastSquaresResult.js.map +1 -0
  148. package/lib/orbit_determination/GibbsIOD.d.ts +33 -0
  149. package/lib/orbit_determination/GibbsIOD.js +70 -0
  150. package/lib/orbit_determination/GibbsIOD.js.map +1 -0
  151. package/lib/orbit_determination/GoodingIOD.d.ts +52 -0
  152. package/lib/orbit_determination/GoodingIOD.js +244 -0
  153. package/lib/orbit_determination/GoodingIOD.js.map +1 -0
  154. package/lib/{objects/space-object.d.ts → orbit_determination/HerrickGibbsIOD.d.ts} +17 -22
  155. package/lib/orbit_determination/HerrickGibbsIOD.js +49 -0
  156. package/lib/orbit_determination/HerrickGibbsIOD.js.map +1 -0
  157. package/lib/orbit_determination/LambertIOD.d.ts +46 -0
  158. package/lib/orbit_determination/LambertIOD.js +199 -0
  159. package/lib/orbit_determination/LambertIOD.js.map +1 -0
  160. package/lib/orbit_determination/ModifiedGoodingIOD.d.ts +41 -0
  161. package/lib/orbit_determination/ModifiedGoodingIOD.js +82 -0
  162. package/lib/orbit_determination/ModifiedGoodingIOD.js.map +1 -0
  163. package/lib/propagator/DormandPrince54Propagator.d.ts +29 -0
  164. package/lib/propagator/DormandPrince54Propagator.js +68 -0
  165. package/lib/propagator/DormandPrince54Propagator.js.map +1 -0
  166. package/lib/propagator/KeplerPropagator.d.ts +36 -0
  167. package/lib/propagator/KeplerPropagator.js +81 -0
  168. package/lib/propagator/KeplerPropagator.js.map +1 -0
  169. package/lib/propagator/Propagator.d.ts +35 -0
  170. package/lib/propagator/Propagator.js +163 -0
  171. package/lib/propagator/Propagator.js.map +1 -0
  172. package/lib/propagator/RkCheckpoint.d.ts +23 -0
  173. package/lib/propagator/RkCheckpoint.js +26 -0
  174. package/lib/propagator/RkCheckpoint.js.map +1 -0
  175. package/lib/propagator/RkResult.d.ts +24 -0
  176. package/lib/propagator/RkResult.js +28 -0
  177. package/lib/propagator/RkResult.js.map +1 -0
  178. package/lib/propagator/RungeKutta4Propagator.d.ts +46 -0
  179. package/lib/propagator/RungeKutta4Propagator.js +132 -0
  180. package/lib/propagator/RungeKutta4Propagator.js.map +1 -0
  181. package/lib/propagator/RungeKutta89Propagator.d.ts +29 -0
  182. package/lib/propagator/RungeKutta89Propagator.js +130 -0
  183. package/lib/propagator/RungeKutta89Propagator.js.map +1 -0
  184. package/lib/propagator/RungeKuttaAdaptive.d.ts +52 -0
  185. package/lib/propagator/RungeKuttaAdaptive.js +152 -0
  186. package/lib/propagator/RungeKuttaAdaptive.js.map +1 -0
  187. package/lib/propagator/Sgp4Propagator.d.ts +35 -0
  188. package/lib/propagator/Sgp4Propagator.js +55 -0
  189. package/lib/propagator/Sgp4Propagator.js.map +1 -0
  190. package/lib/smoothing/ExponentialSmoothing.d.ts +24 -0
  191. package/lib/smoothing/ExponentialSmoothing.js +82 -0
  192. package/lib/smoothing/ExponentialSmoothing.js.map +1 -0
  193. package/lib/types/types.d.ts +65 -584
  194. package/lib/types/types.js +21 -33
  195. package/lib/types/types.js.map +1 -1
  196. package/package.json +16 -14
  197. package/.prettierrc +0 -17
  198. package/babel.config.js +0 -16
  199. package/codecov.yml +0 -21
  200. package/dist/objects/base-object.d.ts +0 -40
  201. package/dist/objects/detailed-sat.d.ts +0 -66
  202. package/dist/objects/index.d.ts +0 -4
  203. package/dist/objects/sat.d.ts +0 -92
  204. package/dist/objects/sensor.d.ts +0 -93
  205. package/dist/objects/star.d.ts +0 -46
  206. package/dist/ootk.js +0 -2
  207. package/dist/ootk.js.LICENSE.txt +0 -77
  208. package/dist/sgp4/sgp4.d.ts +0 -82
  209. package/dist/tle/tle-format-data.d.ts +0 -6
  210. package/dist/tle/tle.d.ts +0 -375
  211. package/dist/transforms/transforms.d.ts +0 -94
  212. package/dist/types/types.d.ts +0 -605
  213. package/dist/utils/constants.d.ts +0 -34
  214. package/dist/utils/moon-math.d.ts +0 -113
  215. package/dist/utils/sun-math.d.ts +0 -230
  216. package/dist/utils/utils.d.ts +0 -39
  217. package/lib/objects/base-object.d.ts +0 -40
  218. package/lib/objects/base-object.js +0 -79
  219. package/lib/objects/base-object.js.map +0 -1
  220. package/lib/objects/detailed-sat.d.ts +0 -66
  221. package/lib/objects/detailed-sat.js +0 -149
  222. package/lib/objects/detailed-sat.js.map +0 -1
  223. package/lib/objects/sat.d.ts +0 -92
  224. package/lib/objects/sat.js +0 -188
  225. package/lib/objects/sat.js.map +0 -1
  226. package/lib/objects/sensor.d.ts +0 -93
  227. package/lib/objects/sensor.js +0 -273
  228. package/lib/objects/sensor.js.map +0 -1
  229. package/lib/objects/space-object.js +0 -60
  230. package/lib/objects/space-object.js.map +0 -1
  231. package/lib/objects/star.d.ts +0 -46
  232. package/lib/objects/star.js +0 -91
  233. package/lib/objects/star.js.map +0 -1
  234. package/lib/sgp4/sgp4.d.ts +0 -82
  235. package/lib/sgp4/sgp4.js +0 -3262
  236. package/lib/sgp4/sgp4.js.map +0 -1
  237. package/lib/tle/tle-format-data.d.ts +0 -6
  238. package/lib/tle/tle-format-data.js +0 -10
  239. package/lib/tle/tle-format-data.js.map +0 -1
  240. package/lib/tle/tle.d.ts +0 -375
  241. package/lib/tle/tle.js +0 -611
  242. package/lib/tle/tle.js.map +0 -1
  243. package/lib/transforms/transforms.d.ts +0 -94
  244. package/lib/transforms/transforms.js +0 -308
  245. package/lib/transforms/transforms.js.map +0 -1
  246. package/lib/utils/constants.d.ts +0 -34
  247. package/lib/utils/constants.js +0 -35
  248. package/lib/utils/constants.js.map +0 -1
  249. package/lib/utils/moon-math.d.ts +0 -113
  250. package/lib/utils/moon-math.js +0 -387
  251. package/lib/utils/moon-math.js.map +0 -1
  252. package/lib/utils/sun-math.d.ts +0 -230
  253. package/lib/utils/sun-math.js +0 -422
  254. package/lib/utils/sun-math.js.map +0 -1
  255. package/lib/utils/utils.d.ts +0 -39
  256. package/lib/utils/utils.js +0 -102
  257. package/lib/utils/utils.js.map +0 -1
  258. package/sandbox.html +0 -8
  259. package/tsconfig.base.json +0 -31
  260. package/tsconfig.build.json +0 -14
  261. /package/{LICENSE.MD → LICENSE.md} +0 -0
package/.eslintrc.json CHANGED
@@ -27,7 +27,7 @@
27
27
  "callback-return": "error",
28
28
  "camelcase": "error",
29
29
  "capitalized-comments": "off",
30
- "class-methods-use-this": "error",
30
+ "class-methods-use-this": "off",
31
31
  "comma-dangle": ["error", "always-multiline"],
32
32
  "comma-spacing": "error",
33
33
  "comma-style": "error",
@@ -39,14 +39,14 @@
39
39
  "default-case": "error",
40
40
  "default-case-last": "error",
41
41
  "default-param-last": "error",
42
- "dot-location": "error",
42
+ "dot-location": "off",
43
43
  "dot-notation": "error",
44
44
  "eol-last": "error",
45
45
  "eqeqeq": "error",
46
46
  "func-call-spacing": "error",
47
47
  "func-name-matching": "error",
48
48
  "func-names": "error",
49
- "func-style": "error",
49
+ "func-style": "off",
50
50
  "function-call-argument-newline": "off",
51
51
  "function-paren-newline": "off",
52
52
  "generator-star-spacing": "error",
@@ -61,7 +61,7 @@
61
61
  "implicit-arrow-linebreak": "off",
62
62
  "indent": ["error", 2, { "SwitchCase": 1 }],
63
63
  "indent-legacy": ["error", 2, { "SwitchCase": 1 }],
64
- "init-declarations": "error",
64
+ "init-declarations": "off",
65
65
  "jsx-quotes": "error",
66
66
  "key-spacing": "error",
67
67
  "keyword-spacing": "error",
@@ -76,8 +76,8 @@
76
76
  "max-lines": ["error", { "max": 1000 }],
77
77
  "max-lines-per-function": ["error", { "max": 300 }],
78
78
  "max-nested-callbacks": "error",
79
- "max-params": ["error", { "max": 5 }],
80
- "max-statements": ["error", { "max": 25 }],
79
+ "max-params": ["error", { "max": 8 }],
80
+ "max-statements": ["error", { "max": 85 }],
81
81
  "max-statements-per-line": "error",
82
82
  "multiline-comment-style": "error",
83
83
  "multiline-ternary": "off",
@@ -89,14 +89,14 @@
89
89
  "no-alert": "error",
90
90
  "no-array-constructor": "error",
91
91
  "no-await-in-loop": "error",
92
- "no-bitwise": "error",
92
+ "no-bitwise": "off",
93
93
  "no-buffer-constructor": "error",
94
94
  "no-caller": "error",
95
95
  "no-catch-shadow": "error",
96
96
  "no-confusing-arrow": "error",
97
97
  "no-console": "error",
98
98
  "no-constructor-return": "error",
99
- "no-continue": "error",
99
+ "no-continue": "off",
100
100
  "no-div-regex": "error",
101
101
  "no-duplicate-imports": "error",
102
102
  "no-else-return": "error",
@@ -177,7 +177,7 @@
177
177
  "no-useless-call": "error",
178
178
  "no-useless-computed-key": "error",
179
179
  "no-useless-concat": "error",
180
- "no-useless-constructor": "error",
180
+ "no-useless-constructor": "off",
181
181
  "no-useless-rename": "error",
182
182
  "no-useless-return": "error",
183
183
  "no-var": "error",
@@ -197,7 +197,7 @@
197
197
  "padding-line-between-statements": "error",
198
198
  "prefer-arrow-callback": "error",
199
199
  "prefer-const": "error",
200
- "prefer-destructuring": "error",
200
+ "prefer-destructuring": "off",
201
201
  "prefer-exponentiation-operator": "error",
202
202
  "prefer-named-capture-group": "error",
203
203
  "prefer-numeric-literals": "error",
package/CHANGELOG.md CHANGED
@@ -4,6 +4,128 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
+ #### [v4.0.0-0](https://github.com/thkruz/ootk/compare/v1.8.1...v4.0.0-0)
8
+
9
+ - feat: :truck: split ootk-core functions into new library [`d4982be`](https://github.com/thkruz/ootk/commit/d4982be23ec1318f1e2de6a8ecf7f7fa92594069)
10
+ - feat: :sparkles: port functions from pious_squid [`69aaf26`](https://github.com/thkruz/ootk/commit/69aaf26d4d8c99912cc5bf0f1c9ad6e0674b15eb)
11
+ - fix: :label: add strict typing for units [`ff98aa0`](https://github.com/thkruz/ootk/commit/ff98aa09158e2da75ab2f2942639f18f09de21aa)
12
+
13
+ #### [v1.8.1](https://github.com/thkruz/ootk/compare/v1.8.0...v1.8.1)
14
+
15
+ > 24 August 2022
16
+
17
+ - fix: :ambulance: fix radians vs degrees in sensor.ts [`d69200f`](https://github.com/thkruz/ootk/commit/d69200ff86beb932235f11fa0fbd86f6b9401ecc)
18
+
19
+ #### [v1.8.0](https://github.com/thkruz/ootk/compare/v1.7.0...v1.8.0)
20
+
21
+ > 24 August 2022
22
+
23
+ - feat: :sparkles: add getDayOfYear functionality [`46ffa20`](https://github.com/thkruz/ootk/commit/46ffa20e22478a2e1780276fe96321c32aa66a85)
24
+
25
+ #### [v1.7.0](https://github.com/thkruz/ootk/compare/v1.6.4...v1.7.0)
26
+
27
+ > 23 August 2022
28
+
29
+ - feat: :sparkles: add fov functions to sensor [`90d0d2e`](https://github.com/thkruz/ootk/commit/90d0d2ea20d3796f285d680eac8851fc829cc73a)
30
+
31
+ #### [v1.6.4](https://github.com/thkruz/ootk/compare/v1.6.3...v1.6.4)
32
+
33
+ > 22 August 2022
34
+
35
+ - docs: :label: fix type label for RaeVec3 [`df0d9dd`](https://github.com/thkruz/ootk/commit/df0d9dd577302b0c57f285ce650a77b325314080)
36
+
37
+ #### [v1.6.3](https://github.com/thkruz/ootk/compare/v1.6.2...v1.6.3)
38
+
39
+ > 22 August 2022
40
+
41
+ - Develop [`#22`](https://github.com/thkruz/ootk/pull/22)
42
+ - Develop [`#21`](https://github.com/thkruz/ootk/pull/21)
43
+ - Develop [`#20`](https://github.com/thkruz/ootk/pull/20)
44
+ - Develop [`#19`](https://github.com/thkruz/ootk/pull/19)
45
+ - Develop [`#18`](https://github.com/thkruz/ootk/pull/18)
46
+ - Update README.md [`61827e5`](https://github.com/thkruz/ootk/commit/61827e5aa74d761f64ad907bb919ae3922658127)
47
+
48
+ #### [v1.6.2](https://github.com/thkruz/ootk/compare/v1.6.1...v1.6.2)
49
+
50
+ > 22 August 2022
51
+
52
+ - fix: :pencil2: fix typo in sez2rae [`509bf07`](https://github.com/thkruz/ootk/commit/509bf0754ef4e5e50a4aa4571af178ffd219ba6b)
53
+
54
+ #### [v1.6.1](https://github.com/thkruz/ootk/compare/v1.6.0...v1.6.1)
55
+
56
+ > 22 August 2022
57
+
58
+ - docs: :memo: update readme with examples [`4434dd7`](https://github.com/thkruz/ootk/commit/4434dd72c9369e71ef07deaed0370071e23743a2)
59
+ - fix: :bug: fix sez2rae returning radians not degrees [`429bab4`](https://github.com/thkruz/ootk/commit/429bab41dd75a659614bbfe229bf6e4c72921c41)
60
+
61
+ #### [v1.6.0](https://github.com/thkruz/ootk/compare/v1.5.5...v1.6.0)
62
+
63
+ > 12 August 2022
64
+
65
+ - test: :camera_flash: add snapshots of correct position/velocity calculations [`bdf6aa5`](https://github.com/thkruz/ootk/commit/bdf6aa59eff77fa7891719c5283c220d2cf83b6c)
66
+ - test: :white_check_mark: add test catalog and test creator [`e785e78`](https://github.com/thkruz/ootk/commit/e785e780c9156482aa6eb8a979885ec6f7ad23ac)
67
+ - test: :white_check_mark: add full catalog validation tests [`97cb4c1`](https://github.com/thkruz/ootk/commit/97cb4c1caa9933d206b3807da381c0b83c4fa5ae)
68
+
69
+ #### [v1.5.5](https://github.com/thkruz/ootk/compare/v1.5.4...v1.5.5)
70
+
71
+ > 8 August 2022
72
+
73
+ - fix: :pencil2: fix bug with h vs el [`9affaaf`](https://github.com/thkruz/ootk/commit/9affaafcd35b34c5765161966fdeb06e51182c81)
74
+
75
+ #### [v1.5.4](https://github.com/thkruz/ootk/compare/v1.5.3...v1.5.4)
76
+
77
+ > 8 August 2022
78
+
79
+ - fix: :bug: correct bug in deep space math [`c7ec9ca`](https://github.com/thkruz/ootk/commit/c7ec9ca017b2ebe0ce41af1c9e7934794e19da3e)
80
+
81
+ #### [v1.5.3](https://github.com/thkruz/ootk/compare/v1.5.2...v1.5.3)
82
+
83
+ > 6 August 2022
84
+
85
+ #### [v1.5.2](https://github.com/thkruz/ootk/compare/v1.5.1...v1.5.2)
86
+
87
+ > 6 August 2022
88
+
89
+ - fix: :bug: fix math for getStarAzEl [`0a0ee9a`](https://github.com/thkruz/ootk/commit/0a0ee9a10dfc9a278e20051b71e2dcd625b49e8a)
90
+
91
+ #### [v1.5.1](https://github.com/thkruz/ootk/compare/v1.5.0...v1.5.1)
92
+
93
+ > 6 August 2022
94
+
95
+ - build: :label: update build script to include all type data [`ce752f9`](https://github.com/thkruz/ootk/commit/ce752f9edb4ebba3ca65588611cb109d990c3270)
96
+
97
+ #### [v1.5.0](https://github.com/thkruz/ootk/compare/v1.4.0...v1.5.0)
98
+
99
+ > 29 July 2022
100
+
101
+ - fix: :bug: fix issues with jday calculations in Sgp4 [`7ceb301`](https://github.com/thkruz/ootk/commit/7ceb301b2a7c23d9d6439f4f1e1b801dbacd468c)
102
+ - fix: :bug: fix bug with timezone differences [`d796c65`](https://github.com/thkruz/ootk/commit/d796c65ad052c975808b05d3d356537405342b71)
103
+
104
+ #### [v1.4.0](https://github.com/thkruz/ootk/compare/v1.3.1...v1.4.0)
105
+
106
+ > 28 July 2022
107
+
108
+ - feat: :sparkles: [`e83c0fc`](https://github.com/thkruz/ootk/commit/e83c0fc6083e37ddee0beb3668dd0a7469a69dce)
109
+
110
+ #### [v1.3.1](https://github.com/thkruz/ootk/compare/v1.3.0...v1.3.1)
111
+
112
+ > 27 July 2022
113
+
114
+ - feat: :sparkles: add getSolarTime [`a812450`](https://github.com/thkruz/ootk/commit/a812450d3bc335e168fc9a2a04630a3ae754316d)
115
+
116
+ #### [v1.3.0](https://github.com/thkruz/ootk/compare/v1.2.0...v1.3.0)
117
+
118
+ > 27 July 2022
119
+
120
+ - feat: :sparkles: add space objects, sunMath, and moonMath [`e7e9fc3`](https://github.com/thkruz/ootk/commit/e7e9fc390f46e1aaedd47595d7fc0ad9e228b6e9)
121
+
122
+ #### [v1.2.0](https://github.com/thkruz/ootk/compare/v1.1.0...v1.2.0)
123
+
124
+ > 25 July 2022
125
+
126
+ - feat: :sparkles: add Sat class [`281a9c5`](https://github.com/thkruz/ootk/commit/281a9c57ecaf9472cf305eb5f5d3ab8fe5f39e7b)
127
+ - docs: :memo: update changelog [`19b70f8`](https://github.com/thkruz/ootk/commit/19b70f80fb0e5c963f47dccbcf0c5d9451133121)
128
+
7
129
  #### [v1.1.0](https://github.com/thkruz/ootk/compare/v1.0.8...v1.1.0)
8
130
 
9
131
  > 25 July 2022
package/README.md CHANGED
@@ -1,10 +1,19 @@
1
1
  # ootk
2
2
 
3
- [![build](https://img.shields.io/github/workflow/status/thkruz/ootk/CI?style=flat-square)](https://github.com/thkruz/ootk/actions?query=workflow%3ACI) ![Size](https://img.shields.io/github/languages/code-size/thkruz/ootk?style=flat-square) [![Release](https://img.shields.io/github/v/release/thkruz/ootk?style=flat-square)](https://www.npmjs.com/package/ootk) [![Issues](https://img.shields.io/github/issues/thkruz/ootk?style=flat-square)](https://github.com/thkruz/ootk/issues) [![Coverage](https://img.shields.io/codecov/c/github/thkruz/ootk?style=flat-square)](https://codecov.io/gh/thkruz/ootk) [![License](https://img.shields.io/github/license/thkruz/ootk?style=flat-square)](LICENSE.MD)
3
+ [![build](https://img.shields.io/github/workflow/status/thkruz/ootk/CI?style=flat-square)](https://github.com/thkruz/ootk/actions?query=workflow%3ACI)
4
+ ![Size](https://img.shields.io/github/languages/code-size/thkruz/ootk?style=flat-square)
5
+ [![Release](https://img.shields.io/github/v/release/thkruz/ootk?style=flat-square)](https://www.npmjs.com/package/ootk)
6
+ [![Issues](https://img.shields.io/github/issues/thkruz/ootk?style=flat-square)](https://github.com/thkruz/ootk/issues)
7
+ [![Coverage](https://img.shields.io/codecov/c/github/thkruz/ootk?style=flat-square)](https://codecov.io/gh/thkruz/ootk)
8
+ [![License](https://img.shields.io/github/license/thkruz/ootk?style=flat-square)](LICENSE.MD)
4
9
 
5
10
  > An Orbital Object Toolkit in Your Web Browser
6
11
 
7
- **ootk** is a modular collection of small libraries for doing math related to orbital objects written in TypeScript. ootk was developed to simplify the math and let you focus on using the results.
12
+ **ootk** is a collection libraries for doing math related to orbital objects written in TypeScript. **ootk** was
13
+ developed to simplify the math and let you focus on using the results.
14
+
15
+ Most of the functionality was originally written for [KeepTrack](https://github.com/thkruz/keeptrack.space) and then
16
+ later refactored into this library for others to use.
8
17
 
9
18
  ## :blue_book: Table of Contents
10
19
 
@@ -27,39 +36,15 @@ Install the library with [NPM](https://www.npmjs.com/):
27
36
  npm i ootk
28
37
  ```
29
38
 
30
- ## :satellite: Usage
31
-
32
39
  ### Loading the Library
33
40
 
34
- #### Common.js ([Node.js](https://nodejs.org))
35
-
36
- ```js
37
- let Ootk = require('ootk.js');
38
- ...
39
- const satrec = Ootk.Sgp4.createSatrec(line1, line2, 'wgs72', 'i');
40
- ```
41
-
42
- #### ES ([Babel.js](https://babeljs.io/))
43
-
44
41
  ```js
45
- import * as Ootk from 'ootk.es.js';
42
+ import { Sgp4 } as Ootk from 'ootk';
46
43
  ...
47
- const satrec = Ootk.Sgp4.createSatrec(line1, line2, 'wgs72', 'i');
44
+ const satrec = Sgp4.createSatrec(line1, line2, 'wgs72', 'i');
48
45
  ```
49
46
 
50
- #### Script tag
51
-
52
- Include `dist/ootk.js` as a script in your html:
53
-
54
- ```html
55
- <script src="path/to/dist/ootk.js"></script>
56
- ```
57
-
58
- `Ootk` object will be available in global scope:
59
-
60
- ```js
61
- var satrec = Ootk.Sgp4.createSatrec(line1, line2, 'wgs72', 'i');
62
- ```
47
+ ## :satellite: Usage
63
48
 
64
49
  ### Propagating a TLE
65
50
 
@@ -107,8 +92,6 @@ sensor.getRae(sat, time); // Get position in range, aziimuth, elevation relative
107
92
 
108
93
  ## :desktop_computer: Building
109
94
 
110
- The source code is organized as Common.js modules and uses [ES6 syntax](http://es6-features.org/). To build the library:
111
-
112
95
  1. Install [Node.js](https://nodejs.org/) and [Node Package Manager](https://www.npmjs.com/);
113
96
 
114
97
  2. Install all required packages with NPM by running the following command from repository's root directory:
@@ -136,7 +119,8 @@ The source code is organized as Common.js modules and uses [ES6 syntax](http://e
136
119
 
137
120
  This repo follows [Gitflow Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow).
138
121
 
139
- Before starting a work on new [pull request](https://github.com/thkruz/ootk/compare), please, checkout your feature or bugfix branch from `develop` branch:
122
+ Before starting a work on new [pull request](https://github.com/thkruz/ootk/compare), please, checkout your feature or
123
+ bugfix branch from `develop` branch:
140
124
 
141
125
  ```bash
142
126
  git checkout develop
@@ -159,15 +143,18 @@ npm run lint
159
143
 
160
144
  ## :man_scientist: Contributors
161
145
 
162
- This whole project is an example of standing on the shoulder's of giants. None of it would have been possible without the previous work of the following:
146
+ This whole project is an example of standing on the shoulder's of giants. None of it would have been possible without
147
+ the previous work of the following:
163
148
 
164
- - [ezze (Dmitriy Pushkov)](https://github.com/ezze)
165
- - [davidcalhoun (David Calhoun)](https://github.com/davidcalhoun)
166
- - [shashwatak (Shashwat Kandadai)](https://github.com/shashwatak)
167
- - [brandon-rhodes (Brandon Rhodes)](https://github.com/brandon-rhodes)
168
- - [mourner (Volodymyr Agafonkin)](https://github.com/mourner)
169
- - [Hypnos (Robert Gester)](https://github.com/Hypnos3)
149
+ - [@ezze (Dmitriy Pushkov)](https://github.com/ezze)
150
+ - [@david-rc-dayton (David RC Dayton)](https://github.com/david-rc-dayton)
151
+ - [@davidcalhoun (David Calhoun)](https://github.com/davidcalhoun)
152
+ - [@shashwatak (Shashwat Kandadai)](https://github.com/shashwatak)
153
+ - [@brandon-rhodes (Brandon Rhodes)](https://github.com/brandon-rhodes)
154
+ - [@mourner (Volodymyr Agafonkin)](https://github.com/mourner)
155
+ - [@Hypnos (Robert Gester)](https://github.com/Hypnos3)
170
156
 
171
157
  ## :balance_scale: License
172
158
 
173
- Due to the expanding scope of this project, I have placed the code under the [AGPL License](LICENSE.md) in order to ensure that good ideas can be shared and that the code is open for everyone to use.
159
+ I have placed the code under the [AGPL License](LICENSE.md) in order to ensure that good ideas can be shared and that
160
+ the code is open for everyone to use. [Learn more here](https://www.gnu.org/philosophy/philosophy.html).
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @author @thkruz Theodore Kruczek
3
+ *
4
+ * @license AGPL-3.0-or-later
5
+ * @Copyright (c) 2020-2024 Theodore Kruczek
6
+ *
7
+ * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
8
+ * terms of the GNU Affero General Public License as published by the Free Software
9
+ * Foundation, either version 3 of the License, or (at your option) any later version.
10
+ *
11
+ * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
12
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
+ * See the GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License along with
16
+ * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import { EpochUTC, J2000, Matrix, Vector3D } from 'ootk-core';
19
+ import { Thrust } from './../force/Thrust';
20
+ import { Waypoint } from './../maneuver/Waypoint';
21
+ export declare class Hill {
22
+ epoch: EpochUTC;
23
+ position: Vector3D;
24
+ velocity: Vector3D;
25
+ private _semimajorAxis;
26
+ private _meanMotion;
27
+ constructor(epoch: EpochUTC, position: Vector3D, velocity: Vector3D, semimajorAxis: number);
28
+ static fromState(origin: J2000, radialPosition: number, intrackPosition: number, nodeVelocity: number, nodeOffsetTime: number): Hill;
29
+ static fromNmc(origin: J2000, majorAxisRange: number, nodeVelocity: number, nodeOffsetTime: number, translation?: number): Hill;
30
+ static fromPerch(origin: J2000, perchRange: number, nodeVelocity: number, nodeOffsetTime: number): Hill;
31
+ get semimajorAxis(): number;
32
+ set semimajorAxis(sma: number);
33
+ get meanMotion(): number;
34
+ toJ2000Matrix(origin: J2000, transform: Matrix): J2000;
35
+ toJ2000(origin: J2000): J2000;
36
+ static transitionMatrix(t: number, meanMotion: number): Matrix;
37
+ transition(t: number): Hill;
38
+ transitionWithMatrix(stm: Matrix, t: number): Hill;
39
+ propagate(newEpoch: EpochUTC): Hill;
40
+ propagateWithMatrix(stm: Matrix, newEpoch: EpochUTC): Hill;
41
+ maneuver(maneuver: Thrust): Hill;
42
+ ephemeris(start: EpochUTC, stop: EpochUTC, step?: number): Hill[];
43
+ get period(): number;
44
+ nextRadialTangent(): Hill;
45
+ solveManeuver(waypoint: Waypoint, ignoreCrosstrack?: boolean): Thrust;
46
+ maneuverSequence(pivot: EpochUTC, waypoints: Waypoint[], preManeuvers?: Thrust[], postManeuvers?: Thrust[]): Thrust[];
47
+ maneuverOrigin(maneuver: Thrust): Hill;
48
+ get name(): string;
49
+ toString(): string;
50
+ }
@@ -0,0 +1,214 @@
1
+ /**
2
+ * @author @thkruz Theodore Kruczek
3
+ *
4
+ * @license AGPL-3.0-or-later
5
+ * @Copyright (c) 2020-2024 Theodore Kruczek
6
+ *
7
+ * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
8
+ * terms of the GNU Affero General Public License as published by the Free Software
9
+ * Foundation, either version 3 of the License, or (at your option) any later version.
10
+ *
11
+ * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
12
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
+ * See the GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License along with
16
+ * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import { Earth, J2000, Matrix, RelativeState, Vector3D } from 'ootk-core';
19
+ import { Thrust } from './../force/Thrust';
20
+ // / Hill Modified Equidistant Cyllindrical _(EQCM)_ coordinates.
21
+ export class Hill {
22
+ constructor(epoch, position, velocity, semimajorAxis) {
23
+ this.epoch = epoch;
24
+ this.position = position;
25
+ this.velocity = velocity;
26
+ this._semimajorAxis = semimajorAxis;
27
+ this._meanMotion = Earth.smaToMeanMotion(this._semimajorAxis);
28
+ }
29
+ static fromState(origin, radialPosition, intrackPosition, nodeVelocity, nodeOffsetTime) {
30
+ const a = origin.semimajorAxis();
31
+ const n = Earth.smaToMeanMotion(a);
32
+ const yDot = -3.0 * radialPosition * n * 0.5;
33
+ const z = (nodeVelocity / n) * Math.sin(n * -nodeOffsetTime);
34
+ const zDot = nodeVelocity * Math.cos(n * -nodeOffsetTime);
35
+ const r = new Vector3D(radialPosition, intrackPosition, z);
36
+ const v = new Vector3D(0.0, yDot, zDot);
37
+ return new Hill(origin.epoch, r, v, a);
38
+ }
39
+ static fromNmc(origin, majorAxisRange, nodeVelocity, nodeOffsetTime, translation = 0.0) {
40
+ const a = origin.semimajorAxis();
41
+ const n = Earth.smaToMeanMotion(a);
42
+ const xDot = majorAxisRange * n * 0.5;
43
+ const z = (nodeVelocity / n) * Math.sin(n * -nodeOffsetTime);
44
+ const zDot = nodeVelocity * Math.cos(n * -nodeOffsetTime);
45
+ const r = new Vector3D(0.0, majorAxisRange + translation, z);
46
+ const v = new Vector3D(xDot, 0.0, zDot);
47
+ return new Hill(origin.epoch, r, v, a);
48
+ }
49
+ static fromPerch(origin, perchRange, nodeVelocity, nodeOffsetTime) {
50
+ const a = origin.semimajorAxis();
51
+ const n = Earth.smaToMeanMotion(a);
52
+ const z = (nodeVelocity / n) * Math.sin(n * -nodeOffsetTime);
53
+ const zDot = nodeVelocity * Math.cos(n * -nodeOffsetTime);
54
+ const r = new Vector3D(0.0, perchRange, z);
55
+ const v = new Vector3D(0.0, 0.0, zDot);
56
+ return new Hill(origin.epoch, r, v, a);
57
+ }
58
+ get semimajorAxis() {
59
+ return this._semimajorAxis;
60
+ }
61
+ set semimajorAxis(sma) {
62
+ this._semimajorAxis = sma;
63
+ this._meanMotion = Earth.smaToMeanMotion(this._semimajorAxis);
64
+ }
65
+ get meanMotion() {
66
+ return this._meanMotion;
67
+ }
68
+ toJ2000Matrix(origin, transform) {
69
+ const magrtgt = origin.position.magnitude();
70
+ const magrint = magrtgt + this.position.x;
71
+ const vtgtrsw = transform.multiplyVector3D(origin.velocity);
72
+ const lambdadottgt = vtgtrsw.y / magrtgt;
73
+ const lambdaint = this.position.y / magrtgt;
74
+ const phiint = this.position.z / magrtgt;
75
+ const sinphiint = Math.sin(phiint);
76
+ const cosphiint = Math.cos(phiint);
77
+ const sinlambdaint = Math.sin(lambdaint);
78
+ const coslambdaint = Math.cos(lambdaint);
79
+ const rotRswSez = new Matrix([
80
+ [sinphiint * coslambdaint, sinphiint * sinlambdaint, -cosphiint],
81
+ [-sinlambdaint, coslambdaint, 0],
82
+ [cosphiint * coslambdaint, cosphiint * sinlambdaint, sinphiint],
83
+ ]);
84
+ const rdotint = this.velocity.x + vtgtrsw.x;
85
+ const lambdadotint = this.velocity.y / magrtgt + lambdadottgt;
86
+ const phidotint = this.velocity.z / magrtgt;
87
+ const vintsez = new Vector3D(-magrint * phidotint, magrint * lambdadotint * cosphiint, rdotint);
88
+ const vintrsw = rotRswSez.transpose().multiplyVector3D(vintsez);
89
+ const vinteci = transform.transpose().multiplyVector3D(vintrsw);
90
+ const rintrsw = new Vector3D(cosphiint * magrint * coslambdaint, cosphiint * magrint * sinlambdaint, sinphiint * magrint);
91
+ const rinteci = transform.transpose().multiplyVector3D(rintrsw);
92
+ return new J2000(origin.epoch, rinteci, vinteci);
93
+ }
94
+ toJ2000(origin) {
95
+ return this.toJ2000Matrix(origin, RelativeState.createMatrix(origin.position, origin.velocity));
96
+ }
97
+ static transitionMatrix(t, meanMotion) {
98
+ const n = meanMotion;
99
+ const sn = Math.sin(n * t);
100
+ const cs = Math.cos(n * t);
101
+ return new Matrix([
102
+ [4.0 - 3.0 * cs, 0.0, 0.0, sn / n, (2.0 * (1.0 - cs)) / n, 0.0],
103
+ [6.0 * (sn - n * t), 1.0, 0.0, (-2.0 * (1.0 - cs)) / n, (4.0 * sn - 3.0 * n * t) / n, 0.0],
104
+ [0.0, 0.0, cs, 0.0, 0.0, sn / n],
105
+ [3.0 * n * sn, 0.0, 0.0, cs, 2.0 * sn, 0.0],
106
+ [-6.0 * n * (1.0 - cs), 0.0, 0.0, -2.0 * sn, 4.0 * cs - 3.0, 0.0],
107
+ [0.0, 0.0, -n * sn, 0.0, 0.0, cs],
108
+ ]);
109
+ }
110
+ transition(t) {
111
+ const sysMat = Hill.transitionMatrix(t, this._meanMotion);
112
+ const output = sysMat.multiplyVector(this.position.join(this.velocity));
113
+ return new Hill(this.epoch.roll(t), new Vector3D(output[0], output[1], output[2]), new Vector3D(output[3], output[4], output[5]), this._semimajorAxis);
114
+ }
115
+ transitionWithMatrix(stm, t) {
116
+ const output = stm.multiplyVector(this.position.join(this.velocity));
117
+ return new Hill(this.epoch.roll(t), new Vector3D(output[0], output[1], output[2]), new Vector3D(output[3], output[4], output[5]), this._semimajorAxis);
118
+ }
119
+ propagate(newEpoch) {
120
+ return this.transition(newEpoch.difference(this.epoch));
121
+ }
122
+ propagateWithMatrix(stm, newEpoch) {
123
+ return this.transitionWithMatrix(stm, newEpoch.difference(this.epoch));
124
+ }
125
+ maneuver(maneuver) {
126
+ const state = this.propagate(maneuver.center);
127
+ return new Hill(state.epoch, state.position, state.velocity.add(maneuver.deltaV), state._semimajorAxis);
128
+ }
129
+ ephemeris(start, stop, step = 60.0) {
130
+ const output = [];
131
+ let current = start;
132
+ while (stop >= current) {
133
+ output.push(this.propagate(current));
134
+ current = current.roll(step);
135
+ }
136
+ return output;
137
+ }
138
+ get period() {
139
+ return (2 * Math.PI) / this._meanMotion;
140
+ }
141
+ nextRadialTangent() {
142
+ const x = this.position.x;
143
+ const xDot = this.velocity.x;
144
+ const yDot = this.velocity.y;
145
+ let t = Math.atan(-xDot / (3.0 * this._meanMotion * x + 2.0 * yDot)) / this._meanMotion;
146
+ if (t <= 0) {
147
+ t += 0.5 * this.period;
148
+ }
149
+ else if (isNaN(t)) {
150
+ t = 0.5 * this.period;
151
+ }
152
+ return this.propagate(this.epoch.roll(t));
153
+ }
154
+ solveManeuver(waypoint, ignoreCrosstrack = false) {
155
+ const t = waypoint.epoch.difference(this.epoch);
156
+ const w = waypoint.relativePosition;
157
+ const sysMat = Hill.transitionMatrix(t, this._meanMotion);
158
+ const posEquationMat = new Matrix([
159
+ [sysMat[0][0], sysMat[0][1], sysMat[0][2]],
160
+ [sysMat[1][0], sysMat[1][1], sysMat[1][2]],
161
+ [sysMat[2][0], sysMat[2][1], sysMat[2][2]],
162
+ ]);
163
+ const solnVector = w.subtract(posEquationMat.multiplyVector3D(this.position));
164
+ const velEquationMat = new Matrix([
165
+ [sysMat[0][3], sysMat[0][4], sysMat[0][5]],
166
+ [sysMat[1][3], sysMat[1][4], sysMat[1][5]],
167
+ [sysMat[2][3], sysMat[2][4], sysMat[2][5]],
168
+ ]);
169
+ let result = velEquationMat.inverse().multiplyVector3D(solnVector).subtract(this.velocity);
170
+ if (ignoreCrosstrack) {
171
+ result = new Vector3D(result.x * 1000, result.y * 1000, 0);
172
+ }
173
+ return new Thrust(this.epoch, result[0] * 1000, result[1] * 1000, result[2] * 1000);
174
+ }
175
+ maneuverSequence(pivot, waypoints, preManeuvers = [], postManeuvers = []) {
176
+ let state = new Hill(this.epoch, this.position, this.velocity, this._semimajorAxis);
177
+ preManeuvers = preManeuvers.slice();
178
+ postManeuvers = postManeuvers.slice();
179
+ let output = preManeuvers;
180
+ output.sort((a, b) => a.center.compareTo(b.center));
181
+ output = output.filter((mvr) => mvr.center >= this.epoch && mvr.center >= pivot);
182
+ for (const mvr of output) {
183
+ state = state.maneuver(mvr);
184
+ }
185
+ state = state.propagate(pivot);
186
+ for (const wpt of waypoints) {
187
+ const mvr = state.solveManeuver(wpt);
188
+ state = state.maneuver(mvr);
189
+ output.push(mvr);
190
+ }
191
+ output.push(...postManeuvers);
192
+ return output;
193
+ }
194
+ maneuverOrigin(maneuver) {
195
+ const state = this.propagate(maneuver.center);
196
+ const vInit = Math.sqrt(Earth.mu / this._semimajorAxis);
197
+ const vFinal = vInit - maneuver.intrack * 1e-3;
198
+ const aFinal = Earth.mu / (vFinal * vFinal);
199
+ return new Hill(state.epoch, state.position, state.velocity.subtract(maneuver.deltaV), aFinal);
200
+ }
201
+ // eslint-disable-next-line class-methods-use-this
202
+ get name() {
203
+ return 'Hill';
204
+ }
205
+ toString() {
206
+ return [
207
+ `[${this.name}]`,
208
+ ` Epoch: ${this.epoch}`,
209
+ ` Position: ${this.position.toString(6)} km`,
210
+ ` Velocity: ${this.velocity.toString(9)} km/s`,
211
+ ].join('\n');
212
+ }
213
+ }
214
+ //# sourceMappingURL=Hill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Hill.js","sourceRoot":"","sources":["../../src/coordinate/Hill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { Hill } from './Hill';
@@ -0,0 +1,2 @@
1
+ export { Hill } from './Hill';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/coordinate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}