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.
Files changed (216) hide show
  1. package/CHANGELOG.md +66 -2
  2. package/README.md +4 -4
  3. package/dist/coordinate/Hill.d.ts +2 -2
  4. package/dist/coordinate/Hill.js +1 -1
  5. package/dist/coordinate/Hill.js.map +1 -1
  6. package/dist/coordinate/index.d.ts +1 -1
  7. package/dist/coordinate/index.js +1 -1
  8. package/dist/coordinate/index.js.map +1 -1
  9. package/dist/covariance/CovarianceSample.d.ts +3 -3
  10. package/dist/covariance/CovarianceSample.js +3 -3
  11. package/dist/covariance/CovarianceSample.js.map +1 -1
  12. package/dist/covariance/StateCovariance.js.map +1 -1
  13. package/dist/enums/CatalogSource.d.ts +2 -0
  14. package/dist/enums/CatalogSource.js +2 -0
  15. package/dist/enums/CatalogSource.js.map +1 -1
  16. package/dist/enums/index.d.ts +2 -2
  17. package/dist/enums/index.js +2 -2
  18. package/dist/enums/index.js.map +1 -1
  19. package/dist/force/AtmosphericDrag.d.ts +1 -1
  20. package/dist/force/AtmosphericDrag.js.map +1 -1
  21. package/dist/force/EarthGravity.d.ts +1 -1
  22. package/dist/force/EarthGravity.js.map +1 -1
  23. package/dist/force/ForceModel.d.ts +1 -1
  24. package/dist/force/ForceModel.js +5 -5
  25. package/dist/force/ForceModel.js.map +1 -1
  26. package/dist/force/Gravity.d.ts +1 -1
  27. package/dist/force/SolarRadiationPressure.d.ts +1 -1
  28. package/dist/force/SolarRadiationPressure.js +1 -1
  29. package/dist/force/SolarRadiationPressure.js.map +1 -1
  30. package/dist/force/ThirdBodyGravity.d.ts +1 -1
  31. package/dist/force/ThirdBodyGravity.js.map +1 -1
  32. package/dist/force/Thrust.d.ts +1 -1
  33. package/dist/force/index.d.ts +1 -1
  34. package/dist/force/index.js +1 -1
  35. package/dist/force/index.js.map +1 -1
  36. package/dist/interfaces/RfSensorParams.d.ts +10 -7
  37. package/dist/interfaces/RfSensorParams.js +1 -1
  38. package/dist/interfaces/index.d.ts +1 -1
  39. package/dist/interpolator/ChebyshevCoefficients.js.map +1 -1
  40. package/dist/interpolator/ChebyshevInterpolator.d.ts +2 -2
  41. package/dist/interpolator/ChebyshevInterpolator.js +1 -1
  42. package/dist/interpolator/ChebyshevInterpolator.js.map +1 -1
  43. package/dist/interpolator/CubicSplineInterpolator.d.ts +2 -2
  44. package/dist/interpolator/CubicSplineInterpolator.js +2 -2
  45. package/dist/interpolator/CubicSplineInterpolator.js.map +1 -1
  46. package/dist/interpolator/FieldInterpolator.d.ts +1 -1
  47. package/dist/interpolator/FieldInterpolator.js +1 -1
  48. package/dist/interpolator/FieldInterpolator.js.map +1 -1
  49. package/dist/interpolator/Interpolator.js.map +1 -1
  50. package/dist/interpolator/LagrangeInterpolator.d.ts +1 -1
  51. package/dist/interpolator/LagrangeInterpolator.js +1 -1
  52. package/dist/interpolator/LagrangeInterpolator.js.map +1 -1
  53. package/dist/interpolator/StateInterpolator.d.ts +1 -1
  54. package/dist/interpolator/StateInterpolator.js +1 -1
  55. package/dist/interpolator/StateInterpolator.js.map +1 -1
  56. package/dist/interpolator/VerletBlendInterpolator.d.ts +3 -3
  57. package/dist/interpolator/VerletBlendInterpolator.js +3 -3
  58. package/dist/interpolator/VerletBlendInterpolator.js.map +1 -1
  59. package/dist/main.d.ts +10 -10
  60. package/dist/main.js +10 -10
  61. package/dist/main.js.map +1 -1
  62. package/dist/maneuver/TwoBurnOrbitTransfer.d.ts +1 -1
  63. package/dist/maneuver/TwoBurnOrbitTransfer.js +1 -1
  64. package/dist/maneuver/TwoBurnOrbitTransfer.js.map +1 -1
  65. package/dist/maneuver/Waypoint.d.ts +3 -3
  66. package/dist/maneuver/Waypoint.js +5 -5
  67. package/dist/maneuver/Waypoint.js.map +1 -1
  68. package/dist/objects/DetailedSatellite.d.ts +1 -1
  69. package/dist/objects/DetailedSatellite.js +1 -1
  70. package/dist/objects/DetailedSatellite.js.map +1 -1
  71. package/dist/objects/DetailedSensor.d.ts +6 -5
  72. package/dist/objects/DetailedSensor.js +2 -0
  73. package/dist/objects/DetailedSensor.js.map +1 -1
  74. package/dist/objects/RfSensor.d.ts +43 -11
  75. package/dist/objects/RfSensor.js +60 -16
  76. package/dist/objects/RfSensor.js.map +1 -1
  77. package/dist/objects/index.d.ts +5 -5
  78. package/dist/objects/index.js +5 -5
  79. package/dist/objects/index.js.map +1 -1
  80. package/dist/observation/Observation.d.ts +3 -3
  81. package/dist/observation/ObservationOptical.d.ts +4 -4
  82. package/dist/observation/ObservationOptical.js +2 -2
  83. package/dist/observation/ObservationOptical.js.map +1 -1
  84. package/dist/observation/ObservationRadar.d.ts +4 -4
  85. package/dist/observation/ObservationRadar.js +2 -2
  86. package/dist/observation/ObservationRadar.js.map +1 -1
  87. package/dist/observation/ObservationUtils.js.map +1 -1
  88. package/dist/observation/PropagatorPairs.d.ts +1 -1
  89. package/dist/operations/BoxMuller.js.map +1 -1
  90. package/dist/operations/Quaternion.js.map +1 -1
  91. package/dist/operations/RandomGaussianSource.js +1 -1
  92. package/dist/operations/RandomGaussianSource.js.map +1 -1
  93. package/dist/operations/index.d.ts +4 -4
  94. package/dist/operations/index.js +4 -4
  95. package/dist/operations/index.js.map +1 -1
  96. package/dist/optimize/ChebyshevCompressor.d.ts +2 -2
  97. package/dist/optimize/ChebyshevCompressor.js +2 -2
  98. package/dist/optimize/ChebyshevCompressor.js.map +1 -1
  99. package/dist/optimize/DownhillSimplex.d.ts +1 -1
  100. package/dist/optimize/DownhillSimplex.js +1 -1
  101. package/dist/optimize/DownhillSimplex.js.map +1 -1
  102. package/dist/optimize/GoldenSection.d.ts +1 -1
  103. package/dist/optimize/GoldenSection.js.map +1 -1
  104. package/dist/optimize/PolynomialRegression.d.ts +1 -1
  105. package/dist/optimize/PolynomialRegression.js +2 -2
  106. package/dist/optimize/PolynomialRegression.js.map +1 -1
  107. package/dist/optimize/SimpleLinearRegression.js.map +1 -1
  108. package/dist/orbit_determination/BatchLeastSquaresOD.d.ts +3 -3
  109. package/dist/orbit_determination/BatchLeastSquaresOD.js +6 -6
  110. package/dist/orbit_determination/BatchLeastSquaresOD.js.map +1 -1
  111. package/dist/orbit_determination/BatchLeastSquaresResult.d.ts +1 -1
  112. package/dist/orbit_determination/GibbsIOD.js +2 -2
  113. package/dist/orbit_determination/GibbsIOD.js.map +1 -1
  114. package/dist/orbit_determination/GoodingIOD.d.ts +1 -1
  115. package/dist/orbit_determination/GoodingIOD.js +4 -4
  116. package/dist/orbit_determination/GoodingIOD.js.map +1 -1
  117. package/dist/orbit_determination/LambertIOD.js.map +1 -1
  118. package/dist/orbit_determination/ModifiedGoodingIOD.d.ts +1 -1
  119. package/dist/orbit_determination/ModifiedGoodingIOD.js +4 -4
  120. package/dist/orbit_determination/ModifiedGoodingIOD.js.map +1 -1
  121. package/dist/propagator/DormandPrince54Propagator.d.ts +1 -1
  122. package/dist/propagator/DormandPrince54Propagator.js +1 -1
  123. package/dist/propagator/DormandPrince54Propagator.js.map +1 -1
  124. package/dist/propagator/KeplerPropagator.d.ts +3 -3
  125. package/dist/propagator/KeplerPropagator.js +2 -2
  126. package/dist/propagator/KeplerPropagator.js.map +1 -1
  127. package/dist/propagator/Propagator.d.ts +2 -2
  128. package/dist/propagator/Propagator.js +2 -2
  129. package/dist/propagator/Propagator.js.map +1 -1
  130. package/dist/propagator/RungeKutta4Propagator.d.ts +4 -4
  131. package/dist/propagator/RungeKutta4Propagator.js +3 -3
  132. package/dist/propagator/RungeKutta4Propagator.js.map +1 -1
  133. package/dist/propagator/RungeKutta89Propagator.d.ts +1 -1
  134. package/dist/propagator/RungeKutta89Propagator.js +1 -1
  135. package/dist/propagator/RungeKutta89Propagator.js.map +1 -1
  136. package/dist/propagator/RungeKuttaAdaptive.d.ts +4 -4
  137. package/dist/propagator/RungeKuttaAdaptive.js +5 -5
  138. package/dist/propagator/RungeKuttaAdaptive.js.map +1 -1
  139. package/dist/propagator/Sgp4Propagator.d.ts +3 -3
  140. package/dist/propagator/Sgp4Propagator.js +1 -1
  141. package/dist/propagator/Sgp4Propagator.js.map +1 -1
  142. package/dist/propagator/index.d.ts +3 -3
  143. package/dist/propagator/index.js +3 -3
  144. package/dist/propagator/index.js.map +1 -1
  145. package/dist/smoothing/ExponentialSmoothing.js.map +1 -1
  146. package/dist/transforms/index.d.ts +1 -1
  147. package/dist/transforms/index.js +1 -1
  148. package/dist/transforms/index.js.map +1 -1
  149. package/dist/transforms/transforms.d.ts +5 -3
  150. package/dist/transforms/transforms.js +7 -5
  151. package/dist/transforms/transforms.js.map +1 -1
  152. package/dist/types/types.d.ts +5 -4
  153. package/dist/utils/functions.d.ts +1 -1
  154. package/dist/utils/index.d.ts +2 -2
  155. package/dist/utils/index.js +2 -2
  156. package/dist/utils/index.js.map +1 -1
  157. package/dist/utils/jacobian.d.ts +1 -1
  158. package/dist/utils/jacobian.js.map +1 -1
  159. package/package.json +17 -14
  160. package/src/coordinate/Hill.ts +2 -2
  161. package/src/coordinate/index.ts +1 -1
  162. package/src/covariance/CovarianceSample.ts +4 -4
  163. package/src/enums/CatalogSource.ts +3 -1
  164. package/src/enums/index.ts +2 -2
  165. package/src/force/AtmosphericDrag.ts +1 -1
  166. package/src/force/EarthGravity.ts +1 -1
  167. package/src/force/ForceModel.ts +7 -7
  168. package/src/force/Gravity.ts +1 -1
  169. package/src/force/SolarRadiationPressure.ts +1 -1
  170. package/src/force/ThirdBodyGravity.ts +1 -1
  171. package/src/force/Thrust.ts +1 -1
  172. package/src/force/index.ts +1 -1
  173. package/src/interfaces/RfSensorParams.ts +10 -7
  174. package/src/interfaces/index.ts +1 -1
  175. package/src/interpolator/ChebyshevInterpolator.ts +2 -2
  176. package/src/interpolator/CubicSplineInterpolator.ts +2 -2
  177. package/src/interpolator/FieldInterpolator.ts +1 -1
  178. package/src/interpolator/LagrangeInterpolator.ts +1 -1
  179. package/src/interpolator/StateInterpolator.ts +1 -1
  180. package/src/interpolator/VerletBlendInterpolator.ts +3 -3
  181. package/src/main.ts +10 -10
  182. package/src/maneuver/TwoBurnOrbitTransfer.ts +1 -1
  183. package/src/maneuver/Waypoint.ts +6 -6
  184. package/src/objects/DetailedSatellite.ts +2 -2
  185. package/src/objects/DetailedSensor.ts +7 -5
  186. package/src/objects/RfSensor.ts +65 -18
  187. package/src/objects/index.ts +5 -5
  188. package/src/observation/Observation.ts +3 -3
  189. package/src/observation/ObservationOptical.ts +5 -5
  190. package/src/observation/ObservationRadar.ts +5 -5
  191. package/src/observation/PropagatorPairs.ts +1 -1
  192. package/src/operations/RandomGaussianSource.ts +1 -1
  193. package/src/operations/index.ts +4 -4
  194. package/src/optimize/ChebyshevCompressor.ts +3 -3
  195. package/src/optimize/DownhillSimplex.ts +1 -1
  196. package/src/optimize/GoldenSection.ts +1 -1
  197. package/src/optimize/PolynomialRegression.ts +2 -2
  198. package/src/orbit_determination/BatchLeastSquaresOD.ts +8 -8
  199. package/src/orbit_determination/BatchLeastSquaresResult.ts +1 -1
  200. package/src/orbit_determination/GibbsIOD.ts +2 -2
  201. package/src/orbit_determination/GoodingIOD.ts +5 -5
  202. package/src/orbit_determination/ModifiedGoodingIOD.ts +6 -6
  203. package/src/propagator/DormandPrince54Propagator.ts +1 -1
  204. package/src/propagator/KeplerPropagator.ts +3 -3
  205. package/src/propagator/Propagator.ts +3 -3
  206. package/src/propagator/RungeKutta4Propagator.ts +4 -4
  207. package/src/propagator/RungeKutta89Propagator.ts +1 -1
  208. package/src/propagator/RungeKuttaAdaptive.ts +6 -6
  209. package/src/propagator/Sgp4Propagator.ts +3 -3
  210. package/src/propagator/index.ts +3 -3
  211. package/src/transforms/index.ts +1 -1
  212. package/src/transforms/transforms.ts +8 -5
  213. package/src/types/types.ts +5 -4
  214. package/src/utils/functions.ts +1 -1
  215. package/src/utils/index.ts +2 -2
  216. package/src/utils/jacobian.ts +1 -1
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @author Theodore Kruczek.
3
- * @license MIT
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, Sensor, SpaceObjectType } from 'ootk-core';
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 Sensor {
28
- boresightAz: Degrees;
29
- boresightEl: Degrees;
30
- freqBand?: string;
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
- uvFromAzEl(az: Degrees, el: Degrees) {
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
- azElFromUV(u: number, v: number) {
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
- get boresightAzRad() {
70
- return (this.boresightAz * DEG2RAD) as Radians;
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
- get boresightElRad() {
74
- return (this.boresightEl * DEG2RAD) as Radians;
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
  }
@@ -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) {
@@ -16,7 +16,7 @@
16
16
  */
17
17
 
18
18
  import { Vector, Vector3D } from 'ootk-core';
19
- import { BoxMuller } from './BoxMuller';
19
+ import { BoxMuller } from './BoxMuller.js';
20
20
 
21
21
  export class RandomGaussianSource {
22
22
  private _boxMuller: BoxMuller;
@@ -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.
@@ -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';
@@ -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 };
@@ -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: ZoomValue;
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 */
@@ -1,4 +1,4 @@
1
- import { DifferentiableFunction } from '../main';
1
+ import { DifferentiableFunction } from '../main.js';
2
2
 
3
3
  /**
4
4
  * Calculates the derivative of a differentiable function.
@@ -1,2 +1,2 @@
1
- export * from './jacobian';
2
- export * from './functions';
1
+ export * from './jacobian.js';
2
+ export * from './functions.js';
@@ -1,5 +1,5 @@
1
1
  import { array2d, Matrix, Vector } from 'ootk-core';
2
- import { JacobianFunction } from '../types/types';
2
+ import { JacobianFunction } from '../types/types.js';
3
3
 
4
4
  // TODO: #11 Expand documentation of Jacobian function.
5
5