ootk 2.0.1 → 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 (262) hide show
  1. package/.eslintrc.json +14 -14
  2. package/CHANGELOG.md +122 -0
  3. package/README.md +27 -40
  4. package/jest.config.ts +30 -0
  5. package/lib/coordinate/Hill.d.ts +50 -0
  6. package/lib/coordinate/Hill.js +214 -0
  7. package/lib/coordinate/Hill.js.map +1 -0
  8. package/lib/coordinate/index.d.ts +1 -0
  9. package/lib/coordinate/index.js +2 -0
  10. package/lib/coordinate/index.js.map +1 -0
  11. package/lib/covariance/CovarianceSample.d.ts +44 -0
  12. package/lib/covariance/CovarianceSample.js +146 -0
  13. package/lib/covariance/CovarianceSample.js.map +1 -0
  14. package/lib/covariance/StateCovariance.d.ts +41 -0
  15. package/lib/covariance/StateCovariance.js +62 -0
  16. package/lib/covariance/StateCovariance.js.map +1 -0
  17. package/lib/force/AtmosphericDrag.d.ts +32 -0
  18. package/lib/force/AtmosphericDrag.js +66 -0
  19. package/lib/force/AtmosphericDrag.js.map +1 -0
  20. package/{dist/ootk.d.ts → lib/force/EarthGravity.d.ts} +13 -11
  21. package/lib/force/EarthGravity.js +115 -0
  22. package/lib/force/EarthGravity.js.map +1 -0
  23. package/lib/force/Force.d.ts +25 -0
  24. package/lib/force/Force.js +30 -0
  25. package/lib/force/Force.js.map +1 -0
  26. package/lib/force/ForceModel.d.ts +38 -0
  27. package/lib/force/ForceModel.js +71 -0
  28. package/lib/force/ForceModel.js.map +1 -0
  29. package/lib/force/Gravity.d.ts +41 -0
  30. package/lib/force/Gravity.js +48 -0
  31. package/lib/force/Gravity.js.map +1 -0
  32. package/lib/force/SolarRadiationPressure.d.ts +27 -0
  33. package/lib/force/SolarRadiationPressure.js +42 -0
  34. package/lib/force/SolarRadiationPressure.js.map +1 -0
  35. package/lib/force/ThirdBodyGravity.d.ts +27 -0
  36. package/lib/force/ThirdBodyGravity.js +56 -0
  37. package/lib/force/ThirdBodyGravity.js.map +1 -0
  38. package/lib/force/Thrust.d.ts +35 -0
  39. package/lib/force/Thrust.js +53 -0
  40. package/lib/force/Thrust.js.map +1 -0
  41. package/lib/interpolator/ChebyshevCoefficients.d.ts +54 -0
  42. package/lib/interpolator/ChebyshevCoefficients.js +90 -0
  43. package/lib/interpolator/ChebyshevCoefficients.js.map +1 -0
  44. package/lib/interpolator/ChebyshevInterpolator.d.ts +39 -0
  45. package/lib/interpolator/ChebyshevInterpolator.js +71 -0
  46. package/lib/interpolator/ChebyshevInterpolator.js.map +1 -0
  47. package/lib/interpolator/CubicSpline.d.ts +36 -0
  48. package/lib/interpolator/CubicSpline.js +64 -0
  49. package/lib/interpolator/CubicSpline.js.map +1 -0
  50. package/lib/interpolator/CubicSplineInterpolator.d.ts +37 -0
  51. package/lib/interpolator/CubicSplineInterpolator.js +78 -0
  52. package/lib/interpolator/CubicSplineInterpolator.js.map +1 -0
  53. package/lib/interpolator/FieldInterpolator.d.ts +26 -0
  54. package/lib/interpolator/FieldInterpolator.js +31 -0
  55. package/lib/interpolator/FieldInterpolator.js.map +1 -0
  56. package/lib/interpolator/Interpolator.d.ts +23 -0
  57. package/lib/interpolator/Interpolator.js +48 -0
  58. package/lib/interpolator/Interpolator.js.map +1 -0
  59. package/lib/interpolator/LagrangeInterpolator.d.ts +42 -0
  60. package/lib/interpolator/LagrangeInterpolator.js +156 -0
  61. package/lib/interpolator/LagrangeInterpolator.js.map +1 -0
  62. package/lib/interpolator/StateInterpolator.d.ts +29 -0
  63. package/lib/interpolator/StateInterpolator.js +37 -0
  64. package/lib/interpolator/StateInterpolator.js.map +1 -0
  65. package/lib/interpolator/VerletBlendInterpolator.d.ts +44 -0
  66. package/lib/interpolator/VerletBlendInterpolator.js +115 -0
  67. package/lib/interpolator/VerletBlendInterpolator.js.map +1 -0
  68. package/lib/maneuver/TwoBurnOrbitTransfer.d.ts +43 -0
  69. package/lib/maneuver/TwoBurnOrbitTransfer.js +62 -0
  70. package/lib/maneuver/TwoBurnOrbitTransfer.js.map +1 -0
  71. package/lib/maneuver/Waypoint.d.ts +66 -0
  72. package/lib/maneuver/Waypoint.js +152 -0
  73. package/lib/maneuver/Waypoint.js.map +1 -0
  74. package/lib/objects/DetailedSatellite.d.ts +94 -0
  75. package/lib/objects/DetailedSatellite.js +140 -0
  76. package/lib/objects/DetailedSatellite.js.map +1 -0
  77. package/lib/objects/DetailedSensor.d.ts +43 -0
  78. package/lib/objects/DetailedSensor.js +45 -0
  79. package/lib/objects/DetailedSensor.js.map +1 -0
  80. package/lib/objects/{space-object.d.ts → LandObject.d.ts} +19 -21
  81. package/lib/objects/LandObject.js +28 -0
  82. package/lib/objects/LandObject.js.map +1 -0
  83. package/lib/objects/Marker.d.ts +21 -0
  84. package/lib/objects/Marker.js +25 -0
  85. package/lib/objects/Marker.js.map +1 -0
  86. package/lib/objects/index.d.ts +5 -4
  87. package/lib/objects/index.js +5 -4
  88. package/lib/objects/index.js.map +1 -1
  89. package/lib/observation/Observation.d.ts +51 -0
  90. package/lib/observation/Observation.js +71 -0
  91. package/lib/observation/Observation.js.map +1 -0
  92. package/lib/observation/ObservationOptical.d.ts +47 -0
  93. package/lib/observation/ObservationOptical.js +101 -0
  94. package/lib/observation/ObservationOptical.js.map +1 -0
  95. package/lib/observation/ObservationRadar.d.ts +43 -0
  96. package/lib/observation/ObservationRadar.js +90 -0
  97. package/lib/observation/ObservationRadar.js.map +1 -0
  98. package/lib/observation/ObservationUtils.d.ts +21 -0
  99. package/lib/observation/ObservationUtils.js +33 -0
  100. package/lib/observation/ObservationUtils.js.map +1 -0
  101. package/lib/observation/PropagatorPairs.d.ts +31 -0
  102. package/lib/observation/PropagatorPairs.js +40 -0
  103. package/lib/observation/PropagatorPairs.js.map +1 -0
  104. package/lib/ootk.d.ts +10 -9
  105. package/lib/ootk.js +10 -9
  106. package/lib/ootk.js.map +1 -1
  107. package/lib/operations/BoxMuller.d.ts +41 -0
  108. package/lib/operations/BoxMuller.js +66 -0
  109. package/lib/operations/BoxMuller.js.map +1 -0
  110. package/lib/operations/EulerAngles.d.ts +50 -0
  111. package/lib/operations/EulerAngles.js +111 -0
  112. package/lib/operations/EulerAngles.js.map +1 -0
  113. package/lib/operations/Quaternion.d.ts +57 -0
  114. package/lib/operations/Quaternion.js +164 -0
  115. package/lib/operations/Quaternion.js.map +1 -0
  116. package/lib/operations/RandomGaussianSource.d.ts +25 -0
  117. package/lib/operations/RandomGaussianSource.js +43 -0
  118. package/lib/operations/RandomGaussianSource.js.map +1 -0
  119. package/lib/operations/index.d.ts +4 -0
  120. package/lib/operations/index.js +5 -0
  121. package/lib/operations/index.js.map +1 -0
  122. package/lib/optimize/ChebyshevCompressor.d.ts +31 -0
  123. package/lib/optimize/ChebyshevCompressor.js +80 -0
  124. package/lib/optimize/ChebyshevCompressor.js.map +1 -0
  125. package/lib/optimize/DownhillSimplex.d.ts +50 -0
  126. package/lib/optimize/DownhillSimplex.js +168 -0
  127. package/lib/optimize/DownhillSimplex.js.map +1 -0
  128. package/lib/optimize/GoldenSection.d.ts +33 -0
  129. package/lib/optimize/GoldenSection.js +49 -0
  130. package/lib/optimize/GoldenSection.js.map +1 -0
  131. package/lib/optimize/PolynomialRegression.d.ts +37 -0
  132. package/lib/optimize/PolynomialRegression.js +66 -0
  133. package/lib/optimize/PolynomialRegression.js.map +1 -0
  134. package/lib/optimize/PolynomicalRegressionResult.d.ts +28 -0
  135. package/lib/optimize/PolynomicalRegressionResult.js +32 -0
  136. package/lib/optimize/PolynomicalRegressionResult.js.map +1 -0
  137. package/lib/optimize/SimpleLinearRegression.d.ts +41 -0
  138. package/lib/optimize/SimpleLinearRegression.js +107 -0
  139. package/lib/optimize/SimpleLinearRegression.js.map +1 -0
  140. package/lib/optimize/SimplexEntry.d.ts +33 -0
  141. package/lib/optimize/SimplexEntry.js +39 -0
  142. package/lib/optimize/SimplexEntry.js.map +1 -0
  143. package/lib/orbit_determination/BatchLeastSquaresOD.d.ts +54 -0
  144. package/lib/orbit_determination/BatchLeastSquaresOD.js +118 -0
  145. package/lib/orbit_determination/BatchLeastSquaresOD.js.map +1 -0
  146. package/lib/orbit_determination/BatchLeastSquaresResult.d.ts +29 -0
  147. package/lib/orbit_determination/BatchLeastSquaresResult.js +31 -0
  148. package/lib/orbit_determination/BatchLeastSquaresResult.js.map +1 -0
  149. package/lib/orbit_determination/GibbsIOD.d.ts +33 -0
  150. package/lib/orbit_determination/GibbsIOD.js +70 -0
  151. package/lib/orbit_determination/GibbsIOD.js.map +1 -0
  152. package/lib/orbit_determination/GoodingIOD.d.ts +52 -0
  153. package/lib/orbit_determination/GoodingIOD.js +244 -0
  154. package/lib/orbit_determination/GoodingIOD.js.map +1 -0
  155. package/{dist/objects/space-object.d.ts → lib/orbit_determination/HerrickGibbsIOD.d.ts} +17 -22
  156. package/lib/orbit_determination/HerrickGibbsIOD.js +49 -0
  157. package/lib/orbit_determination/HerrickGibbsIOD.js.map +1 -0
  158. package/lib/orbit_determination/LambertIOD.d.ts +46 -0
  159. package/lib/orbit_determination/LambertIOD.js +199 -0
  160. package/lib/orbit_determination/LambertIOD.js.map +1 -0
  161. package/lib/orbit_determination/ModifiedGoodingIOD.d.ts +41 -0
  162. package/lib/orbit_determination/ModifiedGoodingIOD.js +82 -0
  163. package/lib/orbit_determination/ModifiedGoodingIOD.js.map +1 -0
  164. package/lib/propagator/DormandPrince54Propagator.d.ts +29 -0
  165. package/lib/propagator/DormandPrince54Propagator.js +68 -0
  166. package/lib/propagator/DormandPrince54Propagator.js.map +1 -0
  167. package/lib/propagator/KeplerPropagator.d.ts +36 -0
  168. package/lib/propagator/KeplerPropagator.js +81 -0
  169. package/lib/propagator/KeplerPropagator.js.map +1 -0
  170. package/lib/propagator/Propagator.d.ts +35 -0
  171. package/lib/propagator/Propagator.js +163 -0
  172. package/lib/propagator/Propagator.js.map +1 -0
  173. package/lib/propagator/RkCheckpoint.d.ts +23 -0
  174. package/lib/propagator/RkCheckpoint.js +26 -0
  175. package/lib/propagator/RkCheckpoint.js.map +1 -0
  176. package/lib/propagator/RkResult.d.ts +24 -0
  177. package/lib/propagator/RkResult.js +28 -0
  178. package/lib/propagator/RkResult.js.map +1 -0
  179. package/lib/propagator/RungeKutta4Propagator.d.ts +46 -0
  180. package/lib/propagator/RungeKutta4Propagator.js +132 -0
  181. package/lib/propagator/RungeKutta4Propagator.js.map +1 -0
  182. package/lib/propagator/RungeKutta89Propagator.d.ts +29 -0
  183. package/lib/propagator/RungeKutta89Propagator.js +130 -0
  184. package/lib/propagator/RungeKutta89Propagator.js.map +1 -0
  185. package/lib/propagator/RungeKuttaAdaptive.d.ts +52 -0
  186. package/lib/propagator/RungeKuttaAdaptive.js +152 -0
  187. package/lib/propagator/RungeKuttaAdaptive.js.map +1 -0
  188. package/lib/propagator/Sgp4Propagator.d.ts +35 -0
  189. package/lib/propagator/Sgp4Propagator.js +55 -0
  190. package/lib/propagator/Sgp4Propagator.js.map +1 -0
  191. package/lib/smoothing/ExponentialSmoothing.d.ts +24 -0
  192. package/lib/smoothing/ExponentialSmoothing.js +82 -0
  193. package/lib/smoothing/ExponentialSmoothing.js.map +1 -0
  194. package/lib/types/types.d.ts +68 -262
  195. package/lib/types/types.js +23 -33
  196. package/lib/types/types.js.map +1 -1
  197. package/package.json +28 -42
  198. package/codecov.yml +0 -21
  199. package/dist/objects/base-object.d.ts +0 -40
  200. package/dist/objects/detailed-sat.d.ts +0 -66
  201. package/dist/objects/index.d.ts +0 -4
  202. package/dist/objects/sat.d.ts +0 -92
  203. package/dist/objects/sensor.d.ts +0 -87
  204. package/dist/objects/star.d.ts +0 -46
  205. package/dist/ootk.js +0 -2
  206. package/dist/ootk.js.LICENSE.txt +0 -77
  207. package/dist/sgp4/Sgp4Assembly.d.ts +0 -5
  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 -374
  211. package/dist/transforms/transforms.d.ts +0 -55
  212. package/dist/types/types.d.ts +0 -280
  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 -109
  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 -87
  227. package/lib/objects/sensor.js +0 -255
  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/Sgp4Assembly.d.ts +0 -5
  235. package/lib/sgp4/Sgp4Assembly.js +0 -75
  236. package/lib/sgp4/Sgp4Assembly.js.map +0 -1
  237. package/lib/sgp4/sgp4.d.ts +0 -82
  238. package/lib/sgp4/sgp4.js +0 -3274
  239. package/lib/sgp4/sgp4.js.map +0 -1
  240. package/lib/tle/tle-format-data.d.ts +0 -6
  241. package/lib/tle/tle-format-data.js +0 -10
  242. package/lib/tle/tle-format-data.js.map +0 -1
  243. package/lib/tle/tle.d.ts +0 -374
  244. package/lib/tle/tle.js +0 -611
  245. package/lib/tle/tle.js.map +0 -1
  246. package/lib/transforms/transforms.d.ts +0 -55
  247. package/lib/transforms/transforms.js +0 -209
  248. package/lib/transforms/transforms.js.map +0 -1
  249. package/lib/utils/constants.d.ts +0 -34
  250. package/lib/utils/constants.js +0 -35
  251. package/lib/utils/constants.js.map +0 -1
  252. package/lib/utils/moon-math.d.ts +0 -113
  253. package/lib/utils/moon-math.js +0 -387
  254. package/lib/utils/moon-math.js.map +0 -1
  255. package/lib/utils/sun-math.d.ts +0 -230
  256. package/lib/utils/sun-math.js +0 -422
  257. package/lib/utils/sun-math.js.map +0 -1
  258. package/lib/utils/utils.d.ts +0 -39
  259. package/lib/utils/utils.js +0 -100
  260. package/lib/utils/utils.js.map +0 -1
  261. package/sandbox.html +0 -8
  262. /package/{LICENSE.MD → LICENSE.md} +0 -0
@@ -1,77 +0,0 @@
1
- /**
2
- * @author Theodore Kruczek.
3
- * @description Orbital Object ToolKit (OOTK) is a collection of tools for working
4
- * with satellites and other orbital objects.
5
- *
6
- * @file Commonly used constants.
7
- *
8
- * @license AGPL-3.0-or-later
9
- * @Copyright (c) 2020-2023 Theodore Kruczek
10
- *
11
- * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
12
- * terms of the GNU Affero General Public License as published by the Free Software
13
- * Foundation, either version 3 of the License, or (at your option) any later version.
14
- *
15
- * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
16
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17
- * See the GNU Affero General Public License for more details.
18
- *
19
- * You should have received a copy of the GNU Affero General Public License along with
20
- * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
21
- */
22
-
23
- /**
24
- * @author Theodore Kruczek.
25
- * @description Orbital Object ToolKit (OOTK) is a collection of tools for working
26
- * with satellites and other orbital objects.
27
- *
28
- * @file SunMath is a collection of functions for calculating the position of the sun
29
- * and other stars. This was originally created by Vladimir Agafonkin. Robert Gester's
30
- * update was referenced for documentation. There were a couple of bugs in both versions
31
- * so there will be some differences if you are migrating from either to this library.
32
- *
33
- *
34
- * @license AGPL-3.0-or-later
35
- * @Copyright (c) 2020-2023 Theodore Kruczek
36
- *
37
- * @Copyright (c) 2011-2015, Vladimir Agafonkin
38
- * SunCalc is a JavaScript library for calculating sun/moon position and light phases.
39
- * https://github.com/mourner/suncalc
40
- *
41
- * Reworked and enhanced by Robert Gester
42
- * @Copyright (c) 2022 Robert Gester
43
- * https://github.com/hypnos3/suncalc3
44
- *
45
- * sun calculations are based on http://aa.quae.nl/en/reken/zonpositie.html formulas
46
- *
47
- * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
48
- * terms of the GNU Affero General Public License as published by the Free Software
49
- * Foundation, either version 3 of the License, or (at your option) any later version.
50
- *
51
- * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
52
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
53
- * See the GNU Affero General Public License for more details.
54
- *
55
- * You should have received a copy of the GNU Affero General Public License along with
56
- * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
57
- */
58
-
59
- /**
60
- * @author Theodore Kruczek.
61
- * @description Orbital Object ToolKit (OOTK) is a collection of tools for working
62
- * with satellites and other orbital objects.
63
- *
64
- * @license AGPL-3.0-or-later
65
- * @Copyright (c) 2020-2023 Theodore Kruczek
66
- *
67
- * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
68
- * terms of the GNU Affero General Public License as published by the Free Software
69
- * Foundation, either version 3 of the License, or (at your option) any later version.
70
- *
71
- * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
72
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
73
- * See the GNU Affero General Public License for more details.
74
- *
75
- * You should have received a copy of the GNU Affero General Public License along with
76
- * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
77
- */
@@ -1,5 +0,0 @@
1
- export declare class Sgp4Assembly {
2
- private module;
3
- propagateWasm(): void;
4
- loadWasm(path: string): Promise<void>;
5
- }
@@ -1,82 +0,0 @@
1
- /**
2
- * @author Theodore Kruczek.
3
- * @description Orbital Object ToolKit (OOTK) is a collection of tools for working
4
- * with satellites and other orbital objects.
5
- *
6
- * @file The Sgp4 module contains a TypeScript port of the 2020 version of
7
- * sgp4unit.cpp from "Fundamentals of Astrodynamics and Applications" by David
8
- * Vallado. All of the original comments and notes are inserted in the code below
9
- * in order provide context to the functions and clarify any adjustments made for
10
- * TypeScript/JavaScript compatibility.
11
- *
12
- * @license AGPL-3.0-or-later
13
- * @Copyright (c) 2020-2023 Theodore Kruczek
14
- *
15
- * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
16
- * terms of the GNU Affero General Public License as published by the Free Software
17
- * Foundation, either version 3 of the License, or (at your option) any later version.
18
- *
19
- * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
20
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
21
- * See the GNU Affero General Public License for more details.
22
- *
23
- * You should have received a copy of the GNU Affero General Public License along with
24
- * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
25
- */
26
- import { SatelliteRecord, StateVector, Vec3Flat } from '../types/types';
27
- declare class Sgp4 {
28
- static angle(vec1: Vec3Flat, vec2: Vec3Flat): number;
29
- static asinh(xval: number): number;
30
- static createSatrec(tleLine1: string, tleLine2: string, whichconst?: string, opsmode?: string): SatelliteRecord;
31
- static cross(vec1: Vec3Flat, vec2: Vec3Flat): Vec3Flat;
32
- static days2mdhms(year: number, days: number): {
33
- mon: number;
34
- day: number;
35
- hr: number;
36
- min: number;
37
- sec: number;
38
- };
39
- static dot(x: Vec3Flat, y: Vec3Flat): number;
40
- static gstime(jdut1: number): number;
41
- static invjday(jd: number, jdfrac: number): {
42
- year: number;
43
- mon: number;
44
- day: number;
45
- hr: number;
46
- min: number;
47
- sec: number;
48
- };
49
- static jday(year: number | Date, mon?: number, day?: number, hr?: number, min?: number, sec?: number, ms?: number): {
50
- jd: number;
51
- jdFrac: number;
52
- };
53
- static mag(x: Vec3Flat): number;
54
- static newtonnu(ecc: number, nu: number): {
55
- e0: number;
56
- m: number;
57
- };
58
- static propagate(satrec: SatelliteRecord, tsince: number): StateVector;
59
- static rv2coe(r: Vec3Flat, v: Vec3Flat, mus: number): {
60
- p: number;
61
- a: number;
62
- ecc: number;
63
- incl: number;
64
- omega: number;
65
- argp: number;
66
- nu: number;
67
- m: number;
68
- arglat: number;
69
- truelon: number;
70
- lonper: number;
71
- };
72
- static sgn(x: number): number;
73
- static sinh(x: number): number;
74
- private static dpper;
75
- private static dscom;
76
- private static dsinit;
77
- private static dspace;
78
- private static getgravconst;
79
- private static initl;
80
- private static sgp4init;
81
- }
82
- export { Sgp4 };
@@ -1,6 +0,0 @@
1
- export declare class TleFormatData {
2
- start: number;
3
- stop: number;
4
- length: number;
5
- constructor(start: number, end: number);
6
- }
package/dist/tle/tle.d.ts DELETED
@@ -1,374 +0,0 @@
1
- /**
2
- * @author Theodore Kruczek.
3
- * @description Orbital Object ToolKit (OOTK) is a collection of tools for working
4
- * with satellites and other orbital objects.
5
- *
6
- * @file The TLE module contains a collection of functions for working with TLEs.
7
- *
8
- * @license AGPL-3.0-or-later
9
- * @Copyright (c) 2020-2023 Theodore Kruczek
10
- *
11
- * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
12
- * terms of the GNU Affero General Public License as published by the Free Software
13
- * Foundation, either version 3 of the License, or (at your option) any later version.
14
- *
15
- * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
16
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17
- * See the GNU Affero General Public License for more details.
18
- *
19
- * You should have received a copy of the GNU Affero General Public License along with
20
- * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
21
- */
22
- import { Line1Data, Line2Data, TleLine1, TleLine2 } from '../types/types';
23
- type TleData = {
24
- satNum: number;
25
- intlDes: string;
26
- epochYear: number;
27
- epochDay: number;
28
- meanMoDev1: number;
29
- meanMoDev2: number;
30
- bstar: number;
31
- inclination: number;
32
- raan: number;
33
- eccentricity: number;
34
- argOfPerigee: number;
35
- meanAnomaly: number;
36
- meanMotion: number;
37
- };
38
- type TleDataFull = Line1Data & Line2Data;
39
- export declare class Tle {
40
- private static lineNumber;
41
- private static satNum;
42
- private static classification;
43
- private static intlDes;
44
- private static intlDesYear;
45
- private static intlDesLaunchNum;
46
- private static intlDesLaunchPiece;
47
- private static epochYear;
48
- private static epochDay;
49
- private static meanMoDev1;
50
- private static meanMoDev2;
51
- private static bstar;
52
- private static ephemerisType;
53
- private static elsetNum;
54
- private static checksum;
55
- private static inclination;
56
- private static raan;
57
- private static eccentricity;
58
- private static argPerigee;
59
- private static meanAnom;
60
- private static meanMo;
61
- private static revNum;
62
- /**
63
- * Parses the TLE into orbital data.
64
- *
65
- * If you want all of the data then use parseTleFull instead.
66
- * @param {TleLine1} tleLine1 TLE line 1
67
- * @param {TleLine2} tleLine2 TLE line 2
68
- * @returns {TleData} Returns most commonly used orbital data from TLE
69
- */
70
- static parseTle(tleLine1: TleLine1, tleLine2: TleLine2): TleData;
71
- /**
72
- * Parses all of the data contained in the TLE.
73
- *
74
- * If you only want the most commonly used data then use parseTle instead.
75
- * @param {TleLine1} tleLine1 The first line of the TLE to parse.
76
- * @param {TleLine2} tleLine2 The second line of the TLE to parse.
77
- * @returns {TleDataFull} Returns all of the data from the TLE.
78
- */
79
- static parseTleFull(tleLine1: TleLine1, tleLine2: TleLine2): TleDataFull;
80
- /**
81
- * Parse the first line of the TLE.
82
- * @param {TleLine1} tleLine1 The first line of the TLE to parse.
83
- * @returns {Line1Data} Returns the data from the first line of the TLE.
84
- */
85
- static parseLine1(tleLine1: TleLine1): Line1Data;
86
- /**
87
- * Parse the second line of the TLE.
88
- * @param {TleLine2} tleLine2 The second line of the TLE to parse.
89
- * @returns {Line2Data} Returns the data from the second line of the TLE.
90
- */
91
- static parseLine2(tleLine2: TleLine2): Line2Data;
92
- /**
93
- * This should always return a 1 or a 2.
94
- * @param {string} tleLine The first line of the TLE to parse.
95
- * @returns {number} The line number of the TLE.
96
- */
97
- static getLineNumber(tleLine: TleLine1 | TleLine2): 1 | 2;
98
- /**
99
- * See https://en.wikipedia.org/wiki/Satellite_Catalog_Number
100
- *
101
- * Range: 0 to 99999 or 26999.
102
- *
103
- * NOTE: To support Alpha-5, the first digit can be a letter.
104
- * This will be converted to a number in order to expand the range to 26999.
105
- *
106
- * Example: 25544 or B1234 (e.g. Sputnik's rocket body was number 00001)
107
- *
108
- * @param {string} tleLine The first line of the TLE to parse.
109
- * @returns {number} NORAD catalog number.
110
- */
111
- static getSatNum(tleLine: TleLine1 | TleLine2): number;
112
- /**
113
- * See https://en.wikipedia.org/wiki/Satellite_Catalog_Number
114
- *
115
- * Range: 0 to 99999 or 26999.
116
- *
117
- * NOTE: To support Alpha-5, the first digit can be a letter.
118
- * This will NOT be converted to a number. Use getSatNum() for that.
119
- *
120
- * Example: 25544 or B1234 (e.g. Sputnik's rocket body was number 00001)
121
- *
122
- * @param {string} tleLine The first line of the TLE to parse.
123
- * @returns {string} NORAD catalog number.
124
- */
125
- static getRawSatNum(tleLine: TleLine1 | TleLine2): string;
126
- /**
127
- * Satellite classification.
128
- * * 'U' = unclassified
129
- * * 'C' = confidential
130
- * * 'S' = secret
131
- *
132
- * Example: 'U'
133
- * @param {string} tleLine1 The first line of the TLE to parse.
134
- * @returns {string} The classification.
135
- */
136
- static getClassification(tleLine1: TleLine1): string;
137
- /**
138
- * International Designator (COSPAR ID)
139
- * See https://en.wikipedia.org/wiki/International_Designator
140
- * @param {string} tleLine1 The first line of the TLE to parse.
141
- * @returns {string} The International Designator.
142
- */
143
- static getIntlDes(tleLine1: TleLine1): string;
144
- /**
145
- * International Designator (COSPAR ID): Last 2 digits of launch year.
146
- *
147
- * Range: 00 to 99
148
- *
149
- * Example: 98
150
- *
151
- * @param {string} tleLine1 The first line of the TLE to parse.
152
- * @returns {number} The year of the International Designator.
153
- */
154
- static getIntlDesYear(tleLine1: TleLine1): number;
155
- /**
156
- * International Designator (COSPAR ID): Launch number of the year.
157
- *
158
- * Range: 1 to 999
159
- *
160
- * Example: 67
161
- *
162
- * @param {string} tleLine1 The first line of the TLE to parse.
163
- * @returns {number} The launch number of the International Designator.
164
- */
165
- static getIntlDesLaunchNum(tleLine1: string): number;
166
- /**
167
- * International Designator (COSPAR ID): Piece of the launch.
168
- *
169
- * Range: A to ZZZ
170
- *
171
- * Example: 'A'
172
- *
173
- * @param {string} tleLine1 The first line of the TLE to parse.
174
- * @returns {string} The launch piece of the International Designator.
175
- */
176
- static getIntlDesLaunchPiece(tleLine1: TleLine1): string;
177
- /**
178
- * Year when the TLE was generated (TLE epoch), last two digits.
179
- *
180
- * Range: 00 to 99
181
- *
182
- * Example: 17
183
- *
184
- * @param {string} tleLine1 The first line of the TLE to parse.
185
- * @returns {number} The year the TLE was generated.
186
- */
187
- static getEpochYear(tleLine1: TleLine1): number;
188
- /**
189
- * Year when the TLE was generated (TLE epoch), four digits.
190
- *
191
- * Range: 1957 to 2056
192
- *
193
- * Example: 2008
194
- *
195
- * @param {string} tleLine1 The first line of the TLE to parse.
196
- * @returns {number} The year the TLE was generated.
197
- */
198
- static getEpochYearFull(tleLine1: TleLine1): number;
199
- /**
200
- * Fractional day of the year when the TLE was generated (TLE epoch).
201
- *
202
- * Range: 1 to 365.99999999
203
- *
204
- * Example: 206.18396726
205
- *
206
- * @param {string} tleLine1 The first line of the TLE to parse.
207
- * @returns {number} The day of the year the TLE was generated.
208
- */
209
- static getEpochDay(tleLine1: string): number;
210
- /**
211
- * First Time Derivative of the Mean Motion divided by two. Defines how mean motion changes
212
- * over time, so TLE propagators can still be used to make reasonable guesses when
213
- * times are distant from the original TLE epoch.
214
- *
215
- * Units: Orbits / day ^ 2
216
- *
217
- * Example: 0.00001961
218
- *
219
- * @param {string} tleLine1 The first line of the TLE to parse.
220
- * @returns {number} The first derivative of the mean motion.
221
- */
222
- static getMeanMoDev1(tleLine1: TleLine1): number;
223
- /**
224
- * Second Time Derivative of Mean Motion divided by six (decimal point assumed). Measures rate
225
- * of change in the Mean Motion Dot so software can make reasonable guesses when times are
226
- * distant from the original TLE epoch.
227
- *
228
- * Usually zero, unless the satellite is manuevering or in a decaying orbit.
229
- *
230
- * Units: Orbits / day ^ 3.
231
- *
232
- * Example: 0 ('00000-0' in the original TLE [= 0.00000 * 10 ^ 0])
233
- *
234
- * @param {string} tleLine1 The first line of the TLE to parse.
235
- * @returns {number} The second derivative of the mean motion.
236
- */
237
- static getMeanMoDev2(tleLine1: string): number;
238
- /**
239
- * BSTAR drag term (decimal point assumed). Estimates the effects of
240
- * atmospheric drag on the satellite's motion.
241
- *
242
- * Units: EarthRadii ^ -1
243
- *
244
- * Example: 0.000036771 ('36771-4' in the original TLE [= 0.36771 * 10 ^ -4])
245
- *
246
- * @param {string} tleLine1 The first line of the TLE to parse.
247
- * @returns {number} The drag coefficient.
248
- */
249
- static getBstar(tleLine1: TleLine1): number;
250
- /**
251
- * Private value - used by United States Space Force to reference the orbit model used to
252
- * generate the TLE. Will always be seen as zero externally (e.g. by "us", unless you are
253
- * "them" - in which case, hello!).
254
- *
255
- * Example: 0
256
- *
257
- * @param {string} tleLine1 The first line of the TLE to parse.
258
- * @returns {number} The ephemeris type.
259
- */
260
- static getEphemerisType(tleLine1: TleLine1): number;
261
- /**
262
- * TLE element set number, incremented for each new TLE generated. 999 seems to mean the TLE
263
- * has maxed out.
264
- *
265
- * Range: Technically 1 to 9999, though in practice the maximum number seems to be 999.
266
- *
267
- * Example: 999
268
- * @param {string} tleLine1 The first line of the TLE to parse.
269
- * @returns {number} The element number.
270
- */
271
- static getElsetNum(tleLine1: TleLine1): number;
272
- /**
273
- * TLE line 1 checksum (modulo 10), for verifying the integrity of this line of the TLE.
274
- *
275
- * Range: 0 to 9
276
- * Example: 3
277
- *
278
- * @param {string} tleLine1 The first line of the TLE to parse.
279
- * @returns {number} The checksum value.
280
- */
281
- static getChecksum(tleLine1: TleLine1): number;
282
- /**
283
- * Inclination relative to the Earth's equatorial plane in degrees. 0 to 90 degrees is a
284
- * prograde orbit and 90 to 180 degrees is a retrograde orbit.
285
- *
286
- * Units: degrees
287
- *
288
- * Range: 0 to 180
289
- *
290
- * Example: 51.6400
291
- *
292
- * @param {string} tleLine2 The second line of the TLE to parse.
293
- * @returns {number} The inclination of the satellite.
294
- */
295
- static getInclination(tleLine2: TleLine2): number;
296
- /**
297
- * Right ascension of the ascending node in degrees. Essentially, this is the angle of the
298
- * satellite as it crosses northward (ascending) across the Earth's equator (equatorial
299
- * plane).
300
- *
301
- * Units: degrees
302
- *
303
- * Range: 0 to 359.9999
304
- *
305
- * Example: 208.9163
306
- *
307
- * @param {string} tleLine2 The second line of the TLE to parse.
308
- * @returns {number} The right ascension of the satellite.
309
- */
310
- static getRaan(tleLine2: TleLine2): number;
311
- /**
312
- * Orbital eccentricity, decimal point assumed. All artificial Earth satellites have an
313
- * eccentricity between 0 (perfect circle) and 1 (parabolic orbit).
314
- *
315
- * Range: 0 to 1
316
- *
317
- * Example: 0.0006317 (`0006317` in the original TLE)
318
- *
319
- * @param {string} tleLine2 The second line of the TLE to parse.
320
- * @returns {number} The eccentricity of the satellite.
321
- */
322
- static getEccentricity(tleLine2: TleLine2): number;
323
- /**
324
- * Argument of perigee. See https://en.wikipedia.org/wiki/Argument_of_perigee
325
- *
326
- * Units: degrees
327
- *
328
- * Range: 0 to 359.9999
329
- *
330
- * Example: 69.9862
331
- *
332
- * @param {string} tleLine2 The second line of the TLE to parse.
333
- * @returns {number} The argument of perigee in degrees.
334
- */
335
- static getArgOfPerigee(tleLine2: TleLine2): number;
336
- /**
337
- * Mean anomaly. Indicates where the satellite was located within its orbit at the time of the
338
- * TLE epoch.
339
- * See https://en.wikipedia.org/wiki/Mean_Anomaly
340
- *
341
- * Units: degrees
342
- *
343
- * Range: 0 to 359.9999
344
- *
345
- * Example: 25.2906
346
- *
347
- * @param {string} tleLine2 The second line of the TLE to parse.
348
- * @returns {number} The mean anomaly of the satellite.
349
- */
350
- static getMeanAnomaly(tleLine2: TleLine2): number;
351
- /**
352
- * Revolutions around the Earth per day (mean motion).
353
- * See https://en.wikipedia.org/wiki/Mean_Motion
354
- *
355
- * Range: 0 to 17 (theoretically)
356
- * Example: 15.54225995
357
- * @param {string} tleLine2 The second line of the TLE to parse.
358
- * @returns {number} The mean motion of the satellite.
359
- */
360
- static getMeanMotion(tleLine2: TleLine2): number;
361
- /**
362
- * Total satellite revolutions when this TLE was generated. This number rolls over
363
- * (e.g. 99999 -> 0).
364
- *
365
- * Range: 0 to 99999
366
- *
367
- * Example: 6766
368
- *
369
- * @param {string} tleLine2 The second line of the TLE to parse.
370
- * @returns {number} The revolutions around the Earth per day (mean motion).
371
- */
372
- static getRevNum(tleLine2: TleLine2): number;
373
- }
374
- export {};
@@ -1,55 +0,0 @@
1
- /**
2
- * @author Theodore Kruczek.
3
- * @description Orbital Object ToolKit (OOTK) is a collection of tools for working
4
- * with satellites and other orbital objects.
5
- *
6
- * @file The Transforms module contains a collection of conversions not contained
7
- * in the original SGP4 library such as ECI to ECF and ECF to RAE. This was based
8
- * on some of the functions in satellite.js.
9
- *
10
- * @license AGPL-3.0-or-later
11
- * @Copyright (c) 2020-2023 Theodore Kruczek
12
- *
13
- * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
14
- * terms of the GNU Affero General Public License as published by the Free Software
15
- * Foundation, either version 3 of the License, or (at your option) any later version.
16
- *
17
- * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
18
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19
- * See the GNU Affero General Public License for more details.
20
- *
21
- * You should have received a copy of the GNU Affero General Public License along with
22
- * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
23
- */
24
- import { Degrees, EcfVec3, EciVec3, LlaVec3, Radians, RaeVec3, SezVec3 } from '../types/types';
25
- declare class Transforms {
26
- static getDegLat(radians: Radians): Degrees;
27
- static getDegLon(radians: Radians): Degrees;
28
- static getRadLat(degrees: Degrees): Radians;
29
- static getRadLon(degrees: Degrees): Radians;
30
- static rad2deg(radians: Radians): Degrees;
31
- static deg2rad(degrees: Degrees): Radians;
32
- static ecf2eci(ecf: EcfVec3, gmst: number): EciVec3;
33
- static ecf2rae(lla: LlaVec3, ecf: EcfVec3): RaeVec3;
34
- /**
35
- * EciToGeodetic converts eci coordinates to lla coordinates
36
- * @param {vec3} eci takes xyz coordinates
37
- * @param {number} gmst takes a number in gmst time
38
- * @returns {array} array containing lla coordinates
39
- */
40
- static eci2lla(eci: EciVec3, gmst: number): LlaVec3;
41
- static eci2ecf(eci: EciVec3, gmst: number): EcfVec3;
42
- static lla2ecf(lla: LlaVec3): EcfVec3;
43
- static lla2sez(lla: LlaVec3, ecf: EcfVec3): SezVec3;
44
- static rae2sez(rae: RaeVec3): SezVec3;
45
- static rae2ecf(rae: RaeVec3, lla: LlaVec3): EcfVec3;
46
- /**
47
- * @param {Object} sez Containing SEZ coordinates
48
- * @param {Number} sez.s Positive horizontal vector S due south.
49
- * @param {Number} sez.e Positive horizontal vector E due east.
50
- * @param {Number} sez.z Vector Z normal to the surface of the earth (up).
51
- * @returns {RaeVec3} Rng, Az, El array
52
- */
53
- static sez2rae(sez: SezVec3): RaeVec3;
54
- }
55
- export { Transforms };