ootk 4.0.0-9 → 4.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/CHANGELOG.md +66 -2
- package/README.md +4 -4
- package/dist/coordinate/Hill.d.ts +2 -2
- package/dist/coordinate/Hill.js +1 -1
- package/dist/coordinate/Hill.js.map +1 -1
- package/dist/coordinate/index.d.ts +1 -1
- package/dist/coordinate/index.js +1 -1
- package/dist/coordinate/index.js.map +1 -1
- package/dist/covariance/CovarianceSample.d.ts +3 -3
- package/dist/covariance/CovarianceSample.js +3 -3
- package/dist/covariance/CovarianceSample.js.map +1 -1
- package/dist/covariance/StateCovariance.js.map +1 -1
- package/dist/enums/CatalogSource.d.ts +2 -0
- package/dist/enums/CatalogSource.js +2 -0
- package/dist/enums/CatalogSource.js.map +1 -1
- package/dist/enums/index.d.ts +2 -2
- package/dist/enums/index.js +2 -2
- package/dist/enums/index.js.map +1 -1
- package/dist/force/AtmosphericDrag.d.ts +1 -1
- package/dist/force/AtmosphericDrag.js.map +1 -1
- package/dist/force/EarthGravity.d.ts +1 -1
- package/dist/force/EarthGravity.js.map +1 -1
- package/dist/force/ForceModel.d.ts +1 -1
- package/dist/force/ForceModel.js +5 -5
- package/dist/force/ForceModel.js.map +1 -1
- package/dist/force/Gravity.d.ts +1 -1
- package/dist/force/SolarRadiationPressure.d.ts +1 -1
- package/dist/force/SolarRadiationPressure.js +1 -1
- package/dist/force/SolarRadiationPressure.js.map +1 -1
- package/dist/force/ThirdBodyGravity.d.ts +1 -1
- package/dist/force/ThirdBodyGravity.js.map +1 -1
- package/dist/force/Thrust.d.ts +1 -1
- package/dist/force/index.d.ts +1 -1
- package/dist/force/index.js +1 -1
- package/dist/force/index.js.map +1 -1
- package/dist/interfaces/RfSensorParams.d.ts +10 -7
- package/dist/interfaces/RfSensorParams.js +1 -1
- package/dist/interfaces/index.d.ts +1 -1
- package/dist/interpolator/ChebyshevCoefficients.js.map +1 -1
- package/dist/interpolator/ChebyshevInterpolator.d.ts +2 -2
- package/dist/interpolator/ChebyshevInterpolator.js +1 -1
- package/dist/interpolator/ChebyshevInterpolator.js.map +1 -1
- package/dist/interpolator/CubicSplineInterpolator.d.ts +2 -2
- package/dist/interpolator/CubicSplineInterpolator.js +2 -2
- package/dist/interpolator/CubicSplineInterpolator.js.map +1 -1
- package/dist/interpolator/FieldInterpolator.d.ts +1 -1
- package/dist/interpolator/FieldInterpolator.js +1 -1
- package/dist/interpolator/FieldInterpolator.js.map +1 -1
- package/dist/interpolator/Interpolator.js.map +1 -1
- package/dist/interpolator/LagrangeInterpolator.d.ts +1 -1
- package/dist/interpolator/LagrangeInterpolator.js +1 -1
- package/dist/interpolator/LagrangeInterpolator.js.map +1 -1
- package/dist/interpolator/StateInterpolator.d.ts +1 -1
- package/dist/interpolator/StateInterpolator.js +1 -1
- package/dist/interpolator/StateInterpolator.js.map +1 -1
- package/dist/interpolator/VerletBlendInterpolator.d.ts +3 -3
- package/dist/interpolator/VerletBlendInterpolator.js +3 -3
- package/dist/interpolator/VerletBlendInterpolator.js.map +1 -1
- package/dist/main.d.ts +10 -10
- package/dist/main.js +10 -10
- package/dist/main.js.map +1 -1
- package/dist/maneuver/TwoBurnOrbitTransfer.d.ts +1 -1
- package/dist/maneuver/TwoBurnOrbitTransfer.js +1 -1
- package/dist/maneuver/TwoBurnOrbitTransfer.js.map +1 -1
- package/dist/maneuver/Waypoint.d.ts +3 -3
- package/dist/maneuver/Waypoint.js +5 -5
- package/dist/maneuver/Waypoint.js.map +1 -1
- package/dist/objects/DetailedSatellite.d.ts +1 -1
- package/dist/objects/DetailedSatellite.js +1 -1
- package/dist/objects/DetailedSatellite.js.map +1 -1
- package/dist/objects/DetailedSensor.d.ts +6 -5
- package/dist/objects/DetailedSensor.js +2 -0
- package/dist/objects/DetailedSensor.js.map +1 -1
- package/dist/objects/RfSensor.d.ts +43 -11
- package/dist/objects/RfSensor.js +60 -16
- package/dist/objects/RfSensor.js.map +1 -1
- package/dist/objects/index.d.ts +5 -5
- package/dist/objects/index.js +5 -5
- package/dist/objects/index.js.map +1 -1
- package/dist/observation/Observation.d.ts +3 -3
- package/dist/observation/ObservationOptical.d.ts +4 -4
- package/dist/observation/ObservationOptical.js +2 -2
- package/dist/observation/ObservationOptical.js.map +1 -1
- package/dist/observation/ObservationRadar.d.ts +4 -4
- package/dist/observation/ObservationRadar.js +2 -2
- package/dist/observation/ObservationRadar.js.map +1 -1
- package/dist/observation/ObservationUtils.js.map +1 -1
- package/dist/observation/PropagatorPairs.d.ts +1 -1
- package/dist/operations/BoxMuller.js.map +1 -1
- package/dist/operations/Quaternion.js.map +1 -1
- package/dist/operations/RandomGaussianSource.js +1 -1
- package/dist/operations/RandomGaussianSource.js.map +1 -1
- package/dist/operations/index.d.ts +4 -4
- package/dist/operations/index.js +4 -4
- package/dist/operations/index.js.map +1 -1
- package/dist/optimize/ChebyshevCompressor.d.ts +2 -2
- package/dist/optimize/ChebyshevCompressor.js +2 -2
- package/dist/optimize/ChebyshevCompressor.js.map +1 -1
- package/dist/optimize/DownhillSimplex.d.ts +1 -1
- package/dist/optimize/DownhillSimplex.js +1 -1
- package/dist/optimize/DownhillSimplex.js.map +1 -1
- package/dist/optimize/GoldenSection.d.ts +1 -1
- package/dist/optimize/GoldenSection.js.map +1 -1
- package/dist/optimize/PolynomialRegression.d.ts +1 -1
- package/dist/optimize/PolynomialRegression.js +2 -2
- package/dist/optimize/PolynomialRegression.js.map +1 -1
- package/dist/optimize/SimpleLinearRegression.js.map +1 -1
- package/dist/orbit_determination/BatchLeastSquaresOD.d.ts +3 -3
- package/dist/orbit_determination/BatchLeastSquaresOD.js +6 -6
- package/dist/orbit_determination/BatchLeastSquaresOD.js.map +1 -1
- package/dist/orbit_determination/BatchLeastSquaresResult.d.ts +1 -1
- package/dist/orbit_determination/GibbsIOD.js +2 -2
- package/dist/orbit_determination/GibbsIOD.js.map +1 -1
- package/dist/orbit_determination/GoodingIOD.d.ts +1 -1
- package/dist/orbit_determination/GoodingIOD.js +4 -4
- package/dist/orbit_determination/GoodingIOD.js.map +1 -1
- package/dist/orbit_determination/LambertIOD.js.map +1 -1
- package/dist/orbit_determination/ModifiedGoodingIOD.d.ts +1 -1
- package/dist/orbit_determination/ModifiedGoodingIOD.js +4 -4
- package/dist/orbit_determination/ModifiedGoodingIOD.js.map +1 -1
- package/dist/propagator/DormandPrince54Propagator.d.ts +1 -1
- package/dist/propagator/DormandPrince54Propagator.js +1 -1
- package/dist/propagator/DormandPrince54Propagator.js.map +1 -1
- package/dist/propagator/KeplerPropagator.d.ts +3 -3
- package/dist/propagator/KeplerPropagator.js +2 -2
- package/dist/propagator/KeplerPropagator.js.map +1 -1
- package/dist/propagator/Propagator.d.ts +2 -2
- package/dist/propagator/Propagator.js +2 -2
- package/dist/propagator/Propagator.js.map +1 -1
- package/dist/propagator/RungeKutta4Propagator.d.ts +4 -4
- package/dist/propagator/RungeKutta4Propagator.js +3 -3
- package/dist/propagator/RungeKutta4Propagator.js.map +1 -1
- package/dist/propagator/RungeKutta89Propagator.d.ts +1 -1
- package/dist/propagator/RungeKutta89Propagator.js +1 -1
- package/dist/propagator/RungeKutta89Propagator.js.map +1 -1
- package/dist/propagator/RungeKuttaAdaptive.d.ts +4 -4
- package/dist/propagator/RungeKuttaAdaptive.js +5 -5
- package/dist/propagator/RungeKuttaAdaptive.js.map +1 -1
- package/dist/propagator/Sgp4Propagator.d.ts +3 -3
- package/dist/propagator/Sgp4Propagator.js +1 -1
- package/dist/propagator/Sgp4Propagator.js.map +1 -1
- package/dist/propagator/index.d.ts +3 -3
- package/dist/propagator/index.js +3 -3
- package/dist/propagator/index.js.map +1 -1
- package/dist/smoothing/ExponentialSmoothing.js.map +1 -1
- package/dist/transforms/index.d.ts +1 -1
- package/dist/transforms/index.js +1 -1
- package/dist/transforms/index.js.map +1 -1
- package/dist/transforms/transforms.d.ts +5 -3
- package/dist/transforms/transforms.js +7 -5
- package/dist/transforms/transforms.js.map +1 -1
- package/dist/types/types.d.ts +5 -4
- package/dist/utils/functions.d.ts +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.js +2 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/jacobian.d.ts +1 -1
- package/dist/utils/jacobian.js.map +1 -1
- package/package.json +17 -14
- package/src/coordinate/Hill.ts +2 -2
- package/src/coordinate/index.ts +1 -1
- package/src/covariance/CovarianceSample.ts +4 -4
- package/src/enums/CatalogSource.ts +3 -1
- package/src/enums/index.ts +2 -2
- package/src/force/AtmosphericDrag.ts +1 -1
- package/src/force/EarthGravity.ts +1 -1
- package/src/force/ForceModel.ts +7 -7
- package/src/force/Gravity.ts +1 -1
- package/src/force/SolarRadiationPressure.ts +1 -1
- package/src/force/ThirdBodyGravity.ts +1 -1
- package/src/force/Thrust.ts +1 -1
- package/src/force/index.ts +1 -1
- package/src/interfaces/RfSensorParams.ts +10 -7
- package/src/interfaces/index.ts +1 -1
- package/src/interpolator/ChebyshevInterpolator.ts +2 -2
- package/src/interpolator/CubicSplineInterpolator.ts +2 -2
- package/src/interpolator/FieldInterpolator.ts +1 -1
- package/src/interpolator/LagrangeInterpolator.ts +1 -1
- package/src/interpolator/StateInterpolator.ts +1 -1
- package/src/interpolator/VerletBlendInterpolator.ts +3 -3
- package/src/main.ts +10 -10
- package/src/maneuver/TwoBurnOrbitTransfer.ts +1 -1
- package/src/maneuver/Waypoint.ts +6 -6
- package/src/objects/DetailedSatellite.ts +2 -2
- package/src/objects/DetailedSensor.ts +7 -5
- package/src/objects/RfSensor.ts +65 -18
- package/src/objects/index.ts +5 -5
- package/src/observation/Observation.ts +3 -3
- package/src/observation/ObservationOptical.ts +5 -5
- package/src/observation/ObservationRadar.ts +5 -5
- package/src/observation/PropagatorPairs.ts +1 -1
- package/src/operations/RandomGaussianSource.ts +1 -1
- package/src/operations/index.ts +4 -4
- package/src/optimize/ChebyshevCompressor.ts +3 -3
- package/src/optimize/DownhillSimplex.ts +1 -1
- package/src/optimize/GoldenSection.ts +1 -1
- package/src/optimize/PolynomialRegression.ts +2 -2
- package/src/orbit_determination/BatchLeastSquaresOD.ts +8 -8
- package/src/orbit_determination/BatchLeastSquaresResult.ts +1 -1
- package/src/orbit_determination/GibbsIOD.ts +2 -2
- package/src/orbit_determination/GoodingIOD.ts +5 -5
- package/src/orbit_determination/ModifiedGoodingIOD.ts +6 -6
- package/src/propagator/DormandPrince54Propagator.ts +1 -1
- package/src/propagator/KeplerPropagator.ts +3 -3
- package/src/propagator/Propagator.ts +3 -3
- package/src/propagator/RungeKutta4Propagator.ts +4 -4
- package/src/propagator/RungeKutta89Propagator.ts +1 -1
- package/src/propagator/RungeKuttaAdaptive.ts +6 -6
- package/src/propagator/Sgp4Propagator.ts +3 -3
- package/src/propagator/index.ts +3 -3
- package/src/transforms/index.ts +1 -1
- package/src/transforms/transforms.ts +8 -5
- package/src/types/types.ts +5 -4
- package/src/utils/functions.ts +1 -1
- package/src/utils/index.ts +2 -2
- package/src/utils/jacobian.ts +1 -1
package/src/objects/RfSensor.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author Theodore Kruczek.
|
|
3
|
-
* @license
|
|
3
|
+
* @license AGPL-3.0-or-later
|
|
4
4
|
* @copyright (c) 2022-2024 Theodore Kruczek Permission is
|
|
5
5
|
* hereby granted, free of charge, to any person obtaining a copy of this
|
|
6
6
|
* software and associated documentation files (the "Software"), to deal in the
|
|
@@ -21,13 +21,14 @@
|
|
|
21
21
|
* SOFTWARE.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
import { DEG2RAD, Degrees, RAD2DEG, Radians,
|
|
25
|
-
import { azel2uv, uv2azel, RfSensorParams } from '../main';
|
|
24
|
+
import { DEG2RAD, Degrees, RAD2DEG, Radians, SpaceObjectType } from 'ootk-core';
|
|
25
|
+
import { azel2uv, uv2azel, RfSensorParams } from '../main.js';
|
|
26
|
+
import { DetailedSensor } from './DetailedSensor.js';
|
|
26
27
|
|
|
27
|
-
export class RfSensor extends
|
|
28
|
-
boresightAz: Degrees;
|
|
29
|
-
boresightEl: Degrees;
|
|
30
|
-
|
|
28
|
+
export class RfSensor extends DetailedSensor {
|
|
29
|
+
boresightAz: Degrees[];
|
|
30
|
+
boresightEl: Degrees[];
|
|
31
|
+
faces: number;
|
|
31
32
|
beamwidth: Degrees;
|
|
32
33
|
|
|
33
34
|
constructor(info: RfSensorParams) {
|
|
@@ -44,36 +45,82 @@ export class RfSensor extends Sensor {
|
|
|
44
45
|
|
|
45
46
|
this.boresightAz = info.boresightAz;
|
|
46
47
|
this.boresightEl = info.boresightEl;
|
|
48
|
+
if (info.boresightAz.length !== info.boresightEl.length) {
|
|
49
|
+
throw new Error('Boresight azimuth and elevation arrays must be the same length');
|
|
50
|
+
}
|
|
51
|
+
this.faces = info.boresightAz.length;
|
|
47
52
|
this.beamwidth = info.beamwidth;
|
|
48
|
-
this.freqBand = info.freqBand;
|
|
49
53
|
}
|
|
50
54
|
|
|
51
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Converts azimuth and elevation angles to unit vector coordinates.
|
|
57
|
+
* @param az - The azimuth angle in degrees.
|
|
58
|
+
* @param el - The elevation angle in degrees.
|
|
59
|
+
* @param face - The face number (optional).
|
|
60
|
+
* @returns The unit vector coordinates.
|
|
61
|
+
*/
|
|
62
|
+
uvFromAzEl(az: Degrees, el: Degrees, face?: number) {
|
|
52
63
|
const azRad = (az * DEG2RAD) as Radians;
|
|
53
64
|
const elRad = (el * DEG2RAD) as Radians;
|
|
54
|
-
const azDiff = (azRad - this.boresightAzRad) as Radians;
|
|
55
|
-
const elDiff = (elRad - this.boresightElRad) as Radians;
|
|
65
|
+
const azDiff = (azRad - this.boresightAzRad(face ?? 0)) as Radians;
|
|
66
|
+
const elDiff = (elRad - this.boresightElRad(face ?? 0)) as Radians;
|
|
56
67
|
|
|
57
68
|
return azel2uv(azDiff, elDiff, this.beamwidthRad);
|
|
58
69
|
}
|
|
59
70
|
|
|
60
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Converts the given UV coordinates to azimuth and elevation angles.
|
|
73
|
+
* @param u - The U coordinate.
|
|
74
|
+
* @param v - The V coordinate.
|
|
75
|
+
* @param face - The face number for multi-faced sensors. (optional)
|
|
76
|
+
* @returns An object containing the azimuth and elevation angles in degrees.
|
|
77
|
+
* @throws Error if face number is not specified for multi-faced sensors.
|
|
78
|
+
*/
|
|
79
|
+
azElFromUV(u: number, v: number, face?: number) {
|
|
80
|
+
if (!face && this.faces > 1) {
|
|
81
|
+
throw new Error('Face number must be specified for multi-faced sensors');
|
|
82
|
+
}
|
|
83
|
+
|
|
61
84
|
const { az, el } = uv2azel(u, v, this.beamwidthRad);
|
|
62
85
|
|
|
63
86
|
return {
|
|
64
|
-
az: ((az + this.boresightAz) * RAD2DEG) as Degrees,
|
|
65
|
-
el: ((el + this.boresightEl) * RAD2DEG) as Degrees,
|
|
87
|
+
az: ((az + this.boresightAz[face ?? 0]) * RAD2DEG) as Degrees,
|
|
88
|
+
el: ((el + this.boresightEl[face ?? 0]) * RAD2DEG) as Degrees,
|
|
66
89
|
};
|
|
67
90
|
}
|
|
68
91
|
|
|
69
|
-
|
|
70
|
-
|
|
92
|
+
/**
|
|
93
|
+
* Converts the boresight azimuth angle to radians.
|
|
94
|
+
* @param face - The face number for multi-faced sensors. (Optional)
|
|
95
|
+
* @returns The boresight azimuth angle in radians.
|
|
96
|
+
* @throws An error if the face number is not specified for multi-faced sensors.
|
|
97
|
+
*/
|
|
98
|
+
boresightAzRad(face?: number) {
|
|
99
|
+
if (!face && this.faces > 1) {
|
|
100
|
+
throw new Error('Face number must be specified for multi-faced sensors');
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return (this.boresightAz[face ?? 0] * DEG2RAD) as Radians;
|
|
71
104
|
}
|
|
72
105
|
|
|
73
|
-
|
|
74
|
-
|
|
106
|
+
/**
|
|
107
|
+
* Converts the boresight elevation angle of the sensor to radians.
|
|
108
|
+
* @param face - The face number of the sensor (optional for single-faced sensors).
|
|
109
|
+
* @returns The boresight elevation angle in radians.
|
|
110
|
+
* @throws Error if the face number is not specified for multi-faced sensors.
|
|
111
|
+
*/
|
|
112
|
+
boresightElRad(face?: number) {
|
|
113
|
+
if (!face && this.faces > 1) {
|
|
114
|
+
throw new Error('Face number must be specified for multi-faced sensors');
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return (this.boresightEl[face ?? 0] * DEG2RAD) as Radians;
|
|
75
118
|
}
|
|
76
119
|
|
|
120
|
+
/**
|
|
121
|
+
* Gets the beamwidth in radians.
|
|
122
|
+
* @returns The beamwidth in radians.
|
|
123
|
+
*/
|
|
77
124
|
get beamwidthRad() {
|
|
78
125
|
return (this.beamwidth * DEG2RAD) as Radians;
|
|
79
126
|
}
|
package/src/objects/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { DetailedSatellite } from './DetailedSatellite';
|
|
2
|
-
export { DetailedSensor } from './DetailedSensor';
|
|
3
|
-
export { LandObject } from './LandObject';
|
|
4
|
-
export { Marker } from './Marker';
|
|
5
|
-
export { RfSensor } from './RfSensor';
|
|
1
|
+
export { DetailedSatellite } from './DetailedSatellite.js';
|
|
2
|
+
export { DetailedSensor } from './DetailedSensor.js';
|
|
3
|
+
export { LandObject } from './LandObject.js';
|
|
4
|
+
export { Marker } from './Marker.js';
|
|
5
|
+
export { RfSensor } from './RfSensor.js';
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { EpochUTC, J2000, Matrix, Vector, Vector3D } from 'ootk-core';
|
|
19
|
-
import { Propagator } from '../propagator/Propagator';
|
|
20
|
-
import { RandomGaussianSource } from './../operations/RandomGaussianSource';
|
|
21
|
-
import { PropagatorPairs } from './PropagatorPairs';
|
|
19
|
+
import { Propagator } from '../propagator/Propagator.js';
|
|
20
|
+
import { RandomGaussianSource } from './../operations/RandomGaussianSource.js';
|
|
21
|
+
import { PropagatorPairs } from './PropagatorPairs.js';
|
|
22
22
|
|
|
23
23
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
24
24
|
/**
|
|
@@ -28,11 +28,11 @@ import {
|
|
|
28
28
|
Vector,
|
|
29
29
|
Vector3D,
|
|
30
30
|
} from 'ootk-core';
|
|
31
|
-
import { RandomGaussianSource } from '../operations/RandomGaussianSource';
|
|
32
|
-
import { Propagator } from '../propagator/Propagator';
|
|
33
|
-
import { Observation } from './Observation';
|
|
34
|
-
import { normalizeAngle, observationDerivative, observationNoiseFromSigmas } from './ObservationUtils';
|
|
35
|
-
import { PropagatorPairs } from './PropagatorPairs';
|
|
31
|
+
import { RandomGaussianSource } from '../operations/RandomGaussianSource.js';
|
|
32
|
+
import { Propagator } from '../propagator/Propagator.js';
|
|
33
|
+
import { Observation } from './Observation.js';
|
|
34
|
+
import { normalizeAngle, observationDerivative, observationNoiseFromSigmas } from './ObservationUtils.js';
|
|
35
|
+
import { PropagatorPairs } from './PropagatorPairs.js';
|
|
36
36
|
|
|
37
37
|
// / Optical observation data.
|
|
38
38
|
export class ObservationOptical extends Observation {
|
|
@@ -29,11 +29,11 @@ import {
|
|
|
29
29
|
Vector,
|
|
30
30
|
Vector3D,
|
|
31
31
|
} from 'ootk-core';
|
|
32
|
-
import { RandomGaussianSource } from '../operations/RandomGaussianSource';
|
|
33
|
-
import { Propagator } from '../propagator/Propagator';
|
|
34
|
-
import { Observation } from './Observation';
|
|
35
|
-
import { normalizeAngle, observationDerivative, observationNoiseFromSigmas } from './ObservationUtils';
|
|
36
|
-
import { PropagatorPairs } from './PropagatorPairs';
|
|
32
|
+
import { RandomGaussianSource } from '../operations/RandomGaussianSource.js';
|
|
33
|
+
import { Propagator } from '../propagator/Propagator.js';
|
|
34
|
+
import { Observation } from './Observation.js';
|
|
35
|
+
import { normalizeAngle, observationDerivative, observationNoiseFromSigmas } from './ObservationUtils.js';
|
|
36
|
+
import { PropagatorPairs } from './PropagatorPairs.js';
|
|
37
37
|
|
|
38
38
|
// / Radar observation data.
|
|
39
39
|
export class ObservationRadar extends Observation {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { Propagator } from '../propagator/Propagator';
|
|
18
|
+
import { Propagator } from '../propagator/Propagator.js';
|
|
19
19
|
|
|
20
20
|
export class PropagatorPairs {
|
|
21
21
|
constructor(private _posStep: number, private _velStep: number) {
|
package/src/operations/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { BoxMuller } from './BoxMuller';
|
|
2
|
-
export { EulerAngles } from './EulerAngles';
|
|
3
|
-
export { Quaternion } from './Quaternion';
|
|
4
|
-
export { RandomGaussianSource } from './RandomGaussianSource';
|
|
1
|
+
export { BoxMuller } from './BoxMuller.js';
|
|
2
|
+
export { EulerAngles } from './EulerAngles.js';
|
|
3
|
+
export { Quaternion } from './Quaternion.js';
|
|
4
|
+
export { RandomGaussianSource } from './RandomGaussianSource.js';
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { EpochUTC, Seconds, Vector3D } from 'ootk-core';
|
|
19
|
-
import { StateInterpolator } from '../interpolator/StateInterpolator';
|
|
20
|
-
import { ChebyshevCoefficients } from './../interpolator/ChebyshevCoefficients';
|
|
21
|
-
import { ChebyshevInterpolator } from './../interpolator/ChebyshevInterpolator';
|
|
19
|
+
import { StateInterpolator } from '../interpolator/StateInterpolator.js';
|
|
20
|
+
import { ChebyshevCoefficients } from './../interpolator/ChebyshevCoefficients.js';
|
|
21
|
+
import { ChebyshevInterpolator } from './../interpolator/ChebyshevInterpolator.js';
|
|
22
22
|
|
|
23
23
|
// / Ephemeris compressor.
|
|
24
24
|
export class ChebyshevCompressor {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { CostFunction, SimplexEntry } from './SimplexEntry';
|
|
18
|
+
import { CostFunction, SimplexEntry } from './SimplexEntry.js';
|
|
19
19
|
|
|
20
20
|
// / Derivative-free Nelder-Mead simplex optimizer.
|
|
21
21
|
export class DownhillSimplex {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { DifferentiableFunction } from '../main';
|
|
18
|
+
import { DifferentiableFunction } from '../main.js';
|
|
19
19
|
|
|
20
20
|
// / Golden Section bounded single value optimizer.
|
|
21
21
|
export class GoldenSection {
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
/* eslint-disable require-jsdoc */
|
|
19
19
|
/* eslint-disable func-style */
|
|
20
20
|
import { evalPoly } from 'ootk-core';
|
|
21
|
-
import { DownhillSimplex } from './DownhillSimplex';
|
|
22
|
-
import { PolynomicalRegressionResult } from './PolynomicalRegressionResult';
|
|
21
|
+
import { DownhillSimplex } from './DownhillSimplex.js';
|
|
22
|
+
import { PolynomicalRegressionResult } from './PolynomicalRegressionResult.js';
|
|
23
23
|
// / Polynomial regression optimizer.
|
|
24
24
|
export class PolynomialRegression {
|
|
25
25
|
private constructor() {
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { concat, EpochUTC, J2000, Kilometers, KilometersPerSecond, Matrix, Vector, Vector3D } from 'ootk-core';
|
|
19
|
-
import { Observation } from '../observation/Observation';
|
|
20
|
-
import { PropagatorPairs } from '../observation/PropagatorPairs';
|
|
21
|
-
import { Propagator } from '../propagator/Propagator';
|
|
22
|
-
import { CovarianceFrame, StateCovariance } from './../covariance/StateCovariance';
|
|
23
|
-
import { ForceModel } from './../force/ForceModel';
|
|
24
|
-
import { KeplerPropagator } from './../propagator/KeplerPropagator';
|
|
25
|
-
import { RungeKutta89Propagator } from './../propagator/RungeKutta89Propagator';
|
|
26
|
-
import { BatchLeastSquaresResult } from './BatchLeastSquaresResult';
|
|
19
|
+
import { Observation } from '../observation/Observation.js';
|
|
20
|
+
import { PropagatorPairs } from '../observation/PropagatorPairs.js';
|
|
21
|
+
import { Propagator } from '../propagator/Propagator.js';
|
|
22
|
+
import { CovarianceFrame, StateCovariance } from './../covariance/StateCovariance.js';
|
|
23
|
+
import { ForceModel } from './../force/ForceModel.js';
|
|
24
|
+
import { KeplerPropagator } from './../propagator/KeplerPropagator.js';
|
|
25
|
+
import { RungeKutta89Propagator } from './../propagator/RungeKutta89Propagator.js';
|
|
26
|
+
import { BatchLeastSquaresResult } from './BatchLeastSquaresResult.js';
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* Batch least squares orbit determination.
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { J2000 } from 'ootk-core';
|
|
19
|
-
import { StateCovariance } from './../covariance/StateCovariance';
|
|
19
|
+
import { StateCovariance } from './../covariance/StateCovariance.js';
|
|
20
20
|
|
|
21
21
|
// / Batch least squares orbit determination result.
|
|
22
22
|
export class BatchLeastSquaresResult {
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { DEG2RAD, Earth, EpochUTC, halfPi, J2000, Kilometers, KilometersPerSecond, Radians, Vector3D } from 'ootk-core';
|
|
19
|
-
import { ForceModel } from './../force/ForceModel';
|
|
20
|
-
import { RungeKutta89Propagator } from './../propagator/RungeKutta89Propagator';
|
|
19
|
+
import { ForceModel } from './../force/ForceModel.js';
|
|
20
|
+
import { RungeKutta89Propagator } from './../propagator/RungeKutta89Propagator.js';
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Gibbs 3-position inital orbit determination.
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { Earth, J2000, Kilometers, KilometersPerSecond, Seconds, TAU, Vector3D } from 'ootk-core';
|
|
19
|
-
import { ForceModel } from '../force/ForceModel';
|
|
20
|
-
import { RungeKutta89Propagator } from '../propagator/RungeKutta89Propagator';
|
|
21
|
-
import { ObservationOptical } from './../observation/ObservationOptical';
|
|
22
|
-
import { GibbsIOD } from './GibbsIOD';
|
|
23
|
-
import { LambertIOD } from './LambertIOD';
|
|
19
|
+
import { ForceModel } from '../force/ForceModel.js';
|
|
20
|
+
import { RungeKutta89Propagator } from '../propagator/RungeKutta89Propagator.js';
|
|
21
|
+
import { ObservationOptical } from './../observation/ObservationOptical.js';
|
|
22
|
+
import { GibbsIOD } from './GibbsIOD.js';
|
|
23
|
+
import { LambertIOD } from './LambertIOD.js';
|
|
24
24
|
|
|
25
25
|
type SolveRangeProblemParams = {
|
|
26
26
|
rho1init: Kilometers;
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { Earth, EpochUTC, J2000, Kilometers, KilometersPerSecond, RadecTopocentric, Vector3D } from 'ootk-core';
|
|
19
|
-
import { ForceModel } from '../force/ForceModel';
|
|
20
|
-
import { RungeKutta89Propagator } from '../propagator/RungeKutta89Propagator';
|
|
21
|
-
import { ObservationOptical } from './../observation/ObservationOptical';
|
|
22
|
-
import { DownhillSimplex } from './../optimize/DownhillSimplex';
|
|
23
|
-
import { CostFunction } from './../optimize/SimplexEntry';
|
|
24
|
-
import { GoodingIOD } from './GoodingIOD';
|
|
19
|
+
import { ForceModel } from '../force/ForceModel.js';
|
|
20
|
+
import { RungeKutta89Propagator } from '../propagator/RungeKutta89Propagator.js';
|
|
21
|
+
import { ObservationOptical } from './../observation/ObservationOptical.js';
|
|
22
|
+
import { DownhillSimplex } from './../optimize/DownhillSimplex.js';
|
|
23
|
+
import { CostFunction } from './../optimize/SimplexEntry.js';
|
|
24
|
+
import { GoodingIOD } from './GoodingIOD.js';
|
|
25
25
|
|
|
26
26
|
type SolveOptions = {
|
|
27
27
|
nRev?: number;
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
/* eslint-disable class-methods-use-this */
|
|
19
|
-
import { RungeKuttaAdaptive } from './RungeKuttaAdaptive';
|
|
19
|
+
import { RungeKuttaAdaptive } from './RungeKuttaAdaptive.js';
|
|
20
20
|
|
|
21
21
|
export class DormandPrince54Propagator extends RungeKuttaAdaptive {
|
|
22
22
|
private _a: Float64Array = Float64Array.from([0.0, 1.0 / 5.0, 3.0 / 10.0, 4.0 / 5.0, 8.0 / 9.0, 1.0, 1.0]);
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { ClassicalElements, EpochUTC, J2000, Seconds } from 'ootk-core';
|
|
19
|
-
import { Thrust } from '../force/Thrust';
|
|
20
|
-
import { VerletBlendInterpolator } from '../interpolator/VerletBlendInterpolator';
|
|
21
|
-
import { Propagator } from './Propagator';
|
|
19
|
+
import { Thrust } from '../force/Thrust.js';
|
|
20
|
+
import { VerletBlendInterpolator } from '../interpolator/VerletBlendInterpolator.js';
|
|
21
|
+
import { Propagator } from './Propagator.js';
|
|
22
22
|
|
|
23
23
|
// / Kepler analytical two-body propagator.
|
|
24
24
|
export class KeplerPropagator extends Propagator {
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { EpochUTC, J2000, Seconds } from 'ootk-core';
|
|
19
|
-
import { Thrust } from '../force/Thrust';
|
|
20
|
-
import { VerletBlendInterpolator } from '../interpolator/VerletBlendInterpolator';
|
|
21
|
-
import { GoldenSection } from './../optimize/GoldenSection';
|
|
19
|
+
import { Thrust } from '../force/Thrust.js';
|
|
20
|
+
import { VerletBlendInterpolator } from '../interpolator/VerletBlendInterpolator.js';
|
|
21
|
+
import { GoldenSection } from './../optimize/GoldenSection.js';
|
|
22
22
|
|
|
23
23
|
// Propagator base class.
|
|
24
24
|
export abstract class Propagator {
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { EpochUTC, J2000, Kilometers, KilometersPerSecond, Seconds, Vector, Vector3D } from 'ootk-core';
|
|
19
|
-
import { ForceModel } from '../force/ForceModel';
|
|
20
|
-
import { Thrust } from '../force/Thrust';
|
|
21
|
-
import { VerletBlendInterpolator } from '../interpolator/VerletBlendInterpolator';
|
|
22
|
-
import { Propagator } from './Propagator';
|
|
19
|
+
import { ForceModel } from '../force/ForceModel.js';
|
|
20
|
+
import { Thrust } from '../force/Thrust.js';
|
|
21
|
+
import { VerletBlendInterpolator } from '../interpolator/VerletBlendInterpolator.js';
|
|
22
|
+
import { Propagator } from './Propagator.js';
|
|
23
23
|
|
|
24
24
|
// / Runge-Kutta 4 fixed numerical propagator.
|
|
25
25
|
export class RungeKutta4Propagator extends Propagator {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
/* eslint-disable @typescript-eslint/no-loss-of-precision */
|
|
19
19
|
/* eslint-disable class-methods-use-this */
|
|
20
|
-
import { RungeKuttaAdaptive } from './RungeKuttaAdaptive';
|
|
20
|
+
import { RungeKuttaAdaptive } from './RungeKuttaAdaptive.js';
|
|
21
21
|
|
|
22
22
|
// / Runge-Kutta 8(9) adaptive numerical propagator.
|
|
23
23
|
export class RungeKutta89Propagator extends RungeKuttaAdaptive {
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { EpochUTC, J2000, Kilometers, KilometersPerSecond, Seconds, Vector, Vector3D } from 'ootk-core';
|
|
19
|
-
import { ForceModel } from '../force/ForceModel';
|
|
20
|
-
import { Thrust } from '../force/Thrust';
|
|
21
|
-
import { VerletBlendInterpolator } from './../interpolator/VerletBlendInterpolator';
|
|
22
|
-
import { Propagator } from './Propagator';
|
|
23
|
-
import { RkCheckpoint } from './RkCheckpoint';
|
|
24
|
-
import { RkResult } from './RkResult';
|
|
19
|
+
import { ForceModel } from '../force/ForceModel.js';
|
|
20
|
+
import { Thrust } from '../force/Thrust.js';
|
|
21
|
+
import { VerletBlendInterpolator } from './../interpolator/VerletBlendInterpolator.js';
|
|
22
|
+
import { Propagator } from './Propagator.js';
|
|
23
|
+
import { RkCheckpoint } from './RkCheckpoint.js';
|
|
24
|
+
import { RkResult } from './RkResult.js';
|
|
25
25
|
|
|
26
26
|
// / Adaptive Runge-Kutta propagator base class.
|
|
27
27
|
export abstract class RungeKuttaAdaptive extends Propagator {
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
19
19
|
/* eslint-disable class-methods-use-this */
|
|
20
20
|
import { EpochUTC, J2000, Tle } from 'ootk-core';
|
|
21
|
-
import { Thrust } from '../force/Thrust';
|
|
22
|
-
import { VerletBlendInterpolator } from '../interpolator/VerletBlendInterpolator';
|
|
23
|
-
import { Propagator } from './Propagator';
|
|
21
|
+
import { Thrust } from '../force/Thrust.js';
|
|
22
|
+
import { VerletBlendInterpolator } from '../interpolator/VerletBlendInterpolator.js';
|
|
23
|
+
import { Propagator } from './Propagator.js';
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* Sgp4Propagator is a propagator that uses the SGP4 model to propagate the state of an object.
|
package/src/propagator/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { RungeKutta4Propagator } from './RungeKutta4Propagator';
|
|
2
|
-
export { RungeKutta89Propagator } from './RungeKutta89Propagator';
|
|
3
|
-
export { Sgp4Propagator } from './Sgp4Propagator';
|
|
1
|
+
export { RungeKutta4Propagator } from './RungeKutta4Propagator.js';
|
|
2
|
+
export { RungeKutta89Propagator } from './RungeKutta89Propagator.js';
|
|
3
|
+
export { Sgp4Propagator } from './Sgp4Propagator.js';
|
package/src/transforms/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './transforms';
|
|
1
|
+
export * from './transforms.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DEG2RAD, Degrees, EnuVec3, RAD2DEG, Radians, RaeVec3, TAU } from 'ootk-core';
|
|
2
|
-
import { RfVec3, RuvVec3, RfSensor } from '../main';
|
|
2
|
+
import { RfVec3, RuvVec3, RfSensor } from '../main.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Converts Azimuth and Elevation to U and V.
|
|
@@ -35,12 +35,14 @@ export function azel2uv(az: Radians, el: Radians, coneHalfAngle: Radians): { u:
|
|
|
35
35
|
* Determine azimuth and elevation off of boresight based on sensor orientation and RAE.
|
|
36
36
|
* @param rae Range, Azimuth, Elevation
|
|
37
37
|
* @param sensor Radar sensor object
|
|
38
|
+
* @param face Face number of the sensor
|
|
38
39
|
* @param maxSensorAz Maximum sensor azimuth
|
|
39
40
|
* @returns Azimuth and Elevation off of boresight
|
|
40
41
|
*/
|
|
41
42
|
export function rae2raeOffBoresight(
|
|
42
43
|
rae: RaeVec3,
|
|
43
44
|
sensor: RfSensor,
|
|
45
|
+
face: number,
|
|
44
46
|
maxSensorAz: Degrees,
|
|
45
47
|
): { az: Radians; el: Radians } {
|
|
46
48
|
let az = (rae.az * DEG2RAD) as Radians;
|
|
@@ -49,8 +51,8 @@ export function rae2raeOffBoresight(
|
|
|
49
51
|
// Correct azimuth for sensor orientation.
|
|
50
52
|
az = az > maxSensorAz * DEG2RAD ? ((az - TAU) as Radians) : az;
|
|
51
53
|
|
|
52
|
-
az = (az - sensor.boresightAz) as Radians;
|
|
53
|
-
el = (el - sensor.boresightEl) as Radians;
|
|
54
|
+
az = (az - sensor.boresightAz[face]) as Radians;
|
|
55
|
+
el = (el - sensor.boresightEl[face]) as Radians;
|
|
54
56
|
|
|
55
57
|
return { az, el };
|
|
56
58
|
}
|
|
@@ -59,11 +61,12 @@ export function rae2raeOffBoresight(
|
|
|
59
61
|
* Converts Range Az El to Range U V.
|
|
60
62
|
* @param rae Range, Azimuth, Elevation
|
|
61
63
|
* @param sensor Radar sensor object
|
|
64
|
+
* @param face Face number of the sensor
|
|
62
65
|
* @param maxSensorAz Maximum sensor azimuth
|
|
63
66
|
* @returns Range, U, V
|
|
64
67
|
*/
|
|
65
|
-
export function rae2ruv(rae: RaeVec3, sensor: RfSensor, maxSensorAz: Degrees): RuvVec3 {
|
|
66
|
-
const { az, el } = rae2raeOffBoresight(rae, sensor, maxSensorAz);
|
|
68
|
+
export function rae2ruv(rae: RaeVec3, sensor: RfSensor, face: number, maxSensorAz: Degrees): RuvVec3 {
|
|
69
|
+
const { az, el } = rae2raeOffBoresight(rae, sensor, face, maxSensorAz);
|
|
67
70
|
const { u, v } = azel2uv(az, el, sensor.beamwidthRad);
|
|
68
71
|
|
|
69
72
|
return { rng: rae.rng, u, v };
|
package/src/types/types.ts
CHANGED
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { Kilometers, Milliseconds, SatelliteParams, Vec3 } from 'ootk-core';
|
|
19
|
-
import { CommLink } from '../main';
|
|
18
|
+
import { Kilometers, Milliseconds, SatelliteParams, SensorParams, Vec3 } from 'ootk-core';
|
|
19
|
+
import { CommLink } from '../main.js';
|
|
20
20
|
|
|
21
21
|
export enum ZoomValue {
|
|
22
22
|
LEO = 0.45,
|
|
@@ -57,20 +57,21 @@ export interface DetailedSatelliteParams extends SatelliteParams {
|
|
|
57
57
|
altName?: string;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
export interface DetailedSensorParams {
|
|
60
|
+
export interface DetailedSensorParams extends SensorParams {
|
|
61
61
|
/** The country that owns the sensor */
|
|
62
62
|
country?: string;
|
|
63
63
|
/** 3 Letter Designation */
|
|
64
64
|
shortName?: string;
|
|
65
65
|
changeObjectInterval?: Milliseconds;
|
|
66
66
|
commLinks?: CommLink[];
|
|
67
|
+
freqBand?: string;
|
|
67
68
|
static?: boolean;
|
|
68
69
|
sensorId?: number;
|
|
69
70
|
url?: string;
|
|
70
71
|
/** Does this sensor use a volumetric search pattern? */
|
|
71
72
|
volume?: boolean;
|
|
72
73
|
/** How far away should we zoom when selecting this sensor? */
|
|
73
|
-
zoom
|
|
74
|
+
zoom?: ZoomValue;
|
|
74
75
|
/** This is the name of the object in the array */
|
|
75
76
|
objName?: string;
|
|
76
77
|
/** This is the name of the object in the UI */
|
package/src/utils/functions.ts
CHANGED
package/src/utils/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './jacobian';
|
|
2
|
-
export * from './functions';
|
|
1
|
+
export * from './jacobian.js';
|
|
2
|
+
export * from './functions.js';
|
package/src/utils/jacobian.ts
CHANGED