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.
- package/.eslintrc.json +10 -10
- package/CHANGELOG.md +122 -0
- package/README.md +27 -40
- package/lib/coordinate/Hill.d.ts +50 -0
- package/lib/coordinate/Hill.js +214 -0
- package/lib/coordinate/Hill.js.map +1 -0
- package/lib/coordinate/index.d.ts +1 -0
- package/lib/coordinate/index.js +2 -0
- package/lib/coordinate/index.js.map +1 -0
- package/lib/covariance/CovarianceSample.d.ts +44 -0
- package/lib/covariance/CovarianceSample.js +146 -0
- package/lib/covariance/CovarianceSample.js.map +1 -0
- package/lib/covariance/StateCovariance.d.ts +41 -0
- package/lib/covariance/StateCovariance.js +62 -0
- package/lib/covariance/StateCovariance.js.map +1 -0
- package/lib/force/AtmosphericDrag.d.ts +32 -0
- package/lib/force/AtmosphericDrag.js +66 -0
- package/lib/force/AtmosphericDrag.js.map +1 -0
- package/lib/force/EarthGravity.d.ts +28 -0
- package/lib/force/EarthGravity.js +115 -0
- package/lib/force/EarthGravity.js.map +1 -0
- package/{dist/ootk.d.ts → lib/force/Force.d.ts} +10 -10
- package/lib/force/Force.js +30 -0
- package/lib/force/Force.js.map +1 -0
- package/lib/force/ForceModel.d.ts +38 -0
- package/lib/force/ForceModel.js +71 -0
- package/lib/force/ForceModel.js.map +1 -0
- package/lib/force/Gravity.d.ts +41 -0
- package/lib/force/Gravity.js +48 -0
- package/lib/force/Gravity.js.map +1 -0
- package/lib/force/SolarRadiationPressure.d.ts +27 -0
- package/lib/force/SolarRadiationPressure.js +42 -0
- package/lib/force/SolarRadiationPressure.js.map +1 -0
- package/lib/force/ThirdBodyGravity.d.ts +27 -0
- package/lib/force/ThirdBodyGravity.js +56 -0
- package/lib/force/ThirdBodyGravity.js.map +1 -0
- package/lib/force/Thrust.d.ts +35 -0
- package/lib/force/Thrust.js +53 -0
- package/lib/force/Thrust.js.map +1 -0
- package/lib/interpolator/ChebyshevCoefficients.d.ts +54 -0
- package/lib/interpolator/ChebyshevCoefficients.js +90 -0
- package/lib/interpolator/ChebyshevCoefficients.js.map +1 -0
- package/lib/interpolator/ChebyshevInterpolator.d.ts +39 -0
- package/lib/interpolator/ChebyshevInterpolator.js +71 -0
- package/lib/interpolator/ChebyshevInterpolator.js.map +1 -0
- package/lib/interpolator/CubicSpline.d.ts +36 -0
- package/lib/interpolator/CubicSpline.js +64 -0
- package/lib/interpolator/CubicSpline.js.map +1 -0
- package/lib/interpolator/CubicSplineInterpolator.d.ts +37 -0
- package/lib/interpolator/CubicSplineInterpolator.js +78 -0
- package/lib/interpolator/CubicSplineInterpolator.js.map +1 -0
- package/lib/interpolator/FieldInterpolator.d.ts +26 -0
- package/lib/interpolator/FieldInterpolator.js +31 -0
- package/lib/interpolator/FieldInterpolator.js.map +1 -0
- package/lib/interpolator/Interpolator.d.ts +23 -0
- package/lib/interpolator/Interpolator.js +48 -0
- package/lib/interpolator/Interpolator.js.map +1 -0
- package/lib/interpolator/LagrangeInterpolator.d.ts +42 -0
- package/lib/interpolator/LagrangeInterpolator.js +156 -0
- package/lib/interpolator/LagrangeInterpolator.js.map +1 -0
- package/lib/interpolator/StateInterpolator.d.ts +29 -0
- package/lib/interpolator/StateInterpolator.js +37 -0
- package/lib/interpolator/StateInterpolator.js.map +1 -0
- package/lib/interpolator/VerletBlendInterpolator.d.ts +44 -0
- package/lib/interpolator/VerletBlendInterpolator.js +115 -0
- package/lib/interpolator/VerletBlendInterpolator.js.map +1 -0
- package/lib/maneuver/TwoBurnOrbitTransfer.d.ts +43 -0
- package/lib/maneuver/TwoBurnOrbitTransfer.js +62 -0
- package/lib/maneuver/TwoBurnOrbitTransfer.js.map +1 -0
- package/lib/maneuver/Waypoint.d.ts +66 -0
- package/lib/maneuver/Waypoint.js +152 -0
- package/lib/maneuver/Waypoint.js.map +1 -0
- package/lib/objects/DetailedSatellite.d.ts +94 -0
- package/lib/objects/DetailedSatellite.js +140 -0
- package/lib/objects/DetailedSatellite.js.map +1 -0
- package/lib/objects/DetailedSensor.d.ts +43 -0
- package/lib/objects/DetailedSensor.js +45 -0
- package/lib/objects/DetailedSensor.js.map +1 -0
- package/{dist/objects/space-object.d.ts → lib/objects/LandObject.d.ts} +19 -21
- package/lib/objects/LandObject.js +28 -0
- package/lib/objects/LandObject.js.map +1 -0
- package/lib/objects/Marker.d.ts +21 -0
- package/lib/objects/Marker.js +25 -0
- package/lib/objects/Marker.js.map +1 -0
- package/lib/objects/index.d.ts +5 -4
- package/lib/objects/index.js +5 -4
- package/lib/objects/index.js.map +1 -1
- package/lib/observation/Observation.d.ts +51 -0
- package/lib/observation/Observation.js +71 -0
- package/lib/observation/Observation.js.map +1 -0
- package/lib/observation/ObservationOptical.d.ts +47 -0
- package/lib/observation/ObservationOptical.js +101 -0
- package/lib/observation/ObservationOptical.js.map +1 -0
- package/lib/observation/ObservationRadar.d.ts +43 -0
- package/lib/observation/ObservationRadar.js +90 -0
- package/lib/observation/ObservationRadar.js.map +1 -0
- package/lib/observation/ObservationUtils.d.ts +21 -0
- package/lib/observation/ObservationUtils.js +33 -0
- package/lib/observation/ObservationUtils.js.map +1 -0
- package/lib/observation/PropagatorPairs.d.ts +31 -0
- package/lib/observation/PropagatorPairs.js +40 -0
- package/lib/observation/PropagatorPairs.js.map +1 -0
- package/lib/ootk.d.ts +10 -8
- package/lib/ootk.js +10 -8
- package/lib/ootk.js.map +1 -1
- package/lib/operations/BoxMuller.d.ts +41 -0
- package/lib/operations/BoxMuller.js +66 -0
- package/lib/operations/BoxMuller.js.map +1 -0
- package/lib/operations/EulerAngles.d.ts +50 -0
- package/lib/operations/EulerAngles.js +111 -0
- package/lib/operations/EulerAngles.js.map +1 -0
- package/lib/operations/Quaternion.d.ts +57 -0
- package/lib/operations/Quaternion.js +164 -0
- package/lib/operations/Quaternion.js.map +1 -0
- package/lib/operations/RandomGaussianSource.d.ts +25 -0
- package/lib/operations/RandomGaussianSource.js +43 -0
- package/lib/operations/RandomGaussianSource.js.map +1 -0
- package/lib/operations/index.d.ts +4 -0
- package/lib/operations/index.js +5 -0
- package/lib/operations/index.js.map +1 -0
- package/lib/optimize/ChebyshevCompressor.d.ts +31 -0
- package/lib/optimize/ChebyshevCompressor.js +80 -0
- package/lib/optimize/ChebyshevCompressor.js.map +1 -0
- package/lib/optimize/DownhillSimplex.d.ts +50 -0
- package/lib/optimize/DownhillSimplex.js +168 -0
- package/lib/optimize/DownhillSimplex.js.map +1 -0
- package/lib/optimize/GoldenSection.d.ts +33 -0
- package/lib/optimize/GoldenSection.js +49 -0
- package/lib/optimize/GoldenSection.js.map +1 -0
- package/lib/optimize/PolynomialRegression.d.ts +37 -0
- package/lib/optimize/PolynomialRegression.js +66 -0
- package/lib/optimize/PolynomialRegression.js.map +1 -0
- package/lib/optimize/PolynomicalRegressionResult.d.ts +28 -0
- package/lib/optimize/PolynomicalRegressionResult.js +32 -0
- package/lib/optimize/PolynomicalRegressionResult.js.map +1 -0
- package/lib/optimize/SimpleLinearRegression.d.ts +41 -0
- package/lib/optimize/SimpleLinearRegression.js +107 -0
- package/lib/optimize/SimpleLinearRegression.js.map +1 -0
- package/lib/optimize/SimplexEntry.d.ts +33 -0
- package/lib/optimize/SimplexEntry.js +39 -0
- package/lib/optimize/SimplexEntry.js.map +1 -0
- package/lib/orbit_determination/BatchLeastSquaresOD.d.ts +54 -0
- package/lib/orbit_determination/BatchLeastSquaresOD.js +118 -0
- package/lib/orbit_determination/BatchLeastSquaresOD.js.map +1 -0
- package/lib/orbit_determination/BatchLeastSquaresResult.d.ts +29 -0
- package/lib/orbit_determination/BatchLeastSquaresResult.js +31 -0
- package/lib/orbit_determination/BatchLeastSquaresResult.js.map +1 -0
- package/lib/orbit_determination/GibbsIOD.d.ts +33 -0
- package/lib/orbit_determination/GibbsIOD.js +70 -0
- package/lib/orbit_determination/GibbsIOD.js.map +1 -0
- package/lib/orbit_determination/GoodingIOD.d.ts +52 -0
- package/lib/orbit_determination/GoodingIOD.js +244 -0
- package/lib/orbit_determination/GoodingIOD.js.map +1 -0
- package/lib/{objects/space-object.d.ts → orbit_determination/HerrickGibbsIOD.d.ts} +17 -22
- package/lib/orbit_determination/HerrickGibbsIOD.js +49 -0
- package/lib/orbit_determination/HerrickGibbsIOD.js.map +1 -0
- package/lib/orbit_determination/LambertIOD.d.ts +46 -0
- package/lib/orbit_determination/LambertIOD.js +199 -0
- package/lib/orbit_determination/LambertIOD.js.map +1 -0
- package/lib/orbit_determination/ModifiedGoodingIOD.d.ts +41 -0
- package/lib/orbit_determination/ModifiedGoodingIOD.js +82 -0
- package/lib/orbit_determination/ModifiedGoodingIOD.js.map +1 -0
- package/lib/propagator/DormandPrince54Propagator.d.ts +29 -0
- package/lib/propagator/DormandPrince54Propagator.js +68 -0
- package/lib/propagator/DormandPrince54Propagator.js.map +1 -0
- package/lib/propagator/KeplerPropagator.d.ts +36 -0
- package/lib/propagator/KeplerPropagator.js +81 -0
- package/lib/propagator/KeplerPropagator.js.map +1 -0
- package/lib/propagator/Propagator.d.ts +35 -0
- package/lib/propagator/Propagator.js +163 -0
- package/lib/propagator/Propagator.js.map +1 -0
- package/lib/propagator/RkCheckpoint.d.ts +23 -0
- package/lib/propagator/RkCheckpoint.js +26 -0
- package/lib/propagator/RkCheckpoint.js.map +1 -0
- package/lib/propagator/RkResult.d.ts +24 -0
- package/lib/propagator/RkResult.js +28 -0
- package/lib/propagator/RkResult.js.map +1 -0
- package/lib/propagator/RungeKutta4Propagator.d.ts +46 -0
- package/lib/propagator/RungeKutta4Propagator.js +132 -0
- package/lib/propagator/RungeKutta4Propagator.js.map +1 -0
- package/lib/propagator/RungeKutta89Propagator.d.ts +29 -0
- package/lib/propagator/RungeKutta89Propagator.js +130 -0
- package/lib/propagator/RungeKutta89Propagator.js.map +1 -0
- package/lib/propagator/RungeKuttaAdaptive.d.ts +52 -0
- package/lib/propagator/RungeKuttaAdaptive.js +152 -0
- package/lib/propagator/RungeKuttaAdaptive.js.map +1 -0
- package/lib/propagator/Sgp4Propagator.d.ts +35 -0
- package/lib/propagator/Sgp4Propagator.js +55 -0
- package/lib/propagator/Sgp4Propagator.js.map +1 -0
- package/lib/smoothing/ExponentialSmoothing.d.ts +24 -0
- package/lib/smoothing/ExponentialSmoothing.js +82 -0
- package/lib/smoothing/ExponentialSmoothing.js.map +1 -0
- package/lib/types/types.d.ts +65 -584
- package/lib/types/types.js +21 -33
- package/lib/types/types.js.map +1 -1
- package/package.json +16 -14
- package/.prettierrc +0 -17
- package/babel.config.js +0 -16
- package/codecov.yml +0 -21
- package/dist/objects/base-object.d.ts +0 -40
- package/dist/objects/detailed-sat.d.ts +0 -66
- package/dist/objects/index.d.ts +0 -4
- package/dist/objects/sat.d.ts +0 -92
- package/dist/objects/sensor.d.ts +0 -93
- package/dist/objects/star.d.ts +0 -46
- package/dist/ootk.js +0 -2
- package/dist/ootk.js.LICENSE.txt +0 -77
- package/dist/sgp4/sgp4.d.ts +0 -82
- package/dist/tle/tle-format-data.d.ts +0 -6
- package/dist/tle/tle.d.ts +0 -375
- package/dist/transforms/transforms.d.ts +0 -94
- package/dist/types/types.d.ts +0 -605
- package/dist/utils/constants.d.ts +0 -34
- package/dist/utils/moon-math.d.ts +0 -113
- package/dist/utils/sun-math.d.ts +0 -230
- package/dist/utils/utils.d.ts +0 -39
- package/lib/objects/base-object.d.ts +0 -40
- package/lib/objects/base-object.js +0 -79
- package/lib/objects/base-object.js.map +0 -1
- package/lib/objects/detailed-sat.d.ts +0 -66
- package/lib/objects/detailed-sat.js +0 -149
- package/lib/objects/detailed-sat.js.map +0 -1
- package/lib/objects/sat.d.ts +0 -92
- package/lib/objects/sat.js +0 -188
- package/lib/objects/sat.js.map +0 -1
- package/lib/objects/sensor.d.ts +0 -93
- package/lib/objects/sensor.js +0 -273
- package/lib/objects/sensor.js.map +0 -1
- package/lib/objects/space-object.js +0 -60
- package/lib/objects/space-object.js.map +0 -1
- package/lib/objects/star.d.ts +0 -46
- package/lib/objects/star.js +0 -91
- package/lib/objects/star.js.map +0 -1
- package/lib/sgp4/sgp4.d.ts +0 -82
- package/lib/sgp4/sgp4.js +0 -3262
- package/lib/sgp4/sgp4.js.map +0 -1
- package/lib/tle/tle-format-data.d.ts +0 -6
- package/lib/tle/tle-format-data.js +0 -10
- package/lib/tle/tle-format-data.js.map +0 -1
- package/lib/tle/tle.d.ts +0 -375
- package/lib/tle/tle.js +0 -611
- package/lib/tle/tle.js.map +0 -1
- package/lib/transforms/transforms.d.ts +0 -94
- package/lib/transforms/transforms.js +0 -308
- package/lib/transforms/transforms.js.map +0 -1
- package/lib/utils/constants.d.ts +0 -34
- package/lib/utils/constants.js +0 -35
- package/lib/utils/constants.js.map +0 -1
- package/lib/utils/moon-math.d.ts +0 -113
- package/lib/utils/moon-math.js +0 -387
- package/lib/utils/moon-math.js.map +0 -1
- package/lib/utils/sun-math.d.ts +0 -230
- package/lib/utils/sun-math.js +0 -422
- package/lib/utils/sun-math.js.map +0 -1
- package/lib/utils/utils.d.ts +0 -39
- package/lib/utils/utils.js +0 -102
- package/lib/utils/utils.js.map +0 -1
- package/sandbox.html +0 -8
- package/tsconfig.base.json +0 -31
- package/tsconfig.build.json +0 -14
- /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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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":
|
|
80
|
-
"max-statements": ["error", { "max":
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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
|
-
[](https://github.com/thkruz/ootk/actions?query=workflow%3ACI)
|
|
3
|
+
[](https://github.com/thkruz/ootk/actions?query=workflow%3ACI)
|
|
4
|
+

|
|
5
|
+
[](https://www.npmjs.com/package/ootk)
|
|
6
|
+
[](https://github.com/thkruz/ootk/issues)
|
|
7
|
+
[](https://codecov.io/gh/thkruz/ootk)
|
|
8
|
+
[](LICENSE.MD)
|
|
4
9
|
|
|
5
10
|
> An Orbital Object Toolkit in Your Web Browser
|
|
6
11
|
|
|
7
|
-
**ootk** is a
|
|
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
|
|
42
|
+
import { Sgp4 } as Ootk from 'ootk';
|
|
46
43
|
...
|
|
47
|
-
const satrec =
|
|
44
|
+
const satrec = Sgp4.createSatrec(line1, line2, 'wgs72', 'i');
|
|
48
45
|
```
|
|
49
46
|
|
|
50
|
-
|
|
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
|
|
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
|
|
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
|
-
- [
|
|
166
|
-
- [
|
|
167
|
-
- [
|
|
168
|
-
- [
|
|
169
|
-
- [
|
|
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
|
-
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/coordinate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
|