ootk 1.8.1 → 2.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 +1 -1
- package/dist/objects/base-object.d.ts +1 -1
- package/dist/objects/detailed-sat.d.ts +1 -1
- package/dist/objects/sat.d.ts +4 -1
- package/dist/objects/sensor.d.ts +35 -21
- package/dist/objects/space-object.d.ts +1 -1
- package/dist/objects/star.d.ts +6 -6
- package/dist/ootk.d.ts +2 -1
- package/dist/ootk.js +1 -1
- package/dist/ootk.js.LICENSE.txt +3 -3
- package/dist/sgp4/Sgp4Assembly.d.ts +5 -0
- package/dist/sgp4/sgp4.d.ts +34 -34
- package/dist/tle/tle.d.ts +3 -3
- package/dist/transforms/transforms.d.ts +1 -1
- package/dist/types/types.d.ts +40 -32
- package/dist/utils/constants.d.ts +1 -1
- package/dist/utils/moon-math.d.ts +6 -6
- package/dist/utils/sun-math.d.ts +8 -8
- package/dist/utils/utils.d.ts +4 -3
- package/lib/objects/base-object.d.ts +1 -1
- package/lib/objects/base-object.js +1 -1
- package/lib/objects/base-object.js.map +1 -1
- package/lib/objects/detailed-sat.d.ts +1 -1
- package/lib/objects/detailed-sat.js +1 -1
- package/lib/objects/sat.d.ts +4 -1
- package/lib/objects/sat.js +42 -7
- package/lib/objects/sat.js.map +1 -1
- package/lib/objects/sensor.d.ts +35 -21
- package/lib/objects/sensor.js +17 -3
- package/lib/objects/sensor.js.map +1 -1
- package/lib/objects/space-object.d.ts +1 -1
- package/lib/objects/space-object.js +1 -1
- package/lib/objects/star.d.ts +6 -6
- package/lib/objects/star.js +7 -7
- package/lib/objects/star.js.map +1 -1
- package/lib/ootk.d.ts +2 -1
- package/lib/ootk.js +2 -1
- package/lib/ootk.js.map +1 -1
- package/lib/sgp4/Sgp4Assembly.d.ts +5 -0
- package/lib/sgp4/Sgp4Assembly.js +75 -0
- package/lib/sgp4/Sgp4Assembly.js.map +1 -0
- package/lib/sgp4/sgp4.d.ts +34 -34
- package/lib/sgp4/sgp4.js +2927 -2906
- package/lib/sgp4/sgp4.js.map +1 -1
- package/lib/tle/tle.d.ts +3 -3
- package/lib/tle/tle.js +1 -1
- package/lib/transforms/transforms.d.ts +1 -1
- package/lib/transforms/transforms.js +8 -8
- package/lib/transforms/transforms.js.map +1 -1
- package/lib/types/types.d.ts +40 -32
- package/lib/types/types.js.map +1 -1
- package/lib/utils/constants.d.ts +1 -1
- package/lib/utils/constants.js +1 -1
- package/lib/utils/moon-math.d.ts +6 -6
- package/lib/utils/moon-math.js +4 -4
- package/lib/utils/moon-math.js.map +1 -1
- package/lib/utils/sun-math.d.ts +8 -8
- package/lib/utils/sun-math.js +17 -17
- package/lib/utils/sun-math.js.map +1 -1
- package/lib/utils/utils.d.ts +4 -3
- package/lib/utils/utils.js +2 -2
- package/lib/utils/utils.js.map +1 -1
- package/package.json +8 -8
- package/.asc/asconfig.json +0 -22
- package/.asc/assembly/index.ts +0 -1143
- package/.asc/ex/asconfig.json +0 -22
- package/.asc/ex/assembly/index.ts +0 -5
- package/.asc/ex/index.html +0 -10
- package/.asc/ex/package.json +0 -19
- package/.asc/ex/tests/index.js +0 -4
- package/.asc/package.json +0 -19
- package/.asc/tests/index.js +0 -4
package/dist/tle/tle.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @file The TLE module contains a collection of functions for working with TLEs.
|
|
7
7
|
*
|
|
8
8
|
* @license AGPL-3.0-or-later
|
|
9
|
-
* @Copyright (c) 2020-
|
|
9
|
+
* @Copyright (c) 2020-2023 Theodore Kruczek
|
|
10
10
|
*
|
|
11
11
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
12
12
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
21
21
|
*/
|
|
22
22
|
import { Line1Data, Line2Data, TleLine1, TleLine2 } from '../types/types';
|
|
23
|
-
|
|
23
|
+
type TleData = {
|
|
24
24
|
satNum: number;
|
|
25
25
|
intlDes: string;
|
|
26
26
|
epochYear: number;
|
|
@@ -35,7 +35,7 @@ declare type TleData = {
|
|
|
35
35
|
meanAnomaly: number;
|
|
36
36
|
meanMotion: number;
|
|
37
37
|
};
|
|
38
|
-
|
|
38
|
+
type TleDataFull = Line1Data & Line2Data;
|
|
39
39
|
export declare class Tle {
|
|
40
40
|
private static lineNumber;
|
|
41
41
|
private static satNum;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* on some of the functions in satellite.js.
|
|
9
9
|
*
|
|
10
10
|
* @license AGPL-3.0-or-later
|
|
11
|
-
* @Copyright (c) 2020-
|
|
11
|
+
* @Copyright (c) 2020-2023 Theodore Kruczek
|
|
12
12
|
*
|
|
13
13
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
14
14
|
* terms of the GNU Affero General Public License as published by the Free Software
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,31 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
1
|
+
type Distinct<T, DistinctName> = T & {
|
|
2
|
+
__TYPE__: DistinctName;
|
|
3
|
+
};
|
|
4
|
+
export type Hours = Distinct<number, 'Hours'>;
|
|
5
|
+
export type Minutes = Distinct<number, 'Minutes'>;
|
|
6
|
+
export type Seconds = Distinct<number, 'Seconds'>;
|
|
7
|
+
export type Milliseconds = Distinct<number, 'Milliseconds'>;
|
|
8
|
+
export type Degrees = Distinct<number, 'Degrees'>;
|
|
9
|
+
export type Radians = Distinct<number, 'Radians'>;
|
|
10
|
+
export type Kilometers = Distinct<number, 'Kilometers'>;
|
|
11
|
+
export type Meters = Distinct<number, 'Meters'>;
|
|
12
|
+
export type Vec3<Type> = {
|
|
5
13
|
x: Type;
|
|
6
14
|
y: Type;
|
|
7
15
|
z: Type;
|
|
8
16
|
};
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
x:
|
|
12
|
-
y:
|
|
13
|
-
z:
|
|
17
|
+
export type EciVec3 = Vec3<Kilometers>;
|
|
18
|
+
export type EcfVec3 = {
|
|
19
|
+
x: Kilometers;
|
|
20
|
+
y: Kilometers;
|
|
21
|
+
z: Kilometers;
|
|
14
22
|
};
|
|
15
|
-
export
|
|
23
|
+
export type LlaVec3 = {
|
|
16
24
|
lat: Radians;
|
|
17
25
|
lon: Radians;
|
|
18
|
-
alt:
|
|
26
|
+
alt: Kilometers;
|
|
19
27
|
};
|
|
20
|
-
export
|
|
21
|
-
rng:
|
|
22
|
-
az:
|
|
23
|
-
el:
|
|
28
|
+
export type RaeVec3 = {
|
|
29
|
+
rng: Kilometers;
|
|
30
|
+
az: Degrees;
|
|
31
|
+
el: Degrees;
|
|
24
32
|
};
|
|
25
|
-
export
|
|
26
|
-
s:
|
|
27
|
-
e:
|
|
28
|
-
z:
|
|
33
|
+
export type SezVec3 = {
|
|
34
|
+
s: Kilometers;
|
|
35
|
+
e: Kilometers;
|
|
36
|
+
z: Kilometers;
|
|
29
37
|
};
|
|
30
38
|
/**
|
|
31
39
|
* @interface SatelliteRecord contains all of the orbital parameters necessary for running SGP4.
|
|
@@ -152,7 +160,7 @@ export interface SatelliteRecord {
|
|
|
152
160
|
nm: number;
|
|
153
161
|
}
|
|
154
162
|
/** @typedef StateVector is a three dimensional position and velocity vector output from Sgp4.propagate.*/
|
|
155
|
-
export
|
|
163
|
+
export type StateVector = {
|
|
156
164
|
position: {
|
|
157
165
|
x: number;
|
|
158
166
|
y: number;
|
|
@@ -165,12 +173,12 @@ export declare type StateVector = {
|
|
|
165
173
|
} | boolean;
|
|
166
174
|
};
|
|
167
175
|
/** @typedef Vec3Flat is a flat three dimensional array used in vector math.*/
|
|
168
|
-
export
|
|
176
|
+
export type Vec3Flat = [number, number, number];
|
|
169
177
|
/** @typedef TleLine1 is the first line of a two line element set */
|
|
170
|
-
export
|
|
178
|
+
export type TleLine1 = string;
|
|
171
179
|
/** @typedef TleLine2 is the second line of a two line element set */
|
|
172
|
-
export
|
|
173
|
-
export
|
|
180
|
+
export type TleLine2 = string;
|
|
181
|
+
export type Line1Data = {
|
|
174
182
|
lineNumber1: number;
|
|
175
183
|
satNum: number;
|
|
176
184
|
satNumRaw: string;
|
|
@@ -189,7 +197,7 @@ export declare type Line1Data = {
|
|
|
189
197
|
elsetNum: number;
|
|
190
198
|
checksum1: number;
|
|
191
199
|
};
|
|
192
|
-
export
|
|
200
|
+
export type Line2Data = {
|
|
193
201
|
lineNumber2: number;
|
|
194
202
|
satNum: number;
|
|
195
203
|
satNumRaw: string;
|
|
@@ -233,14 +241,14 @@ export declare enum SpaceObjectType {
|
|
|
233
241
|
LAUNCH_VEHICLE_MANUFACTURER = 27,
|
|
234
242
|
ENGINE_MANUFACTURER = 28
|
|
235
243
|
}
|
|
236
|
-
export
|
|
237
|
-
export
|
|
244
|
+
export type GreenwichMeanSiderealTime = number;
|
|
245
|
+
export type LaunchDetails = {
|
|
238
246
|
launchDate?: string;
|
|
239
247
|
launchMass?: string;
|
|
240
248
|
launchSite?: string;
|
|
241
249
|
launchVehicle?: string;
|
|
242
250
|
};
|
|
243
|
-
export
|
|
251
|
+
export type SpaceCraftDetails = {
|
|
244
252
|
lifetime?: string | number;
|
|
245
253
|
maneuver?: string;
|
|
246
254
|
manufacturer?: string;
|
|
@@ -255,18 +263,18 @@ export declare type SpaceCraftDetails = {
|
|
|
255
263
|
equipment?: string;
|
|
256
264
|
dryMass?: string;
|
|
257
265
|
};
|
|
258
|
-
export
|
|
266
|
+
export type OperationsDetails = {
|
|
259
267
|
user?: string;
|
|
260
268
|
mission?: string;
|
|
261
269
|
owner?: string;
|
|
262
270
|
country?: string;
|
|
263
271
|
};
|
|
264
|
-
export
|
|
272
|
+
export type AzEl = {
|
|
265
273
|
az: Radians;
|
|
266
274
|
el: Radians;
|
|
267
275
|
};
|
|
268
|
-
export
|
|
269
|
-
export declare type SunTime = {
|
|
276
|
+
export type SunTime = {
|
|
270
277
|
solarNoon: Date;
|
|
271
278
|
nadir: Date;
|
|
272
279
|
};
|
|
280
|
+
export {};
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @file Commonly used constants.
|
|
7
7
|
*
|
|
8
8
|
* @license AGPL-3.0-or-later
|
|
9
|
-
* @Copyright (c) 2020-
|
|
9
|
+
* @Copyright (c) 2020-2023 Theodore Kruczek
|
|
10
10
|
*
|
|
11
11
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
12
12
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
*
|
|
12
12
|
* @license AGPL-3.0-or-later
|
|
13
|
-
* @Copyright (c) 2020-
|
|
13
|
+
* @Copyright (c) 2020-2023 Theodore Kruczek
|
|
14
14
|
*
|
|
15
15
|
* @Copyright (c) 2011-2015, Vladimir Agafonkin
|
|
16
16
|
* SunCalc is a JavaScript library for calculating sun/moon position and light phases.
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
35
35
|
*/
|
|
36
36
|
import { Radians } from '../ootk';
|
|
37
|
-
|
|
37
|
+
type MoonIlluminationData = {
|
|
38
38
|
fraction: number;
|
|
39
39
|
phase: {
|
|
40
40
|
from: number;
|
|
@@ -72,14 +72,14 @@ declare type MoonIlluminationData = {
|
|
|
72
72
|
};
|
|
73
73
|
export declare class MoonMath {
|
|
74
74
|
static moonCoords(d: any): {
|
|
75
|
-
ra:
|
|
76
|
-
dec:
|
|
75
|
+
ra: Radians;
|
|
76
|
+
dec: Radians;
|
|
77
77
|
dist: number;
|
|
78
78
|
};
|
|
79
79
|
static hoursLater(date: Date, h: number): Date;
|
|
80
80
|
static getMoonPosition(date: any, lat: any, lon: any): {
|
|
81
|
-
az:
|
|
82
|
-
el:
|
|
81
|
+
az: Radians;
|
|
82
|
+
el: Radians;
|
|
83
83
|
rng: number;
|
|
84
84
|
parallacticAngle: number;
|
|
85
85
|
};
|
package/dist/utils/sun-math.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
*
|
|
12
12
|
* @license AGPL-3.0-or-later
|
|
13
|
-
* @Copyright (c) 2020-
|
|
13
|
+
* @Copyright (c) 2020-2023 Theodore Kruczek
|
|
14
14
|
*
|
|
15
15
|
* @Copyright (c) 2011-2015, Vladimir Agafonkin
|
|
16
16
|
* SunCalc is a JavaScript library for calculating sun/moon position and light phases.
|
|
@@ -45,7 +45,7 @@ export declare class SunMath {
|
|
|
45
45
|
/**
|
|
46
46
|
* calculates the obderver angle
|
|
47
47
|
* @param {number} alt the observer altitude (in meters) relative to the horizon
|
|
48
|
-
* @returns {
|
|
48
|
+
* @returns {Degrees} height for further calculations
|
|
49
49
|
*/
|
|
50
50
|
private static observerAngle;
|
|
51
51
|
/**
|
|
@@ -111,13 +111,13 @@ export declare class SunMath {
|
|
|
111
111
|
* @param {Radians} h - elevation
|
|
112
112
|
* @returns {number} refraction
|
|
113
113
|
*/
|
|
114
|
-
static astroRefraction(h:
|
|
114
|
+
static astroRefraction(h: Radians): Radians;
|
|
115
115
|
/**
|
|
116
116
|
* ecliptic longitude
|
|
117
117
|
* @param {number} M - solar mean anomaly
|
|
118
118
|
* @returns {number} ecliptic longitude
|
|
119
119
|
*/
|
|
120
|
-
static eclipticLongitude(M: number):
|
|
120
|
+
static eclipticLongitude(M: number): Radians;
|
|
121
121
|
/**
|
|
122
122
|
* ecliptic latitude
|
|
123
123
|
* @param {number} B - ?
|
|
@@ -166,7 +166,7 @@ export declare class SunMath {
|
|
|
166
166
|
* @param {number} L - ecliptic longitude
|
|
167
167
|
* @returns {number} set time
|
|
168
168
|
*/
|
|
169
|
-
static getSetJulian(h:
|
|
169
|
+
static getSetJulian(h: Meters, lw: number, phi: number, dec: number, n: number, M: number, L: number): number;
|
|
170
170
|
/**
|
|
171
171
|
* returns set time for the given sun altitude
|
|
172
172
|
* @param {Meters} alt - altitude at 0
|
|
@@ -221,10 +221,10 @@ export declare class SunMath {
|
|
|
221
221
|
* @returns {Date} - Date Object in Solar Time
|
|
222
222
|
*/
|
|
223
223
|
static getSolarTime(date: Date, utcOffset: number, lon: number): Date;
|
|
224
|
-
static getStarAzEl(date: Date, lat: Degrees, lon: Degrees, ra:
|
|
224
|
+
static getStarAzEl(date: Date, lat: Degrees, lon: Degrees, ra: Radians, dec: Radians): AzEl;
|
|
225
225
|
static getSunAzEl(date: Date, lat: Degrees, lon: Degrees): AzEl;
|
|
226
226
|
static getSunRaDec(d: number): {
|
|
227
|
-
dec:
|
|
228
|
-
ra:
|
|
227
|
+
dec: Radians;
|
|
228
|
+
ra: Radians;
|
|
229
229
|
};
|
|
230
230
|
}
|
package/dist/utils/utils.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @file The Utils module.
|
|
7
7
|
*
|
|
8
8
|
* @license AGPL-3.0-or-later
|
|
9
|
-
* @Copyright (c) 2020-
|
|
9
|
+
* @Copyright (c) 2020-2023 Theodore Kruczek
|
|
10
10
|
*
|
|
11
11
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
12
12
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -20,13 +20,14 @@
|
|
|
20
20
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
21
21
|
*/
|
|
22
22
|
import * as Types from '../types/types';
|
|
23
|
+
import { EciVec3, Kilometers } from '../types/types';
|
|
23
24
|
import { MoonMath } from './moon-math';
|
|
24
25
|
import { SunMath } from './sun-math';
|
|
25
26
|
declare class Utils {
|
|
26
27
|
static Types: typeof Types;
|
|
27
|
-
static distance(pos1:
|
|
28
|
+
static distance(pos1: EciVec3, pos2: EciVec3): Kilometers;
|
|
28
29
|
private static sign;
|
|
29
|
-
static dopplerFactor(location:
|
|
30
|
+
static dopplerFactor(location: EciVec3, position: EciVec3, velocity: EciVec3): Kilometers;
|
|
30
31
|
static createVec(start: number, stop: number, step: number): number[];
|
|
31
32
|
static jday: (year?: number, mon?: number, day?: number, hr?: number, minute?: number, sec?: number) => number;
|
|
32
33
|
static getDayOfYear(date: Date): number;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* to ground and space based objects.
|
|
8
8
|
*
|
|
9
9
|
* @license AGPL-3.0-or-later
|
|
10
|
-
* @Copyright (c) 2020-
|
|
10
|
+
* @Copyright (c) 2020-2023 Theodore Kruczek
|
|
11
11
|
*
|
|
12
12
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
13
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* to ground and space based objects.
|
|
8
8
|
*
|
|
9
9
|
* @license AGPL-3.0-or-later
|
|
10
|
-
* @Copyright (c) 2020-
|
|
10
|
+
* @Copyright (c) 2020-2023 Theodore Kruczek
|
|
11
11
|
*
|
|
12
12
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
13
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-object.js","sourceRoot":"","sources":["../../src/objects/base-object.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"base-object.js","sourceRoot":"","sources":["../../src/objects/base-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* properties for categorizing and filtering satellites.
|
|
8
8
|
*
|
|
9
9
|
* @license AGPL-3.0-or-later
|
|
10
|
-
* @Copyright (c) 2020-
|
|
10
|
+
* @Copyright (c) 2020-2023 Theodore Kruczek
|
|
11
11
|
*
|
|
12
12
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
13
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* properties for categorizing and filtering satellites.
|
|
8
8
|
*
|
|
9
9
|
* @license AGPL-3.0-or-later
|
|
10
|
-
* @Copyright (c) 2020-
|
|
10
|
+
* @Copyright (c) 2020-2023 Theodore Kruczek
|
|
11
11
|
*
|
|
12
12
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
13
|
* terms of the GNU Affero General Public License as published by the Free Software
|
package/lib/objects/sat.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* to earth based sensors and other orbital objects.
|
|
8
8
|
*
|
|
9
9
|
* @license AGPL-3.0-or-later
|
|
10
|
-
* @Copyright (c) 2020-
|
|
10
|
+
* @Copyright (c) 2020-2023 Theodore Kruczek
|
|
11
11
|
*
|
|
12
12
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
13
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -77,6 +77,9 @@ export declare class Sat extends SpaceObject {
|
|
|
77
77
|
*/
|
|
78
78
|
getLla(date?: Date): LlaVec3;
|
|
79
79
|
getRae(sensor: Sensor, date?: Date): RaeVec3;
|
|
80
|
+
getAzimuth(sensor: Sensor, date?: Date): number;
|
|
81
|
+
getElevation(sensor: Sensor, date?: Date): number;
|
|
82
|
+
getRange(sensor: Sensor, date?: Date): number;
|
|
80
83
|
/**
|
|
81
84
|
* Calculates the time variables for a given date relative to the TLE epoch.
|
|
82
85
|
* @param {Date} date Date to calculate
|
package/lib/objects/sat.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* to earth based sensors and other orbital objects.
|
|
8
8
|
*
|
|
9
9
|
* @license AGPL-3.0-or-later
|
|
10
|
-
* @Copyright (c) 2020-
|
|
10
|
+
* @Copyright (c) 2020-2023 Theodore Kruczek
|
|
11
11
|
*
|
|
12
12
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
13
13
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -67,7 +67,11 @@ var Sat = /** @class */ (function (_super) {
|
|
|
67
67
|
}
|
|
68
68
|
Sat.prototype.propagateTo = function (date) {
|
|
69
69
|
var m = Sat.calculateTimeVariables(date, this.satrec).m;
|
|
70
|
-
var eci = Sgp4.propagate(this.satrec, m).position || {
|
|
70
|
+
var eci = Sgp4.propagate(this.satrec, m).position || {
|
|
71
|
+
x: 0,
|
|
72
|
+
y: 0,
|
|
73
|
+
z: 0,
|
|
74
|
+
};
|
|
71
75
|
this.position = eci;
|
|
72
76
|
this.time = date;
|
|
73
77
|
return this;
|
|
@@ -90,8 +94,12 @@ var Sat = /** @class */ (function (_super) {
|
|
|
90
94
|
Sat.prototype.getEci = function (date) {
|
|
91
95
|
if (date === void 0) { date = this.time; }
|
|
92
96
|
var m = Sat.calculateTimeVariables(date, this.satrec).m;
|
|
93
|
-
var eci = Sgp4.propagate(this.satrec, m).position
|
|
94
|
-
|
|
97
|
+
var eci = Sgp4.propagate(this.satrec, m).position || {
|
|
98
|
+
x: 0,
|
|
99
|
+
y: 0,
|
|
100
|
+
z: 0,
|
|
101
|
+
};
|
|
102
|
+
return eci;
|
|
95
103
|
};
|
|
96
104
|
/**
|
|
97
105
|
* Calculates ECF position at a given time.
|
|
@@ -101,7 +109,11 @@ var Sat = /** @class */ (function (_super) {
|
|
|
101
109
|
Sat.prototype.getEcf = function (date) {
|
|
102
110
|
if (date === void 0) { date = this.time; }
|
|
103
111
|
var _a = Sat.calculateTimeVariables(date, this.satrec), m = _a.m, gmst = _a.gmst;
|
|
104
|
-
var eci = Sgp4.propagate(this.satrec, m).position || {
|
|
112
|
+
var eci = Sgp4.propagate(this.satrec, m).position || {
|
|
113
|
+
x: 0,
|
|
114
|
+
y: 0,
|
|
115
|
+
z: 0,
|
|
116
|
+
};
|
|
105
117
|
return Transforms.eci2ecf(eci, gmst);
|
|
106
118
|
};
|
|
107
119
|
/**
|
|
@@ -112,16 +124,39 @@ var Sat = /** @class */ (function (_super) {
|
|
|
112
124
|
Sat.prototype.getLla = function (date) {
|
|
113
125
|
if (date === void 0) { date = this.time; }
|
|
114
126
|
var _a = Sat.calculateTimeVariables(date, this.satrec), m = _a.m, gmst = _a.gmst;
|
|
115
|
-
var eci = Sgp4.propagate(this.satrec, m).position || {
|
|
127
|
+
var eci = Sgp4.propagate(this.satrec, m).position || {
|
|
128
|
+
x: 0,
|
|
129
|
+
y: 0,
|
|
130
|
+
z: 0,
|
|
131
|
+
};
|
|
116
132
|
return Transforms.eci2lla(eci, gmst);
|
|
117
133
|
};
|
|
118
134
|
Sat.prototype.getRae = function (sensor, date) {
|
|
119
135
|
if (date === void 0) { date = this.time; }
|
|
120
136
|
var _a = Sat.calculateTimeVariables(date, this.satrec), m = _a.m, gmst = _a.gmst;
|
|
121
|
-
var eci = Sgp4.propagate(this.satrec, m).position || {
|
|
137
|
+
var eci = Sgp4.propagate(this.satrec, m).position || {
|
|
138
|
+
x: 0,
|
|
139
|
+
y: 0,
|
|
140
|
+
z: 0,
|
|
141
|
+
};
|
|
122
142
|
var ecf = Transforms.eci2ecf(eci, gmst);
|
|
123
143
|
return Transforms.ecf2rae({ lat: sensor.lat, lon: sensor.lon, alt: sensor.alt }, ecf);
|
|
124
144
|
};
|
|
145
|
+
Sat.prototype.getAzimuth = function (sensor, date) {
|
|
146
|
+
if (date === void 0) { date = this.time; }
|
|
147
|
+
var rae = this.getRae(sensor, date);
|
|
148
|
+
return rae.az;
|
|
149
|
+
};
|
|
150
|
+
Sat.prototype.getElevation = function (sensor, date) {
|
|
151
|
+
if (date === void 0) { date = this.time; }
|
|
152
|
+
var rae = this.getRae(sensor, date);
|
|
153
|
+
return rae.el;
|
|
154
|
+
};
|
|
155
|
+
Sat.prototype.getRange = function (sensor, date) {
|
|
156
|
+
if (date === void 0) { date = this.time; }
|
|
157
|
+
var rae = this.getRae(sensor, date);
|
|
158
|
+
return rae.rng;
|
|
159
|
+
};
|
|
125
160
|
/**
|
|
126
161
|
* Calculates the time variables for a given date relative to the TLE epoch.
|
|
127
162
|
* @param {Date} date Date to calculate
|
package/lib/objects/sat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sat.js","sourceRoot":"","sources":["../../src/objects/sat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;;;;;;;;;;;;;;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"sat.js","sourceRoot":"","sources":["../../src/objects/sat.ts"],"names":[],"mappings":"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"}
|
package/lib/objects/sensor.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @file The Sensor class is used for creating ground based observers.
|
|
7
7
|
*
|
|
8
8
|
* @license AGPL-3.0-or-later
|
|
9
|
-
* @Copyright (c) 2020-
|
|
9
|
+
* @Copyright (c) 2020-2023 Theodore Kruczek
|
|
10
10
|
*
|
|
11
11
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
12
12
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -19,21 +19,21 @@
|
|
|
19
19
|
* You should have received a copy of the GNU Affero General Public License along with
|
|
20
20
|
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
|
|
21
21
|
*/
|
|
22
|
-
import { Degrees,
|
|
22
|
+
import { Degrees, Kilometers, Radians, RaeVec3, SpaceObjectType } from '../types/types';
|
|
23
23
|
import { BaseObject } from './base-object';
|
|
24
24
|
import { Sat } from './sat';
|
|
25
25
|
interface ObjectInfo {
|
|
26
26
|
name?: string;
|
|
27
27
|
type?: SpaceObjectType;
|
|
28
|
-
lat:
|
|
29
|
-
lon:
|
|
30
|
-
alt:
|
|
31
|
-
minAz
|
|
32
|
-
maxAz
|
|
33
|
-
minEl
|
|
34
|
-
maxEl
|
|
35
|
-
minRng
|
|
36
|
-
maxRng
|
|
28
|
+
lat: Radians;
|
|
29
|
+
lon: Radians;
|
|
30
|
+
alt: Kilometers;
|
|
31
|
+
minAz?: Degrees;
|
|
32
|
+
maxAz?: Degrees;
|
|
33
|
+
minEl?: Degrees;
|
|
34
|
+
maxEl?: Degrees;
|
|
35
|
+
minRng?: Kilometers;
|
|
36
|
+
maxRng?: Kilometers;
|
|
37
37
|
}
|
|
38
38
|
export declare enum PassType {
|
|
39
39
|
OUT_OF_VIEW = -1,
|
|
@@ -41,24 +41,38 @@ export declare enum PassType {
|
|
|
41
41
|
IN_VIEW = 1,
|
|
42
42
|
EXIT = 2
|
|
43
43
|
}
|
|
44
|
-
|
|
44
|
+
type Lookangles = {
|
|
45
45
|
type: PassType;
|
|
46
46
|
time: Date;
|
|
47
|
-
az:
|
|
48
|
-
el:
|
|
49
|
-
rng:
|
|
50
|
-
maxElPass?:
|
|
47
|
+
az: Degrees;
|
|
48
|
+
el: Degrees;
|
|
49
|
+
rng: Kilometers;
|
|
50
|
+
maxElPass?: Degrees;
|
|
51
51
|
};
|
|
52
52
|
export declare class Sensor extends BaseObject {
|
|
53
|
-
lat:
|
|
54
|
-
lon:
|
|
55
|
-
alt:
|
|
53
|
+
lat: Radians;
|
|
54
|
+
lon: Radians;
|
|
55
|
+
alt: Kilometers;
|
|
56
56
|
minAz: Degrees;
|
|
57
57
|
maxAz: Degrees;
|
|
58
58
|
minEl: Degrees;
|
|
59
59
|
maxEl: Degrees;
|
|
60
|
-
minRng:
|
|
61
|
-
maxRng:
|
|
60
|
+
minRng: Kilometers;
|
|
61
|
+
maxRng: Kilometers;
|
|
62
|
+
/**
|
|
63
|
+
* * name: Name as a string - OPTIONAL
|
|
64
|
+
* * type: SpaceObjectType - OPTIONAL
|
|
65
|
+
* * lat: Latitude in Radians
|
|
66
|
+
* * lon: Longitude in Radians
|
|
67
|
+
* * alt: Altitude in Kilometers
|
|
68
|
+
* * minAz: Minimum Azimuth in Degrees
|
|
69
|
+
* * maxAz: Maximum Azimuth in Degrees
|
|
70
|
+
* * minEl: Minimum Elevation in Degrees
|
|
71
|
+
* * maxEl: Maximum Elevation in Degrees
|
|
72
|
+
* * minRng: Minimum Range in Kilometers
|
|
73
|
+
* * maxRng: Maximum Range in Kilometers
|
|
74
|
+
* @param {ObjectInfo} info ObjectInfo object containing the object's information
|
|
75
|
+
*/
|
|
62
76
|
constructor(info: ObjectInfo);
|
|
63
77
|
private validateInputData;
|
|
64
78
|
private validateFov;
|
package/lib/objects/sensor.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @file The Sensor class is used for creating ground based observers.
|
|
7
7
|
*
|
|
8
8
|
* @license AGPL-3.0-or-later
|
|
9
|
-
* @Copyright (c) 2020-
|
|
9
|
+
* @Copyright (c) 2020-2023 Theodore Kruczek
|
|
10
10
|
*
|
|
11
11
|
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
|
|
12
12
|
* terms of the GNU Affero General Public License as published by the Free Software
|
|
@@ -47,6 +47,20 @@ export var PassType;
|
|
|
47
47
|
var TAU = Math.PI * 2;
|
|
48
48
|
var Sensor = /** @class */ (function (_super) {
|
|
49
49
|
__extends(Sensor, _super);
|
|
50
|
+
/**
|
|
51
|
+
* * name: Name as a string - OPTIONAL
|
|
52
|
+
* * type: SpaceObjectType - OPTIONAL
|
|
53
|
+
* * lat: Latitude in Radians
|
|
54
|
+
* * lon: Longitude in Radians
|
|
55
|
+
* * alt: Altitude in Kilometers
|
|
56
|
+
* * minAz: Minimum Azimuth in Degrees
|
|
57
|
+
* * maxAz: Maximum Azimuth in Degrees
|
|
58
|
+
* * minEl: Minimum Elevation in Degrees
|
|
59
|
+
* * maxEl: Maximum Elevation in Degrees
|
|
60
|
+
* * minRng: Minimum Range in Kilometers
|
|
61
|
+
* * maxRng: Maximum Range in Kilometers
|
|
62
|
+
* @param {ObjectInfo} info ObjectInfo object containing the object's information
|
|
63
|
+
*/
|
|
50
64
|
function Sensor(info) {
|
|
51
65
|
var _this = this;
|
|
52
66
|
// If there is a sensor type verify it is valid
|
|
@@ -193,8 +207,8 @@ var Sensor = /** @class */ (function (_super) {
|
|
|
193
207
|
var curTime = new Date(startTime + timeOffset * 1000);
|
|
194
208
|
var rae = this.getRae(sat, curTime);
|
|
195
209
|
// Radians to Degrees
|
|
196
|
-
rae.az
|
|
197
|
-
rae.el
|
|
210
|
+
rae.az = ((rae.az * 360) / TAU);
|
|
211
|
+
rae.el = ((rae.el * 360) / TAU);
|
|
198
212
|
var isInView = this.isRaeInFov(rae);
|
|
199
213
|
if (timeOffset === 0) {
|
|
200
214
|
// Propagate Backwards to get the previous pass
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sensor.js","sourceRoot":"","sources":["../../src/objects/sensor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;;;;;;;;;;;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"sensor.js","sourceRoot":"","sources":["../../src/objects/sensor.ts"],"names":[],"mappings":"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"}
|