ootk 3.0.0 → 4.0.0-1

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 (357) hide show
  1. package/CHANGELOG.md +235 -10
  2. package/README.md +27 -40
  3. package/dist/coordinate/Hill.d.ts +49 -0
  4. package/dist/coordinate/Hill.js +222 -0
  5. package/dist/coordinate/Hill.js.map +1 -0
  6. package/dist/coordinate/index.d.ts +1 -0
  7. package/dist/coordinate/index.js +2 -0
  8. package/dist/coordinate/index.js.map +1 -0
  9. package/dist/covariance/CovarianceSample.d.ts +43 -0
  10. package/dist/covariance/CovarianceSample.js +147 -0
  11. package/dist/covariance/CovarianceSample.js.map +1 -0
  12. package/dist/covariance/StateCovariance.d.ts +42 -0
  13. package/dist/covariance/StateCovariance.js +65 -0
  14. package/dist/covariance/StateCovariance.js.map +1 -0
  15. package/dist/force/AtmosphericDrag.d.ts +31 -0
  16. package/dist/force/AtmosphericDrag.js +73 -0
  17. package/dist/force/AtmosphericDrag.js.map +1 -0
  18. package/dist/force/EarthGravity.d.ts +27 -0
  19. package/dist/force/EarthGravity.js +117 -0
  20. package/dist/force/EarthGravity.js.map +1 -0
  21. package/{lib/ootk.d.ts → dist/force/Force.d.ts} +12 -11
  22. package/dist/force/Force.js +31 -0
  23. package/dist/force/Force.js.map +1 -0
  24. package/dist/force/ForceModel.d.ts +37 -0
  25. package/dist/force/ForceModel.js +75 -0
  26. package/dist/force/ForceModel.js.map +1 -0
  27. package/dist/force/Gravity.d.ts +38 -0
  28. package/dist/force/Gravity.js +47 -0
  29. package/dist/force/Gravity.js.map +1 -0
  30. package/dist/{ootk.d.ts → force/SolarRadiationPressure.d.ts} +12 -11
  31. package/dist/force/SolarRadiationPressure.js +44 -0
  32. package/dist/force/SolarRadiationPressure.js.map +1 -0
  33. package/dist/force/ThirdBodyGravity.d.ts +26 -0
  34. package/dist/force/ThirdBodyGravity.js +57 -0
  35. package/dist/force/ThirdBodyGravity.js.map +1 -0
  36. package/dist/force/Thrust.d.ts +34 -0
  37. package/dist/force/Thrust.js +58 -0
  38. package/dist/force/Thrust.js.map +1 -0
  39. package/dist/interfaces/RfSensorParams.d.ts +28 -0
  40. package/dist/interfaces/RfSensorParams.js +24 -0
  41. package/dist/interfaces/RfSensorParams.js.map +1 -0
  42. package/dist/interfaces/index.d.ts +1 -0
  43. package/dist/interfaces/index.js +2 -0
  44. package/dist/interfaces/index.js.map +1 -0
  45. package/dist/interpolator/ChebyshevCoefficients.d.ts +50 -0
  46. package/dist/interpolator/ChebyshevCoefficients.js +94 -0
  47. package/dist/interpolator/ChebyshevCoefficients.js.map +1 -0
  48. package/dist/interpolator/ChebyshevInterpolator.d.ts +38 -0
  49. package/dist/interpolator/ChebyshevInterpolator.js +71 -0
  50. package/dist/interpolator/ChebyshevInterpolator.js.map +1 -0
  51. package/dist/interpolator/CubicSpline.d.ts +35 -0
  52. package/dist/interpolator/CubicSpline.js +69 -0
  53. package/dist/interpolator/CubicSpline.js.map +1 -0
  54. package/dist/interpolator/CubicSplineInterpolator.d.ts +36 -0
  55. package/dist/interpolator/CubicSplineInterpolator.js +80 -0
  56. package/dist/interpolator/CubicSplineInterpolator.js.map +1 -0
  57. package/dist/interpolator/FieldInterpolator.d.ts +28 -0
  58. package/dist/interpolator/FieldInterpolator.js +34 -0
  59. package/dist/interpolator/FieldInterpolator.js.map +1 -0
  60. package/dist/interpolator/Interpolator.d.ts +22 -0
  61. package/dist/interpolator/Interpolator.js +47 -0
  62. package/dist/interpolator/Interpolator.js.map +1 -0
  63. package/dist/interpolator/LagrangeInterpolator.d.ts +40 -0
  64. package/dist/interpolator/LagrangeInterpolator.js +159 -0
  65. package/dist/interpolator/LagrangeInterpolator.js.map +1 -0
  66. package/dist/interpolator/StateInterpolator.d.ts +27 -0
  67. package/dist/interpolator/StateInterpolator.js +35 -0
  68. package/dist/interpolator/StateInterpolator.js.map +1 -0
  69. package/dist/interpolator/VerletBlendInterpolator.d.ts +43 -0
  70. package/dist/interpolator/VerletBlendInterpolator.js +118 -0
  71. package/dist/interpolator/VerletBlendInterpolator.js.map +1 -0
  72. package/{lib/ootk.js → dist/main.d.ts} +13 -10
  73. package/dist/{objects/space-object.d.ts → main.js} +17 -23
  74. package/dist/main.js.map +1 -0
  75. package/dist/maneuver/TwoBurnOrbitTransfer.d.ts +41 -0
  76. package/dist/maneuver/TwoBurnOrbitTransfer.js +65 -0
  77. package/dist/maneuver/TwoBurnOrbitTransfer.js.map +1 -0
  78. package/dist/maneuver/Waypoint.d.ts +91 -0
  79. package/dist/maneuver/Waypoint.js +179 -0
  80. package/dist/maneuver/Waypoint.js.map +1 -0
  81. package/{lib/objects/detailed-sat.d.ts → dist/objects/DetailedSatellite.d.ts} +40 -36
  82. package/dist/objects/DetailedSatellite.js +136 -0
  83. package/dist/objects/DetailedSatellite.js.map +1 -0
  84. package/dist/objects/DetailedSensor.d.ts +42 -0
  85. package/dist/objects/DetailedSensor.js +65 -0
  86. package/dist/objects/DetailedSensor.js.map +1 -0
  87. package/dist/objects/LandObject.d.ts +33 -0
  88. package/dist/objects/LandObject.js +34 -0
  89. package/dist/objects/LandObject.js.map +1 -0
  90. package/dist/objects/Marker.d.ts +20 -0
  91. package/dist/objects/Marker.js +24 -0
  92. package/dist/objects/Marker.js.map +1 -0
  93. package/dist/objects/RfSensor.d.ts +41 -0
  94. package/dist/objects/RfSensor.js +67 -0
  95. package/dist/objects/RfSensor.js.map +1 -0
  96. package/dist/objects/index.d.ts +5 -4
  97. package/dist/objects/index.js +6 -0
  98. package/dist/objects/index.js.map +1 -0
  99. package/dist/observation/Observation.d.ts +89 -0
  100. package/dist/observation/Observation.js +102 -0
  101. package/dist/observation/Observation.js.map +1 -0
  102. package/dist/observation/ObservationOptical.d.ts +48 -0
  103. package/dist/observation/ObservationOptical.js +105 -0
  104. package/dist/observation/ObservationOptical.js.map +1 -0
  105. package/dist/observation/ObservationRadar.d.ts +46 -0
  106. package/dist/observation/ObservationRadar.js +96 -0
  107. package/dist/observation/ObservationRadar.js.map +1 -0
  108. package/dist/observation/ObservationUtils.d.ts +20 -0
  109. package/dist/observation/ObservationUtils.js +32 -0
  110. package/dist/observation/ObservationUtils.js.map +1 -0
  111. package/dist/observation/PropagatorPairs.d.ts +32 -0
  112. package/dist/observation/PropagatorPairs.js +43 -0
  113. package/dist/observation/PropagatorPairs.js.map +1 -0
  114. package/dist/operations/BoxMuller.d.ts +46 -0
  115. package/dist/operations/BoxMuller.js +77 -0
  116. package/dist/operations/BoxMuller.js.map +1 -0
  117. package/dist/operations/EulerAngles.d.ts +105 -0
  118. package/dist/operations/EulerAngles.js +161 -0
  119. package/dist/operations/EulerAngles.js.map +1 -0
  120. package/dist/operations/Quaternion.d.ts +56 -0
  121. package/dist/operations/Quaternion.js +167 -0
  122. package/dist/operations/Quaternion.js.map +1 -0
  123. package/dist/operations/RandomGaussianSource.d.ts +24 -0
  124. package/dist/operations/RandomGaussianSource.js +43 -0
  125. package/dist/operations/RandomGaussianSource.js.map +1 -0
  126. package/dist/operations/index.d.ts +4 -0
  127. package/dist/operations/index.js +5 -0
  128. package/dist/operations/index.js.map +1 -0
  129. package/dist/optimize/ChebyshevCompressor.d.ts +32 -0
  130. package/dist/optimize/ChebyshevCompressor.js +83 -0
  131. package/dist/optimize/ChebyshevCompressor.js.map +1 -0
  132. package/dist/optimize/DownhillSimplex.d.ts +64 -0
  133. package/dist/optimize/DownhillSimplex.js +182 -0
  134. package/dist/optimize/DownhillSimplex.js.map +1 -0
  135. package/dist/optimize/GoldenSection.d.ts +39 -0
  136. package/dist/optimize/GoldenSection.js +55 -0
  137. package/dist/optimize/GoldenSection.js.map +1 -0
  138. package/dist/optimize/PolynomialRegression.d.ts +49 -0
  139. package/dist/optimize/PolynomialRegression.js +83 -0
  140. package/dist/optimize/PolynomialRegression.js.map +1 -0
  141. package/dist/optimize/PolynomicalRegressionResult.d.ts +31 -0
  142. package/dist/optimize/PolynomicalRegressionResult.js +38 -0
  143. package/dist/optimize/PolynomicalRegressionResult.js.map +1 -0
  144. package/dist/optimize/SimpleLinearRegression.d.ts +44 -0
  145. package/dist/optimize/SimpleLinearRegression.js +112 -0
  146. package/dist/optimize/SimpleLinearRegression.js.map +1 -0
  147. package/dist/optimize/SimplexEntry.d.ts +32 -0
  148. package/dist/optimize/SimplexEntry.js +42 -0
  149. package/dist/optimize/SimplexEntry.js.map +1 -0
  150. package/dist/orbit_determination/BatchLeastSquaresOD.d.ts +65 -0
  151. package/dist/orbit_determination/BatchLeastSquaresOD.js +143 -0
  152. package/dist/orbit_determination/BatchLeastSquaresOD.js.map +1 -0
  153. package/dist/orbit_determination/BatchLeastSquaresResult.d.ts +31 -0
  154. package/{lib/objects/space-object.d.ts → dist/orbit_determination/BatchLeastSquaresResult.js} +21 -23
  155. package/dist/orbit_determination/BatchLeastSquaresResult.js.map +1 -0
  156. package/dist/orbit_determination/GibbsIOD.d.ts +38 -0
  157. package/dist/orbit_determination/GibbsIOD.js +76 -0
  158. package/dist/orbit_determination/GibbsIOD.js.map +1 -0
  159. package/dist/orbit_determination/GoodingIOD.d.ts +51 -0
  160. package/dist/orbit_determination/GoodingIOD.js +247 -0
  161. package/dist/orbit_determination/GoodingIOD.js.map +1 -0
  162. package/dist/orbit_determination/HerrickGibbsIOD.d.ts +33 -0
  163. package/dist/orbit_determination/HerrickGibbsIOD.js +50 -0
  164. package/dist/orbit_determination/HerrickGibbsIOD.js.map +1 -0
  165. package/dist/orbit_determination/LambertIOD.d.ts +59 -0
  166. package/dist/orbit_determination/LambertIOD.js +213 -0
  167. package/dist/orbit_determination/LambertIOD.js.map +1 -0
  168. package/dist/orbit_determination/ModifiedGoodingIOD.d.ts +40 -0
  169. package/dist/orbit_determination/ModifiedGoodingIOD.js +83 -0
  170. package/dist/orbit_determination/ModifiedGoodingIOD.js.map +1 -0
  171. package/dist/propagator/DormandPrince54Propagator.d.ts +28 -0
  172. package/dist/propagator/DormandPrince54Propagator.js +64 -0
  173. package/dist/propagator/DormandPrince54Propagator.js.map +1 -0
  174. package/dist/propagator/KeplerPropagator.d.ts +35 -0
  175. package/dist/propagator/KeplerPropagator.js +84 -0
  176. package/dist/propagator/KeplerPropagator.js.map +1 -0
  177. package/dist/propagator/Propagator.d.ts +34 -0
  178. package/dist/propagator/Propagator.js +162 -0
  179. package/dist/propagator/Propagator.js.map +1 -0
  180. package/dist/propagator/RkCheckpoint.d.ts +22 -0
  181. package/dist/propagator/RkCheckpoint.js +27 -0
  182. package/dist/propagator/RkCheckpoint.js.map +1 -0
  183. package/dist/propagator/RkResult.d.ts +23 -0
  184. package/dist/propagator/RkResult.js +30 -0
  185. package/dist/propagator/RkResult.js.map +1 -0
  186. package/dist/propagator/RungeKutta4Propagator.d.ts +50 -0
  187. package/dist/propagator/RungeKutta4Propagator.js +141 -0
  188. package/dist/propagator/RungeKutta4Propagator.js.map +1 -0
  189. package/dist/propagator/RungeKutta89Propagator.d.ts +28 -0
  190. package/dist/propagator/RungeKutta89Propagator.js +126 -0
  191. package/dist/propagator/RungeKutta89Propagator.js.map +1 -0
  192. package/dist/propagator/RungeKuttaAdaptive.d.ts +54 -0
  193. package/dist/propagator/RungeKuttaAdaptive.js +159 -0
  194. package/dist/propagator/RungeKuttaAdaptive.js.map +1 -0
  195. package/dist/propagator/Sgp4Propagator.d.ts +34 -0
  196. package/dist/propagator/Sgp4Propagator.js +56 -0
  197. package/dist/propagator/Sgp4Propagator.js.map +1 -0
  198. package/dist/smoothing/ExponentialSmoothing.d.ts +23 -0
  199. package/dist/smoothing/ExponentialSmoothing.js +81 -0
  200. package/dist/smoothing/ExponentialSmoothing.js.map +1 -0
  201. package/dist/transforms/index.d.ts +1 -0
  202. package/dist/transforms/index.js +2 -0
  203. package/dist/transforms/index.js.map +1 -0
  204. package/dist/transforms/transforms.d.ts +56 -92
  205. package/dist/transforms/transforms.js +94 -0
  206. package/dist/transforms/transforms.js.map +1 -0
  207. package/dist/types/types.d.ts +105 -584
  208. package/dist/types/types.js +23 -0
  209. package/dist/types/types.js.map +1 -0
  210. package/dist/utils/index.d.ts +1 -0
  211. package/dist/utils/index.js +2 -0
  212. package/dist/utils/index.js.map +1 -0
  213. package/dist/utils/jacobian.d.ts +11 -0
  214. package/dist/utils/jacobian.js +29 -0
  215. package/dist/utils/jacobian.js.map +1 -0
  216. package/package.json +34 -42
  217. package/src/coordinate/Hill.ts +326 -0
  218. package/src/coordinate/index.ts +1 -0
  219. package/src/covariance/CovarianceSample.ts +194 -0
  220. package/src/covariance/StateCovariance.ts +69 -0
  221. package/src/force/AtmosphericDrag.ts +101 -0
  222. package/src/force/EarthGravity.ts +157 -0
  223. package/src/force/Force.ts +33 -0
  224. package/src/force/ForceModel.ts +91 -0
  225. package/src/force/Gravity.ts +53 -0
  226. package/src/force/SolarRadiationPressure.ts +42 -0
  227. package/src/force/ThirdBodyGravity.ts +62 -0
  228. package/src/force/Thrust.ts +83 -0
  229. package/src/interfaces/RfSensorParams.ts +30 -0
  230. package/src/interfaces/index.ts +1 -0
  231. package/src/interpolator/ChebyshevCoefficients.ts +109 -0
  232. package/src/interpolator/ChebyshevInterpolator.ts +87 -0
  233. package/src/interpolator/CubicSpline.ts +72 -0
  234. package/src/interpolator/CubicSplineInterpolator.ts +90 -0
  235. package/src/interpolator/FieldInterpolator.ts +37 -0
  236. package/src/interpolator/Interpolator.ts +56 -0
  237. package/src/interpolator/LagrangeInterpolator.ts +192 -0
  238. package/src/interpolator/StateInterpolator.ts +39 -0
  239. package/src/interpolator/VerletBlendInterpolator.ts +146 -0
  240. package/src/main.ts +32 -0
  241. package/src/maneuver/TwoBurnOrbitTransfer.ts +79 -0
  242. package/src/maneuver/Waypoint.ts +267 -0
  243. package/src/objects/DetailedSatellite.ts +159 -0
  244. package/src/objects/DetailedSensor.ts +68 -0
  245. package/src/objects/LandObject.ts +46 -0
  246. package/src/objects/Marker.ts +25 -0
  247. package/src/objects/RfSensor.ts +78 -0
  248. package/src/objects/index.ts +5 -0
  249. package/src/observation/Observation.ts +125 -0
  250. package/src/observation/ObservationOptical.ts +146 -0
  251. package/src/observation/ObservationRadar.ts +131 -0
  252. package/src/observation/ObservationUtils.ts +40 -0
  253. package/src/observation/PropagatorPairs.ts +45 -0
  254. package/src/operations/BoxMuller.ts +87 -0
  255. package/src/operations/EulerAngles.ts +183 -0
  256. package/src/operations/Quaternion.ts +222 -0
  257. package/src/operations/RandomGaussianSource.ts +51 -0
  258. package/src/operations/index.ts +4 -0
  259. package/src/optimize/ChebyshevCompressor.ts +96 -0
  260. package/src/optimize/DownhillSimplex.ts +212 -0
  261. package/src/optimize/GoldenSection.ts +71 -0
  262. package/src/optimize/PolynomialRegression.ts +109 -0
  263. package/src/optimize/PolynomicalRegressionResult.ts +32 -0
  264. package/src/optimize/SimpleLinearRegression.ts +127 -0
  265. package/src/optimize/SimplexEntry.ts +50 -0
  266. package/src/orbit_determination/BatchLeastSquaresOD.ts +174 -0
  267. package/src/orbit_determination/BatchLeastSquaresResult.ts +33 -0
  268. package/src/orbit_determination/GibbsIOD.ts +95 -0
  269. package/src/orbit_determination/GoodingIOD.ts +380 -0
  270. package/src/orbit_determination/HerrickGibbsIOD.ts +51 -0
  271. package/src/orbit_determination/LambertIOD.ts +260 -0
  272. package/src/orbit_determination/ModifiedGoodingIOD.ts +133 -0
  273. package/src/propagator/DormandPrince54Propagator.ts +73 -0
  274. package/src/propagator/KeplerPropagator.ts +102 -0
  275. package/src/propagator/Propagator.ts +253 -0
  276. package/src/propagator/RkCheckpoint.ts +25 -0
  277. package/src/propagator/RkResult.ts +26 -0
  278. package/src/propagator/RungeKutta4Propagator.ts +179 -0
  279. package/src/propagator/RungeKutta89Propagator.ts +132 -0
  280. package/src/propagator/RungeKuttaAdaptive.ts +232 -0
  281. package/src/propagator/Sgp4Propagator.ts +71 -0
  282. package/src/smoothing/ExponentialSmoothing.ts +90 -0
  283. package/src/transforms/index.ts +1 -0
  284. package/src/transforms/transforms.ts +117 -0
  285. package/src/types/types.ts +135 -0
  286. package/src/utils/index.ts +1 -0
  287. package/src/utils/jacobian.ts +38 -0
  288. package/.eslintrc.json +0 -244
  289. package/.prettierrc +0 -17
  290. package/babel.config.js +0 -16
  291. package/codecov.yml +0 -21
  292. package/dist/objects/base-object.d.ts +0 -40
  293. package/dist/objects/detailed-sat.d.ts +0 -66
  294. package/dist/objects/sat.d.ts +0 -92
  295. package/dist/objects/sensor.d.ts +0 -93
  296. package/dist/objects/star.d.ts +0 -46
  297. package/dist/ootk.js +0 -2
  298. package/dist/ootk.js.LICENSE.txt +0 -77
  299. package/dist/sgp4/sgp4.d.ts +0 -82
  300. package/dist/tle/tle-format-data.d.ts +0 -6
  301. package/dist/tle/tle.d.ts +0 -375
  302. package/dist/utils/constants.d.ts +0 -34
  303. package/dist/utils/moon-math.d.ts +0 -113
  304. package/dist/utils/sun-math.d.ts +0 -230
  305. package/dist/utils/utils.d.ts +0 -39
  306. package/jest.config.ts +0 -30
  307. package/lib/objects/base-object.d.ts +0 -40
  308. package/lib/objects/base-object.js +0 -79
  309. package/lib/objects/base-object.js.map +0 -1
  310. package/lib/objects/detailed-sat.js +0 -149
  311. package/lib/objects/detailed-sat.js.map +0 -1
  312. package/lib/objects/index.d.ts +0 -4
  313. package/lib/objects/index.js +0 -5
  314. package/lib/objects/index.js.map +0 -1
  315. package/lib/objects/sat.d.ts +0 -92
  316. package/lib/objects/sat.js +0 -188
  317. package/lib/objects/sat.js.map +0 -1
  318. package/lib/objects/sensor.d.ts +0 -93
  319. package/lib/objects/sensor.js +0 -273
  320. package/lib/objects/sensor.js.map +0 -1
  321. package/lib/objects/space-object.js +0 -60
  322. package/lib/objects/space-object.js.map +0 -1
  323. package/lib/objects/star.d.ts +0 -46
  324. package/lib/objects/star.js +0 -91
  325. package/lib/objects/star.js.map +0 -1
  326. package/lib/ootk.js.map +0 -1
  327. package/lib/sgp4/sgp4.d.ts +0 -82
  328. package/lib/sgp4/sgp4.js +0 -3262
  329. package/lib/sgp4/sgp4.js.map +0 -1
  330. package/lib/tle/tle-format-data.d.ts +0 -6
  331. package/lib/tle/tle-format-data.js +0 -10
  332. package/lib/tle/tle-format-data.js.map +0 -1
  333. package/lib/tle/tle.d.ts +0 -375
  334. package/lib/tle/tle.js +0 -611
  335. package/lib/tle/tle.js.map +0 -1
  336. package/lib/transforms/transforms.d.ts +0 -94
  337. package/lib/transforms/transforms.js +0 -308
  338. package/lib/transforms/transforms.js.map +0 -1
  339. package/lib/types/types.d.ts +0 -605
  340. package/lib/types/types.js +0 -36
  341. package/lib/types/types.js.map +0 -1
  342. package/lib/utils/constants.d.ts +0 -34
  343. package/lib/utils/constants.js +0 -35
  344. package/lib/utils/constants.js.map +0 -1
  345. package/lib/utils/moon-math.d.ts +0 -113
  346. package/lib/utils/moon-math.js +0 -387
  347. package/lib/utils/moon-math.js.map +0 -1
  348. package/lib/utils/sun-math.d.ts +0 -230
  349. package/lib/utils/sun-math.js +0 -422
  350. package/lib/utils/sun-math.js.map +0 -1
  351. package/lib/utils/utils.d.ts +0 -39
  352. package/lib/utils/utils.js +0 -102
  353. package/lib/utils/utils.js.map +0 -1
  354. package/sandbox.html +0 -8
  355. package/tsconfig.base.json +0 -31
  356. package/tsconfig.build.json +0 -14
  357. /package/{LICENSE.MD → LICENSE.md} +0 -0
@@ -1,605 +1,126 @@
1
- import { Sensor } from '@src/objects';
2
1
  /**
3
- * Represents a distinct type.
2
+ * @author @thkruz Theodore Kruczek
3
+ * @license AGPL-3.0-or-later
4
+ * @copyright (c) 2020-2024 Theodore Kruczek
4
5
  *
5
- * This type is used to create new types based on existing ones, but with a unique identifier.
6
- * This can be useful for creating types that are semantically different but structurally the same.
6
+ * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
7
+ * terms of the GNU Affero General Public License as published by the Free Software
8
+ * Foundation, either version 3 of the License, or (at your option) any later version.
7
9
  *
8
- * @template T The base type from which the distinct type is created.
9
- * @template DistinctName A unique identifier for the distinct type.
10
+ * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
11
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
+ * See the GNU Affero General Public License for more details.
10
13
  *
11
- * @property __TYPE__ A property that holds the unique identifier for the distinct type.
14
+ * You should have received a copy of the GNU Affero General Public License along with
15
+ * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
12
16
  */
13
- type Distinct<T, DistinctName> = T & {
14
- __TYPE__: DistinctName;
15
- };
16
- /**
17
- * Represents a quantity of hours.
18
- *
19
- * This type is based on the number type, but is distinct and cannot be used interchangeably
20
- * with other number-based types.
21
- */
22
- export type Hours = Distinct<number, 'Hours'>;
23
- /**
24
- * Represents a quantity of minutes.
25
- *
26
- * This type is based on the number type, but is distinct and cannot be used interchangeably
27
- * with other number-based types.
28
- */
29
- export type Minutes = Distinct<number, 'Minutes'>;
30
- /**
31
- * Represents a quantity of seconds.
32
- *
33
- * This type is based on the number type, but is distinct and cannot be used interchangeably
34
- * with other number-based types.
35
- */
36
- export type Seconds = Distinct<number, 'Seconds'>;
37
- /**
38
- * Represents a quantity of milliseconds.
39
- *
40
- * This type is based on the number type, but is distinct and cannot be used interchangeably
41
- * with other number-based types.
42
- */
43
- export type Milliseconds = Distinct<number, 'Milliseconds'>;
44
- /**
45
- * Represents a quantity of degrees.
46
- *
47
- * This type is based on the number type, but is distinct and cannot be used interchangeably
48
- * with other number-based types.
49
- */
50
- export type Degrees = Distinct<number, 'Degrees'>;
51
- /**
52
- * Represents a quantity of radians.
53
- *
54
- * This type is based on the number type, but is distinct and cannot be used interchangeably
55
- * with other number-based types.
56
- */
57
- export type Radians = Distinct<number, 'Radians'>;
58
- /**
59
- * Represents a quantity of kilometers.
60
- *
61
- * This type is based on the number type, but is distinct and cannot be used interchangeably
62
- * with other number-based types.
63
- */
64
- export type Kilometers = Distinct<number, 'Kilometers'>;
65
- /**
66
- * Represents a quantity of meters.
67
- *
68
- * This type is based on the number type, but is distinct and cannot be used interchangeably
69
- * with other number-based types.
70
- */
71
- export type Meters = Distinct<number, 'Meters'>;
72
- /**
73
- * Represents a three-dimensional vector.
74
- *
75
- * This type is used to represent a point in space in terms of x, y, and z coordinates.
76
- * It is a generic type that allows for flexibility in the units of measure used for each dimension.
77
- * The default unit of measure is Kilometers.
78
- *
79
- * @template Units The unit of measure used for the dimensions.
80
- * This is typically a type representing a distance, such as kilometers or meters. The default is Kilometers.
81
- *
82
- * @property x The x dimension of the vector, representing the distance from the origin to
83
- * the point in the x direction.
84
- * @property y The y dimension of the vector, representing the distance from the origin to
85
- * the point in the y direction.
86
- * @property z The z dimension of the vector, representing the distance from the origin to
87
- * the point in the z direction.
88
- */
89
- export type Vec3<Units = Kilometers> = {
90
- x: Units;
91
- y: Units;
92
- z: Units;
93
- };
94
- /**
95
- * Represents a three-dimensional vector in Earth-Centered Inertial (ECI) coordinates.
96
- *
97
- * This type is used to represent a point in space in terms of x, y, and z coordinates.
98
- * It is a generic type that allows for flexibility in the units of measure used for each dimension.
99
- * The default unit of measure is Kilometers.
100
- *
101
- * @property x The x dimension of the vector, representing the distance from the origin to
102
- * the point in the x direction.
103
- * @property y The y dimension of the vector, representing the distance from the origin to
104
- * the point in the y direction.
105
- * @property z The z dimension of the vector, representing the distance from the origin to
106
- * the point in the z direction.
107
- */
108
- export type EciVec3<Units = Kilometers> = Vec3<Units>;
109
- /**
110
- * Represents a three-dimensional vector in Earth-Centered Fixed (ECF) coordinates.
111
- *
112
- * NOTE: ECF (Earth-Centered Fixed) and ECEF (Earth-Centered, Earth-Fixed) are essentially
113
- * the same thing. Both refer to a coordinate system that is fixed with respect to the Earth,
114
- * meaning that the coordinates of a point in this system do not change even as the Earth rotates.
115
- *
116
- * The difference between the two is that ECF is a Cartesian coordinate system, while ECEF is a
117
- * spherical coordinate system. The ECF system is used in this library because it is easier to
118
- * work with in the context of the SGP4 algorithm.
119
- *
120
- * This type is used to represent a point in space in terms of x, y, and z coordinates.
121
- * It is a generic type that allows for flexibility in the units of measure used for each dimension.
122
- * The default unit of measure is Kilometers.
123
- *
124
- * @property x The x dimension of the vector, representing the distance from the origin to
125
- * the point in the x direction.
126
- * @property y The y dimension of the vector, representing the distance from the origin to
127
- * the point in the y direction.
128
- * @property z The z dimension of the vector, representing the distance from the origin to
129
- * the point in the z direction.
130
- */
131
- export type EcfVec3<Units = Kilometers> = Vec3<Units>;
132
- /**
133
- * Represents a three-dimensional vector in Earth-Centered Earth-Fixed (ECEF) coordinates.
134
- */
135
- export type EcefVec3<Units = Kilometers> = EcfVec3<Units>;
136
- /**
137
- * Represents a three-dimensional vector in East, North, Up (ENU) coordinates.
138
- *
139
- * East–west tangent to parallels, North–south tangent to meridians, and
140
- * Up–down in the direction normal to the oblate spheroid used as Earth's ellipsoid,
141
- * which does not generally pass through the center of Earth.
142
- *
143
- * In many targeting and tracking applications the local East, North, Up (ENU)
144
- * Cartesian coordinate system is far more intuitive and practical than ECEF or
145
- * Geodetic coordinates. The local ENU coordinates are formed from a plane tangent
146
- * to the Earth's surface fixed to a specific location and hence it is sometimes
147
- * known as a "Local Tangent" or "local geodetic" plane. By convention the east axis
148
- * is labeled x, the north y, and the up z.
149
- *
150
- * @see https://en.wikipedia.org/wiki/Local_tangent_plane_coordinates
151
- *
152
- * @template Units The unit of measure used for the dimensions.
153
- * This is typically a type representing a distance, such as kilometers or meters. The default is Kilometers.
154
- *
155
- * @property e The east dimension of the vector, representing the distance from the origin to
156
- * the point in the east direction.
157
- * @property n The north dimension of the vector, representing the distance from the origin to
158
- * the point in the north direction.
159
- * @property u The up dimension of the vector, representing the distance from the origin to
160
- * the point in the upward direction.
161
- */
162
- export type EnuVec3<Units = Kilometers> = Vec3<Units>;
163
- /**
164
- * Represents a three-dimensional vector in geographical coordinates.
165
- *
166
- * This type is used to represent a point in space in terms of latitude, longitude, and altitude.
167
- * It is a generic type that allows for flexibility in the units of measure used for each dimension.
168
- *
169
- * @template AngleUnit The unit of measure used for the latitude and longitude dimensions.
170
- * This is typically a type representing an angle, such as degrees or radians. The default is Radians.
171
- *
172
- * @template DistanceUnit The unit of measure used for the altitude dimension.
173
- * This is typically a type representing a distance, such as kilometers or meters. The default is Kilometers.
174
- */
175
- export type LlaVec3<AngleUnit = Radians, DistanceUnit = Kilometers> = {
176
- lat: AngleUnit;
177
- lon: AngleUnit;
178
- alt: DistanceUnit;
179
- };
180
- /**
181
- * Represents a three-dimensional vector in Range, Azimuth, and Elevation (RAE) coordinates.
182
- *
183
- * This type is used to represent a point in space in terms of range, azimuth, and elevation.
184
- * It is a generic type that allows for flexibility in the units of measure used for each dimension.
185
- *
186
- * @template DistanceUnit The unit of measure used for the altitude dimension.
187
- * This is typically a type representing a distance, such as kilometers or meters. The default is Kilometers.
188
- *
189
- * @template AngleUnit The unit of measure used for the latitude and longitude dimensions.
190
- * This is typically a type representing an angle, such as degrees or radians. The default is Radians.
191
- *
192
- * @property rng The range dimension of the vector, representing the distance from the origin to the point.
193
- * @property az The azimuth dimension of the vector, representing the angle in the horizontal plane from a
194
- * reference direction.
195
- * @property el The elevation dimension of the vector, representing the angle from the horizontal plane to the point.
196
- */
197
- export type RaeVec3<DistanceUnit = Kilometers, AngleUnit = Radians> = {
198
- rng: DistanceUnit;
199
- az: AngleUnit;
200
- el: AngleUnit;
201
- };
202
- /**
203
- * Represents a three-dimensional vector in South, East, and Zenith (SEZ) coordinates.
204
- *
205
- * This type is used to represent a point in space in terms of south, east, and zenith.
206
- * It is a generic type that allows for flexibility in the units of measure used for each dimension.
207
- *
208
- * @template Units The unit of measure used for the dimensions.
209
- * This is typically a type representing a distance, such as kilometers or meters. The default is Kilometers.
210
- *
211
- * @property s The south dimension of the vector, representing the distance from the origin to
212
- * the point in the south direction.
213
- * @property e The east dimension of the vector, representing the distance from the origin to
214
- * the point in the east direction.
215
- * @property z The zenith dimension of the vector, representing the distance from the origin to
216
- * the point in the upward direction.
217
- */
218
- export type SezVec3<Units = Kilometers> = {
219
- s: Units;
220
- e: Units;
221
- z: Units;
222
- };
223
- /**
224
- * @interface SatelliteRecord contains all of the orbital parameters necessary for running SGP4.
225
- * It is generated by Sgp4.createSatrec.
226
- *
227
- */
228
- export interface SatelliteRecord {
229
- Om: number;
230
- PInco: number;
231
- a: number;
232
- alta: number;
233
- altp: number;
234
- am: number;
235
- argpdot: number;
236
- argpo: number;
237
- atime: number;
238
- aycof: number;
239
- bstar: number;
240
- cc1: number;
241
- cc4: number;
242
- cc5: number;
243
- con41: number;
244
- d2: number;
245
- d2201: number;
246
- d2211: number;
247
- d3: number;
248
- d3210: number;
249
- d3222: number;
250
- d4: number;
251
- d4410: number;
252
- d4422: number;
253
- d5220: number;
254
- d5232: number;
255
- d5421: number;
256
- d5433: number;
257
- dedt: number;
258
- del1: number;
259
- del2: number;
260
- del3: number;
261
- delmo: number;
262
- didt: number;
263
- dmdt: number;
264
- dnodt: number;
265
- domdt: number;
266
- e3: number;
267
- ecco: number;
268
- ee2: number;
269
- em: number;
270
- epochdays: number;
271
- epochyr: number;
272
- error: number;
273
- eta: number;
274
- gsto: number;
275
- im: number;
276
- inclo: number;
277
- init: string;
278
- irez: number;
279
- isimp: number;
280
- j2: number;
281
- j3: number;
282
- j3oj2: number;
283
- j4: number;
284
- jdsatepoch: number;
285
- mdot: number;
286
- method: string;
287
- mm: number;
288
- mo: number;
289
- mus: number;
290
- nddot: number;
291
- ndot: number;
292
- nm: number;
293
- no: number;
294
- nodecf: number;
295
- nodedot: number;
296
- nodeo: number;
297
- om: number;
298
- omgcof: number;
299
- operationmode: string;
300
- peo: number;
301
- pgho: number;
302
- pho: number;
303
- plo: number;
304
- radiusearthkm: number;
305
- satnum: string;
306
- se2: number;
307
- se3: number;
308
- sgh2: number;
309
- sgh3: number;
310
- sgh4: number;
311
- sh2: number;
312
- sh3: number;
313
- si2: number;
314
- si3: number;
315
- sinmao: number;
316
- sl2: number;
317
- sl3: number;
318
- sl4: number;
319
- t: number;
320
- t2cof: number;
321
- t3cof: number;
322
- t4cof: number;
323
- t5cof: number;
324
- tumin: number;
325
- x1mth2: number;
326
- x7thm1: number;
327
- xfact: number;
328
- xgh2: number;
329
- xgh3: number;
330
- xgh4: number;
331
- xh2: number;
332
- xh3: number;
333
- xi2: number;
334
- xi3: number;
335
- xke: number;
336
- xl2: number;
337
- xl3: number;
338
- xl4: number;
339
- xlamo: number;
340
- xlcof: number;
341
- xli: number;
342
- xmcof: number;
343
- xni: number;
344
- zmol: number;
345
- zmos: number;
346
- }
347
- /**
348
- * The StateVector is a type that represents the output from the Sgp4.propagate function.
349
- * It consists of two main properties: position and velocity, each of which is a three-dimensional vector.
350
- *
351
- * The position and velocity vectors are represented as objects with x, y, and z properties,
352
- * each of which is a number. Alternatively, they can be a boolean value.
353
- *
354
- * This type is primarily used in the context of satellite tracking and prediction,
355
- * where it is crucial to know both the current position and velocity of a satellite.
356
- */
357
- export type StateVector = {
358
- position: {
359
- x: number;
360
- y: number;
361
- z: number;
362
- } | boolean;
363
- velocity: {
364
- x: number;
365
- y: number;
366
- z: number;
367
- } | boolean;
368
- };
369
- /**
370
- * The RUV coordinate system is a spherical coordinate system with the origin
371
- * at the radar. The RUV coordinate system is defined with respect to the
372
- * radar boresight. The R-axis points outward along the boresight with
373
- * the origin at the radar. The U-axis is in the horizontal plane and
374
- * points to the right of the boresight. The V-axis is in the vertical
375
- * plane and points down from the boresight.
376
- *
377
- * @template DistanceUnit The unit of measure used for the altitude dimension.
378
- * This is typically a type representing a distance, such as kilometers or meters. The default is Kilometers.
379
- *
380
- * * @template AngleUnit The unit of measure used for the latitude and longitude dimensions.
381
- * This is typically a type representing an angle, such as degrees or radians. The default is Radians.
382
- */
383
- export type RuvVec3<DistanceUnit = Kilometers, AngleUnit = Radians> = {
384
- rng: DistanceUnit;
385
- u: AngleUnit;
386
- v: AngleUnit;
387
- };
388
- /**
389
- * Phased Array Radar Face Cartesian Coordinates
390
- * The cartesian coordinates (XRF, YRF ZRF) are defined with respect to the
391
- * phased array radar face. The radar face lies in the XRF-YRF plane, with
392
- * the XRF-axis horizontal and the YRF-axis pointing upward.
393
- * The ZRF-axis points outward along the normal to the array face.
394
- *
395
- * The orientation of the phased array face is defined by the azimuth and
396
- * the elevation of the phased array boresight (i.e., the phased array Z-axis).
397
- */
398
- export type RfVec3<Units = Kilometers> = Vec3<Units>;
399
- /**
400
- * A type that represents a three-dimensional vector in a flat array format.
401
- * This type is used in vector mathematics and physics calculations.
402
- *
403
- * It is an array of three numbers, where each number represents a coordinate in 3D space:
404
- * - The first number represents the x-coordinate.
405
- * - The second number represents the y-coordinate.
406
- * - The third number represents the z-coordinate.
407
- *
408
- * This format is particularly useful in scenarios where you need to perform operations on vectors,
409
- * such as addition, subtraction, scalar multiplication, dot product, and cross product.
410
- */
411
- export type Vec3Flat<T = number> = [T, T, T];
412
- /**
413
- * A type that represents a two-line element set (TLE).
414
- * A TLE is a data format used to convey sets of orbital elements that describe the orbits of Earth-orbiting objects.
415
- * It consists of two lines of text, each of which is 69 characters long.
416
- * @see https://en.wikipedia.org/wiki/Two-line_element_set
417
- */
418
- export type TleLine1 = Distinct<string, 'TLE Line 1'>;
419
- /**
420
- * A type that represents a two-line element set (TLE).
421
- * A TLE is a data format used to convey sets of orbital elements that describe the orbits of Earth-orbiting objects.
422
- * It consists of two lines of text, each of which is 69 characters long.
423
- * @see https://en.wikipedia.org/wiki/Two-line_element_set
424
- */
425
- export type TleLine2 = Distinct<string, 'TLE Line 2'>;
426
- /**
427
- * The Line1Data type represents the first line of a two-line element set (TLE).
428
- * A TLE is a data format used to convey sets of orbital elements that describe the orbits of Earth-orbiting objects.
429
- *
430
- * The properties of this type include:
431
- * - lineNumber1: The line number of the TLE (should be 1 for this line).
432
- * - satNum: The satellite number.
433
- * - satNumRaw: The raw string representation of the satellite number.
434
- * - classification: The classification of the satellite (e.g., "U" for unclassified).
435
- * - intlDes: The international designator for the satellite.
436
- * - intlDesYear: The year of the international designator.
437
- * - intlDesLaunchNum: The launch number of the international designator.
438
- * - intlDesLaunchPiece: The piece of the launch of the international designator.
439
- * - epochYear: The last two digits of the year of the epoch.
440
- * - epochYearFull: The full four-digit year of the epoch.
441
- * - epochDay: The day of the year of the epoch.
442
- * - meanMoDev1: The first derivative of the Mean Motion.
443
- * - meanMoDev2: The second derivative of the Mean Motion.
444
- * - bstar: The BSTAR drag term.
445
- * - ephemerisType: The type of ephemeris used.
446
- * - elsetNum: The element set number.
447
- * - checksum1: The checksum of the first line of the TLE.
448
- *
449
- * @see https://en.wikipedia.org/wiki/Two-line_element_set
450
- */
451
- export type Line1Data = {
452
- lineNumber1: number;
453
- satNum: number;
454
- satNumRaw: string;
455
- classification: string;
456
- intlDes: string;
457
- intlDesYear: number;
458
- intlDesLaunchNum: number;
459
- intlDesLaunchPiece: string;
460
- epochYear: number;
461
- epochYearFull: number;
462
- epochDay: number;
463
- meanMoDev1: number;
464
- meanMoDev2: number;
465
- bstar: number;
466
- ephemerisType: number;
467
- elsetNum: number;
468
- checksum1: number;
469
- };
470
- /**
471
- * The Line2Data type represents the second line of a two-line element set (TLE).
472
- * A TLE is a data format used to convey sets of orbital elements that describe the orbits of Earth-orbiting objects.
473
- *
474
- * The properties of this type include:
475
- * - lineNumber2: The line number of the TLE (should be 2 for this line).
476
- * - satNum: The satellite number.
477
- * - satNumRaw: The raw string representation of the satellite number.
478
- * - inclination: The inclination of the satellite's orbit.
479
- * - raan: The Right Ascension of the Ascending Node.
480
- * - eccentricity: The eccentricity of the satellite's orbit.
481
- * - argOfPerigee: The argument of perigee.
482
- * - meanAnomaly: The mean anomaly of the satellite.
483
- * - meanMotion: The mean motion of the satellite.
484
- * - revNum: The revolution number at epoch.
485
- * - checksum2: The checksum of the second line of the TLE.
486
- *
487
- * @see https://en.wikipedia.org/wiki/Two-line_element_set
488
- */
489
- export type Line2Data = {
490
- lineNumber2: number;
491
- satNum: number;
492
- satNumRaw: string;
493
- inclination: number;
494
- raan: number;
495
- eccentricity: number;
496
- argOfPerigee: number;
497
- meanAnomaly: number;
498
- meanMotion: number;
499
- revNum: number;
500
- checksum2: number;
501
- };
502
- /**
503
- * Enum representing different types of objects.
504
- */
505
- export declare enum SpaceObjectType {
506
- UNKNOWN = 0,
507
- PAYLOAD = 1,
508
- ROCKET_BODY = 2,
509
- DEBRIS = 3,
510
- SPECIAL = 4,
511
- RADAR_MEASUREMENT = 5,
512
- RADAR_TRACK = 6,
513
- RADAR_OBJECT = 7,
514
- BALLISTIC_MISSILE = 8,
515
- STAR = 9,
516
- INTERGOVERNMENTAL_ORGANIZATION = 10,
517
- SUBORBITAL_PAYLOAD_OPERATOR = 11,
518
- PAYLOAD_OWNER = 12,
519
- METEOROLOGICAL_ROCKET_LAUNCH_AGENCY_OR_MANUFACTURER = 13,
520
- PAYLOAD_MANUFACTURER = 14,
521
- LAUNCH_AGENCY = 15,
522
- LAUNCH_SITE = 16,
523
- LAUNCH_POSITION = 17,
524
- LAUNCH_FACILITY = 18,
525
- CONTROL_FACILITY = 19,
526
- GROUND_SENSOR_STATION = 20,
527
- OPTICAL = 21,
528
- MECHANICAL = 22,
529
- PHASED_ARRAY_RADAR = 23,
530
- OBSERVER = 24,
531
- BISTATIC_RADIO_TELESCOPE = 25,
532
- COUNTRY = 26,
533
- LAUNCH_VEHICLE_MANUFACTURER = 27,
534
- ENGINE_MANUFACTURER = 28
535
- }
536
- /**
537
- * Represents the Greenwich Mean Sidereal Time (GMST).
538
- *
539
- * GMST is a time system that is a measure of the angle, on the celestial equator, from the
540
- * Greenwich meridian to the meridian that passes through the vernal equinox.
541
- */
542
- export type GreenwichMeanSiderealTime = Distinct<number, 'Greenwich Mean Sidereal Time'>;
543
- /**
544
- * Represents the azimuth and elevation of an object in the sky.
545
- * Azimuth and elevation are the two coordinates that define the position of a
546
- * celestial body (sun, moon, planet, star, etc.) in the sky as observed from a specific location
547
- * on the Earth's surface.
548
- *
549
- * @template Units The units in which the azimuth and elevation are expressed. By default, this is radians.
550
- *
551
- * @property az The azimuth of the object. This is the angle between the observer's north vector and
552
- * the perpendicular projection of the object onto the observer's local horizon.
553
- * @property el The elevation of the object. This is the angle between the object and the observer's local horizon.
554
- */
555
- export type AzEl<Units = Radians> = {
556
- az: Units;
557
- el: Units;
558
- };
559
- export interface RadarSensor extends Sensor {
560
- coneHalfAngle: Radians;
561
- boresight: {
562
- az: Radians;
563
- el: Radians;
564
- };
17
+ import { Degrees, Kilometers, Milliseconds, SatelliteParams, Vec3 } from 'ootk-core';
18
+ export declare enum ZoomValue {
19
+ LEO = 0.45,
20
+ GEO = 0.82,
21
+ MAX = 1
565
22
  }
566
- /**
567
- * Represents the solar noon and nadir times.
568
- *
569
- * @property solarNoon The time at which the sun is at its highest point in the
570
- * sky (directly above the observer's head). This is the midpoint of the day.
571
- * @property nadir The time at which the sun is at its lowest point, directly below the observer.
572
- * This is the midpoint of the night.
573
- */
574
- export type SunTime = {
575
- solarNoon: Date;
576
- nadir: Date;
577
- };
578
- export type LaunchDetails = {
23
+ export interface DetailedSatelliteParams extends SatelliteParams {
24
+ id: number;
25
+ active?: boolean;
26
+ configuration?: string;
27
+ country?: string;
28
+ dryMass?: string;
29
+ equipment?: string;
579
30
  launchDate?: string;
580
31
  launchMass?: string;
581
32
  launchSite?: string;
582
33
  launchVehicle?: string;
583
- };
584
- export type SpaceCraftDetails = {
585
34
  lifetime?: string | number;
586
35
  maneuver?: string;
587
36
  manufacturer?: string;
37
+ mission?: string;
588
38
  motor?: string;
589
- power?: string;
39
+ owner?: string;
40
+ bus?: string;
590
41
  payload?: string;
42
+ power?: string;
591
43
  purpose?: string;
44
+ length?: string;
45
+ diameter?: string;
592
46
  shape?: string;
593
47
  span?: string;
594
- bus?: string;
595
- configuration?: string;
596
- equipment?: string;
597
- dryMass?: string;
598
- };
599
- export type OperationsDetails = {
600
48
  user?: string;
601
- mission?: string;
602
- owner?: string;
49
+ vmag?: number;
50
+ rcs?: number;
51
+ source?: string;
52
+ altId?: string;
53
+ altName?: string;
54
+ }
55
+ export interface DetailedSensorParams {
56
+ /** The country that owns the sensor */
603
57
  country?: string;
58
+ /** 3 Letter Designation */
59
+ shortName?: string;
60
+ /** For radars, this is the width of the beam */
61
+ beamwidth?: Degrees;
62
+ changeObjectInterval?: Milliseconds;
63
+ linkAehf?: boolean;
64
+ linkGalileo?: boolean;
65
+ linkIridium?: boolean;
66
+ linkStarlink?: boolean;
67
+ linkWgs?: boolean;
68
+ static?: boolean;
69
+ sensorId?: number;
70
+ url?: string;
71
+ /** Does this sensor use a volumetric search pattern? */
72
+ volume?: boolean;
73
+ /** How far away should we zoom when selecting this sensor? */
74
+ zoom: ZoomValue;
75
+ /** For radar sensors, what frequency does this sensor operate in? */
76
+ band?: string;
77
+ /** This is the name of the object in the array */
78
+ objName?: string;
79
+ /** This is the name of the object in the UI */
80
+ uiName?: string;
81
+ /** This is the specific system (ex. AN/FPS-132) */
82
+ system?: string;
83
+ /** This is who operates the sensor */
84
+ operator?: string;
85
+ }
86
+ /**
87
+ * The RUV coordinate system is a spherical coordinate system with the origin at
88
+ * the radar. The RUV coordinate system is defined with respect to the radar
89
+ * boresight. The R-axis points outward along the boresight with the origin at
90
+ * the radar. The U-axis is in the horizontal plane and points to the right of
91
+ * the boresight. The V-axis is in the vertical plane and points down from the
92
+ * boresight.
93
+ * @template DistanceUnit The unit of measure used for the altitude dimension.
94
+ * This is typically a type representing a distance, such as kilometers or
95
+ * meters. The default is Kilometers.
96
+ * @template AngleUnit The unit of measure used for the latitude and longitude
97
+ * dimensions. This is typically a type representing an angle, such as degrees
98
+ * or radians. The default is Radians.
99
+ */
100
+ export type RuvVec3<DistanceUnit = Kilometers> = {
101
+ rng: DistanceUnit;
102
+ u: number;
103
+ v: number;
604
104
  };
605
- export {};
105
+ /**
106
+ * Phased Array Radar Face Cartesian Coordinates The cartesian coordinates (XRF,
107
+ * YRF ZRF) are defined with respect to the phased array radar face. The radar
108
+ * face lies in the XRF-YRF plane, with the XRF-axis horizontal and the YRF-axis
109
+ * pointing upward. The ZRF-axis points outward along the normal to the array
110
+ * face.
111
+ *
112
+ * The orientation of the phased array face is defined by the azimuth and the
113
+ * elevation of the phased array boresight (i.e., the phased array Z-axis).
114
+ */
115
+ export type RfVec3<Units = Kilometers> = Vec3<Units>;
116
+ /**
117
+ * Represents a function that calculates the Jacobian matrix.
118
+ * @param xs - The input values as a Float64Array. @returns The Jacobian matrix
119
+ * as a Float64Array.
120
+ */
121
+ export type JacobianFunction = (xs: Float64Array) => Float64Array;
122
+ /**
123
+ * Represents a differentiable function.
124
+ * @param x The input value. @returns The output value.
125
+ */
126
+ export type DifferentiableFunction = (x: number) => number;