@neilberkman/sidereon 0.8.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/LICENSE +21 -0
- package/README.md +105 -0
- package/package.json +32 -0
- package/pkg/sidereon.d.ts +4724 -0
- package/pkg/sidereon.js +10807 -0
- package/pkg/sidereon_bg.wasm +0 -0
- package/pkg/sidereon_bg.wasm.d.ts +761 -0
- package/pkg-node/sidereon.d.ts +3938 -0
- package/pkg-node/sidereon.js +10919 -0
- package/pkg-node/sidereon_bg.wasm +0 -0
- package/pkg-node/sidereon_bg.wasm.d.ts +761 -0
- package/types/sidereon-extra.d.ts +896 -0
|
@@ -0,0 +1,3938 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Acquisition search-grid metadata.
|
|
6
|
+
*/
|
|
7
|
+
export class AcquisitionGrid {
|
|
8
|
+
private constructor();
|
|
9
|
+
free(): void;
|
|
10
|
+
[Symbol.dispose](): void;
|
|
11
|
+
/**
|
|
12
|
+
* Number of code-phase bins searched.
|
|
13
|
+
*/
|
|
14
|
+
readonly codePhaseBins: number;
|
|
15
|
+
/**
|
|
16
|
+
* Doppler bins searched, hertz, as a `Float64Array`.
|
|
17
|
+
*/
|
|
18
|
+
readonly dopplerHz: Float64Array;
|
|
19
|
+
/**
|
|
20
|
+
* Doppler step, hertz.
|
|
21
|
+
*/
|
|
22
|
+
readonly dopplerStepHz: number;
|
|
23
|
+
/**
|
|
24
|
+
* Samples per C/A chip.
|
|
25
|
+
*/
|
|
26
|
+
readonly samplesPerChip: number;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Result of a 2D C/A code-phase and Doppler acquisition search.
|
|
31
|
+
*/
|
|
32
|
+
export class AcquisitionResult {
|
|
33
|
+
private constructor();
|
|
34
|
+
free(): void;
|
|
35
|
+
[Symbol.dispose](): void;
|
|
36
|
+
/**
|
|
37
|
+
* Recovered C/A code phase, chips.
|
|
38
|
+
*/
|
|
39
|
+
readonly codePhaseChips: number;
|
|
40
|
+
/**
|
|
41
|
+
* Recovered Doppler bin, hertz.
|
|
42
|
+
*/
|
|
43
|
+
readonly dopplerHz: number;
|
|
44
|
+
/**
|
|
45
|
+
* Search-grid metadata.
|
|
46
|
+
*/
|
|
47
|
+
readonly grid: AcquisitionGrid;
|
|
48
|
+
/**
|
|
49
|
+
* Alias of `peakMetric`.
|
|
50
|
+
*/
|
|
51
|
+
readonly metric: number;
|
|
52
|
+
/**
|
|
53
|
+
* Peak-to-mean-off-peak acquisition metric.
|
|
54
|
+
*/
|
|
55
|
+
readonly peakMetric: number;
|
|
56
|
+
/**
|
|
57
|
+
* Peak correlator power.
|
|
58
|
+
*/
|
|
59
|
+
readonly peakPower: number;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* A receiver or satellite ANTEX antenna calibration block.
|
|
64
|
+
*/
|
|
65
|
+
export class Antenna {
|
|
66
|
+
private constructor();
|
|
67
|
+
free(): void;
|
|
68
|
+
[Symbol.dispose](): void;
|
|
69
|
+
/**
|
|
70
|
+
* Frequency-dependent phase-center offset, north/east/up metres, as a
|
|
71
|
+
* length-3 `Float64Array`.
|
|
72
|
+
*/
|
|
73
|
+
pco(frequency: string): Float64Array;
|
|
74
|
+
/**
|
|
75
|
+
* Frequency-dependent phase-center variation, metres. `azimuthDeg` is
|
|
76
|
+
* optional; without it the no-azimuth interpolation is used.
|
|
77
|
+
*/
|
|
78
|
+
pcv(frequency: string, zenith_deg: number, azimuth_deg?: number | null): number;
|
|
79
|
+
/**
|
|
80
|
+
* Whether this antenna block is valid at `epoch`.
|
|
81
|
+
*/
|
|
82
|
+
validAt(epoch: AntexDateTime): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* ANTEX antenna type field.
|
|
85
|
+
*/
|
|
86
|
+
readonly antennaType: string;
|
|
87
|
+
/**
|
|
88
|
+
* Azimuth grid spacing, degrees.
|
|
89
|
+
*/
|
|
90
|
+
readonly daziDeg: number;
|
|
91
|
+
/**
|
|
92
|
+
* Available frequency codes, e.g. `"G01"`.
|
|
93
|
+
*/
|
|
94
|
+
readonly frequencies: string[];
|
|
95
|
+
/**
|
|
96
|
+
* ANTEX `TYPE / SERIAL` id.
|
|
97
|
+
*/
|
|
98
|
+
readonly id: string;
|
|
99
|
+
/**
|
|
100
|
+
* Block role: `"receiver"` or `"satellite"`.
|
|
101
|
+
*/
|
|
102
|
+
readonly kind: string;
|
|
103
|
+
/**
|
|
104
|
+
* ANTEX serial, PRN, or radome field.
|
|
105
|
+
*/
|
|
106
|
+
readonly serial: string;
|
|
107
|
+
/**
|
|
108
|
+
* Optional SINEX calibration code.
|
|
109
|
+
*/
|
|
110
|
+
readonly sinexCode: string | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* First valid timestamp, or `undefined` for an open-ended block.
|
|
113
|
+
*/
|
|
114
|
+
readonly validFrom: AntexDateTime | undefined;
|
|
115
|
+
/**
|
|
116
|
+
* Last valid timestamp, or `undefined` for an open-ended block.
|
|
117
|
+
*/
|
|
118
|
+
readonly validUntil: AntexDateTime | undefined;
|
|
119
|
+
/**
|
|
120
|
+
* Zenith grid end angle, degrees.
|
|
121
|
+
*/
|
|
122
|
+
readonly zenithEndDeg: number;
|
|
123
|
+
/**
|
|
124
|
+
* Zenith grid start angle, degrees.
|
|
125
|
+
*/
|
|
126
|
+
readonly zenithStartDeg: number;
|
|
127
|
+
/**
|
|
128
|
+
* Zenith grid step, degrees.
|
|
129
|
+
*/
|
|
130
|
+
readonly zenithStepDeg: number;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* A parsed ANTEX receiver and satellite antenna calibration product.
|
|
135
|
+
*/
|
|
136
|
+
export class Antex {
|
|
137
|
+
private constructor();
|
|
138
|
+
free(): void;
|
|
139
|
+
[Symbol.dispose](): void;
|
|
140
|
+
/**
|
|
141
|
+
* Return an antenna by exact `TYPE / SERIAL` id, or `undefined`.
|
|
142
|
+
*/
|
|
143
|
+
antenna(id: string): Antenna | undefined;
|
|
144
|
+
/**
|
|
145
|
+
* Return the satellite antenna for `prn` valid at `epoch`, or `undefined`.
|
|
146
|
+
*/
|
|
147
|
+
satelliteAntenna(prn: string, epoch: AntexDateTime): Antenna | undefined;
|
|
148
|
+
/**
|
|
149
|
+
* Number of antenna blocks parsed from the product.
|
|
150
|
+
*/
|
|
151
|
+
readonly antennaCount: number;
|
|
152
|
+
/**
|
|
153
|
+
* ANTEX `TYPE / SERIAL` ids in deterministic order.
|
|
154
|
+
*/
|
|
155
|
+
readonly antennaIds: string[];
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* A civil UTC-like ANTEX validity timestamp.
|
|
160
|
+
*/
|
|
161
|
+
export class AntexDateTime {
|
|
162
|
+
free(): void;
|
|
163
|
+
[Symbol.dispose](): void;
|
|
164
|
+
/**
|
|
165
|
+
* Create an ANTEX validity timestamp. `hour` / `minute` / `second` default
|
|
166
|
+
* to 0. Throws a `RangeError` on an invalid date.
|
|
167
|
+
*/
|
|
168
|
+
constructor(year: number, month: number, day: number, hour?: number | null, minute?: number | null, second?: number | null);
|
|
169
|
+
/**
|
|
170
|
+
* Calendar day of month.
|
|
171
|
+
*/
|
|
172
|
+
readonly day: number;
|
|
173
|
+
/**
|
|
174
|
+
* Hour of day.
|
|
175
|
+
*/
|
|
176
|
+
readonly hour: number;
|
|
177
|
+
/**
|
|
178
|
+
* Minute of hour.
|
|
179
|
+
*/
|
|
180
|
+
readonly minute: number;
|
|
181
|
+
/**
|
|
182
|
+
* Calendar month, 1..=12.
|
|
183
|
+
*/
|
|
184
|
+
readonly month: number;
|
|
185
|
+
/**
|
|
186
|
+
* Second of minute.
|
|
187
|
+
*/
|
|
188
|
+
readonly second: number;
|
|
189
|
+
/**
|
|
190
|
+
* Calendar year.
|
|
191
|
+
*/
|
|
192
|
+
readonly year: number;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Result of applying base corrections to rover observations.
|
|
197
|
+
*/
|
|
198
|
+
export class AppliedCorrections {
|
|
199
|
+
private constructor();
|
|
200
|
+
free(): void;
|
|
201
|
+
[Symbol.dispose](): void;
|
|
202
|
+
/**
|
|
203
|
+
* Corrected rover observations as `{ satelliteId, pseudorangeM }[]`, in
|
|
204
|
+
* rover-observation order.
|
|
205
|
+
*/
|
|
206
|
+
readonly corrected: any;
|
|
207
|
+
/**
|
|
208
|
+
* Rover satellite tokens with no matching base correction, in rover order.
|
|
209
|
+
*/
|
|
210
|
+
readonly dropped: string[];
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* A parsed broadcast ephemeris store from a RINEX NAV file. `records` are the
|
|
215
|
+
* usable GPS/Galileo/BeiDou records selected by the core default SPP policy.
|
|
216
|
+
*/
|
|
217
|
+
export class BroadcastEphemeris {
|
|
218
|
+
private constructor();
|
|
219
|
+
free(): void;
|
|
220
|
+
[Symbol.dispose](): void;
|
|
221
|
+
/**
|
|
222
|
+
* Compare this broadcast product against a precise SP3 product over a
|
|
223
|
+
* J2000-second window `[fromJ2000S, toJ2000S]` at `stepS`.
|
|
224
|
+
*
|
|
225
|
+
* `satellites` is the list of tokens (e.g. `["G01", "G11"]`) to compare. The
|
|
226
|
+
* per-epoch keys are built here: the broadcast query second is the epoch
|
|
227
|
+
* itself, and the precise queries use the SP3 split Julian dates at the
|
|
228
|
+
* epoch and at `epoch +/- round(stepS / 2)` for the centered velocity
|
|
229
|
+
* difference. Returns a `{ overall, perSatellite, missing }` report; metre
|
|
230
|
+
* fields are `null` where no compared epoch populated them.
|
|
231
|
+
*/
|
|
232
|
+
compareToSp3(precise: Sp3, satellites: string[], from_j2000_s: number, to_j2000_s: number, step_s: number): any;
|
|
233
|
+
/**
|
|
234
|
+
* Solve a receiver position from broadcast ephemeris ALONE: the supported
|
|
235
|
+
* real-time / offline single-point-positioning mode. `request` is the same
|
|
236
|
+
* SPP request object [`Sp3.solveSpp`] takes. The result is identical to
|
|
237
|
+
* solving against this broadcast store as an ephemeris source.
|
|
238
|
+
*/
|
|
239
|
+
solveBroadcast(request: any): SppSolution;
|
|
240
|
+
/**
|
|
241
|
+
* Number of usable GLONASS records.
|
|
242
|
+
*/
|
|
243
|
+
readonly glonassRecordCount: number;
|
|
244
|
+
/**
|
|
245
|
+
* Healthy GLONASS broadcast records in file order.
|
|
246
|
+
*/
|
|
247
|
+
readonly glonassRecords: GlonassRecordJs[];
|
|
248
|
+
/**
|
|
249
|
+
* Broadcast ionosphere coefficients parsed from the NAV header.
|
|
250
|
+
*/
|
|
251
|
+
readonly ionoCorrections: IonoCorrectionsJs;
|
|
252
|
+
/**
|
|
253
|
+
* GPS minus UTC leap seconds from the NAV header, or `undefined`.
|
|
254
|
+
*/
|
|
255
|
+
readonly leapSeconds: number | undefined;
|
|
256
|
+
/**
|
|
257
|
+
* Number of usable GPS, Galileo, and BeiDou records.
|
|
258
|
+
*/
|
|
259
|
+
readonly recordCount: number;
|
|
260
|
+
/**
|
|
261
|
+
* Usable GPS, Galileo, and BeiDou broadcast records in file order.
|
|
262
|
+
*/
|
|
263
|
+
readonly records: BroadcastRecordJs[];
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Evaluated broadcast orbit and satellite clock at one seconds-of-week epoch.
|
|
268
|
+
*/
|
|
269
|
+
export class BroadcastEvaluation {
|
|
270
|
+
private constructor();
|
|
271
|
+
free(): void;
|
|
272
|
+
[Symbol.dispose](): void;
|
|
273
|
+
/**
|
|
274
|
+
* Broadcast clock-polynomial component, seconds.
|
|
275
|
+
*/
|
|
276
|
+
readonly clockPolynomialS: number;
|
|
277
|
+
/**
|
|
278
|
+
* Total satellite clock offset, seconds.
|
|
279
|
+
*/
|
|
280
|
+
readonly clockS: number;
|
|
281
|
+
/**
|
|
282
|
+
* Broadcast group delay subtracted from the clock offset, seconds.
|
|
283
|
+
*/
|
|
284
|
+
readonly groupDelayS: number;
|
|
285
|
+
/**
|
|
286
|
+
* Fixed-point iterations used to solve Kepler's equation.
|
|
287
|
+
*/
|
|
288
|
+
readonly keplerIterations: number;
|
|
289
|
+
/**
|
|
290
|
+
* ITRF/ECEF satellite position `[x, y, z]`, metres.
|
|
291
|
+
*/
|
|
292
|
+
readonly positionM: Float64Array;
|
|
293
|
+
/**
|
|
294
|
+
* Relativistic eccentricity clock component, seconds.
|
|
295
|
+
*/
|
|
296
|
+
readonly relativisticClockS: number;
|
|
297
|
+
/**
|
|
298
|
+
* Query epoch, seconds of week in the record's broadcast time scale.
|
|
299
|
+
*/
|
|
300
|
+
readonly tSowS: number;
|
|
301
|
+
/**
|
|
302
|
+
* ITRF/ECEF X, metres.
|
|
303
|
+
*/
|
|
304
|
+
readonly xM: number;
|
|
305
|
+
/**
|
|
306
|
+
* ITRF/ECEF Y, metres.
|
|
307
|
+
*/
|
|
308
|
+
readonly yM: number;
|
|
309
|
+
/**
|
|
310
|
+
* ITRF/ECEF Z, metres.
|
|
311
|
+
*/
|
|
312
|
+
readonly zM: number;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* One GPS, Galileo, or BeiDou broadcast ephemeris record from RINEX NAV.
|
|
317
|
+
*/
|
|
318
|
+
export class BroadcastRecordJs {
|
|
319
|
+
private constructor();
|
|
320
|
+
free(): void;
|
|
321
|
+
[Symbol.dispose](): void;
|
|
322
|
+
/**
|
|
323
|
+
* Evaluate the broadcast record at a seconds-of-week epoch. `tSowS` is in
|
|
324
|
+
* the record's broadcast time scale. Throws a `RangeError` on a non-finite
|
|
325
|
+
* epoch and an `Error` if the orbit cannot be evaluated.
|
|
326
|
+
*/
|
|
327
|
+
evaluate(t_sow_s: number): BroadcastEvaluation;
|
|
328
|
+
/**
|
|
329
|
+
* Satellite clock polynomial.
|
|
330
|
+
*/
|
|
331
|
+
readonly clock: ClockPolynomialJs;
|
|
332
|
+
/**
|
|
333
|
+
* Keplerian orbital elements in SI units.
|
|
334
|
+
*/
|
|
335
|
+
readonly elements: KeplerianElementsJs;
|
|
336
|
+
/**
|
|
337
|
+
* GPS curve-fit interval, seconds, or `undefined` when not broadcast.
|
|
338
|
+
*/
|
|
339
|
+
readonly fitIntervalS: number | undefined;
|
|
340
|
+
/**
|
|
341
|
+
* Broadcast group delay, seconds.
|
|
342
|
+
*/
|
|
343
|
+
readonly groupDelayS: number;
|
|
344
|
+
/**
|
|
345
|
+
* Broadcast message type.
|
|
346
|
+
*/
|
|
347
|
+
readonly message: NavMessage;
|
|
348
|
+
/**
|
|
349
|
+
* RINEX satellite token such as `"G01"`.
|
|
350
|
+
*/
|
|
351
|
+
readonly satellite: string;
|
|
352
|
+
/**
|
|
353
|
+
* Signal-in-space accuracy, metres.
|
|
354
|
+
*/
|
|
355
|
+
readonly svAccuracyM: number;
|
|
356
|
+
/**
|
|
357
|
+
* Satellite health word; 0 is healthy for nominal GPS/Galileo.
|
|
358
|
+
*/
|
|
359
|
+
readonly svHealth: number;
|
|
360
|
+
/**
|
|
361
|
+
* Continuous constellation week number from the broadcast record.
|
|
362
|
+
*/
|
|
363
|
+
readonly week: number;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* A canonical GNSS carrier band. The JS value matches the variant order below.
|
|
368
|
+
*/
|
|
369
|
+
export enum CarrierBand {
|
|
370
|
+
/**
|
|
371
|
+
* GPS/QZSS L1.
|
|
372
|
+
*/
|
|
373
|
+
L1 = 0,
|
|
374
|
+
/**
|
|
375
|
+
* GPS/QZSS L2.
|
|
376
|
+
*/
|
|
377
|
+
L2 = 1,
|
|
378
|
+
/**
|
|
379
|
+
* GPS/QZSS L5.
|
|
380
|
+
*/
|
|
381
|
+
L5 = 2,
|
|
382
|
+
/**
|
|
383
|
+
* Galileo E1.
|
|
384
|
+
*/
|
|
385
|
+
E1 = 3,
|
|
386
|
+
/**
|
|
387
|
+
* Galileo E5a.
|
|
388
|
+
*/
|
|
389
|
+
E5a = 4,
|
|
390
|
+
/**
|
|
391
|
+
* Galileo E5b.
|
|
392
|
+
*/
|
|
393
|
+
E5b = 5,
|
|
394
|
+
/**
|
|
395
|
+
* Galileo E5 AltBOC.
|
|
396
|
+
*/
|
|
397
|
+
E5 = 6,
|
|
398
|
+
/**
|
|
399
|
+
* Galileo E6.
|
|
400
|
+
*/
|
|
401
|
+
E6 = 7,
|
|
402
|
+
/**
|
|
403
|
+
* BeiDou B1C.
|
|
404
|
+
*/
|
|
405
|
+
B1c = 8,
|
|
406
|
+
/**
|
|
407
|
+
* BeiDou B1I.
|
|
408
|
+
*/
|
|
409
|
+
B1i = 9,
|
|
410
|
+
/**
|
|
411
|
+
* BeiDou B2a.
|
|
412
|
+
*/
|
|
413
|
+
B2a = 10,
|
|
414
|
+
/**
|
|
415
|
+
* BeiDou B2b.
|
|
416
|
+
*/
|
|
417
|
+
B2b = 11,
|
|
418
|
+
/**
|
|
419
|
+
* BeiDou B2.
|
|
420
|
+
*/
|
|
421
|
+
B2 = 12,
|
|
422
|
+
/**
|
|
423
|
+
* BeiDou B3I.
|
|
424
|
+
*/
|
|
425
|
+
B3i = 13,
|
|
426
|
+
/**
|
|
427
|
+
* GLONASS G1 FDMA.
|
|
428
|
+
*/
|
|
429
|
+
G1 = 14,
|
|
430
|
+
/**
|
|
431
|
+
* GLONASS G2 FDMA.
|
|
432
|
+
*/
|
|
433
|
+
G2 = 15,
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* A standard two-carrier ionosphere-free pair.
|
|
438
|
+
*/
|
|
439
|
+
export class CarrierPair {
|
|
440
|
+
free(): void;
|
|
441
|
+
[Symbol.dispose](): void;
|
|
442
|
+
/**
|
|
443
|
+
* Create a two-carrier pair.
|
|
444
|
+
*/
|
|
445
|
+
constructor(band1: CarrierBand, band2: CarrierBand);
|
|
446
|
+
/**
|
|
447
|
+
* First carrier band.
|
|
448
|
+
*/
|
|
449
|
+
readonly band1: CarrierBand;
|
|
450
|
+
/**
|
|
451
|
+
* Second carrier band.
|
|
452
|
+
*/
|
|
453
|
+
readonly band2: CarrierBand;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* Flattened carrier-phase rows from one RINEX OBS epoch. Numeric arrays are
|
|
458
|
+
* row-aligned with `satellites` and `codes`; missing values and unknown
|
|
459
|
+
* carrier metadata are `NaN`.
|
|
460
|
+
*/
|
|
461
|
+
export class CarrierPhaseSeries {
|
|
462
|
+
private constructor();
|
|
463
|
+
free(): void;
|
|
464
|
+
[Symbol.dispose](): void;
|
|
465
|
+
/**
|
|
466
|
+
* RINEX carrier observation codes, row-aligned with all arrays.
|
|
467
|
+
*/
|
|
468
|
+
readonly codes: string[];
|
|
469
|
+
/**
|
|
470
|
+
* Carrier frequency, hertz.
|
|
471
|
+
*/
|
|
472
|
+
readonly frequencyHz: Float64Array;
|
|
473
|
+
/**
|
|
474
|
+
* Number of flattened rows.
|
|
475
|
+
*/
|
|
476
|
+
readonly length: number;
|
|
477
|
+
/**
|
|
478
|
+
* RINEX LLI values, `NaN` for blanks.
|
|
479
|
+
*/
|
|
480
|
+
readonly lli: Float64Array;
|
|
481
|
+
/**
|
|
482
|
+
* Applied phase shift, cycles.
|
|
483
|
+
*/
|
|
484
|
+
readonly phaseShiftCycles: Float64Array;
|
|
485
|
+
/**
|
|
486
|
+
* Satellite tokens, row-aligned with all arrays.
|
|
487
|
+
*/
|
|
488
|
+
readonly satellites: string[];
|
|
489
|
+
/**
|
|
490
|
+
* RINEX SSI values, `NaN` for blanks.
|
|
491
|
+
*/
|
|
492
|
+
readonly ssi: Float64Array;
|
|
493
|
+
/**
|
|
494
|
+
* Carrier phase, cycles.
|
|
495
|
+
*/
|
|
496
|
+
readonly valueCycles: Float64Array;
|
|
497
|
+
/**
|
|
498
|
+
* Carrier phase, metres.
|
|
499
|
+
*/
|
|
500
|
+
readonly valueM: Float64Array;
|
|
501
|
+
/**
|
|
502
|
+
* Carrier wavelength, metres.
|
|
503
|
+
*/
|
|
504
|
+
readonly wavelengthM: Float64Array;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
/**
|
|
508
|
+
* A two-object CCSDS Conjunction Data Message parsed from KVN or XML.
|
|
509
|
+
*/
|
|
510
|
+
export class Cdm {
|
|
511
|
+
free(): void;
|
|
512
|
+
[Symbol.dispose](): void;
|
|
513
|
+
/**
|
|
514
|
+
* Build a CDM from two objects. `meta` carries the optional message-level
|
|
515
|
+
* fields.
|
|
516
|
+
*/
|
|
517
|
+
constructor(object1: CdmObject, object2: CdmObject, meta: any);
|
|
518
|
+
/**
|
|
519
|
+
* Encode this message to CCSDS CDM KVN text.
|
|
520
|
+
*/
|
|
521
|
+
toKvnString(): string;
|
|
522
|
+
/**
|
|
523
|
+
* Encode this message to CCSDS CDM XML text.
|
|
524
|
+
*/
|
|
525
|
+
toXmlString(): string;
|
|
526
|
+
/**
|
|
527
|
+
* Collision probability.
|
|
528
|
+
*/
|
|
529
|
+
readonly collisionProbability: number | undefined;
|
|
530
|
+
/**
|
|
531
|
+
* Collision-probability method label.
|
|
532
|
+
*/
|
|
533
|
+
readonly collisionProbabilityMethod: string | undefined;
|
|
534
|
+
/**
|
|
535
|
+
* Creation date.
|
|
536
|
+
*/
|
|
537
|
+
readonly creationDate: string | undefined;
|
|
538
|
+
/**
|
|
539
|
+
* Hard-body radius, metres.
|
|
540
|
+
*/
|
|
541
|
+
readonly hardBodyRadiusM: number | undefined;
|
|
542
|
+
/**
|
|
543
|
+
* Message id.
|
|
544
|
+
*/
|
|
545
|
+
readonly messageId: string | undefined;
|
|
546
|
+
/**
|
|
547
|
+
* Miss distance, metres.
|
|
548
|
+
*/
|
|
549
|
+
readonly missDistanceM: number | undefined;
|
|
550
|
+
/**
|
|
551
|
+
* First object.
|
|
552
|
+
*/
|
|
553
|
+
readonly object1: CdmObject;
|
|
554
|
+
/**
|
|
555
|
+
* Second object.
|
|
556
|
+
*/
|
|
557
|
+
readonly object2: CdmObject;
|
|
558
|
+
/**
|
|
559
|
+
* Originator.
|
|
560
|
+
*/
|
|
561
|
+
readonly originator: string | undefined;
|
|
562
|
+
/**
|
|
563
|
+
* Relative speed, m/s.
|
|
564
|
+
*/
|
|
565
|
+
readonly relativeSpeedMS: number | undefined;
|
|
566
|
+
/**
|
|
567
|
+
* Time of closest approach (TCA).
|
|
568
|
+
*/
|
|
569
|
+
readonly tca: string | undefined;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
/**
|
|
573
|
+
* One object's metadata, state vector, and RTN position covariance from a CDM.
|
|
574
|
+
*/
|
|
575
|
+
export class CdmObject {
|
|
576
|
+
free(): void;
|
|
577
|
+
[Symbol.dispose](): void;
|
|
578
|
+
/**
|
|
579
|
+
* Build a CDM object. `positionKm` / `velocityKmS` are length-3
|
|
580
|
+
* `Float64Array`s; `covarianceRtn` is the length-6 RTN lower triangle
|
|
581
|
+
* `[CR_R, CT_R, CT_T, CN_R, CN_T, CN_N]`. `meta` carries the optional
|
|
582
|
+
* string fields.
|
|
583
|
+
*/
|
|
584
|
+
constructor(position_km: Float64Array, velocity_km_s: Float64Array, covariance_rtn: Float64Array, meta: any);
|
|
585
|
+
/**
|
|
586
|
+
* Catalog name.
|
|
587
|
+
*/
|
|
588
|
+
readonly catalogName: string | undefined;
|
|
589
|
+
/**
|
|
590
|
+
* RTN position-covariance lower triangle, length-6 `Float64Array`.
|
|
591
|
+
*/
|
|
592
|
+
readonly covarianceRtn: Float64Array;
|
|
593
|
+
/**
|
|
594
|
+
* International designator (COSPAR ID).
|
|
595
|
+
*/
|
|
596
|
+
readonly internationalDesignator: string | undefined;
|
|
597
|
+
/**
|
|
598
|
+
* Object designator.
|
|
599
|
+
*/
|
|
600
|
+
readonly objectDesignator: string | undefined;
|
|
601
|
+
/**
|
|
602
|
+
* Object name.
|
|
603
|
+
*/
|
|
604
|
+
readonly objectName: string | undefined;
|
|
605
|
+
/**
|
|
606
|
+
* Object type.
|
|
607
|
+
*/
|
|
608
|
+
readonly objectType: string | undefined;
|
|
609
|
+
/**
|
|
610
|
+
* Position vector, kilometres, length-3 `Float64Array`.
|
|
611
|
+
*/
|
|
612
|
+
readonly positionKm: Float64Array;
|
|
613
|
+
/**
|
|
614
|
+
* Reference frame.
|
|
615
|
+
*/
|
|
616
|
+
readonly refFrame: string | undefined;
|
|
617
|
+
/**
|
|
618
|
+
* Velocity vector, km/s, length-3 `Float64Array`.
|
|
619
|
+
*/
|
|
620
|
+
readonly velocityKmS: Float64Array;
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
/**
|
|
624
|
+
* An advisory TLE checksum discrepancy. The TLE grammar does not reject a line
|
|
625
|
+
* on a bad modulo-10 checksum, so each mismatch is surfaced here rather than
|
|
626
|
+
* thrown.
|
|
627
|
+
*/
|
|
628
|
+
export class ChecksumWarning {
|
|
629
|
+
private constructor();
|
|
630
|
+
free(): void;
|
|
631
|
+
[Symbol.dispose](): void;
|
|
632
|
+
/**
|
|
633
|
+
* The checksum digit recomputed from columns 1-68.
|
|
634
|
+
*/
|
|
635
|
+
readonly computed: number;
|
|
636
|
+
/**
|
|
637
|
+
* The checksum digit found in column 69 of the line.
|
|
638
|
+
*/
|
|
639
|
+
readonly expected: number;
|
|
640
|
+
/**
|
|
641
|
+
* Which line the discrepancy is on: `"line 1"` or `"line 2"`.
|
|
642
|
+
*/
|
|
643
|
+
readonly lineLabel: string;
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
/**
|
|
647
|
+
* A civil GPS-time epoch for RINEX clock interpolation. Calendar fields are
|
|
648
|
+
* interpreted in GPS time; `gpsSeconds` is seconds since 1980-01-06 GPST.
|
|
649
|
+
*/
|
|
650
|
+
export class ClockEpoch {
|
|
651
|
+
free(): void;
|
|
652
|
+
[Symbol.dispose](): void;
|
|
653
|
+
/**
|
|
654
|
+
* Build a GPS-time civil epoch. Throws a `RangeError` for invalid fields.
|
|
655
|
+
*/
|
|
656
|
+
constructor(year: number, month: number, day: number, hour: number, minute: number, second: number);
|
|
657
|
+
readonly day: number;
|
|
658
|
+
/**
|
|
659
|
+
* Seconds since the GPS epoch, 1980-01-06 00:00:00 GPST.
|
|
660
|
+
*/
|
|
661
|
+
readonly gpsSeconds: number;
|
|
662
|
+
readonly hour: number;
|
|
663
|
+
readonly minute: number;
|
|
664
|
+
readonly month: number;
|
|
665
|
+
readonly second: number;
|
|
666
|
+
readonly year: number;
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
/**
|
|
670
|
+
* Broadcast satellite-clock polynomial. `af0`/`af1`/`af2` are s, s/s, s/s^2;
|
|
671
|
+
* `tocSow` is seconds of week.
|
|
672
|
+
*/
|
|
673
|
+
export class ClockPolynomialJs {
|
|
674
|
+
private constructor();
|
|
675
|
+
free(): void;
|
|
676
|
+
[Symbol.dispose](): void;
|
|
677
|
+
readonly af0: number;
|
|
678
|
+
readonly af1: number;
|
|
679
|
+
readonly af2: number;
|
|
680
|
+
readonly tocSow: number;
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
/**
|
|
684
|
+
* Per-satellite RINEX clock-bias samples. `gpsSeconds` and `biasS` are
|
|
685
|
+
* row-aligned `Float64Array`s; epochs are GPS seconds, biases are seconds.
|
|
686
|
+
*/
|
|
687
|
+
export class ClockSeries {
|
|
688
|
+
private constructor();
|
|
689
|
+
free(): void;
|
|
690
|
+
[Symbol.dispose](): void;
|
|
691
|
+
/**
|
|
692
|
+
* Satellite clock-bias samples, seconds, as a `Float64Array`.
|
|
693
|
+
*/
|
|
694
|
+
readonly biasS: Float64Array;
|
|
695
|
+
/**
|
|
696
|
+
* Sample times, GPS seconds, as a `Float64Array`.
|
|
697
|
+
*/
|
|
698
|
+
readonly gpsSeconds: Float64Array;
|
|
699
|
+
/**
|
|
700
|
+
* Number of clock samples for this satellite.
|
|
701
|
+
*/
|
|
702
|
+
readonly length: number;
|
|
703
|
+
/**
|
|
704
|
+
* RINEX satellite token such as `"G05"`.
|
|
705
|
+
*/
|
|
706
|
+
readonly satellite: string;
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
/**
|
|
710
|
+
* Collision-probability result and encounter-plane summary.
|
|
711
|
+
*/
|
|
712
|
+
export class CollisionProbability {
|
|
713
|
+
private constructor();
|
|
714
|
+
free(): void;
|
|
715
|
+
[Symbol.dispose](): void;
|
|
716
|
+
/**
|
|
717
|
+
* Orthogonal miss distance in the encounter plane, km.
|
|
718
|
+
*/
|
|
719
|
+
readonly missKm: number;
|
|
720
|
+
/**
|
|
721
|
+
* Collision probability.
|
|
722
|
+
*/
|
|
723
|
+
readonly pc: number;
|
|
724
|
+
/**
|
|
725
|
+
* Relative speed, km/s.
|
|
726
|
+
*/
|
|
727
|
+
readonly relativeSpeedKmS: number;
|
|
728
|
+
/**
|
|
729
|
+
* Principal-axis standard deviation in the encounter plane, km.
|
|
730
|
+
*/
|
|
731
|
+
readonly sigmaXKm: number;
|
|
732
|
+
/**
|
|
733
|
+
* Principal-axis standard deviation in the encounter plane, km.
|
|
734
|
+
*/
|
|
735
|
+
readonly sigmaZKm: number;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
/**
|
|
739
|
+
* One object's conjunction state: ECI position (km), velocity (km/s), and 3x3
|
|
740
|
+
* position covariance (km^2, flat row-major length 9).
|
|
741
|
+
*/
|
|
742
|
+
export class ConjunctionState {
|
|
743
|
+
free(): void;
|
|
744
|
+
[Symbol.dispose](): void;
|
|
745
|
+
/**
|
|
746
|
+
* Build a conjunction state. `positionKm` and `velocityKmS` are length-3
|
|
747
|
+
* `Float64Array`s; `covarianceKm2` is a flat row-major length-9
|
|
748
|
+
* `Float64Array`.
|
|
749
|
+
*/
|
|
750
|
+
constructor(position_km: Float64Array, velocity_km_s: Float64Array, covariance_km2: Float64Array);
|
|
751
|
+
/**
|
|
752
|
+
* Position covariance, km^2, as a flat row-major length-9 `Float64Array`.
|
|
753
|
+
*/
|
|
754
|
+
readonly covarianceKm2: Float64Array;
|
|
755
|
+
/**
|
|
756
|
+
* ECI position, kilometres, as a length-3 `Float64Array`.
|
|
757
|
+
*/
|
|
758
|
+
readonly positionKm: Float64Array;
|
|
759
|
+
/**
|
|
760
|
+
* ECI velocity, km/s, as a length-3 `Float64Array`.
|
|
761
|
+
*/
|
|
762
|
+
readonly velocityKmS: Float64Array;
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
/**
|
|
766
|
+
* Coherent GPS C/A correlation result.
|
|
767
|
+
*/
|
|
768
|
+
export class CorrelationResult {
|
|
769
|
+
private constructor();
|
|
770
|
+
free(): void;
|
|
771
|
+
[Symbol.dispose](): void;
|
|
772
|
+
/**
|
|
773
|
+
* In-phase coherent sum.
|
|
774
|
+
*/
|
|
775
|
+
readonly i: number;
|
|
776
|
+
/**
|
|
777
|
+
* Squared magnitude, `i*i + q*q`.
|
|
778
|
+
*/
|
|
779
|
+
readonly power: number;
|
|
780
|
+
/**
|
|
781
|
+
* Quadrature coherent sum.
|
|
782
|
+
*/
|
|
783
|
+
readonly q: number;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
/**
|
|
787
|
+
* A DGNSS rover solve: the corrected SPP solution plus the base-relative
|
|
788
|
+
* baseline.
|
|
789
|
+
*/
|
|
790
|
+
export class DgnssSolution {
|
|
791
|
+
private constructor();
|
|
792
|
+
free(): void;
|
|
793
|
+
[Symbol.dispose](): void;
|
|
794
|
+
/**
|
|
795
|
+
* Baseline length, metres.
|
|
796
|
+
*/
|
|
797
|
+
readonly baselineM: number;
|
|
798
|
+
/**
|
|
799
|
+
* Rover-minus-base ECEF vector `[dx, dy, dz]`, metres.
|
|
800
|
+
*/
|
|
801
|
+
readonly baselineVectorM: Float64Array;
|
|
802
|
+
/**
|
|
803
|
+
* Rover satellite tokens without a matching base correction.
|
|
804
|
+
*/
|
|
805
|
+
readonly droppedSats: string[];
|
|
806
|
+
/**
|
|
807
|
+
* `[latRad, lonRad, heightM]` when the solve was asked for geodetic output.
|
|
808
|
+
*/
|
|
809
|
+
readonly geodetic: Float64Array | undefined;
|
|
810
|
+
/**
|
|
811
|
+
* Corrected rover ECEF position `[x, y, z]`, metres.
|
|
812
|
+
*/
|
|
813
|
+
readonly positionM: Float64Array;
|
|
814
|
+
/**
|
|
815
|
+
* Post-fit residuals, metres, index-aligned to `usedSats`.
|
|
816
|
+
*/
|
|
817
|
+
readonly residualsM: Float64Array;
|
|
818
|
+
/**
|
|
819
|
+
* Receiver clock bias, seconds (absorbs the base/rover clock difference).
|
|
820
|
+
*/
|
|
821
|
+
readonly rxClockS: number;
|
|
822
|
+
/**
|
|
823
|
+
* Satellite tokens used in the accepted solution, ascending.
|
|
824
|
+
*/
|
|
825
|
+
readonly usedSats: string[];
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
/**
|
|
829
|
+
* GNSS dilution-of-precision scalars.
|
|
830
|
+
*/
|
|
831
|
+
export class Dop {
|
|
832
|
+
private constructor();
|
|
833
|
+
free(): void;
|
|
834
|
+
[Symbol.dispose](): void;
|
|
835
|
+
/**
|
|
836
|
+
* Compute DOP from topocentric azimuth/elevation rows.
|
|
837
|
+
*
|
|
838
|
+
* `azimuthDeg` and `elevationDeg` are `Float64Array`s of length `n`
|
|
839
|
+
* (azimuth clockwise from geodetic north). `receiver` defines the local ENU
|
|
840
|
+
* frame. Optional `weights` is a positive `Float64Array` of length `n`.
|
|
841
|
+
*/
|
|
842
|
+
static fromAzEl(azimuth_deg: Float64Array, elevation_deg: Float64Array, receiver: Wgs84Geodetic, weights?: Float64Array | null): Dop;
|
|
843
|
+
/**
|
|
844
|
+
* Compute DOP from ECEF line-of-sight unit rows.
|
|
845
|
+
*
|
|
846
|
+
* `lineOfSight` is a flat row-major `(n, 3)` `Float64Array` of ECEF unit
|
|
847
|
+
* vectors, `receiver` is WGS84 geodetic, optional `weights` is a positive
|
|
848
|
+
* `Float64Array` of length `n`. At least four rows are required.
|
|
849
|
+
*/
|
|
850
|
+
static fromLineOfSight(line_of_sight: Float64Array, receiver: Wgs84Geodetic, weights?: Float64Array | null): Dop;
|
|
851
|
+
/**
|
|
852
|
+
* Geometric DOP.
|
|
853
|
+
*/
|
|
854
|
+
readonly gdop: number;
|
|
855
|
+
/**
|
|
856
|
+
* Horizontal DOP.
|
|
857
|
+
*/
|
|
858
|
+
readonly hdop: number;
|
|
859
|
+
/**
|
|
860
|
+
* Position DOP.
|
|
861
|
+
*/
|
|
862
|
+
readonly pdop: number;
|
|
863
|
+
/**
|
|
864
|
+
* Time DOP.
|
|
865
|
+
*/
|
|
866
|
+
readonly tdop: number;
|
|
867
|
+
/**
|
|
868
|
+
* Vertical DOP.
|
|
869
|
+
*/
|
|
870
|
+
readonly vdop: number;
|
|
871
|
+
}
|
|
872
|
+
|
|
873
|
+
/**
|
|
874
|
+
* DOP values sampled from an SP3 precise product over an epoch grid. Only
|
|
875
|
+
* samples with finite DOP are retained.
|
|
876
|
+
*/
|
|
877
|
+
export class DopSeries {
|
|
878
|
+
private constructor();
|
|
879
|
+
free(): void;
|
|
880
|
+
[Symbol.dispose](): void;
|
|
881
|
+
/**
|
|
882
|
+
* Satellite tokens used at finite sample `index`, ascending in elevation.
|
|
883
|
+
*/
|
|
884
|
+
satellitesAt(index: number): string[] | undefined;
|
|
885
|
+
/**
|
|
886
|
+
* Number of finite DOP samples.
|
|
887
|
+
*/
|
|
888
|
+
readonly epochCount: number;
|
|
889
|
+
/**
|
|
890
|
+
* Geometric DOP samples, `Float64Array`.
|
|
891
|
+
*/
|
|
892
|
+
readonly gdop: Float64Array;
|
|
893
|
+
/**
|
|
894
|
+
* Horizontal DOP samples, `Float64Array`.
|
|
895
|
+
*/
|
|
896
|
+
readonly hdop: Float64Array;
|
|
897
|
+
/**
|
|
898
|
+
* Successful sample epochs, seconds since J2000, `Float64Array`.
|
|
899
|
+
*/
|
|
900
|
+
readonly j2000Seconds: Float64Array;
|
|
901
|
+
/**
|
|
902
|
+
* Position DOP samples, `Float64Array`.
|
|
903
|
+
*/
|
|
904
|
+
readonly pdop: Float64Array;
|
|
905
|
+
/**
|
|
906
|
+
* Number of satellites used at each finite sample, `Int32Array`.
|
|
907
|
+
*/
|
|
908
|
+
readonly satelliteCount: Int32Array;
|
|
909
|
+
/**
|
|
910
|
+
* Input epoch indices for finite DOP samples, `Int32Array`.
|
|
911
|
+
*/
|
|
912
|
+
readonly stepIndex: Int32Array;
|
|
913
|
+
/**
|
|
914
|
+
* Time DOP samples, `Float64Array`.
|
|
915
|
+
*/
|
|
916
|
+
readonly tdop: Float64Array;
|
|
917
|
+
/**
|
|
918
|
+
* Vertical DOP samples, `Float64Array`.
|
|
919
|
+
*/
|
|
920
|
+
readonly vdop: Float64Array;
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
/**
|
|
924
|
+
* Orthonormal encounter frame built from two relative states.
|
|
925
|
+
*/
|
|
926
|
+
export class EncounterFrame {
|
|
927
|
+
private constructor();
|
|
928
|
+
free(): void;
|
|
929
|
+
[Symbol.dispose](): void;
|
|
930
|
+
/**
|
|
931
|
+
* Orthogonal miss distance in the encounter plane, km.
|
|
932
|
+
*/
|
|
933
|
+
readonly missKm: number;
|
|
934
|
+
/**
|
|
935
|
+
* Relative position (object2 minus object1), km, length-3 `Float64Array`.
|
|
936
|
+
*/
|
|
937
|
+
readonly relativePositionKm: Float64Array;
|
|
938
|
+
/**
|
|
939
|
+
* Relative speed, km/s.
|
|
940
|
+
*/
|
|
941
|
+
readonly relativeSpeedKmS: number;
|
|
942
|
+
/**
|
|
943
|
+
* Relative velocity (object2 minus object1), km/s, length-3 `Float64Array`.
|
|
944
|
+
*/
|
|
945
|
+
readonly relativeVelocityKmS: Float64Array;
|
|
946
|
+
/**
|
|
947
|
+
* In-plane cross-track unit axis, length-3 `Float64Array`.
|
|
948
|
+
*/
|
|
949
|
+
readonly xHat: Float64Array;
|
|
950
|
+
/**
|
|
951
|
+
* Relative-velocity unit axis, length-3 `Float64Array`.
|
|
952
|
+
*/
|
|
953
|
+
readonly yHat: Float64Array;
|
|
954
|
+
/**
|
|
955
|
+
* Encounter-plane normal unit axis, length-3 `Float64Array`.
|
|
956
|
+
*/
|
|
957
|
+
readonly zHat: Float64Array;
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
/**
|
|
961
|
+
* An ephemeris from numerical state-vector propagation: the requested output
|
|
962
|
+
* epochs plus the Cartesian state at each. Arrays are flat row-major.
|
|
963
|
+
*/
|
|
964
|
+
export class Ephemeris {
|
|
965
|
+
private constructor();
|
|
966
|
+
free(): void;
|
|
967
|
+
[Symbol.dispose](): void;
|
|
968
|
+
/**
|
|
969
|
+
* Number of output epochs.
|
|
970
|
+
*/
|
|
971
|
+
readonly epochCount: number;
|
|
972
|
+
/**
|
|
973
|
+
* ECI positions, km, flat `[x0, y0, z0, x1, ...]`, length `3 * epochCount`.
|
|
974
|
+
*/
|
|
975
|
+
readonly positionKm: Float64Array;
|
|
976
|
+
/**
|
|
977
|
+
* The full state ephemeris as a flat row-major `Float64Array` of length
|
|
978
|
+
* `6 * epochCount`, each row `[x, y, z, vx, vy, vz]` (km, km/s).
|
|
979
|
+
*/
|
|
980
|
+
readonly states: Float64Array;
|
|
981
|
+
/**
|
|
982
|
+
* The output epochs (TDB seconds), as a `Float64Array` of length `epochCount`.
|
|
983
|
+
*/
|
|
984
|
+
readonly timesS: Float64Array;
|
|
985
|
+
/**
|
|
986
|
+
* ECI velocities, km/s, flat `[vx0, vy0, vz0, ...]`, length `3 * epochCount`.
|
|
987
|
+
*/
|
|
988
|
+
readonly velocityKmS: Float64Array;
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
/**
|
|
992
|
+
* A fault-detection-and-exclusion result: the surviving solution, the excluded
|
|
993
|
+
* satellites in exclusion order, and the number of exclusions performed.
|
|
994
|
+
*/
|
|
995
|
+
export class FdeSolution {
|
|
996
|
+
private constructor();
|
|
997
|
+
free(): void;
|
|
998
|
+
[Symbol.dispose](): void;
|
|
999
|
+
/**
|
|
1000
|
+
* Excluded satellite tokens, in the order RAIM removed them.
|
|
1001
|
+
*/
|
|
1002
|
+
readonly excluded: string[];
|
|
1003
|
+
/**
|
|
1004
|
+
* `[latRad, lonRad, heightM]` when geodetic output was requested.
|
|
1005
|
+
*/
|
|
1006
|
+
readonly geodetic: Float64Array | undefined;
|
|
1007
|
+
/**
|
|
1008
|
+
* Number of exclusions performed before the set passed RAIM.
|
|
1009
|
+
*/
|
|
1010
|
+
readonly iterations: number;
|
|
1011
|
+
/**
|
|
1012
|
+
* Surviving-solution ECEF position `[x, y, z]`, metres.
|
|
1013
|
+
*/
|
|
1014
|
+
readonly positionM: Float64Array;
|
|
1015
|
+
/**
|
|
1016
|
+
* Post-fit residuals, metres, index-aligned to `usedSats`.
|
|
1017
|
+
*/
|
|
1018
|
+
readonly residualsM: Float64Array;
|
|
1019
|
+
/**
|
|
1020
|
+
* Receiver clock bias, seconds.
|
|
1021
|
+
*/
|
|
1022
|
+
readonly rxClockS: number;
|
|
1023
|
+
/**
|
|
1024
|
+
* Satellite tokens used in the surviving solution, ascending.
|
|
1025
|
+
*/
|
|
1026
|
+
readonly usedSats: string[];
|
|
1027
|
+
}
|
|
1028
|
+
|
|
1029
|
+
/**
|
|
1030
|
+
* A batch of transformed states from [`temeToGcrs`]: flat row-major
|
|
1031
|
+
* `positionKm` and `velocityKmS` `Float64Array`s, each length `3 * epochCount`.
|
|
1032
|
+
*/
|
|
1033
|
+
export class FrameStates {
|
|
1034
|
+
private constructor();
|
|
1035
|
+
free(): void;
|
|
1036
|
+
[Symbol.dispose](): void;
|
|
1037
|
+
/**
|
|
1038
|
+
* Number of states in the batch.
|
|
1039
|
+
*/
|
|
1040
|
+
readonly epochCount: number;
|
|
1041
|
+
/**
|
|
1042
|
+
* Transformed positions, kilometres, flat row-major `(n, 3)`.
|
|
1043
|
+
*/
|
|
1044
|
+
readonly positionKm: Float64Array;
|
|
1045
|
+
/**
|
|
1046
|
+
* Transformed velocities, km/s, flat row-major `(n, 3)`.
|
|
1047
|
+
*/
|
|
1048
|
+
readonly velocityKmS: Float64Array;
|
|
1049
|
+
}
|
|
1050
|
+
|
|
1051
|
+
/**
|
|
1052
|
+
* One GLONASS broadcast state-vector record. `toeUtcJ2000S` is UTC seconds past
|
|
1053
|
+
* J2000; position is PZ-90.11 ECEF metres, velocity m/s, acceleration m/s^2.
|
|
1054
|
+
*/
|
|
1055
|
+
export class GlonassRecordJs {
|
|
1056
|
+
private constructor();
|
|
1057
|
+
free(): void;
|
|
1058
|
+
[Symbol.dispose](): void;
|
|
1059
|
+
/**
|
|
1060
|
+
* Lunisolar acceleration `[ax, ay, az]`, metres per second squared.
|
|
1061
|
+
*/
|
|
1062
|
+
readonly accelerationMS2: Float64Array;
|
|
1063
|
+
/**
|
|
1064
|
+
* Broadcast clock bias, seconds.
|
|
1065
|
+
*/
|
|
1066
|
+
readonly clockBiasS: number;
|
|
1067
|
+
/**
|
|
1068
|
+
* FDMA frequency-channel number.
|
|
1069
|
+
*/
|
|
1070
|
+
readonly freqChannel: number;
|
|
1071
|
+
/**
|
|
1072
|
+
* Relative frequency offset.
|
|
1073
|
+
*/
|
|
1074
|
+
readonly gammaN: number;
|
|
1075
|
+
/**
|
|
1076
|
+
* PZ-90.11 ECEF position `[x, y, z]`, metres.
|
|
1077
|
+
*/
|
|
1078
|
+
readonly positionM: Float64Array;
|
|
1079
|
+
/**
|
|
1080
|
+
* RINEX satellite token such as `"R10"`.
|
|
1081
|
+
*/
|
|
1082
|
+
readonly satellite: string;
|
|
1083
|
+
/**
|
|
1084
|
+
* Satellite health; 0 is healthy.
|
|
1085
|
+
*/
|
|
1086
|
+
readonly svHealth: number;
|
|
1087
|
+
/**
|
|
1088
|
+
* Reference epoch, UTC seconds past J2000.
|
|
1089
|
+
*/
|
|
1090
|
+
readonly toeUtcJ2000S: number;
|
|
1091
|
+
/**
|
|
1092
|
+
* PZ-90.11 ECEF velocity `[vx, vy, vz]`, metres per second.
|
|
1093
|
+
*/
|
|
1094
|
+
readonly velocityMS: Float64Array;
|
|
1095
|
+
}
|
|
1096
|
+
|
|
1097
|
+
/**
|
|
1098
|
+
* A GNSS constellation. The JS value matches the variant order below.
|
|
1099
|
+
*/
|
|
1100
|
+
export enum GnssSystem {
|
|
1101
|
+
/**
|
|
1102
|
+
* GPS, RINEX letter `G`.
|
|
1103
|
+
*/
|
|
1104
|
+
Gps = 0,
|
|
1105
|
+
/**
|
|
1106
|
+
* GLONASS, RINEX letter `R`.
|
|
1107
|
+
*/
|
|
1108
|
+
Glonass = 1,
|
|
1109
|
+
/**
|
|
1110
|
+
* Galileo, RINEX letter `E`.
|
|
1111
|
+
*/
|
|
1112
|
+
Galileo = 2,
|
|
1113
|
+
/**
|
|
1114
|
+
* BeiDou, RINEX letter `C`.
|
|
1115
|
+
*/
|
|
1116
|
+
BeiDou = 3,
|
|
1117
|
+
/**
|
|
1118
|
+
* QZSS, RINEX letter `J`.
|
|
1119
|
+
*/
|
|
1120
|
+
Qzss = 4,
|
|
1121
|
+
/**
|
|
1122
|
+
* NavIC, RINEX letter `I`.
|
|
1123
|
+
*/
|
|
1124
|
+
Navic = 5,
|
|
1125
|
+
/**
|
|
1126
|
+
* SBAS, RINEX letter `S`.
|
|
1127
|
+
*/
|
|
1128
|
+
Sbas = 6,
|
|
1129
|
+
}
|
|
1130
|
+
|
|
1131
|
+
/**
|
|
1132
|
+
* A GNSS week number plus time-of-week, tagged by constellation.
|
|
1133
|
+
*/
|
|
1134
|
+
export class GnssWeekTow {
|
|
1135
|
+
free(): void;
|
|
1136
|
+
[Symbol.dispose](): void;
|
|
1137
|
+
/**
|
|
1138
|
+
* Create a week/TOW. Throws a `RangeError` on an invalid value.
|
|
1139
|
+
*/
|
|
1140
|
+
constructor(system: TimeScale, week: number, tow_s: number);
|
|
1141
|
+
/**
|
|
1142
|
+
* Normalize so `towS` lands in `[0, 604800)`, carrying whole weeks into
|
|
1143
|
+
* `week`. Negative `towS` borrows from the week count.
|
|
1144
|
+
*/
|
|
1145
|
+
normalized(): GnssWeekTow;
|
|
1146
|
+
/**
|
|
1147
|
+
* Apply a 1024-week rollover count to recover the continuous week number.
|
|
1148
|
+
*/
|
|
1149
|
+
unrolledWeek(rollovers: number): number;
|
|
1150
|
+
/**
|
|
1151
|
+
* The constellation/system whose week/TOW convention this uses.
|
|
1152
|
+
*/
|
|
1153
|
+
readonly system: TimeScale;
|
|
1154
|
+
/**
|
|
1155
|
+
* Time of week, seconds, nominally `[0, 604800)`.
|
|
1156
|
+
*/
|
|
1157
|
+
readonly towS: number;
|
|
1158
|
+
/**
|
|
1159
|
+
* Week number (constellation-native, may have rolled over).
|
|
1160
|
+
*/
|
|
1161
|
+
readonly week: number;
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
/**
|
|
1165
|
+
* A geodetic ground station: WGS84 latitude/longitude in degrees, altitude in
|
|
1166
|
+
* metres. Pass to [`Tle.lookAngles`] / [`Tle.findPasses`].
|
|
1167
|
+
*/
|
|
1168
|
+
export class GroundStation {
|
|
1169
|
+
free(): void;
|
|
1170
|
+
[Symbol.dispose](): void;
|
|
1171
|
+
/**
|
|
1172
|
+
* Create a ground station. `altitudeM` defaults to 0.
|
|
1173
|
+
*/
|
|
1174
|
+
constructor(latitude_deg: number, longitude_deg: number, altitude_m?: number | null);
|
|
1175
|
+
readonly altitudeM: number;
|
|
1176
|
+
readonly latitudeDeg: number;
|
|
1177
|
+
readonly longitudeDeg: number;
|
|
1178
|
+
}
|
|
1179
|
+
|
|
1180
|
+
/**
|
|
1181
|
+
* A point in time, tagged UTC, with the precise time scales resolved.
|
|
1182
|
+
*
|
|
1183
|
+
* Construct from a unix-microsecond UTC stamp (a `bigint`) or from UTC calendar
|
|
1184
|
+
* fields. The resolved TT/UT1/TDB Julian dates, sidereal time, and
|
|
1185
|
+
* precession/nutation are exposed as read-only properties and methods, all from
|
|
1186
|
+
* the engine's parity-critical pipeline.
|
|
1187
|
+
*/
|
|
1188
|
+
export class Instant {
|
|
1189
|
+
private constructor();
|
|
1190
|
+
free(): void;
|
|
1191
|
+
[Symbol.dispose](): void;
|
|
1192
|
+
/**
|
|
1193
|
+
* Build an instant from a unix-microsecond UTC stamp.
|
|
1194
|
+
*/
|
|
1195
|
+
static fromUnixMicros(unix_micros: bigint): Instant;
|
|
1196
|
+
/**
|
|
1197
|
+
* Build an instant from UTC calendar fields. `second` may be fractional and
|
|
1198
|
+
* is held to microsecond resolution. Throws a `RangeError` on an
|
|
1199
|
+
* out-of-range calendar field.
|
|
1200
|
+
*/
|
|
1201
|
+
static fromUtc(year: number, month: number, day: number, hour?: number | null, minute?: number | null, second?: number | null): Instant;
|
|
1202
|
+
/**
|
|
1203
|
+
* Greenwich Apparent Sidereal Time, radians in `[0, 2pi)`.
|
|
1204
|
+
*/
|
|
1205
|
+
gastRadians(): number;
|
|
1206
|
+
/**
|
|
1207
|
+
* Greenwich Mean Sidereal Time, radians in `[0, 2pi)`.
|
|
1208
|
+
*/
|
|
1209
|
+
gmstRadians(): number;
|
|
1210
|
+
/**
|
|
1211
|
+
* IAU 2000A nutation in longitude and obliquity `[dpsi, deps]`, radians,
|
|
1212
|
+
* as a `Float64Array` of length 2.
|
|
1213
|
+
*/
|
|
1214
|
+
nutationAngles(): Float64Array;
|
|
1215
|
+
/**
|
|
1216
|
+
* IAU 2000A nutation rotation matrix as a flat row-major `Float64Array` of
|
|
1217
|
+
* length 9 (3-by-3).
|
|
1218
|
+
*/
|
|
1219
|
+
nutationMatrix(): Float64Array;
|
|
1220
|
+
/**
|
|
1221
|
+
* IAU 2006 precession rotation matrix as a flat row-major `Float64Array` of
|
|
1222
|
+
* length 9 (3-by-3).
|
|
1223
|
+
*/
|
|
1224
|
+
precessionMatrix(): Float64Array;
|
|
1225
|
+
/**
|
|
1226
|
+
* Delta-T (TT minus UT1), seconds.
|
|
1227
|
+
*/
|
|
1228
|
+
readonly deltaTSeconds: number;
|
|
1229
|
+
/**
|
|
1230
|
+
* The shared integer Julian-day boundary (TAI-aligned).
|
|
1231
|
+
*/
|
|
1232
|
+
readonly jdWhole: number;
|
|
1233
|
+
/**
|
|
1234
|
+
* IAU mean obliquity of the ecliptic, radians.
|
|
1235
|
+
*/
|
|
1236
|
+
readonly meanObliquityRadians: number;
|
|
1237
|
+
/**
|
|
1238
|
+
* TDB day fraction relative to `jdWhole`.
|
|
1239
|
+
*/
|
|
1240
|
+
readonly tdbFraction: number;
|
|
1241
|
+
/**
|
|
1242
|
+
* Full Barycentric Dynamical Time (TDB) Julian date.
|
|
1243
|
+
*/
|
|
1244
|
+
readonly tdbJd: number;
|
|
1245
|
+
/**
|
|
1246
|
+
* The two-part TDB Julian date (`jdWhole`, `tdbFraction`).
|
|
1247
|
+
*/
|
|
1248
|
+
readonly tdbJdSplit: JulianDate;
|
|
1249
|
+
/**
|
|
1250
|
+
* TT day fraction relative to `jdWhole`.
|
|
1251
|
+
*/
|
|
1252
|
+
readonly ttFraction: number;
|
|
1253
|
+
/**
|
|
1254
|
+
* Full Terrestrial Time (TT) Julian date.
|
|
1255
|
+
*/
|
|
1256
|
+
readonly ttJd: number;
|
|
1257
|
+
/**
|
|
1258
|
+
* The two-part TT Julian date (`jdWhole`, `ttFraction`).
|
|
1259
|
+
*/
|
|
1260
|
+
readonly ttJdSplit: JulianDate;
|
|
1261
|
+
/**
|
|
1262
|
+
* The unix-microsecond UTC stamp backing this instant.
|
|
1263
|
+
*/
|
|
1264
|
+
readonly unixMicros: bigint;
|
|
1265
|
+
/**
|
|
1266
|
+
* UT1 day fraction relative to `jdWhole`.
|
|
1267
|
+
*/
|
|
1268
|
+
readonly ut1Fraction: number;
|
|
1269
|
+
/**
|
|
1270
|
+
* Full UT1 Julian date.
|
|
1271
|
+
*/
|
|
1272
|
+
readonly ut1Jd: number;
|
|
1273
|
+
/**
|
|
1274
|
+
* The two-part UT1 Julian date (`jdWhole`, `ut1Fraction`).
|
|
1275
|
+
*/
|
|
1276
|
+
readonly ut1JdSplit: JulianDate;
|
|
1277
|
+
}
|
|
1278
|
+
|
|
1279
|
+
/**
|
|
1280
|
+
* A parsed IONEX vertical-TEC product. Create with [`load_ionex`].
|
|
1281
|
+
*/
|
|
1282
|
+
export class Ionex {
|
|
1283
|
+
private constructor();
|
|
1284
|
+
free(): void;
|
|
1285
|
+
[Symbol.dispose](): void;
|
|
1286
|
+
/**
|
|
1287
|
+
* IONEX slant ionospheric group delay, positive metres.
|
|
1288
|
+
*
|
|
1289
|
+
* Receiver latitude/longitude and satellite azimuth/elevation are degrees
|
|
1290
|
+
* (latitude positive north, longitude positive east, azimuth clockwise
|
|
1291
|
+
* from north). The pierce point rides on the IONEX shell, so no receiver
|
|
1292
|
+
* height enters. `epochJ2000S` is an integer number of seconds since J2000.
|
|
1293
|
+
* `frequencyHz` is the carrier the dispersive delay is reported on. Throws
|
|
1294
|
+
* a `RangeError` on non-finite input and an `Error` on out-of-range input.
|
|
1295
|
+
*/
|
|
1296
|
+
slantDelay(lat_deg: number, lon_deg: number, azimuth_deg: number, elevation_deg: number, epoch_j2000_s: number, frequency_hz: number): number;
|
|
1297
|
+
/**
|
|
1298
|
+
* Mean Earth radius used by the geometry, kilometres.
|
|
1299
|
+
*/
|
|
1300
|
+
readonly baseRadiusKm: number;
|
|
1301
|
+
/**
|
|
1302
|
+
* The IONEX `EXPONENT` header field; the TEC scale is `10^exponent`.
|
|
1303
|
+
*/
|
|
1304
|
+
readonly exponent: number;
|
|
1305
|
+
/**
|
|
1306
|
+
* Latitude node values, degrees, as a `Float64Array`, descending
|
|
1307
|
+
* (north-to-south).
|
|
1308
|
+
*/
|
|
1309
|
+
readonly latNodesDeg: Float64Array;
|
|
1310
|
+
/**
|
|
1311
|
+
* Longitude node values, degrees, as a `Float64Array`, ascending
|
|
1312
|
+
* (west-to-east).
|
|
1313
|
+
*/
|
|
1314
|
+
readonly lonNodesDeg: Float64Array;
|
|
1315
|
+
/**
|
|
1316
|
+
* Map epochs as seconds since J2000, ascending, as a `Float64Array`. This
|
|
1317
|
+
* is the exact axis [`Ionex.slantDelay`] brackets against.
|
|
1318
|
+
*/
|
|
1319
|
+
readonly mapEpochsJ2000S: Float64Array;
|
|
1320
|
+
/**
|
|
1321
|
+
* Single-layer shell height, kilometres.
|
|
1322
|
+
*/
|
|
1323
|
+
readonly shellHeightKm: number;
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1326
|
+
/**
|
|
1327
|
+
* A staleness-selected IONEX product plus its [`StalenessMetadata`]. The inner
|
|
1328
|
+
* product is the present product for an exact selection or a diurnal-shifted
|
|
1329
|
+
* copy for a degraded one; either way `slantDelay` evaluates the standard slant
|
|
1330
|
+
* delay on it.
|
|
1331
|
+
*/
|
|
1332
|
+
export class IonexSelection {
|
|
1333
|
+
private constructor();
|
|
1334
|
+
free(): void;
|
|
1335
|
+
[Symbol.dispose](): void;
|
|
1336
|
+
/**
|
|
1337
|
+
* Slant ionospheric group delay, positive metres, from the selected product.
|
|
1338
|
+
* Same degree-valued geometry as [`Ionex.slantDelay`]; for an exact
|
|
1339
|
+
* selection the result is bit-for-bit identical to evaluating the caller's
|
|
1340
|
+
* product directly.
|
|
1341
|
+
*/
|
|
1342
|
+
slantDelay(lat_deg: number, lon_deg: number, azimuth_deg: number, elevation_deg: number, epoch_j2000_s: number, frequency_hz: number): number;
|
|
1343
|
+
/**
|
|
1344
|
+
* The usable IONEX product as a standalone [`Ionex`] handle: the present
|
|
1345
|
+
* product for an exact selection, or the diurnal-shifted copy.
|
|
1346
|
+
*/
|
|
1347
|
+
readonly ionex: Ionex;
|
|
1348
|
+
/**
|
|
1349
|
+
* The staleness metadata as a plain object (see [`StalenessMetadataJs`]).
|
|
1350
|
+
*/
|
|
1351
|
+
readonly metadata: any;
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1354
|
+
/**
|
|
1355
|
+
* Broadcast ionosphere coefficients parsed from a RINEX NAV header.
|
|
1356
|
+
*/
|
|
1357
|
+
export class IonoCorrectionsJs {
|
|
1358
|
+
private constructor();
|
|
1359
|
+
free(): void;
|
|
1360
|
+
[Symbol.dispose](): void;
|
|
1361
|
+
/**
|
|
1362
|
+
* BeiDou Klobuchar coefficients, if the header has BDSA and BDSB.
|
|
1363
|
+
*/
|
|
1364
|
+
readonly beidou: KlobucharAlphaBetaJs | undefined;
|
|
1365
|
+
/**
|
|
1366
|
+
* GPS Klobuchar coefficients, if the header has GPSA and GPSB.
|
|
1367
|
+
*/
|
|
1368
|
+
readonly gps: KlobucharAlphaBetaJs | undefined;
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
/**
|
|
1372
|
+
* Result of combining two pseudorange bands into ionosphere-free ranges.
|
|
1373
|
+
*/
|
|
1374
|
+
export class IonoFreePseudorangeResult {
|
|
1375
|
+
private constructor();
|
|
1376
|
+
free(): void;
|
|
1377
|
+
[Symbol.dispose](): void;
|
|
1378
|
+
/**
|
|
1379
|
+
* Combined ionosphere-free ranges, metres, row-aligned with `combinedSats`.
|
|
1380
|
+
*/
|
|
1381
|
+
readonly combinedM: Float64Array;
|
|
1382
|
+
/**
|
|
1383
|
+
* Satellite tokens with a combined ionosphere-free range, sorted.
|
|
1384
|
+
*/
|
|
1385
|
+
readonly combinedSats: string[];
|
|
1386
|
+
/**
|
|
1387
|
+
* Drop reasons row-aligned with `droppedSats`.
|
|
1388
|
+
*/
|
|
1389
|
+
readonly droppedReasons: any[];
|
|
1390
|
+
/**
|
|
1391
|
+
* Satellite tokens dropped from the combination, sorted.
|
|
1392
|
+
*/
|
|
1393
|
+
readonly droppedSats: string[];
|
|
1394
|
+
}
|
|
1395
|
+
|
|
1396
|
+
/**
|
|
1397
|
+
* Hatch-smoothed ionosphere-free code output for one epoch.
|
|
1398
|
+
*/
|
|
1399
|
+
export class IonoFreeSmoothResult {
|
|
1400
|
+
private constructor();
|
|
1401
|
+
free(): void;
|
|
1402
|
+
[Symbol.dispose](): void;
|
|
1403
|
+
/**
|
|
1404
|
+
* Instantaneous ionosphere-free carrier phase, metres, or `undefined`.
|
|
1405
|
+
*/
|
|
1406
|
+
readonly lIfM: number | undefined;
|
|
1407
|
+
/**
|
|
1408
|
+
* Instantaneous ionosphere-free code, metres, or `undefined`.
|
|
1409
|
+
*/
|
|
1410
|
+
readonly pIfM: number | undefined;
|
|
1411
|
+
/**
|
|
1412
|
+
* Smoothed ionosphere-free code pseudorange, metres, or `undefined`.
|
|
1413
|
+
*/
|
|
1414
|
+
readonly pSmoothM: number | undefined;
|
|
1415
|
+
/**
|
|
1416
|
+
* True when a prior running window was reset by a slip.
|
|
1417
|
+
*/
|
|
1418
|
+
readonly reset: boolean;
|
|
1419
|
+
/**
|
|
1420
|
+
* Hatch window length used at this epoch.
|
|
1421
|
+
*/
|
|
1422
|
+
readonly window: number;
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1425
|
+
/**
|
|
1426
|
+
* A two-part Julian date: an integer-day boundary plus a residual fraction,
|
|
1427
|
+
* preserving sub-microsecond precision across the Julian-date range.
|
|
1428
|
+
*/
|
|
1429
|
+
export class JulianDate {
|
|
1430
|
+
private constructor();
|
|
1431
|
+
free(): void;
|
|
1432
|
+
[Symbol.dispose](): void;
|
|
1433
|
+
/**
|
|
1434
|
+
* Residual day fraction relative to `whole`.
|
|
1435
|
+
*/
|
|
1436
|
+
readonly fraction: number;
|
|
1437
|
+
/**
|
|
1438
|
+
* The recombined single-`number` Julian date (`whole + fraction`).
|
|
1439
|
+
*/
|
|
1440
|
+
readonly jd: number;
|
|
1441
|
+
/**
|
|
1442
|
+
* Integer-day boundary (typically `*.0` or `*.5`).
|
|
1443
|
+
*/
|
|
1444
|
+
readonly whole: number;
|
|
1445
|
+
}
|
|
1446
|
+
|
|
1447
|
+
/**
|
|
1448
|
+
* Broadcast Keplerian orbital elements. Units are SI: angles in radians,
|
|
1449
|
+
* correction terms in radians or metres, `toeSow` in seconds of week.
|
|
1450
|
+
*/
|
|
1451
|
+
export class KeplerianElementsJs {
|
|
1452
|
+
private constructor();
|
|
1453
|
+
free(): void;
|
|
1454
|
+
[Symbol.dispose](): void;
|
|
1455
|
+
readonly cic: number;
|
|
1456
|
+
readonly cis: number;
|
|
1457
|
+
readonly crc: number;
|
|
1458
|
+
readonly crs: number;
|
|
1459
|
+
readonly cuc: number;
|
|
1460
|
+
readonly cus: number;
|
|
1461
|
+
readonly deltaN: number;
|
|
1462
|
+
readonly e: number;
|
|
1463
|
+
readonly i0: number;
|
|
1464
|
+
readonly idot: number;
|
|
1465
|
+
readonly m0: number;
|
|
1466
|
+
readonly omega: number;
|
|
1467
|
+
readonly omega0: number;
|
|
1468
|
+
readonly omegaDot: number;
|
|
1469
|
+
readonly sqrtA: number;
|
|
1470
|
+
readonly toeSow: number;
|
|
1471
|
+
}
|
|
1472
|
+
|
|
1473
|
+
/**
|
|
1474
|
+
* Klobuchar alpha and beta ionosphere coefficients (each a 4-element array).
|
|
1475
|
+
*/
|
|
1476
|
+
export class KlobucharAlphaBetaJs {
|
|
1477
|
+
private constructor();
|
|
1478
|
+
free(): void;
|
|
1479
|
+
[Symbol.dispose](): void;
|
|
1480
|
+
/**
|
|
1481
|
+
* Alpha coefficients as a `Float64Array` of length 4.
|
|
1482
|
+
*/
|
|
1483
|
+
readonly alpha: Float64Array;
|
|
1484
|
+
/**
|
|
1485
|
+
* Beta coefficients as a `Float64Array` of length 4.
|
|
1486
|
+
*/
|
|
1487
|
+
readonly beta: Float64Array;
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
/**
|
|
1491
|
+
* Provenance and coverage of the embedded IERS leap-second (TAI-UTC) table.
|
|
1492
|
+
*/
|
|
1493
|
+
export class LeapSecondTable {
|
|
1494
|
+
private constructor();
|
|
1495
|
+
free(): void;
|
|
1496
|
+
[Symbol.dispose](): void;
|
|
1497
|
+
/**
|
|
1498
|
+
* Number of entries in the table.
|
|
1499
|
+
*/
|
|
1500
|
+
readonly entries: number;
|
|
1501
|
+
/**
|
|
1502
|
+
* Modified Julian date of the first table entry.
|
|
1503
|
+
*/
|
|
1504
|
+
readonly firstMjd: number;
|
|
1505
|
+
/**
|
|
1506
|
+
* Modified Julian date of the last table entry.
|
|
1507
|
+
*/
|
|
1508
|
+
readonly lastMjd: number;
|
|
1509
|
+
/**
|
|
1510
|
+
* Human-readable provenance string for the table.
|
|
1511
|
+
*/
|
|
1512
|
+
readonly source: string;
|
|
1513
|
+
}
|
|
1514
|
+
|
|
1515
|
+
/**
|
|
1516
|
+
* Link-budget inputs for [`LinkBudget.margin`].
|
|
1517
|
+
*/
|
|
1518
|
+
export class LinkBudget {
|
|
1519
|
+
free(): void;
|
|
1520
|
+
[Symbol.dispose](): void;
|
|
1521
|
+
/**
|
|
1522
|
+
* Build a link-budget input object. `otherLossesDb` defaults to 0. Throws a
|
|
1523
|
+
* `RangeError` on a non-finite field.
|
|
1524
|
+
*/
|
|
1525
|
+
constructor(eirp_dbw: number, fspl_db: number, receiver_gt_dbk: number, required_cn0_dbhz: number, other_losses_db?: number | null);
|
|
1526
|
+
/**
|
|
1527
|
+
* Transmitter EIRP, dBW.
|
|
1528
|
+
*/
|
|
1529
|
+
readonly eirpDbw: number;
|
|
1530
|
+
/**
|
|
1531
|
+
* Free-space path loss, dB.
|
|
1532
|
+
*/
|
|
1533
|
+
readonly fsplDb: number;
|
|
1534
|
+
/**
|
|
1535
|
+
* Link margin, dB, for this budget.
|
|
1536
|
+
*/
|
|
1537
|
+
readonly margin: number;
|
|
1538
|
+
/**
|
|
1539
|
+
* Sum of miscellaneous losses, dB.
|
|
1540
|
+
*/
|
|
1541
|
+
readonly otherLossesDb: number;
|
|
1542
|
+
/**
|
|
1543
|
+
* Receiver figure of merit G/T, dB/K.
|
|
1544
|
+
*/
|
|
1545
|
+
readonly receiverGtDbk: number;
|
|
1546
|
+
/**
|
|
1547
|
+
* Required C/N0 threshold, dB-Hz.
|
|
1548
|
+
*/
|
|
1549
|
+
readonly requiredCn0Dbhz: number;
|
|
1550
|
+
}
|
|
1551
|
+
|
|
1552
|
+
/**
|
|
1553
|
+
* Topocentric look angles from a batched arc, each a `Float64Array` of length
|
|
1554
|
+
* `epochCount`.
|
|
1555
|
+
*/
|
|
1556
|
+
export class LookAngles {
|
|
1557
|
+
private constructor();
|
|
1558
|
+
free(): void;
|
|
1559
|
+
[Symbol.dispose](): void;
|
|
1560
|
+
/**
|
|
1561
|
+
* Azimuth, degrees clockwise from north.
|
|
1562
|
+
*/
|
|
1563
|
+
readonly azimuthDeg: Float64Array;
|
|
1564
|
+
/**
|
|
1565
|
+
* Elevation, degrees above the horizon.
|
|
1566
|
+
*/
|
|
1567
|
+
readonly elevationDeg: Float64Array;
|
|
1568
|
+
/**
|
|
1569
|
+
* Number of epochs evaluated.
|
|
1570
|
+
*/
|
|
1571
|
+
readonly epochCount: number;
|
|
1572
|
+
/**
|
|
1573
|
+
* Slant range, kilometres.
|
|
1574
|
+
*/
|
|
1575
|
+
readonly rangeKm: Float64Array;
|
|
1576
|
+
}
|
|
1577
|
+
|
|
1578
|
+
/**
|
|
1579
|
+
* Niell hydrostatic and wet mapping factors, dimensionless.
|
|
1580
|
+
*/
|
|
1581
|
+
export class MappingFactors {
|
|
1582
|
+
private constructor();
|
|
1583
|
+
free(): void;
|
|
1584
|
+
[Symbol.dispose](): void;
|
|
1585
|
+
/**
|
|
1586
|
+
* Hydrostatic mapping factor (includes the height correction).
|
|
1587
|
+
*/
|
|
1588
|
+
readonly dry: number;
|
|
1589
|
+
/**
|
|
1590
|
+
* Wet mapping factor.
|
|
1591
|
+
*/
|
|
1592
|
+
readonly wet: number;
|
|
1593
|
+
}
|
|
1594
|
+
|
|
1595
|
+
/**
|
|
1596
|
+
* Which supported RINEX NAV message a broadcast record carries.
|
|
1597
|
+
*/
|
|
1598
|
+
export enum NavMessage {
|
|
1599
|
+
/**
|
|
1600
|
+
* GPS legacy LNAV.
|
|
1601
|
+
*/
|
|
1602
|
+
GpsLnav = 0,
|
|
1603
|
+
/**
|
|
1604
|
+
* Galileo I/NAV.
|
|
1605
|
+
*/
|
|
1606
|
+
GalileoInav = 1,
|
|
1607
|
+
/**
|
|
1608
|
+
* Galileo F/NAV.
|
|
1609
|
+
*/
|
|
1610
|
+
GalileoFnav = 2,
|
|
1611
|
+
/**
|
|
1612
|
+
* BeiDou D1.
|
|
1613
|
+
*/
|
|
1614
|
+
BeidouD1 = 3,
|
|
1615
|
+
/**
|
|
1616
|
+
* BeiDou D2.
|
|
1617
|
+
*/
|
|
1618
|
+
BeidouD2 = 4,
|
|
1619
|
+
}
|
|
1620
|
+
|
|
1621
|
+
/**
|
|
1622
|
+
* One RINEX OBS epoch. Observation values are read through `RinexObs` methods.
|
|
1623
|
+
*/
|
|
1624
|
+
export class ObsEpoch {
|
|
1625
|
+
private constructor();
|
|
1626
|
+
free(): void;
|
|
1627
|
+
[Symbol.dispose](): void;
|
|
1628
|
+
/**
|
|
1629
|
+
* Civil epoch in the file time scale.
|
|
1630
|
+
*/
|
|
1631
|
+
readonly epoch: ObsEpochTime;
|
|
1632
|
+
/**
|
|
1633
|
+
* RINEX epoch flag. `0` is a normal observation epoch.
|
|
1634
|
+
*/
|
|
1635
|
+
readonly flag: number;
|
|
1636
|
+
/**
|
|
1637
|
+
* Number of satellites present at this epoch.
|
|
1638
|
+
*/
|
|
1639
|
+
readonly satelliteCount: number;
|
|
1640
|
+
/**
|
|
1641
|
+
* Satellite tokens present at this epoch.
|
|
1642
|
+
*/
|
|
1643
|
+
readonly satellites: string[];
|
|
1644
|
+
}
|
|
1645
|
+
|
|
1646
|
+
/**
|
|
1647
|
+
* Civil epoch from a RINEX observation file, in the file time scale.
|
|
1648
|
+
*/
|
|
1649
|
+
export class ObsEpochTime {
|
|
1650
|
+
private constructor();
|
|
1651
|
+
free(): void;
|
|
1652
|
+
[Symbol.dispose](): void;
|
|
1653
|
+
/**
|
|
1654
|
+
* Calendar day of month, 1..31.
|
|
1655
|
+
*/
|
|
1656
|
+
readonly day: number;
|
|
1657
|
+
/**
|
|
1658
|
+
* Hour of day, 0..23.
|
|
1659
|
+
*/
|
|
1660
|
+
readonly hour: number;
|
|
1661
|
+
/**
|
|
1662
|
+
* Minute of hour, 0..59.
|
|
1663
|
+
*/
|
|
1664
|
+
readonly minute: number;
|
|
1665
|
+
/**
|
|
1666
|
+
* Calendar month, 1..12.
|
|
1667
|
+
*/
|
|
1668
|
+
readonly month: number;
|
|
1669
|
+
/**
|
|
1670
|
+
* Fractional seconds of minute.
|
|
1671
|
+
*/
|
|
1672
|
+
readonly second: number;
|
|
1673
|
+
/**
|
|
1674
|
+
* Calendar year.
|
|
1675
|
+
*/
|
|
1676
|
+
readonly year: number;
|
|
1677
|
+
}
|
|
1678
|
+
|
|
1679
|
+
/**
|
|
1680
|
+
* Parsed RINEX OBS header.
|
|
1681
|
+
*/
|
|
1682
|
+
export class ObsHeader {
|
|
1683
|
+
private constructor();
|
|
1684
|
+
free(): void;
|
|
1685
|
+
[Symbol.dispose](): void;
|
|
1686
|
+
/**
|
|
1687
|
+
* Observation codes for a constellation, in RINEX header order.
|
|
1688
|
+
*/
|
|
1689
|
+
obsCodes(system: GnssSystem): string[];
|
|
1690
|
+
/**
|
|
1691
|
+
* Antenna H/E/N offset `[h, e, n]`, metres, or `undefined`.
|
|
1692
|
+
*/
|
|
1693
|
+
readonly antennaDeltaHenM: Float64Array | undefined;
|
|
1694
|
+
/**
|
|
1695
|
+
* Surveyed a-priori ECEF position `[x, y, z]`, metres, or `undefined`.
|
|
1696
|
+
*/
|
|
1697
|
+
readonly approxPositionM: Float64Array | undefined;
|
|
1698
|
+
/**
|
|
1699
|
+
* GLONASS slot/frequency-channel pairs, flat `[slot0, chan0, slot1, ...]`.
|
|
1700
|
+
*/
|
|
1701
|
+
readonly glonassSlots: Int32Array;
|
|
1702
|
+
/**
|
|
1703
|
+
* Nominal epoch interval, seconds, or `undefined`.
|
|
1704
|
+
*/
|
|
1705
|
+
readonly intervalS: number | undefined;
|
|
1706
|
+
/**
|
|
1707
|
+
* Marker or station name, or `undefined`.
|
|
1708
|
+
*/
|
|
1709
|
+
readonly markerName: string | undefined;
|
|
1710
|
+
/**
|
|
1711
|
+
* Carrier phase-shift records, in header order.
|
|
1712
|
+
*/
|
|
1713
|
+
readonly phaseShifts: ObsPhaseShift[];
|
|
1714
|
+
/**
|
|
1715
|
+
* Constellations with declared observation-code lists.
|
|
1716
|
+
*/
|
|
1717
|
+
readonly systems: any[];
|
|
1718
|
+
/**
|
|
1719
|
+
* First observation epoch, or `undefined`.
|
|
1720
|
+
*/
|
|
1721
|
+
readonly timeOfFirstObsEpoch: ObsEpochTime | undefined;
|
|
1722
|
+
/**
|
|
1723
|
+
* Time scale of the first observation epoch, or `undefined`.
|
|
1724
|
+
*/
|
|
1725
|
+
readonly timeOfFirstObsScale: TimeScale | undefined;
|
|
1726
|
+
/**
|
|
1727
|
+
* RINEX version, for example `3.05`.
|
|
1728
|
+
*/
|
|
1729
|
+
readonly version: number;
|
|
1730
|
+
}
|
|
1731
|
+
|
|
1732
|
+
/**
|
|
1733
|
+
* One `SYS / PHASE SHIFT` record from a RINEX OBS header.
|
|
1734
|
+
*/
|
|
1735
|
+
export class ObsPhaseShift {
|
|
1736
|
+
private constructor();
|
|
1737
|
+
free(): void;
|
|
1738
|
+
[Symbol.dispose](): void;
|
|
1739
|
+
/**
|
|
1740
|
+
* RINEX carrier observation code, such as `L1C`.
|
|
1741
|
+
*/
|
|
1742
|
+
readonly code: string;
|
|
1743
|
+
/**
|
|
1744
|
+
* Phase correction in carrier cycles.
|
|
1745
|
+
*/
|
|
1746
|
+
readonly correctionCycles: number;
|
|
1747
|
+
/**
|
|
1748
|
+
* Satellite tokens this correction is restricted to. Empty means all.
|
|
1749
|
+
*/
|
|
1750
|
+
readonly satellites: string[];
|
|
1751
|
+
/**
|
|
1752
|
+
* Constellation this correction applies to.
|
|
1753
|
+
*/
|
|
1754
|
+
readonly system: GnssSystem;
|
|
1755
|
+
}
|
|
1756
|
+
|
|
1757
|
+
/**
|
|
1758
|
+
* Optional observation-code allow-list for raw and carrier-phase rows. Build
|
|
1759
|
+
* with `new ObservationFilter()` then chain `.withSystem(system, codes)`.
|
|
1760
|
+
*/
|
|
1761
|
+
export class ObservationFilter {
|
|
1762
|
+
free(): void;
|
|
1763
|
+
[Symbol.dispose](): void;
|
|
1764
|
+
/**
|
|
1765
|
+
* An empty filter that keeps every parsed observation.
|
|
1766
|
+
*/
|
|
1767
|
+
constructor();
|
|
1768
|
+
/**
|
|
1769
|
+
* Return a copy with one constellation's code allow-list set.
|
|
1770
|
+
*/
|
|
1771
|
+
withSystem(system: GnssSystem, codes: string[]): ObservationFilter;
|
|
1772
|
+
}
|
|
1773
|
+
|
|
1774
|
+
/**
|
|
1775
|
+
* Observation kind inferred from a RINEX observation code.
|
|
1776
|
+
*/
|
|
1777
|
+
export enum ObservationKind {
|
|
1778
|
+
/**
|
|
1779
|
+
* Code pseudorange, metres.
|
|
1780
|
+
*/
|
|
1781
|
+
Pseudorange = 0,
|
|
1782
|
+
/**
|
|
1783
|
+
* Carrier phase, cycles.
|
|
1784
|
+
*/
|
|
1785
|
+
CarrierPhase = 1,
|
|
1786
|
+
/**
|
|
1787
|
+
* Doppler, hertz.
|
|
1788
|
+
*/
|
|
1789
|
+
Doppler = 2,
|
|
1790
|
+
/**
|
|
1791
|
+
* Signal strength, dB-Hz.
|
|
1792
|
+
*/
|
|
1793
|
+
SignalStrength = 3,
|
|
1794
|
+
/**
|
|
1795
|
+
* Unknown leading RINEX code letter.
|
|
1796
|
+
*/
|
|
1797
|
+
Unknown = 4,
|
|
1798
|
+
}
|
|
1799
|
+
|
|
1800
|
+
/**
|
|
1801
|
+
* Flattened raw observation rows from one RINEX OBS epoch. Numeric arrays are
|
|
1802
|
+
* row-aligned with `satellites`, `codes`, and `kinds`; blank RINEX values, LLI,
|
|
1803
|
+
* and SSI are `NaN`.
|
|
1804
|
+
*/
|
|
1805
|
+
export class ObservationValueSeries {
|
|
1806
|
+
private constructor();
|
|
1807
|
+
free(): void;
|
|
1808
|
+
[Symbol.dispose](): void;
|
|
1809
|
+
/**
|
|
1810
|
+
* RINEX observation codes, row-aligned with all arrays.
|
|
1811
|
+
*/
|
|
1812
|
+
readonly codes: string[];
|
|
1813
|
+
/**
|
|
1814
|
+
* Observation kinds, row-aligned with all arrays.
|
|
1815
|
+
*/
|
|
1816
|
+
readonly kinds: any[];
|
|
1817
|
+
/**
|
|
1818
|
+
* Number of flattened rows.
|
|
1819
|
+
*/
|
|
1820
|
+
readonly length: number;
|
|
1821
|
+
/**
|
|
1822
|
+
* RINEX LLI values, `NaN` for blanks.
|
|
1823
|
+
*/
|
|
1824
|
+
readonly lli: Float64Array;
|
|
1825
|
+
/**
|
|
1826
|
+
* Satellite tokens, row-aligned with all arrays.
|
|
1827
|
+
*/
|
|
1828
|
+
readonly satellites: string[];
|
|
1829
|
+
/**
|
|
1830
|
+
* RINEX SSI values, `NaN` for blanks.
|
|
1831
|
+
*/
|
|
1832
|
+
readonly ssi: Float64Array;
|
|
1833
|
+
/**
|
|
1834
|
+
* Parsed observation values, as a `Float64Array`.
|
|
1835
|
+
*/
|
|
1836
|
+
readonly values: Float64Array;
|
|
1837
|
+
}
|
|
1838
|
+
|
|
1839
|
+
/**
|
|
1840
|
+
* A canonical, format-agnostic CCSDS Orbit Mean-Elements Message.
|
|
1841
|
+
*/
|
|
1842
|
+
export class Omm {
|
|
1843
|
+
free(): void;
|
|
1844
|
+
[Symbol.dispose](): void;
|
|
1845
|
+
/**
|
|
1846
|
+
* Build an OMM. The eight leading arguments are required; `meta` carries the
|
|
1847
|
+
* optional fields (`ccsdsOmmVers`, `creationDate`, ... `bstar`,
|
|
1848
|
+
* `meanMotionDot`, `meanMotionDdot`).
|
|
1849
|
+
*/
|
|
1850
|
+
constructor(epoch: OmmEpoch, mean_motion: number, eccentricity: number, inclination_deg: number, ra_of_asc_node_deg: number, arg_of_pericenter_deg: number, mean_anomaly_deg: number, norad_cat_id: number, meta: any);
|
|
1851
|
+
/**
|
|
1852
|
+
* Encode this OMM to CCSDS/CelesTrak JSON text.
|
|
1853
|
+
*/
|
|
1854
|
+
toJsonString(): string;
|
|
1855
|
+
/**
|
|
1856
|
+
* Encode this OMM to CCSDS OMM KVN text.
|
|
1857
|
+
*/
|
|
1858
|
+
toKvnString(): string;
|
|
1859
|
+
/**
|
|
1860
|
+
* Encode this OMM to CCSDS OMM XML text.
|
|
1861
|
+
*/
|
|
1862
|
+
toXmlString(): string;
|
|
1863
|
+
/**
|
|
1864
|
+
* Argument of pericenter, degrees.
|
|
1865
|
+
*/
|
|
1866
|
+
readonly argOfPericenterDeg: number;
|
|
1867
|
+
/**
|
|
1868
|
+
* B* drag term.
|
|
1869
|
+
*/
|
|
1870
|
+
readonly bstar: number;
|
|
1871
|
+
/**
|
|
1872
|
+
* CCSDS OMM version string.
|
|
1873
|
+
*/
|
|
1874
|
+
readonly ccsdsOmmVers: string;
|
|
1875
|
+
/**
|
|
1876
|
+
* Center name.
|
|
1877
|
+
*/
|
|
1878
|
+
readonly centerName: string | undefined;
|
|
1879
|
+
/**
|
|
1880
|
+
* Classification type.
|
|
1881
|
+
*/
|
|
1882
|
+
readonly classificationType: string;
|
|
1883
|
+
/**
|
|
1884
|
+
* Creation date.
|
|
1885
|
+
*/
|
|
1886
|
+
readonly creationDate: string | undefined;
|
|
1887
|
+
/**
|
|
1888
|
+
* Eccentricity.
|
|
1889
|
+
*/
|
|
1890
|
+
readonly eccentricity: number;
|
|
1891
|
+
/**
|
|
1892
|
+
* Element set number.
|
|
1893
|
+
*/
|
|
1894
|
+
readonly elementSetNo: number;
|
|
1895
|
+
/**
|
|
1896
|
+
* SGP4 ephemeris type.
|
|
1897
|
+
*/
|
|
1898
|
+
readonly ephemerisType: number;
|
|
1899
|
+
/**
|
|
1900
|
+
* The epoch.
|
|
1901
|
+
*/
|
|
1902
|
+
readonly epoch: OmmEpoch;
|
|
1903
|
+
/**
|
|
1904
|
+
* Inclination, degrees.
|
|
1905
|
+
*/
|
|
1906
|
+
readonly inclinationDeg: number;
|
|
1907
|
+
/**
|
|
1908
|
+
* Mean anomaly, degrees.
|
|
1909
|
+
*/
|
|
1910
|
+
readonly meanAnomalyDeg: number;
|
|
1911
|
+
/**
|
|
1912
|
+
* Mean-element theory.
|
|
1913
|
+
*/
|
|
1914
|
+
readonly meanElementTheory: string | undefined;
|
|
1915
|
+
/**
|
|
1916
|
+
* Mean motion, rev/day.
|
|
1917
|
+
*/
|
|
1918
|
+
readonly meanMotion: number;
|
|
1919
|
+
/**
|
|
1920
|
+
* Second derivative of mean motion.
|
|
1921
|
+
*/
|
|
1922
|
+
readonly meanMotionDdot: number;
|
|
1923
|
+
/**
|
|
1924
|
+
* First derivative of mean motion.
|
|
1925
|
+
*/
|
|
1926
|
+
readonly meanMotionDot: number;
|
|
1927
|
+
/**
|
|
1928
|
+
* NORAD catalog number.
|
|
1929
|
+
*/
|
|
1930
|
+
readonly noradCatId: number;
|
|
1931
|
+
/**
|
|
1932
|
+
* Object id.
|
|
1933
|
+
*/
|
|
1934
|
+
readonly objectId: string | undefined;
|
|
1935
|
+
/**
|
|
1936
|
+
* Object name.
|
|
1937
|
+
*/
|
|
1938
|
+
readonly objectName: string | undefined;
|
|
1939
|
+
/**
|
|
1940
|
+
* Originator.
|
|
1941
|
+
*/
|
|
1942
|
+
readonly originator: string | undefined;
|
|
1943
|
+
/**
|
|
1944
|
+
* Right ascension of the ascending node, degrees.
|
|
1945
|
+
*/
|
|
1946
|
+
readonly raOfAscNodeDeg: number;
|
|
1947
|
+
/**
|
|
1948
|
+
* Reference frame.
|
|
1949
|
+
*/
|
|
1950
|
+
readonly refFrame: string | undefined;
|
|
1951
|
+
/**
|
|
1952
|
+
* Revolution number at epoch.
|
|
1953
|
+
*/
|
|
1954
|
+
readonly revAtEpoch: bigint;
|
|
1955
|
+
/**
|
|
1956
|
+
* Time system.
|
|
1957
|
+
*/
|
|
1958
|
+
readonly timeSystem: string | undefined;
|
|
1959
|
+
}
|
|
1960
|
+
|
|
1961
|
+
/**
|
|
1962
|
+
* UTC calendar epoch carried by an OMM `EPOCH` field.
|
|
1963
|
+
*/
|
|
1964
|
+
export class OmmEpoch {
|
|
1965
|
+
free(): void;
|
|
1966
|
+
[Symbol.dispose](): void;
|
|
1967
|
+
/**
|
|
1968
|
+
* Build an OMM epoch from UTC calendar fields. Throws a `RangeError` on an
|
|
1969
|
+
* out-of-range field.
|
|
1970
|
+
*/
|
|
1971
|
+
constructor(year: number, month: number, day: number, hour: number, minute: number, second: number, microsecond: number);
|
|
1972
|
+
/**
|
|
1973
|
+
* Calendar day.
|
|
1974
|
+
*/
|
|
1975
|
+
readonly day: number;
|
|
1976
|
+
/**
|
|
1977
|
+
* Hour of day.
|
|
1978
|
+
*/
|
|
1979
|
+
readonly hour: number;
|
|
1980
|
+
/**
|
|
1981
|
+
* ISO-8601 epoch text with microsecond precision.
|
|
1982
|
+
*/
|
|
1983
|
+
readonly iso8601: string;
|
|
1984
|
+
/**
|
|
1985
|
+
* Microsecond of second.
|
|
1986
|
+
*/
|
|
1987
|
+
readonly microsecond: number;
|
|
1988
|
+
/**
|
|
1989
|
+
* Minute of hour.
|
|
1990
|
+
*/
|
|
1991
|
+
readonly minute: number;
|
|
1992
|
+
/**
|
|
1993
|
+
* Calendar month.
|
|
1994
|
+
*/
|
|
1995
|
+
readonly month: number;
|
|
1996
|
+
/**
|
|
1997
|
+
* Second of minute.
|
|
1998
|
+
*/
|
|
1999
|
+
readonly second: number;
|
|
2000
|
+
/**
|
|
2001
|
+
* Calendar year.
|
|
2002
|
+
*/
|
|
2003
|
+
readonly year: number;
|
|
2004
|
+
}
|
|
2005
|
+
|
|
2006
|
+
/**
|
|
2007
|
+
* Static integer-fixed PPP solution.
|
|
2008
|
+
*/
|
|
2009
|
+
export class PppFixedSolution {
|
|
2010
|
+
private constructor();
|
|
2011
|
+
free(): void;
|
|
2012
|
+
[Symbol.dispose](): void;
|
|
2013
|
+
readonly codeRmsM: number;
|
|
2014
|
+
readonly converged: boolean;
|
|
2015
|
+
/**
|
|
2016
|
+
* Fixed ambiguities, integer cycles, as an id-keyed object.
|
|
2017
|
+
*/
|
|
2018
|
+
readonly fixedAmbiguitiesCycles: any;
|
|
2019
|
+
/**
|
|
2020
|
+
* Fixed ambiguities, metres, as an id-keyed object.
|
|
2021
|
+
*/
|
|
2022
|
+
readonly fixedAmbiguitiesM: any;
|
|
2023
|
+
/**
|
|
2024
|
+
* The float solution that seeded the integer search.
|
|
2025
|
+
*/
|
|
2026
|
+
readonly floatSolution: PppFloatSolution;
|
|
2027
|
+
readonly integerCandidates: number;
|
|
2028
|
+
readonly integerRatio: number;
|
|
2029
|
+
/**
|
|
2030
|
+
* Integer ambiguity-fix status: `"Fixed"` or `"NotFixed"`.
|
|
2031
|
+
*/
|
|
2032
|
+
readonly integerStatus: string;
|
|
2033
|
+
readonly iterations: number;
|
|
2034
|
+
readonly phaseRmsM: number;
|
|
2035
|
+
/**
|
|
2036
|
+
* ECEF position as a `Float64Array` `[x, y, z]`, metres.
|
|
2037
|
+
*/
|
|
2038
|
+
readonly positionM: Float64Array;
|
|
2039
|
+
/**
|
|
2040
|
+
* Satellite tokens used in the accepted solution.
|
|
2041
|
+
*/
|
|
2042
|
+
readonly usedSats: string[];
|
|
2043
|
+
readonly weightedRmsM: number;
|
|
2044
|
+
/**
|
|
2045
|
+
* Estimated zenith tropospheric delay residual, metres, or `undefined`.
|
|
2046
|
+
*/
|
|
2047
|
+
readonly ztdResidualM: number | undefined;
|
|
2048
|
+
}
|
|
2049
|
+
|
|
2050
|
+
/**
|
|
2051
|
+
* Static float PPP solution.
|
|
2052
|
+
*/
|
|
2053
|
+
export class PppFloatSolution {
|
|
2054
|
+
private constructor();
|
|
2055
|
+
free(): void;
|
|
2056
|
+
[Symbol.dispose](): void;
|
|
2057
|
+
/**
|
|
2058
|
+
* Float ambiguities, metres, as an id-keyed object.
|
|
2059
|
+
*/
|
|
2060
|
+
readonly ambiguitiesM: any;
|
|
2061
|
+
readonly codeRmsM: number;
|
|
2062
|
+
readonly converged: boolean;
|
|
2063
|
+
readonly iterations: number;
|
|
2064
|
+
readonly phaseRmsM: number;
|
|
2065
|
+
/**
|
|
2066
|
+
* ECEF position as a `Float64Array` `[x, y, z]`, metres.
|
|
2067
|
+
*/
|
|
2068
|
+
readonly positionM: Float64Array;
|
|
2069
|
+
/**
|
|
2070
|
+
* Satellite tokens used in the accepted solution.
|
|
2071
|
+
*/
|
|
2072
|
+
readonly usedSats: string[];
|
|
2073
|
+
readonly weightedRmsM: number;
|
|
2074
|
+
/**
|
|
2075
|
+
* Estimated zenith tropospheric delay residual, metres, or `undefined`.
|
|
2076
|
+
*/
|
|
2077
|
+
readonly ztdResidualM: number | undefined;
|
|
2078
|
+
}
|
|
2079
|
+
|
|
2080
|
+
/**
|
|
2081
|
+
* Reason a satellite was dropped from paired pseudorange combination.
|
|
2082
|
+
*/
|
|
2083
|
+
export enum PseudorangeDropReason {
|
|
2084
|
+
/**
|
|
2085
|
+
* Present in band 2 only.
|
|
2086
|
+
*/
|
|
2087
|
+
MissingBand1 = 0,
|
|
2088
|
+
/**
|
|
2089
|
+
* Present in band 1 only.
|
|
2090
|
+
*/
|
|
2091
|
+
MissingBand2 = 1,
|
|
2092
|
+
/**
|
|
2093
|
+
* Repeated within at least one input band.
|
|
2094
|
+
*/
|
|
2095
|
+
DuplicateObservation = 2,
|
|
2096
|
+
/**
|
|
2097
|
+
* Unsupported constellation or override band.
|
|
2098
|
+
*/
|
|
2099
|
+
UnknownSystem = 3,
|
|
2100
|
+
}
|
|
2101
|
+
|
|
2102
|
+
/**
|
|
2103
|
+
* Flattened pseudorange rows from one RINEX OBS epoch. `satellites` is
|
|
2104
|
+
* row-aligned with `rangesM`; ranges are metres.
|
|
2105
|
+
*/
|
|
2106
|
+
export class PseudorangeSeries {
|
|
2107
|
+
private constructor();
|
|
2108
|
+
free(): void;
|
|
2109
|
+
[Symbol.dispose](): void;
|
|
2110
|
+
/**
|
|
2111
|
+
* Number of rows.
|
|
2112
|
+
*/
|
|
2113
|
+
readonly length: number;
|
|
2114
|
+
/**
|
|
2115
|
+
* Pseudorange values, metres, as a `Float64Array`.
|
|
2116
|
+
*/
|
|
2117
|
+
readonly rangesM: Float64Array;
|
|
2118
|
+
/**
|
|
2119
|
+
* Satellite tokens, row-aligned with `rangesM`.
|
|
2120
|
+
*/
|
|
2121
|
+
readonly satellites: string[];
|
|
2122
|
+
}
|
|
2123
|
+
|
|
2124
|
+
/**
|
|
2125
|
+
* RAIM weighting mode: either unit weights or per-satellite inverse-variance
|
|
2126
|
+
* weights (missing satellites default to unit weight).
|
|
2127
|
+
*/
|
|
2128
|
+
export class RaimWeights {
|
|
2129
|
+
private constructor();
|
|
2130
|
+
free(): void;
|
|
2131
|
+
[Symbol.dispose](): void;
|
|
2132
|
+
/**
|
|
2133
|
+
* Per-satellite inverse-variance weights. `weights` must be positive and
|
|
2134
|
+
* finite and the same length as `satelliteIds`. Throws a `TypeError` on a
|
|
2135
|
+
* length mismatch and a `RangeError` on a non-positive weight.
|
|
2136
|
+
*/
|
|
2137
|
+
static bySatellite(satellite_ids: string[], weights: Float64Array): RaimWeights;
|
|
2138
|
+
/**
|
|
2139
|
+
* Unit weights, equivalent to sigma = 1 m for every satellite.
|
|
2140
|
+
*/
|
|
2141
|
+
static unit(): RaimWeights;
|
|
2142
|
+
/**
|
|
2143
|
+
* True when all satellites use unit weight.
|
|
2144
|
+
*/
|
|
2145
|
+
readonly isUnit: boolean;
|
|
2146
|
+
/**
|
|
2147
|
+
* Satellite tokens for per-satellite weights, sorted by token.
|
|
2148
|
+
*/
|
|
2149
|
+
readonly satelliteIds: string[];
|
|
2150
|
+
/**
|
|
2151
|
+
* Inverse-variance weights as a `Float64Array`, sorted by satellite token.
|
|
2152
|
+
*/
|
|
2153
|
+
readonly weights: Float64Array;
|
|
2154
|
+
}
|
|
2155
|
+
|
|
2156
|
+
/**
|
|
2157
|
+
* A parsed RINEX clock product with satellite clock-bias interpolation.
|
|
2158
|
+
*/
|
|
2159
|
+
export class RinexClock {
|
|
2160
|
+
private constructor();
|
|
2161
|
+
free(): void;
|
|
2162
|
+
[Symbol.dispose](): void;
|
|
2163
|
+
/**
|
|
2164
|
+
* Interpolate one satellite clock bias at a GPS-time civil epoch.
|
|
2165
|
+
* Returns `undefined` if the satellite or epoch coverage is absent.
|
|
2166
|
+
*/
|
|
2167
|
+
clockS(satellite_id: string, epoch: ClockEpoch): number | undefined;
|
|
2168
|
+
/**
|
|
2169
|
+
* Interpolate one satellite clock bias at GPS seconds. Throws a
|
|
2170
|
+
* `RangeError` if `gpsSeconds` is non-finite.
|
|
2171
|
+
*/
|
|
2172
|
+
clockSAtGpsSeconds(satellite_id: string, gps_seconds: number): number | undefined;
|
|
2173
|
+
/**
|
|
2174
|
+
* One satellite's clock series, or `undefined` if the satellite is absent.
|
|
2175
|
+
*/
|
|
2176
|
+
seriesFor(satellite_id: string): ClockSeries | undefined;
|
|
2177
|
+
/**
|
|
2178
|
+
* Total number of parsed satellite clock samples.
|
|
2179
|
+
*/
|
|
2180
|
+
readonly sampleCount: number;
|
|
2181
|
+
/**
|
|
2182
|
+
* Number of satellites with clock samples.
|
|
2183
|
+
*/
|
|
2184
|
+
readonly satelliteCount: number;
|
|
2185
|
+
/**
|
|
2186
|
+
* Satellite tokens with at least one parsed `AS` clock sample.
|
|
2187
|
+
*/
|
|
2188
|
+
readonly satellites: string[];
|
|
2189
|
+
/**
|
|
2190
|
+
* Per-satellite clock-bias series in satellite sort order.
|
|
2191
|
+
*/
|
|
2192
|
+
readonly series: ClockSeries[];
|
|
2193
|
+
}
|
|
2194
|
+
|
|
2195
|
+
/**
|
|
2196
|
+
* A parsed RINEX 3/4 observation file.
|
|
2197
|
+
*/
|
|
2198
|
+
export class RinexObs {
|
|
2199
|
+
private constructor();
|
|
2200
|
+
free(): void;
|
|
2201
|
+
[Symbol.dispose](): void;
|
|
2202
|
+
/**
|
|
2203
|
+
* Flatten carrier-phase values for one epoch.
|
|
2204
|
+
*/
|
|
2205
|
+
carrierPhaseRows(epoch_index: number, filter?: ObservationFilter | null): CarrierPhaseSeries;
|
|
2206
|
+
/**
|
|
2207
|
+
* One epoch by zero-based index. Throws a `RangeError` if out of range.
|
|
2208
|
+
*/
|
|
2209
|
+
epoch(epoch_index: number): ObsEpoch;
|
|
2210
|
+
/**
|
|
2211
|
+
* Observation codes for a constellation, in header order.
|
|
2212
|
+
*/
|
|
2213
|
+
obsCodes(system: GnssSystem): string[];
|
|
2214
|
+
/**
|
|
2215
|
+
* Flatten raw observation values for one epoch.
|
|
2216
|
+
*/
|
|
2217
|
+
observationValues(epoch_index: number, filter?: ObservationFilter | null): ObservationValueSeries;
|
|
2218
|
+
/**
|
|
2219
|
+
* Extract single-frequency pseudoranges for one epoch.
|
|
2220
|
+
*/
|
|
2221
|
+
pseudoranges(epoch_index: number, policy?: SignalPolicy | null): PseudorangeSeries;
|
|
2222
|
+
/**
|
|
2223
|
+
* Number of parsed epoch records.
|
|
2224
|
+
*/
|
|
2225
|
+
readonly epochCount: number;
|
|
2226
|
+
/**
|
|
2227
|
+
* Epoch records in file order.
|
|
2228
|
+
*/
|
|
2229
|
+
readonly epochs: ObsEpoch[];
|
|
2230
|
+
/**
|
|
2231
|
+
* Parsed RINEX OBS header.
|
|
2232
|
+
*/
|
|
2233
|
+
readonly header: ObsHeader;
|
|
2234
|
+
}
|
|
2235
|
+
|
|
2236
|
+
/**
|
|
2237
|
+
* Validated fixed RTK baseline solution.
|
|
2238
|
+
*/
|
|
2239
|
+
export class RtkFixedSolution {
|
|
2240
|
+
private constructor();
|
|
2241
|
+
free(): void;
|
|
2242
|
+
[Symbol.dispose](): void;
|
|
2243
|
+
readonly converged: boolean;
|
|
2244
|
+
/**
|
|
2245
|
+
* Fixed (integer-resolved) baseline as a `Float64Array` `[dx, dy, dz]`, metres.
|
|
2246
|
+
*/
|
|
2247
|
+
readonly fixedBaselineM: Float64Array;
|
|
2248
|
+
/**
|
|
2249
|
+
* The underlying float baseline as a `Float64Array` `[dx, dy, dz]`, metres.
|
|
2250
|
+
*/
|
|
2251
|
+
readonly floatBaselineM: Float64Array;
|
|
2252
|
+
readonly integerCandidates: number;
|
|
2253
|
+
/**
|
|
2254
|
+
* Integer ambiguity ratio, or `undefined` when no ratio was computed.
|
|
2255
|
+
*/
|
|
2256
|
+
readonly integerRatio: number | undefined;
|
|
2257
|
+
/**
|
|
2258
|
+
* Integer ambiguity-fix status: `"Fixed"` or `"NotFixed"`.
|
|
2259
|
+
*/
|
|
2260
|
+
readonly integerStatus: string;
|
|
2261
|
+
}
|
|
2262
|
+
|
|
2263
|
+
/**
|
|
2264
|
+
* Static float RTK baseline solution.
|
|
2265
|
+
*/
|
|
2266
|
+
export class RtkFloatSolution {
|
|
2267
|
+
private constructor();
|
|
2268
|
+
free(): void;
|
|
2269
|
+
[Symbol.dispose](): void;
|
|
2270
|
+
/**
|
|
2271
|
+
* Float single-difference ambiguities, metres, as an id-keyed object.
|
|
2272
|
+
*/
|
|
2273
|
+
readonly ambiguitiesM: any;
|
|
2274
|
+
/**
|
|
2275
|
+
* Baseline (rover minus base) as a `Float64Array` `[dx, dy, dz]`, metres.
|
|
2276
|
+
*/
|
|
2277
|
+
readonly baselineM: Float64Array;
|
|
2278
|
+
readonly codeRmsM: number;
|
|
2279
|
+
readonly converged: boolean;
|
|
2280
|
+
readonly iterations: number;
|
|
2281
|
+
readonly nObservations: number;
|
|
2282
|
+
readonly phaseRmsM: number;
|
|
2283
|
+
readonly weightedRmsM: number;
|
|
2284
|
+
}
|
|
2285
|
+
|
|
2286
|
+
/**
|
|
2287
|
+
* A satellite pass over a ground station: acquisition of signal, loss of
|
|
2288
|
+
* signal, culmination time (all unix microseconds UTC), and the elevation at
|
|
2289
|
+
* culmination.
|
|
2290
|
+
*/
|
|
2291
|
+
export class SatellitePass {
|
|
2292
|
+
private constructor();
|
|
2293
|
+
free(): void;
|
|
2294
|
+
[Symbol.dispose](): void;
|
|
2295
|
+
/**
|
|
2296
|
+
* Acquisition of signal (rise above the mask), unix microseconds UTC.
|
|
2297
|
+
*/
|
|
2298
|
+
readonly aosUnixUs: bigint;
|
|
2299
|
+
/**
|
|
2300
|
+
* Culmination (maximum elevation) time, unix microseconds UTC.
|
|
2301
|
+
*/
|
|
2302
|
+
readonly culminationUnixUs: bigint;
|
|
2303
|
+
/**
|
|
2304
|
+
* Pass duration (LOS minus AOS), seconds.
|
|
2305
|
+
*/
|
|
2306
|
+
readonly durationS: number;
|
|
2307
|
+
/**
|
|
2308
|
+
* Loss of signal (set below the mask), unix microseconds UTC.
|
|
2309
|
+
*/
|
|
2310
|
+
readonly losUnixUs: bigint;
|
|
2311
|
+
/**
|
|
2312
|
+
* Elevation at culmination, degrees.
|
|
2313
|
+
*/
|
|
2314
|
+
readonly maxElevationDeg: number;
|
|
2315
|
+
}
|
|
2316
|
+
|
|
2317
|
+
/**
|
|
2318
|
+
* Satellite-keyed measurement sigmas (metres) or inverse-variance weights.
|
|
2319
|
+
*/
|
|
2320
|
+
export class SatelliteVector {
|
|
2321
|
+
private constructor();
|
|
2322
|
+
free(): void;
|
|
2323
|
+
[Symbol.dispose](): void;
|
|
2324
|
+
/**
|
|
2325
|
+
* Satellite tokens, sorted, row-aligned with `values`.
|
|
2326
|
+
*/
|
|
2327
|
+
readonly satelliteIds: string[];
|
|
2328
|
+
/**
|
|
2329
|
+
* Per-satellite values as a `Float64Array`.
|
|
2330
|
+
*/
|
|
2331
|
+
readonly values: Float64Array;
|
|
2332
|
+
}
|
|
2333
|
+
|
|
2334
|
+
/**
|
|
2335
|
+
* Per-constellation single-frequency pseudorange code-selection policy. Build
|
|
2336
|
+
* with `new SignalPolicy()` then chain `.withSystem(system, codes)`, or use
|
|
2337
|
+
* the static `defaultFor(version)`.
|
|
2338
|
+
*/
|
|
2339
|
+
export class SignalPolicy {
|
|
2340
|
+
free(): void;
|
|
2341
|
+
[Symbol.dispose](): void;
|
|
2342
|
+
/**
|
|
2343
|
+
* The core default pseudorange policy for a RINEX version.
|
|
2344
|
+
*/
|
|
2345
|
+
static defaultFor(version: number): SignalPolicy;
|
|
2346
|
+
/**
|
|
2347
|
+
* An empty policy with no constellation preferences.
|
|
2348
|
+
*/
|
|
2349
|
+
constructor();
|
|
2350
|
+
/**
|
|
2351
|
+
* Return a copy with one constellation's preference list set.
|
|
2352
|
+
*/
|
|
2353
|
+
withSystem(system: GnssSystem, codes: string[]): SignalPolicy;
|
|
2354
|
+
}
|
|
2355
|
+
|
|
2356
|
+
/**
|
|
2357
|
+
* Reason a carrier-phase arc split was flagged.
|
|
2358
|
+
*/
|
|
2359
|
+
export enum SlipReason {
|
|
2360
|
+
/**
|
|
2361
|
+
* Loss-of-lock indicator bit 0 set on either band.
|
|
2362
|
+
*/
|
|
2363
|
+
Lli = 0,
|
|
2364
|
+
/**
|
|
2365
|
+
* Gap to the previous usable sample exceeded the threshold.
|
|
2366
|
+
*/
|
|
2367
|
+
DataGap = 1,
|
|
2368
|
+
/**
|
|
2369
|
+
* Geometry-free phase step exceeded the threshold.
|
|
2370
|
+
*/
|
|
2371
|
+
GeometryFree = 2,
|
|
2372
|
+
/**
|
|
2373
|
+
* Melbourne-Wubbena step exceeded the threshold.
|
|
2374
|
+
*/
|
|
2375
|
+
MelbourneWubbena = 3,
|
|
2376
|
+
}
|
|
2377
|
+
|
|
2378
|
+
/**
|
|
2379
|
+
* Cycle-slip classification for one input epoch.
|
|
2380
|
+
*/
|
|
2381
|
+
export class SlipResult {
|
|
2382
|
+
private constructor();
|
|
2383
|
+
free(): void;
|
|
2384
|
+
[Symbol.dispose](): void;
|
|
2385
|
+
/**
|
|
2386
|
+
* Current geometry-free phase, metres, or `undefined`.
|
|
2387
|
+
*/
|
|
2388
|
+
readonly gfM: number | undefined;
|
|
2389
|
+
/**
|
|
2390
|
+
* Current Melbourne-Wubbena combination, metres, or `undefined`.
|
|
2391
|
+
*/
|
|
2392
|
+
readonly mwM: number | undefined;
|
|
2393
|
+
/**
|
|
2394
|
+
* Slip reasons in deterministic API order.
|
|
2395
|
+
*/
|
|
2396
|
+
readonly reasons: any[];
|
|
2397
|
+
/**
|
|
2398
|
+
* Whether the epoch was skipped because a frequency was unavailable.
|
|
2399
|
+
*/
|
|
2400
|
+
readonly skipped: boolean;
|
|
2401
|
+
/**
|
|
2402
|
+
* Whether any slip reason was flagged.
|
|
2403
|
+
*/
|
|
2404
|
+
readonly slip: boolean;
|
|
2405
|
+
}
|
|
2406
|
+
|
|
2407
|
+
/**
|
|
2408
|
+
* Hatch-smoothed single-frequency code output for one epoch.
|
|
2409
|
+
*/
|
|
2410
|
+
export class SmoothCodeResult {
|
|
2411
|
+
private constructor();
|
|
2412
|
+
free(): void;
|
|
2413
|
+
[Symbol.dispose](): void;
|
|
2414
|
+
/**
|
|
2415
|
+
* Smoothed code pseudorange, metres, or `undefined`.
|
|
2416
|
+
*/
|
|
2417
|
+
readonly pSmoothM: number | undefined;
|
|
2418
|
+
/**
|
|
2419
|
+
* True when a prior running window was reset by a slip.
|
|
2420
|
+
*/
|
|
2421
|
+
readonly reset: boolean;
|
|
2422
|
+
/**
|
|
2423
|
+
* Hatch window length used at this epoch.
|
|
2424
|
+
*/
|
|
2425
|
+
readonly window: number;
|
|
2426
|
+
}
|
|
2427
|
+
|
|
2428
|
+
/**
|
|
2429
|
+
* A receiver solution paired with the provenance of the ephemeris that produced
|
|
2430
|
+
* it. Returned by [`solveWithFallback`].
|
|
2431
|
+
*/
|
|
2432
|
+
export class SourcedSolution {
|
|
2433
|
+
private constructor();
|
|
2434
|
+
free(): void;
|
|
2435
|
+
[Symbol.dispose](): void;
|
|
2436
|
+
/**
|
|
2437
|
+
* The solved receiver position / clock as an [`SppSolution`].
|
|
2438
|
+
*/
|
|
2439
|
+
readonly solution: SppSolution;
|
|
2440
|
+
/**
|
|
2441
|
+
* Which ephemeris source produced the fix, with its staleness / rejection
|
|
2442
|
+
* provenance, as a plain object (see [`FixSourceJs`]).
|
|
2443
|
+
*/
|
|
2444
|
+
readonly source: any;
|
|
2445
|
+
}
|
|
2446
|
+
|
|
2447
|
+
/**
|
|
2448
|
+
* A parsed SP3-c or SP3-d precise-ephemeris product.
|
|
2449
|
+
*
|
|
2450
|
+
* Create with [`load_sp3`]. Query interpolated states with
|
|
2451
|
+
* [`Sp3.interpolate`], the exact parsed records with [`Sp3.state`], the node
|
|
2452
|
+
* epoch axis with [`Sp3.epochsJ2000Seconds`], run positioning with
|
|
2453
|
+
* [`Sp3.solveSpp`], and serialize back with [`Sp3.toSp3String`].
|
|
2454
|
+
*/
|
|
2455
|
+
export class Sp3 {
|
|
2456
|
+
private constructor();
|
|
2457
|
+
free(): void;
|
|
2458
|
+
[Symbol.dispose](): void;
|
|
2459
|
+
/**
|
|
2460
|
+
* Compute DGNSS pseudorange corrections from a surveyed base station.
|
|
2461
|
+
*
|
|
2462
|
+
* `request` is `{ basePositionM, baseObservations, tRxJ2000S }`; returns a
|
|
2463
|
+
* `{ satelliteId, correctionM }[]` array sorted by satellite token.
|
|
2464
|
+
*/
|
|
2465
|
+
dgnssCorrections(request: any): any;
|
|
2466
|
+
/**
|
|
2467
|
+
* Solve a DGNSS rover position: compute base corrections, apply them to the
|
|
2468
|
+
* rover, and run the corrected SPP. `request` carries the base + rover
|
|
2469
|
+
* observations and the receive-time scalars; see the `DgnssSolveRequest`
|
|
2470
|
+
* TypeScript type. Returns the corrected solution and the base baseline.
|
|
2471
|
+
*/
|
|
2472
|
+
dgnssSolve(request: any): DgnssSolution;
|
|
2473
|
+
/**
|
|
2474
|
+
* The product's parsed epochs as seconds since J2000 (the product's own
|
|
2475
|
+
* time scale), ascending. This is the exact axis [`Sp3.interpolate`]
|
|
2476
|
+
* consumes.
|
|
2477
|
+
*/
|
|
2478
|
+
epochsJ2000Seconds(): Float64Array;
|
|
2479
|
+
/**
|
|
2480
|
+
* Run fault detection and exclusion (FDE) against this ephemeris.
|
|
2481
|
+
*
|
|
2482
|
+
* `request` is the SPP solve request plus the RAIM/exclusion options (see
|
|
2483
|
+
* the `FdeRequest` TypeScript type). The core loop solves, runs RAIM, and
|
|
2484
|
+
* excludes the worst satellite until the set passes or the exclusion budget
|
|
2485
|
+
* is exhausted. Returns the surviving solution and the excluded satellites;
|
|
2486
|
+
* throws an `Error` if the fault is unresolved.
|
|
2487
|
+
*/
|
|
2488
|
+
fde(request: any): FdeSolution;
|
|
2489
|
+
/**
|
|
2490
|
+
* Interpolate `satellite`'s position and clock at each query epoch.
|
|
2491
|
+
*
|
|
2492
|
+
* `j2000Seconds` is a `Float64Array` of query times in seconds since J2000,
|
|
2493
|
+
* in the product's own time scale. Throws a `TypeError` if the satellite is
|
|
2494
|
+
* absent or the query array is empty, and an `Error` if a query lies in a
|
|
2495
|
+
* coverage gap (the engine refuses to extrapolate).
|
|
2496
|
+
*/
|
|
2497
|
+
interpolate(satellite: string, j2000_seconds: Float64Array): Sp3Interpolation;
|
|
2498
|
+
/**
|
|
2499
|
+
* Run single-point positioning against this ephemeris.
|
|
2500
|
+
*
|
|
2501
|
+
* `request` is a plain object; see the `SppRequest` TypeScript type. Throws
|
|
2502
|
+
* a `TypeError` for malformed input and an `Error` if the solve fails.
|
|
2503
|
+
*/
|
|
2504
|
+
solveSpp(request: any): SppSolution;
|
|
2505
|
+
/**
|
|
2506
|
+
* The exact parsed state of `satellite` at record `epochIndex` (no
|
|
2507
|
+
* interpolation). Throws a `RangeError` past the last epoch and a
|
|
2508
|
+
* `TypeError` if the satellite has no record there.
|
|
2509
|
+
*/
|
|
2510
|
+
state(satellite: string, epoch_index: number): Sp3State;
|
|
2511
|
+
/**
|
|
2512
|
+
* Serialize to standard SP3 text (the version named by the header, `c` or
|
|
2513
|
+
* `d`). Deterministic: the same product always produces byte-identical text.
|
|
2514
|
+
*/
|
|
2515
|
+
toSp3String(): string;
|
|
2516
|
+
/**
|
|
2517
|
+
* Number of epochs in the product.
|
|
2518
|
+
*/
|
|
2519
|
+
readonly epochCount: number;
|
|
2520
|
+
/**
|
|
2521
|
+
* Satellite tokens present in the product (e.g. `"G01"`), ascending.
|
|
2522
|
+
*/
|
|
2523
|
+
readonly satellites: string[];
|
|
2524
|
+
}
|
|
2525
|
+
|
|
2526
|
+
/**
|
|
2527
|
+
* A batch of interpolated SP3 states.
|
|
2528
|
+
*/
|
|
2529
|
+
export class Sp3Interpolation {
|
|
2530
|
+
private constructor();
|
|
2531
|
+
free(): void;
|
|
2532
|
+
[Symbol.dispose](): void;
|
|
2533
|
+
/**
|
|
2534
|
+
* Interpolated clock offsets, seconds, as a `Float64Array` (NaN where the
|
|
2535
|
+
* satellite has no clock estimate at that epoch).
|
|
2536
|
+
*/
|
|
2537
|
+
readonly clockS: Float64Array;
|
|
2538
|
+
/**
|
|
2539
|
+
* Number of query epochs in the batch.
|
|
2540
|
+
*/
|
|
2541
|
+
readonly epochCount: number;
|
|
2542
|
+
/**
|
|
2543
|
+
* Interpolated ECEF positions, metres, as a flat row-major `Float64Array`
|
|
2544
|
+
* of length `3 * epochCount` (`[x0, y0, z0, x1, y1, z1, ...]`).
|
|
2545
|
+
*/
|
|
2546
|
+
readonly positionM: Float64Array;
|
|
2547
|
+
}
|
|
2548
|
+
|
|
2549
|
+
/**
|
|
2550
|
+
* One SP3 merge audit flag for an epoch and satellite.
|
|
2551
|
+
*/
|
|
2552
|
+
export class Sp3MergeFlag {
|
|
2553
|
+
private constructor();
|
|
2554
|
+
free(): void;
|
|
2555
|
+
[Symbol.dispose](): void;
|
|
2556
|
+
/**
|
|
2557
|
+
* Flagged epoch as seconds since J2000 in the product time scale.
|
|
2558
|
+
*/
|
|
2559
|
+
readonly epochJ2000Seconds: number;
|
|
2560
|
+
/**
|
|
2561
|
+
* Satellite token, e.g. `"G01"`.
|
|
2562
|
+
*/
|
|
2563
|
+
readonly satellite: string;
|
|
2564
|
+
/**
|
|
2565
|
+
* Source indices (into the input array) this flag refers to.
|
|
2566
|
+
*/
|
|
2567
|
+
readonly sources: Uint32Array;
|
|
2568
|
+
}
|
|
2569
|
+
|
|
2570
|
+
/**
|
|
2571
|
+
* Audit report returned with a merged SP3 product.
|
|
2572
|
+
*/
|
|
2573
|
+
export class Sp3MergeReport {
|
|
2574
|
+
private constructor();
|
|
2575
|
+
free(): void;
|
|
2576
|
+
[Symbol.dispose](): void;
|
|
2577
|
+
readonly positionOutlierCount: number;
|
|
2578
|
+
/**
|
|
2579
|
+
* Cells where an accepted consensus rejected source outliers.
|
|
2580
|
+
*/
|
|
2581
|
+
readonly positionOutliers: Sp3MergeFlag[];
|
|
2582
|
+
/**
|
|
2583
|
+
* Cells omitted because sources disagreed beyond tolerance.
|
|
2584
|
+
*/
|
|
2585
|
+
readonly quarantined: Sp3MergeFlag[];
|
|
2586
|
+
readonly quarantinedCount: number;
|
|
2587
|
+
/**
|
|
2588
|
+
* Cells carried from one source because no cross-check was possible.
|
|
2589
|
+
*/
|
|
2590
|
+
readonly singleSource: Sp3MergeFlag[];
|
|
2591
|
+
readonly singleSourceCount: number;
|
|
2592
|
+
}
|
|
2593
|
+
|
|
2594
|
+
/**
|
|
2595
|
+
* The result of an SP3 merge: the merged product plus the audit report.
|
|
2596
|
+
*/
|
|
2597
|
+
export class Sp3MergeResult {
|
|
2598
|
+
private constructor();
|
|
2599
|
+
free(): void;
|
|
2600
|
+
[Symbol.dispose](): void;
|
|
2601
|
+
/**
|
|
2602
|
+
* The merge audit report.
|
|
2603
|
+
*/
|
|
2604
|
+
readonly report: Sp3MergeReport;
|
|
2605
|
+
/**
|
|
2606
|
+
* The merged precise orbit and clock product.
|
|
2607
|
+
*/
|
|
2608
|
+
readonly sp3: Sp3;
|
|
2609
|
+
}
|
|
2610
|
+
|
|
2611
|
+
/**
|
|
2612
|
+
* A staleness-selected SP3 product plus its [`StalenessMetadata`].
|
|
2613
|
+
*/
|
|
2614
|
+
export class Sp3Selection {
|
|
2615
|
+
private constructor();
|
|
2616
|
+
free(): void;
|
|
2617
|
+
[Symbol.dispose](): void;
|
|
2618
|
+
/**
|
|
2619
|
+
* Interpolate `satellite` at `queryJ2000S` on the selected product, returning
|
|
2620
|
+
* a plain object `{ positionM: [x, y, z], clockS: number | null }`. Delegates
|
|
2621
|
+
* to the reference interpolation, so an exact selection matches the caller's
|
|
2622
|
+
* product bit-for-bit. Throws a `TypeError` for an unknown satellite and an
|
|
2623
|
+
* `Error` for a query in a coverage gap.
|
|
2624
|
+
*/
|
|
2625
|
+
positionAtJ2000Seconds(satellite: string, query_j2000_s: number): any;
|
|
2626
|
+
/**
|
|
2627
|
+
* The staleness metadata as a plain object (see [`StalenessMetadataJs`]).
|
|
2628
|
+
*/
|
|
2629
|
+
readonly metadata: any;
|
|
2630
|
+
/**
|
|
2631
|
+
* The selected SP3 product as a standalone [`Sp3`] handle, exposing the full
|
|
2632
|
+
* SP3 query / solve surface.
|
|
2633
|
+
*/
|
|
2634
|
+
readonly sp3: Sp3;
|
|
2635
|
+
}
|
|
2636
|
+
|
|
2637
|
+
/**
|
|
2638
|
+
* The exact parsed state of one satellite at one SP3 epoch.
|
|
2639
|
+
*/
|
|
2640
|
+
export class Sp3State {
|
|
2641
|
+
private constructor();
|
|
2642
|
+
free(): void;
|
|
2643
|
+
[Symbol.dispose](): void;
|
|
2644
|
+
/**
|
|
2645
|
+
* Clock discontinuity (`E`) flagged at this epoch.
|
|
2646
|
+
*/
|
|
2647
|
+
readonly clockEvent: boolean;
|
|
2648
|
+
/**
|
|
2649
|
+
* The clock is predicted, not fitted.
|
|
2650
|
+
*/
|
|
2651
|
+
readonly clockPredicted: boolean;
|
|
2652
|
+
/**
|
|
2653
|
+
* Clock offset in seconds, or `undefined` for the bad-clock sentinel.
|
|
2654
|
+
*/
|
|
2655
|
+
readonly clockS: number | undefined;
|
|
2656
|
+
/**
|
|
2657
|
+
* The satellite was being maneuvered at this epoch.
|
|
2658
|
+
*/
|
|
2659
|
+
readonly maneuver: boolean;
|
|
2660
|
+
/**
|
|
2661
|
+
* The orbit is predicted, not fitted.
|
|
2662
|
+
*/
|
|
2663
|
+
readonly orbitPredicted: boolean;
|
|
2664
|
+
/**
|
|
2665
|
+
* ECEF position as a `Float64Array` `[x, y, z]`, metres.
|
|
2666
|
+
*/
|
|
2667
|
+
readonly positionM: Float64Array;
|
|
2668
|
+
/**
|
|
2669
|
+
* ECEF velocity as a `Float64Array` `[vx, vy, vz]`, metres per second, or
|
|
2670
|
+
* `undefined` for a position-only product.
|
|
2671
|
+
*/
|
|
2672
|
+
readonly velocityMS: Float64Array | undefined;
|
|
2673
|
+
}
|
|
2674
|
+
|
|
2675
|
+
/**
|
|
2676
|
+
* A parsed in-memory JPL/NAIF SPK kernel.
|
|
2677
|
+
*
|
|
2678
|
+
* Construct from the raw `.bsp` bytes (a `Uint8Array`), then query states with
|
|
2679
|
+
* [`Spk.state`] or inspect the segment table with [`Spk.segments`].
|
|
2680
|
+
*
|
|
2681
|
+
* ```js
|
|
2682
|
+
* import init, { Spk } from "@neilberkman/sidereon";
|
|
2683
|
+
* await init();
|
|
2684
|
+
* const spk = new Spk(new Uint8Array(bspBytes));
|
|
2685
|
+
* const state = spk.state(20000433, 10, 757339200.0);
|
|
2686
|
+
* state.positionKm; // Float64Array [x, y, z] km
|
|
2687
|
+
* state.velocityKmS; // Float64Array [vx, vy, vz] km/s (or undefined)
|
|
2688
|
+
* ```
|
|
2689
|
+
*/
|
|
2690
|
+
export class Spk {
|
|
2691
|
+
free(): void;
|
|
2692
|
+
[Symbol.dispose](): void;
|
|
2693
|
+
/**
|
|
2694
|
+
* Parse an SPK/DAF kernel from its raw bytes (the full, decompressed
|
|
2695
|
+
* `.bsp` file). Throws an `Error` if the bytes are not a supported SPK
|
|
2696
|
+
* kernel.
|
|
2697
|
+
*/
|
|
2698
|
+
constructor(bytes: Uint8Array);
|
|
2699
|
+
/**
|
|
2700
|
+
* Query the state of NAIF `target` relative to NAIF `center` at `et`
|
|
2701
|
+
* (ET/TDB seconds past J2000). Resolves the segment chain connecting the
|
|
2702
|
+
* two bodies and evaluates SPK Types 2, 3, and 21.
|
|
2703
|
+
*
|
|
2704
|
+
* Throws a `RangeError` if `et` is not finite, and an `Error` if the bodies
|
|
2705
|
+
* are absent, unconnected, out of coverage, or in an unsupported segment.
|
|
2706
|
+
*/
|
|
2707
|
+
state(target: number, center: number, et: number): SpkState;
|
|
2708
|
+
/**
|
|
2709
|
+
* The DAF internal name from the file record.
|
|
2710
|
+
*/
|
|
2711
|
+
readonly internalName: string;
|
|
2712
|
+
/**
|
|
2713
|
+
* Number of segments in the kernel.
|
|
2714
|
+
*/
|
|
2715
|
+
readonly segmentCount: number;
|
|
2716
|
+
/**
|
|
2717
|
+
* Segment descriptors in DAF summary order.
|
|
2718
|
+
*/
|
|
2719
|
+
readonly segments: SpkSegment[];
|
|
2720
|
+
}
|
|
2721
|
+
|
|
2722
|
+
/**
|
|
2723
|
+
* A descriptor for one SPK segment as recorded in the DAF summary, in summary
|
|
2724
|
+
* order. Read via [`Spk.segments`].
|
|
2725
|
+
*/
|
|
2726
|
+
export class SpkSegment {
|
|
2727
|
+
private constructor();
|
|
2728
|
+
free(): void;
|
|
2729
|
+
[Symbol.dispose](): void;
|
|
2730
|
+
/**
|
|
2731
|
+
* NAIF center body id.
|
|
2732
|
+
*/
|
|
2733
|
+
readonly center: number;
|
|
2734
|
+
/**
|
|
2735
|
+
* SPK segment data type (2, 3, or 21 for the supported evaluators).
|
|
2736
|
+
*/
|
|
2737
|
+
readonly dataType: number;
|
|
2738
|
+
/**
|
|
2739
|
+
* NAIF reference-frame id.
|
|
2740
|
+
*/
|
|
2741
|
+
readonly frame: number;
|
|
2742
|
+
/**
|
|
2743
|
+
* Segment comment/name from the DAF summary record.
|
|
2744
|
+
*/
|
|
2745
|
+
readonly name: string;
|
|
2746
|
+
/**
|
|
2747
|
+
* Coverage start, ET/TDB seconds past J2000.
|
|
2748
|
+
*/
|
|
2749
|
+
readonly startEt: number;
|
|
2750
|
+
/**
|
|
2751
|
+
* Coverage stop, ET/TDB seconds past J2000.
|
|
2752
|
+
*/
|
|
2753
|
+
readonly stopEt: number;
|
|
2754
|
+
/**
|
|
2755
|
+
* NAIF target body id.
|
|
2756
|
+
*/
|
|
2757
|
+
readonly target: number;
|
|
2758
|
+
}
|
|
2759
|
+
|
|
2760
|
+
/**
|
|
2761
|
+
* The state of a target relative to a center, resolved from an SPK query.
|
|
2762
|
+
* Returned by [`Spk.state`].
|
|
2763
|
+
*/
|
|
2764
|
+
export class SpkState {
|
|
2765
|
+
private constructor();
|
|
2766
|
+
free(): void;
|
|
2767
|
+
[Symbol.dispose](): void;
|
|
2768
|
+
/**
|
|
2769
|
+
* NAIF center body id for the returned relative state.
|
|
2770
|
+
*/
|
|
2771
|
+
readonly center: number;
|
|
2772
|
+
/**
|
|
2773
|
+
* NAIF reference-frame id shared by all segments in the resolved path.
|
|
2774
|
+
*/
|
|
2775
|
+
readonly frame: number;
|
|
2776
|
+
/**
|
|
2777
|
+
* Position of the target relative to the center as a `Float64Array`
|
|
2778
|
+
* `[x, y, z]`, kilometres.
|
|
2779
|
+
*/
|
|
2780
|
+
readonly positionKm: Float64Array;
|
|
2781
|
+
/**
|
|
2782
|
+
* NAIF target body id for the returned relative state.
|
|
2783
|
+
*/
|
|
2784
|
+
readonly target: number;
|
|
2785
|
+
/**
|
|
2786
|
+
* Velocity of the target relative to the center as a `Float64Array`
|
|
2787
|
+
* `[vx, vy, vz]`, kilometres per second, or `undefined` when the resolved
|
|
2788
|
+
* path includes a Type-2 segment (which stores position only).
|
|
2789
|
+
*/
|
|
2790
|
+
readonly velocityKmS: Float64Array | undefined;
|
|
2791
|
+
}
|
|
2792
|
+
|
|
2793
|
+
/**
|
|
2794
|
+
* The result of an SPP solve.
|
|
2795
|
+
*/
|
|
2796
|
+
export class SppSolution {
|
|
2797
|
+
private constructor();
|
|
2798
|
+
free(): void;
|
|
2799
|
+
[Symbol.dispose](): void;
|
|
2800
|
+
/**
|
|
2801
|
+
* `[latRad, lonRad, heightM]` as a `Float64Array` if the solve was asked
|
|
2802
|
+
* for geodetic output, otherwise `undefined`.
|
|
2803
|
+
*/
|
|
2804
|
+
readonly geodetic: Float64Array | undefined;
|
|
2805
|
+
/**
|
|
2806
|
+
* ECEF position as a `Float64Array` `[x, y, z]`, metres.
|
|
2807
|
+
*/
|
|
2808
|
+
readonly positionM: Float64Array;
|
|
2809
|
+
/**
|
|
2810
|
+
* Post-fit residuals, metres, index-aligned to `usedSats`.
|
|
2811
|
+
*/
|
|
2812
|
+
readonly residualsM: Float64Array;
|
|
2813
|
+
/**
|
|
2814
|
+
* Receiver clock bias, seconds.
|
|
2815
|
+
*/
|
|
2816
|
+
readonly rxClockS: number;
|
|
2817
|
+
/**
|
|
2818
|
+
* Satellite tokens used in the accepted solution, ascending.
|
|
2819
|
+
*/
|
|
2820
|
+
readonly usedSats: string[];
|
|
2821
|
+
/**
|
|
2822
|
+
* ECEF X, metres.
|
|
2823
|
+
*/
|
|
2824
|
+
readonly xM: number;
|
|
2825
|
+
/**
|
|
2826
|
+
* ECEF Y, metres.
|
|
2827
|
+
*/
|
|
2828
|
+
readonly yM: number;
|
|
2829
|
+
/**
|
|
2830
|
+
* ECEF Z, metres.
|
|
2831
|
+
*/
|
|
2832
|
+
readonly zM: number;
|
|
2833
|
+
}
|
|
2834
|
+
|
|
2835
|
+
/**
|
|
2836
|
+
* A batch of Sun and Moon positions, one per epoch: flat row-major `sun` and
|
|
2837
|
+
* `moon` `Float64Array`s of length `3 * epochCount`, in **metres**.
|
|
2838
|
+
*
|
|
2839
|
+
* The frame (geocentric ECI of date vs Earth-fixed ITRS/ECEF) is fixed by which
|
|
2840
|
+
* function produced this object: [`sunMoonEci`] or [`sunMoonEcef`].
|
|
2841
|
+
*/
|
|
2842
|
+
export class SunMoon {
|
|
2843
|
+
private constructor();
|
|
2844
|
+
free(): void;
|
|
2845
|
+
[Symbol.dispose](): void;
|
|
2846
|
+
/**
|
|
2847
|
+
* Number of epochs in the batch.
|
|
2848
|
+
*/
|
|
2849
|
+
readonly epochCount: number;
|
|
2850
|
+
/**
|
|
2851
|
+
* The frame these positions are in: `"eci"` or `"ecef"`.
|
|
2852
|
+
*/
|
|
2853
|
+
readonly frame: string;
|
|
2854
|
+
/**
|
|
2855
|
+
* Moon positions, metres, flat row-major `(n, 3)`.
|
|
2856
|
+
*/
|
|
2857
|
+
readonly moon: Float64Array;
|
|
2858
|
+
/**
|
|
2859
|
+
* Sun positions, metres, flat row-major `(n, 3)`.
|
|
2860
|
+
*/
|
|
2861
|
+
readonly sun: Float64Array;
|
|
2862
|
+
}
|
|
2863
|
+
|
|
2864
|
+
/**
|
|
2865
|
+
* A named time scale. The JS value matches the variant order below.
|
|
2866
|
+
*/
|
|
2867
|
+
export enum TimeScale {
|
|
2868
|
+
/**
|
|
2869
|
+
* Coordinated Universal Time.
|
|
2870
|
+
*/
|
|
2871
|
+
Utc = 0,
|
|
2872
|
+
/**
|
|
2873
|
+
* International Atomic Time.
|
|
2874
|
+
*/
|
|
2875
|
+
Tai = 1,
|
|
2876
|
+
/**
|
|
2877
|
+
* Terrestrial Time.
|
|
2878
|
+
*/
|
|
2879
|
+
Tt = 2,
|
|
2880
|
+
/**
|
|
2881
|
+
* Barycentric Dynamical Time.
|
|
2882
|
+
*/
|
|
2883
|
+
Tdb = 3,
|
|
2884
|
+
/**
|
|
2885
|
+
* GPS time.
|
|
2886
|
+
*/
|
|
2887
|
+
Gpst = 4,
|
|
2888
|
+
/**
|
|
2889
|
+
* Galileo System Time.
|
|
2890
|
+
*/
|
|
2891
|
+
Gst = 5,
|
|
2892
|
+
/**
|
|
2893
|
+
* BeiDou Time.
|
|
2894
|
+
*/
|
|
2895
|
+
Bdt = 6,
|
|
2896
|
+
}
|
|
2897
|
+
|
|
2898
|
+
/**
|
|
2899
|
+
* A parsed two-line element set with an initialized SGP4 satellite.
|
|
2900
|
+
*/
|
|
2901
|
+
export class Tle {
|
|
2902
|
+
free(): void;
|
|
2903
|
+
[Symbol.dispose](): void;
|
|
2904
|
+
/**
|
|
2905
|
+
* Find passes over `station` within `[startUnixUs, endUnixUs)` by dense
|
|
2906
|
+
* elevation sampling. `elevationMaskDeg` defaults to 0, `stepSeconds` to 30,
|
|
2907
|
+
* `timeToleranceS` to 1e-3. Throws a `RangeError` on a non-positive step or
|
|
2908
|
+
* an end at or before the start.
|
|
2909
|
+
*/
|
|
2910
|
+
findPasses(station: GroundStation, start_unix_us: bigint, end_unix_us: bigint, elevation_mask_deg?: number | null, step_seconds?: number | null, time_tolerance_s?: number | null): SatellitePass[];
|
|
2911
|
+
/**
|
|
2912
|
+
* Topocentric azimuth/elevation/range from `station` over a
|
|
2913
|
+
* `BigInt64Array` of unix-microsecond epochs. Throws an `Error` on failure.
|
|
2914
|
+
*/
|
|
2915
|
+
lookAngles(station: GroundStation, epochs_unix_us: BigInt64Array): LookAngles;
|
|
2916
|
+
/**
|
|
2917
|
+
* Parse two TLE lines and initialize SGP4. `opsMode` is `"improved"`
|
|
2918
|
+
* (default) or `"afspc"`. Throws an `Error` if the lines fail to parse or
|
|
2919
|
+
* SGP4 fails to initialize.
|
|
2920
|
+
*/
|
|
2921
|
+
constructor(line1: string, line2: string, ops_mode_label?: string | null);
|
|
2922
|
+
/**
|
|
2923
|
+
* Propagate over a `BigInt64Array` of unix-microsecond epochs. Returns TEME
|
|
2924
|
+
* position (km) and velocity (km/s). Throws an `Error` on SGP4 failure.
|
|
2925
|
+
*/
|
|
2926
|
+
propagate(epochs_unix_us: BigInt64Array): TlePropagation;
|
|
2927
|
+
/**
|
|
2928
|
+
* Re-encode the parsed elements as the two 69-character TLE lines (with
|
|
2929
|
+
* checksums), as a `[line1, line2]` string array. For a well-formed input
|
|
2930
|
+
* the round-trip is character-exact.
|
|
2931
|
+
*/
|
|
2932
|
+
toLines(): string[];
|
|
2933
|
+
/**
|
|
2934
|
+
* Topocentric visibility arrays and a dense pass list over an epoch grid.
|
|
2935
|
+
*
|
|
2936
|
+
* `epochsUnixUs` must be a strictly increasing `BigInt64Array` with at least
|
|
2937
|
+
* two samples. The az/el geometry is the same path as [`lookAngles`]; the
|
|
2938
|
+
* pass list is the dense finder over `[first, last]`.
|
|
2939
|
+
*/
|
|
2940
|
+
visibilitySeries(station: GroundStation, epochs_unix_us: BigInt64Array, elevation_mask_deg?: number | null, step_seconds?: number | null, time_tolerance_s?: number | null): VisibilitySeries;
|
|
2941
|
+
/**
|
|
2942
|
+
* Argument of perigee, degrees.
|
|
2943
|
+
*/
|
|
2944
|
+
readonly argPerigeeDeg: number;
|
|
2945
|
+
/**
|
|
2946
|
+
* B* drag term (TLE dimensionless convention).
|
|
2947
|
+
*/
|
|
2948
|
+
readonly bstar: number;
|
|
2949
|
+
/**
|
|
2950
|
+
* NORAD catalog number (as recorded in the TLE).
|
|
2951
|
+
*/
|
|
2952
|
+
readonly catalogNumber: string;
|
|
2953
|
+
/**
|
|
2954
|
+
* Advisory checksum discrepancies found while parsing. Empty when both
|
|
2955
|
+
* lines' checksums are valid.
|
|
2956
|
+
*/
|
|
2957
|
+
readonly checksumWarnings: ChecksumWarning[];
|
|
2958
|
+
/**
|
|
2959
|
+
* Classification character (`U`/`C`/`S`).
|
|
2960
|
+
*/
|
|
2961
|
+
readonly classification: string;
|
|
2962
|
+
/**
|
|
2963
|
+
* Orbital eccentricity (dimensionless).
|
|
2964
|
+
*/
|
|
2965
|
+
readonly eccentricity: number;
|
|
2966
|
+
/**
|
|
2967
|
+
* Fractional day-of-year of the epoch.
|
|
2968
|
+
*/
|
|
2969
|
+
readonly epochDayOfYear: number;
|
|
2970
|
+
/**
|
|
2971
|
+
* Four-digit epoch year.
|
|
2972
|
+
*/
|
|
2973
|
+
readonly epochYear: number;
|
|
2974
|
+
/**
|
|
2975
|
+
* Inclination, degrees.
|
|
2976
|
+
*/
|
|
2977
|
+
readonly inclinationDeg: number;
|
|
2978
|
+
/**
|
|
2979
|
+
* International designator (COSPAR ID).
|
|
2980
|
+
*/
|
|
2981
|
+
readonly internationalDesignator: string;
|
|
2982
|
+
/**
|
|
2983
|
+
* Mean anomaly at epoch, degrees.
|
|
2984
|
+
*/
|
|
2985
|
+
readonly meanAnomalyDeg: number;
|
|
2986
|
+
/**
|
|
2987
|
+
* First derivative of mean motion (rev/day^2).
|
|
2988
|
+
*/
|
|
2989
|
+
readonly meanMotionDot: number;
|
|
2990
|
+
/**
|
|
2991
|
+
* Second derivative of mean motion (rev/day^3).
|
|
2992
|
+
*/
|
|
2993
|
+
readonly meanMotionDoubleDot: number;
|
|
2994
|
+
/**
|
|
2995
|
+
* Mean motion, revolutions per day.
|
|
2996
|
+
*/
|
|
2997
|
+
readonly meanMotionRevPerDay: number;
|
|
2998
|
+
/**
|
|
2999
|
+
* Right ascension of the ascending node, degrees.
|
|
3000
|
+
*/
|
|
3001
|
+
readonly raanDeg: number;
|
|
3002
|
+
/**
|
|
3003
|
+
* Revolution number at epoch.
|
|
3004
|
+
*/
|
|
3005
|
+
readonly revNumber: number;
|
|
3006
|
+
}
|
|
3007
|
+
|
|
3008
|
+
/**
|
|
3009
|
+
* TEME states from a batched SGP4 propagation. Each array is flat row-major,
|
|
3010
|
+
* length `3 * epochCount`.
|
|
3011
|
+
*/
|
|
3012
|
+
export class TlePropagation {
|
|
3013
|
+
private constructor();
|
|
3014
|
+
free(): void;
|
|
3015
|
+
[Symbol.dispose](): void;
|
|
3016
|
+
/**
|
|
3017
|
+
* Number of epochs propagated.
|
|
3018
|
+
*/
|
|
3019
|
+
readonly epochCount: number;
|
|
3020
|
+
/**
|
|
3021
|
+
* TEME positions, km, flat `[x0, y0, z0, x1, ...]`.
|
|
3022
|
+
*/
|
|
3023
|
+
readonly positionKm: Float64Array;
|
|
3024
|
+
/**
|
|
3025
|
+
* TEME velocities, km/s, flat `[vx0, vy0, vz0, ...]`.
|
|
3026
|
+
*/
|
|
3027
|
+
readonly velocityKmS: Float64Array;
|
|
3028
|
+
}
|
|
3029
|
+
|
|
3030
|
+
/**
|
|
3031
|
+
* Provenance and coverage of the embedded UT1-UTC / delta-T (EOP) table.
|
|
3032
|
+
*/
|
|
3033
|
+
export class Ut1Coverage {
|
|
3034
|
+
private constructor();
|
|
3035
|
+
free(): void;
|
|
3036
|
+
[Symbol.dispose](): void;
|
|
3037
|
+
/**
|
|
3038
|
+
* Number of entries in the table.
|
|
3039
|
+
*/
|
|
3040
|
+
readonly entries: number;
|
|
3041
|
+
/**
|
|
3042
|
+
* TT Julian date of the first table entry (coverage lower bound).
|
|
3043
|
+
*/
|
|
3044
|
+
readonly firstJdTt: number;
|
|
3045
|
+
/**
|
|
3046
|
+
* Modified Julian date of the first table entry.
|
|
3047
|
+
*/
|
|
3048
|
+
readonly firstMjd: number;
|
|
3049
|
+
/**
|
|
3050
|
+
* TT Julian date of the last table entry (coverage upper bound).
|
|
3051
|
+
*/
|
|
3052
|
+
readonly lastJdTt: number;
|
|
3053
|
+
/**
|
|
3054
|
+
* Modified Julian date of the last table entry.
|
|
3055
|
+
*/
|
|
3056
|
+
readonly lastMjd: number;
|
|
3057
|
+
/**
|
|
3058
|
+
* Human-readable provenance string for the table.
|
|
3059
|
+
*/
|
|
3060
|
+
readonly source: string;
|
|
3061
|
+
}
|
|
3062
|
+
|
|
3063
|
+
/**
|
|
3064
|
+
* Receiver velocity solve result.
|
|
3065
|
+
*/
|
|
3066
|
+
export class VelocitySolution {
|
|
3067
|
+
private constructor();
|
|
3068
|
+
free(): void;
|
|
3069
|
+
[Symbol.dispose](): void;
|
|
3070
|
+
/**
|
|
3071
|
+
* Receiver clock drift, seconds per second.
|
|
3072
|
+
*/
|
|
3073
|
+
readonly clockDriftSS: number;
|
|
3074
|
+
/**
|
|
3075
|
+
* Post-fit range-rate residuals, metres per second.
|
|
3076
|
+
*/
|
|
3077
|
+
readonly residualsMS: Float64Array;
|
|
3078
|
+
/**
|
|
3079
|
+
* Receiver speed, metres per second.
|
|
3080
|
+
*/
|
|
3081
|
+
readonly speedMS: number;
|
|
3082
|
+
/**
|
|
3083
|
+
* Satellite tokens contributing rows, in residual order.
|
|
3084
|
+
*/
|
|
3085
|
+
readonly usedSats: string[];
|
|
3086
|
+
/**
|
|
3087
|
+
* Receiver ECEF velocity `[vx, vy, vz]`, metres per second.
|
|
3088
|
+
*/
|
|
3089
|
+
readonly velocityMS: Float64Array;
|
|
3090
|
+
}
|
|
3091
|
+
|
|
3092
|
+
/**
|
|
3093
|
+
* Per-epoch topocentric visibility plus the dense pass list over the grid
|
|
3094
|
+
* window.
|
|
3095
|
+
*/
|
|
3096
|
+
export class VisibilitySeries {
|
|
3097
|
+
private constructor();
|
|
3098
|
+
free(): void;
|
|
3099
|
+
[Symbol.dispose](): void;
|
|
3100
|
+
/**
|
|
3101
|
+
* Azimuth, degrees clockwise from north.
|
|
3102
|
+
*/
|
|
3103
|
+
readonly azimuthDeg: Float64Array;
|
|
3104
|
+
/**
|
|
3105
|
+
* Elevation, degrees above the horizon.
|
|
3106
|
+
*/
|
|
3107
|
+
readonly elevationDeg: Float64Array;
|
|
3108
|
+
/**
|
|
3109
|
+
* Number of epochs evaluated.
|
|
3110
|
+
*/
|
|
3111
|
+
readonly epochCount: number;
|
|
3112
|
+
/**
|
|
3113
|
+
* Epoch grid, UTC unix microseconds, as a `BigInt64Array`.
|
|
3114
|
+
*/
|
|
3115
|
+
readonly epochUnixUs: BigInt64Array;
|
|
3116
|
+
/**
|
|
3117
|
+
* Number of passes found over the epoch-grid window.
|
|
3118
|
+
*/
|
|
3119
|
+
readonly passCount: number;
|
|
3120
|
+
/**
|
|
3121
|
+
* Dense pass-finder results over the epoch-grid window.
|
|
3122
|
+
*/
|
|
3123
|
+
readonly passes: SatellitePass[];
|
|
3124
|
+
/**
|
|
3125
|
+
* Slant range, kilometres.
|
|
3126
|
+
*/
|
|
3127
|
+
readonly rangeKm: Float64Array;
|
|
3128
|
+
/**
|
|
3129
|
+
* Visibility mask as a `Uint8Array` (1 where `elevationDeg >=
|
|
3130
|
+
* elevationMaskDeg`, else 0).
|
|
3131
|
+
*/
|
|
3132
|
+
readonly visible: Uint8Array;
|
|
3133
|
+
}
|
|
3134
|
+
|
|
3135
|
+
/**
|
|
3136
|
+
* WGS84 receiver geodetic coordinates (radians, metres) for DOP.
|
|
3137
|
+
*/
|
|
3138
|
+
export class Wgs84Geodetic {
|
|
3139
|
+
free(): void;
|
|
3140
|
+
[Symbol.dispose](): void;
|
|
3141
|
+
/**
|
|
3142
|
+
* Build a WGS84 geodetic coordinate. `heightM` defaults to 0. Throws a
|
|
3143
|
+
* `RangeError` on a non-finite field or latitude outside `[-pi/2, pi/2]`.
|
|
3144
|
+
*/
|
|
3145
|
+
constructor(lat_rad: number, lon_rad: number, height_m?: number | null);
|
|
3146
|
+
/**
|
|
3147
|
+
* Ellipsoidal height above WGS84, metres.
|
|
3148
|
+
*/
|
|
3149
|
+
readonly heightM: number;
|
|
3150
|
+
/**
|
|
3151
|
+
* Geodetic latitude, radians.
|
|
3152
|
+
*/
|
|
3153
|
+
readonly latRad: number;
|
|
3154
|
+
/**
|
|
3155
|
+
* Geodetic longitude, radians east.
|
|
3156
|
+
*/
|
|
3157
|
+
readonly lonRad: number;
|
|
3158
|
+
}
|
|
3159
|
+
|
|
3160
|
+
/**
|
|
3161
|
+
* Zenith hydrostatic and wet tropospheric delays, positive metres.
|
|
3162
|
+
*/
|
|
3163
|
+
export class ZenithDelay {
|
|
3164
|
+
private constructor();
|
|
3165
|
+
free(): void;
|
|
3166
|
+
[Symbol.dispose](): void;
|
|
3167
|
+
/**
|
|
3168
|
+
* Zenith hydrostatic (dry) delay, positive metres.
|
|
3169
|
+
*/
|
|
3170
|
+
readonly dryM: number;
|
|
3171
|
+
/**
|
|
3172
|
+
* Zenith wet delay, positive metres.
|
|
3173
|
+
*/
|
|
3174
|
+
readonly wetM: number;
|
|
3175
|
+
}
|
|
3176
|
+
|
|
3177
|
+
/**
|
|
3178
|
+
* Acquire a GPS C/A PRN by direct code-phase and Doppler search. `samples` is
|
|
3179
|
+
* interleaved `[i0, q0, i1, q1, ...]`.
|
|
3180
|
+
*/
|
|
3181
|
+
export function acquire(samples: Float64Array, prn: bigint, options: any): AcquisitionResult;
|
|
3182
|
+
|
|
3183
|
+
/**
|
|
3184
|
+
* One wrapping GPS C/A chip at a zero-based index.
|
|
3185
|
+
*/
|
|
3186
|
+
export function caChip(prn: bigint, index: bigint): number;
|
|
3187
|
+
|
|
3188
|
+
/**
|
|
3189
|
+
* GPS C/A code chips for a PRN, an `Int8Array` of length 1023, chips `+1`/`-1`.
|
|
3190
|
+
*/
|
|
3191
|
+
export function caCode(prn: bigint): Int8Array;
|
|
3192
|
+
|
|
3193
|
+
/**
|
|
3194
|
+
* Canonical lower-case carrier-band token, e.g. `"l1"`.
|
|
3195
|
+
*/
|
|
3196
|
+
export function carrierBandName(band: CarrierBand): string;
|
|
3197
|
+
|
|
3198
|
+
/**
|
|
3199
|
+
* Carrier frequency in hertz for a constellation and canonical carrier band.
|
|
3200
|
+
*/
|
|
3201
|
+
export function carrierFrequencyHz(system: GnssSystem, band: CarrierBand): number | undefined;
|
|
3202
|
+
|
|
3203
|
+
/**
|
|
3204
|
+
* Returns `true` when a diff has any findings.
|
|
3205
|
+
*/
|
|
3206
|
+
export function changed(diff: any): boolean;
|
|
3207
|
+
|
|
3208
|
+
/**
|
|
3209
|
+
* Carrier-to-noise-density ratio, dB-Hz. `otherLossesDb` defaults to 0.
|
|
3210
|
+
*/
|
|
3211
|
+
export function cn0(eirp_dbw: number, fspl_db: number, receiver_gt_dbk: number, other_losses_db?: number | null): number;
|
|
3212
|
+
|
|
3213
|
+
/**
|
|
3214
|
+
* Coherent integration loss from residual frequency error.
|
|
3215
|
+
*/
|
|
3216
|
+
export function coherentLoss(freq_error_hz: number, integration_time_s: number): number;
|
|
3217
|
+
|
|
3218
|
+
/**
|
|
3219
|
+
* Coherent integration loss in decibels.
|
|
3220
|
+
*/
|
|
3221
|
+
export function coherentLossDb(freq_error_hz: number, integration_time_s: number): number;
|
|
3222
|
+
|
|
3223
|
+
/**
|
|
3224
|
+
* Compute collision probability from two conjunction states and a hard-body
|
|
3225
|
+
* radius. `method` is one of `"foster_equal_area"` (default),
|
|
3226
|
+
* `"foster_numerical"`, `"alfano_2005"`.
|
|
3227
|
+
*/
|
|
3228
|
+
export function collisionProbability(object1: ConjunctionState, object2: ConjunctionState, hard_body_radius_km: number, method?: string | null): CollisionProbability;
|
|
3229
|
+
|
|
3230
|
+
/**
|
|
3231
|
+
* Coherently correlate interleaved IQ samples against a GPS C/A PRN replica.
|
|
3232
|
+
* `iq` is `[i0, q0, i1, q1, ...]`.
|
|
3233
|
+
*/
|
|
3234
|
+
export function correlate(iq: Float64Array, prn: bigint, options: any): CorrelationResult;
|
|
3235
|
+
|
|
3236
|
+
/**
|
|
3237
|
+
* Whether a 3x3 covariance (flat row-major length 9) is symmetric positive
|
|
3238
|
+
* semidefinite within the engine tolerance.
|
|
3239
|
+
*/
|
|
3240
|
+
export function covarianceIsPositiveSemidefinite(covariance_km2: Float64Array): boolean;
|
|
3241
|
+
|
|
3242
|
+
/**
|
|
3243
|
+
* Whether a 3x3 covariance (flat row-major length 9) is symmetric within the
|
|
3244
|
+
* engine tolerance.
|
|
3245
|
+
*/
|
|
3246
|
+
export function covarianceIsSymmetric(covariance_km2: Float64Array): boolean;
|
|
3247
|
+
|
|
3248
|
+
/**
|
|
3249
|
+
* Decode Compact RINEX (Hatanaka) bytes into plain RINEX OBS text. Throws a
|
|
3250
|
+
* `TypeError` on non-UTF-8 input and an `Error` on a decode failure.
|
|
3251
|
+
*/
|
|
3252
|
+
export function decodeCrinex(bytes: Uint8Array): string;
|
|
3253
|
+
|
|
3254
|
+
/**
|
|
3255
|
+
* Decode Compact RINEX bytes into plain RINEX OBS lines (each without its
|
|
3256
|
+
* trailing newline). Throws a `TypeError` on non-UTF-8 input and an `Error` on
|
|
3257
|
+
* a decode failure.
|
|
3258
|
+
*/
|
|
3259
|
+
export function decodeCrinexLines(bytes: Uint8Array): string[];
|
|
3260
|
+
|
|
3261
|
+
/**
|
|
3262
|
+
* Standard dual-frequency ionosphere-free carrier pair for a constellation.
|
|
3263
|
+
*/
|
|
3264
|
+
export function defaultPair(system: GnssSystem): CarrierPair | undefined;
|
|
3265
|
+
|
|
3266
|
+
/**
|
|
3267
|
+
* Detect cycle slips on a time-ordered single-satellite carrier-phase arc.
|
|
3268
|
+
* `arc` is an array of `{ phi1Cycles?, phi2Cycles?, p1M?, p2M?, lli1?, lli2?,
|
|
3269
|
+
* f1Hz?, f2Hz?, gapTimeS? }`.
|
|
3270
|
+
*/
|
|
3271
|
+
export function detectCycleSlips(arc: any, options: any): SlipResult[];
|
|
3272
|
+
|
|
3273
|
+
/**
|
|
3274
|
+
* Apply base pseudorange corrections to rover observations by satellite token.
|
|
3275
|
+
*
|
|
3276
|
+
* `roverObservations` is `{ satelliteId, pseudorangeM }[]`; `corrections` is the
|
|
3277
|
+
* `{ satelliteId, correctionM }[]` array from [`Sp3.dgnssCorrections`]. Output
|
|
3278
|
+
* order follows the rover order; rover satellites with no correction are
|
|
3279
|
+
* reported in `dropped`.
|
|
3280
|
+
*/
|
|
3281
|
+
export function dgnssApply(rover_observations: any, corrections: any): AppliedCorrections;
|
|
3282
|
+
|
|
3283
|
+
/**
|
|
3284
|
+
* Compare two catalog snapshots by `(system, prn)` identity.
|
|
3285
|
+
*
|
|
3286
|
+
* `previous` and `current` are each a `Record[]`. Returns a `Diff` of added,
|
|
3287
|
+
* removed, and per-field changes on held PRNs.
|
|
3288
|
+
*/
|
|
3289
|
+
export function diff(previous: any, current: any): any;
|
|
3290
|
+
|
|
3291
|
+
/**
|
|
3292
|
+
* Parabolic-dish antenna gain, dBi.
|
|
3293
|
+
*/
|
|
3294
|
+
export function dishGain(diameter_m: number, frequency_hz: number, efficiency: number): number;
|
|
3295
|
+
|
|
3296
|
+
/**
|
|
3297
|
+
* Convert a Doppler shift in hertz to pseudorange rate in metres per second.
|
|
3298
|
+
*/
|
|
3299
|
+
export function dopplerToRangeRate(doppler_hz: number, carrier_hz: number): number;
|
|
3300
|
+
|
|
3301
|
+
/**
|
|
3302
|
+
* Angular radius in degrees of Earth as seen from each satellite position.
|
|
3303
|
+
*/
|
|
3304
|
+
export function earthAngularRadius(satellite_position_km: Float64Array): Float64Array;
|
|
3305
|
+
|
|
3306
|
+
/**
|
|
3307
|
+
* Convert a batch of ITRS (ECEF) positions to geodetic coordinates.
|
|
3308
|
+
*
|
|
3309
|
+
* `positionKm` is a flat row-major `(n, 3)` `Float64Array` in kilometres.
|
|
3310
|
+
* Returns a flat `(n, 3)` `Float64Array` whose columns are
|
|
3311
|
+
* `[latitudeDeg, longitudeDeg, altitudeKm]` (WGS84). Time-independent.
|
|
3312
|
+
*/
|
|
3313
|
+
export function ecefToGeodetic(position_km: Float64Array): Float64Array;
|
|
3314
|
+
|
|
3315
|
+
/**
|
|
3316
|
+
* Eclipse status for satellite and Sun position batches, km. Returns a
|
|
3317
|
+
* `string[]` of `"sunlit"` / `"penumbra"` / `"umbra"`.
|
|
3318
|
+
*/
|
|
3319
|
+
export function eclipseStatus(satellite_position_km: Float64Array, sun_position_km: Float64Array): string[];
|
|
3320
|
+
|
|
3321
|
+
/**
|
|
3322
|
+
* Effective isotropic radiated power, dBW.
|
|
3323
|
+
*/
|
|
3324
|
+
export function eirp(tx_power_dbm: number, tx_antenna_gain_dbi: number): number;
|
|
3325
|
+
|
|
3326
|
+
/**
|
|
3327
|
+
* Build the encounter frame from two position/velocity states (each a length-3
|
|
3328
|
+
* `Float64Array`).
|
|
3329
|
+
*/
|
|
3330
|
+
export function encounterFrame(position1_km: Float64Array, velocity1_km_s: Float64Array, position2_km: Float64Array, velocity2_km_s: Float64Array): EncounterFrame;
|
|
3331
|
+
|
|
3332
|
+
/**
|
|
3333
|
+
* Project a 3x3 ECI covariance into the encounter B-plane `(x, z)`. Returns a
|
|
3334
|
+
* flat row-major length-4 (2-by-2) `Float64Array`.
|
|
3335
|
+
*/
|
|
3336
|
+
export function encounterPlaneCovariance(frame: EncounterFrame, covariance_km2: Float64Array): Float64Array;
|
|
3337
|
+
|
|
3338
|
+
/**
|
|
3339
|
+
* J2 oblateness gravitational acceleration in km/s^2.
|
|
3340
|
+
*
|
|
3341
|
+
* `positionKm` and `velocityKmS` are length-3 `Float64Array`s in the same
|
|
3342
|
+
* inertial frame; the result is the J2 perturbing acceleration as a length-3
|
|
3343
|
+
* `Float64Array`. Uses the core Earth gravitational parameter, equatorial
|
|
3344
|
+
* radius, and J2 coefficient. Throws a `RangeError` for a non-finite input and
|
|
3345
|
+
* an `Error` for a degenerate (zero-magnitude) position.
|
|
3346
|
+
*/
|
|
3347
|
+
export function forceJ2Acceleration(position_km: Float64Array, velocity_km_s: Float64Array): Float64Array;
|
|
3348
|
+
|
|
3349
|
+
/**
|
|
3350
|
+
* Two-body (point-mass) gravitational acceleration in km/s^2.
|
|
3351
|
+
*
|
|
3352
|
+
* `positionKm` and `velocityKmS` are length-3 `Float64Array`s in the same
|
|
3353
|
+
* inertial frame; the result is a length-3 `Float64Array`. Uses the core
|
|
3354
|
+
* Earth gravitational parameter. Throws a `RangeError` for a non-finite input
|
|
3355
|
+
* and an `Error` for a degenerate (zero-magnitude) position.
|
|
3356
|
+
*/
|
|
3357
|
+
export function forceTwoBodyAcceleration(position_km: Float64Array, velocity_km_s: Float64Array): Float64Array;
|
|
3358
|
+
|
|
3359
|
+
/**
|
|
3360
|
+
* Build GPS identity records from CelesTrak `gps-ops` OMM JSON-array text.
|
|
3361
|
+
*
|
|
3362
|
+
* Parses the CelesTrak JSON array into OMM records, then derives normalized
|
|
3363
|
+
* `Record` rows (sorted by PRN). Returns a `Record[]`. Throws an `Error` on a
|
|
3364
|
+
* JSON parse failure or a CelesTrak object name with no parseable PRN.
|
|
3365
|
+
*/
|
|
3366
|
+
export function fromCelestrakJson(json: string): any;
|
|
3367
|
+
|
|
3368
|
+
/**
|
|
3369
|
+
* Free-space path loss, dB, for range in km and frequency in MHz.
|
|
3370
|
+
*/
|
|
3371
|
+
export function fspl(distance_km: number, frequency_mhz: number): number;
|
|
3372
|
+
|
|
3373
|
+
/**
|
|
3374
|
+
* Ionosphere-free coefficient `gamma = f1^2 / (f1^2 - f2^2)`.
|
|
3375
|
+
*/
|
|
3376
|
+
export function gamma(f1_hz: number, f2_hz: number): number;
|
|
3377
|
+
|
|
3378
|
+
/**
|
|
3379
|
+
* Transform a batch of GCRS positions to ITRS (Earth-fixed / ECEF), each at its
|
|
3380
|
+
* own epoch. Returns a flat row-major `(n, 3)` `Float64Array`.
|
|
3381
|
+
*/
|
|
3382
|
+
export function gcrsToItrs(position_km: Float64Array, epochs_unix_us: BigInt64Array, skyfield_compat?: boolean | null): Float64Array;
|
|
3383
|
+
|
|
3384
|
+
/**
|
|
3385
|
+
* Convert a batch of geodetic coordinates to ITRS (ECEF).
|
|
3386
|
+
*
|
|
3387
|
+
* `geodetic` is a flat row-major `(n, 3)` `Float64Array` whose columns are
|
|
3388
|
+
* `[latitudeDeg, longitudeDeg, altitudeKm]` (WGS84). Returns a flat `(n, 3)`
|
|
3389
|
+
* ITRS `Float64Array` in kilometres. Time-independent.
|
|
3390
|
+
*/
|
|
3391
|
+
export function geodeticToEcef(geodetic: Float64Array): Float64Array;
|
|
3392
|
+
|
|
3393
|
+
/**
|
|
3394
|
+
* Geometry-free phase combination `L_GF = L1 - L2`, metres.
|
|
3395
|
+
*/
|
|
3396
|
+
export function geometryFree(l1_m: number, l2_m: number): number;
|
|
3397
|
+
|
|
3398
|
+
/**
|
|
3399
|
+
* GNSS dilution of precision from ECEF line-of-sight unit rows and weights.
|
|
3400
|
+
*
|
|
3401
|
+
* `lineOfSight` is a flat row-major `(n, 3)` `Float64Array`; `weights` is a
|
|
3402
|
+
* positive `Float64Array` of length `n`.
|
|
3403
|
+
*/
|
|
3404
|
+
export function gnssDop(line_of_sight: Float64Array, weights: Float64Array, receiver: Wgs84Geodetic): Dop;
|
|
3405
|
+
|
|
3406
|
+
/**
|
|
3407
|
+
* Sample SP3-derived GNSS DOP over a J2000 epoch grid.
|
|
3408
|
+
*
|
|
3409
|
+
* `stationEcefM` is an ECEF metre vector (length 3); `j2000Seconds` is a
|
|
3410
|
+
* `Float64Array` grid in the SP3 product time scale. Samples with too few
|
|
3411
|
+
* satellites or singular geometry are omitted. `options` is
|
|
3412
|
+
* `{ satellites?, elevationMaskDeg?=5, systems?, weighting?="unit", lightTime?=false }`.
|
|
3413
|
+
*/
|
|
3414
|
+
export function gnssDopSeries(sp3: Sp3, station_ecef_m: Float64Array, j2000_seconds: Float64Array, options: any): DopSeries;
|
|
3415
|
+
|
|
3416
|
+
/**
|
|
3417
|
+
* Stable lower-case display label for a constellation, e.g. `"gps"`.
|
|
3418
|
+
*/
|
|
3419
|
+
export function gnssSystemLabel(system: GnssSystem): string;
|
|
3420
|
+
|
|
3421
|
+
/**
|
|
3422
|
+
* Canonical RINEX one-letter identifier for a constellation, e.g. `"G"`.
|
|
3423
|
+
*/
|
|
3424
|
+
export function gnssSystemLetter(system: GnssSystem): string;
|
|
3425
|
+
|
|
3426
|
+
/**
|
|
3427
|
+
* Ionosphere-free code or meter-valued phase combination, metres.
|
|
3428
|
+
*/
|
|
3429
|
+
export function ionosphereFree(obs1_m: number, obs2_m: number, f1_hz: number, f2_hz: number): number;
|
|
3430
|
+
|
|
3431
|
+
/**
|
|
3432
|
+
* Ionosphere-free carrier-phase combination from cycle-valued phase inputs.
|
|
3433
|
+
*/
|
|
3434
|
+
export function ionosphereFreePhaseCycles(phi1_cycles: number, phi2_cycles: number, f1_hz: number, f2_hz: number): number;
|
|
3435
|
+
|
|
3436
|
+
/**
|
|
3437
|
+
* Ionosphere-free carrier-phase combination from meter-valued phase inputs.
|
|
3438
|
+
*/
|
|
3439
|
+
export function ionosphereFreePhaseM(phase1_m: number, phase2_m: number, f1_hz: number, f2_hz: number): number;
|
|
3440
|
+
|
|
3441
|
+
/**
|
|
3442
|
+
* Combine two satellite-keyed pseudorange bands into ionosphere-free ranges.
|
|
3443
|
+
* `band1` and `band2` are arrays of `{ satelliteId, valueM }`. `overrides` is
|
|
3444
|
+
* an optional array of `{ system, band1, band2 }` RINEX band selections.
|
|
3445
|
+
*/
|
|
3446
|
+
export function ionosphereFreePseudoranges(band1: any, band2: any, overrides: any): IonoFreePseudorangeResult;
|
|
3447
|
+
|
|
3448
|
+
/**
|
|
3449
|
+
* Returns `true` when a validation report has no findings.
|
|
3450
|
+
*/
|
|
3451
|
+
export function isValid(validation: any): boolean;
|
|
3452
|
+
|
|
3453
|
+
/**
|
|
3454
|
+
* Transform a batch of ITRS (ECEF) positions to GCRS, each at its own epoch.
|
|
3455
|
+
* Returns a flat row-major `(n, 3)` `Float64Array`.
|
|
3456
|
+
*/
|
|
3457
|
+
export function itrsToGcrs(position_km: Float64Array, epochs_unix_us: BigInt64Array): Float64Array;
|
|
3458
|
+
|
|
3459
|
+
/**
|
|
3460
|
+
* Provenance and coverage of the embedded leap-second (TAI-UTC) table.
|
|
3461
|
+
*/
|
|
3462
|
+
export function leapSecondTableInfo(): LeapSecondTable;
|
|
3463
|
+
|
|
3464
|
+
/**
|
|
3465
|
+
* TAI-UTC (cumulative leap seconds) in effect on a UTC calendar date.
|
|
3466
|
+
*/
|
|
3467
|
+
export function leapSeconds(year: number, month: number, day: number): number;
|
|
3468
|
+
|
|
3469
|
+
/**
|
|
3470
|
+
* Leap seconds for a batch of UTC dates, as a `Float64Array`. `dates` is a flat
|
|
3471
|
+
* row-major `(n, 3)` `Int32Array` (or `number[]`) of `[year, month, day]`.
|
|
3472
|
+
*/
|
|
3473
|
+
export function leapSecondsBatch(dates: Int32Array): Float64Array;
|
|
3474
|
+
|
|
3475
|
+
/**
|
|
3476
|
+
* Parse an ANTEX 1.4 antenna product from in-memory bytes (a `Uint8Array`).
|
|
3477
|
+
* Throws an `Error` on a parse failure or non-UTF-8 input.
|
|
3478
|
+
*/
|
|
3479
|
+
export function loadAntex(bytes: Uint8Array): Antex;
|
|
3480
|
+
|
|
3481
|
+
/**
|
|
3482
|
+
* Alias of [`decodeCrinex`] for callers that read a file as bytes.
|
|
3483
|
+
*/
|
|
3484
|
+
export function loadCrinex(bytes: Uint8Array): string;
|
|
3485
|
+
|
|
3486
|
+
/**
|
|
3487
|
+
* Parse an IONEX vertical-TEC product from the full text content (as bytes).
|
|
3488
|
+
* Throws an `Error` on malformed input.
|
|
3489
|
+
*/
|
|
3490
|
+
export function loadIonex(bytes: Uint8Array): Ionex;
|
|
3491
|
+
|
|
3492
|
+
/**
|
|
3493
|
+
* Alias of [`parseRinexClock`] for callers that read a file as bytes.
|
|
3494
|
+
*/
|
|
3495
|
+
export function loadRinexClock(bytes: Uint8Array): RinexClock;
|
|
3496
|
+
|
|
3497
|
+
/**
|
|
3498
|
+
* Alias of [`parseRinexClockLossy`] for callers that read a file as bytes.
|
|
3499
|
+
*/
|
|
3500
|
+
export function loadRinexClockLossy(bytes: Uint8Array): RinexClock;
|
|
3501
|
+
|
|
3502
|
+
/**
|
|
3503
|
+
* Alias of [`parseRinexNav`] for callers that read a file as bytes.
|
|
3504
|
+
*/
|
|
3505
|
+
export function loadRinexNav(bytes: Uint8Array): BroadcastEphemeris;
|
|
3506
|
+
|
|
3507
|
+
/**
|
|
3508
|
+
* Alias of [`parseRinexObs`] for callers that read a file as bytes.
|
|
3509
|
+
*/
|
|
3510
|
+
export function loadRinexObs(bytes: Uint8Array): RinexObs;
|
|
3511
|
+
|
|
3512
|
+
/**
|
|
3513
|
+
* Parse an SP3-c or SP3-d byte buffer (the full, already-decompressed file)
|
|
3514
|
+
* into a precise-ephemeris product. Throws an `Error` on malformed input.
|
|
3515
|
+
*/
|
|
3516
|
+
export function loadSp3(bytes: Uint8Array): Sp3;
|
|
3517
|
+
|
|
3518
|
+
/**
|
|
3519
|
+
* Melbourne-Wubbena combination, metres.
|
|
3520
|
+
*/
|
|
3521
|
+
export function melbourneWubbena(phi1_cycles: number, phi2_cycles: number, p1_m: number, p2_m: number, f1_hz: number, f2_hz: number): number;
|
|
3522
|
+
|
|
3523
|
+
/**
|
|
3524
|
+
* Merge NAVCEN status rows into records by PRN.
|
|
3525
|
+
*
|
|
3526
|
+
* `records` is a `Record[]` (from [`fromCelestrakJson`]); `statuses` is a
|
|
3527
|
+
* `NavcenStatus[]` (from [`parseNavcen`]). Returns the merged `Record[]` sorted
|
|
3528
|
+
* by PRN, filling SVN/usability and NAVCEN provenance on compatible matches.
|
|
3529
|
+
*/
|
|
3530
|
+
export function mergeNavcen(records: any, statuses: any): any;
|
|
3531
|
+
|
|
3532
|
+
/**
|
|
3533
|
+
* Merge SP3 products with the core consensus merge path.
|
|
3534
|
+
*
|
|
3535
|
+
* `sources` is a JS array of parsed [`Sp3`] products, ordered by source
|
|
3536
|
+
* precedence; the handles are consumed. `options` is an optional plain object
|
|
3537
|
+
* (see the `Sp3MergeOptions` TypeScript type). Returns an [`Sp3MergeResult`]
|
|
3538
|
+
* carrying the merged product and the audit report. Throws a `TypeError` for an
|
|
3539
|
+
* empty source list or bad options, and an `Error` for incompatible inputs
|
|
3540
|
+
* (mismatched time systems or coordinate frames).
|
|
3541
|
+
*/
|
|
3542
|
+
export function mergeSp3(sources: Sp3[], options: any): Sp3MergeResult;
|
|
3543
|
+
|
|
3544
|
+
/**
|
|
3545
|
+
* Angle in degrees between satellite nadir and the Moon direction.
|
|
3546
|
+
*/
|
|
3547
|
+
export function moonAngle(satellite_position_km: Float64Array, moon_position_km: Float64Array): Float64Array;
|
|
3548
|
+
|
|
3549
|
+
/**
|
|
3550
|
+
* Narrow-lane code combination, metres.
|
|
3551
|
+
*/
|
|
3552
|
+
export function narrowLaneCode(p1_m: number, p2_m: number, f1_hz: number, f2_hz: number): number;
|
|
3553
|
+
|
|
3554
|
+
/**
|
|
3555
|
+
* Stable lower-case selector for a NAV message, e.g. `"gps_lnav"`.
|
|
3556
|
+
*/
|
|
3557
|
+
export function navMessageLabel(message: NavMessage): string;
|
|
3558
|
+
|
|
3559
|
+
/**
|
|
3560
|
+
* Equal-variance noise amplification of the ionosphere-free combination.
|
|
3561
|
+
*/
|
|
3562
|
+
export function noiseAmplification(f1_hz: number, f2_hz: number): number;
|
|
3563
|
+
|
|
3564
|
+
/**
|
|
3565
|
+
* Stable lower-case label for an observation kind.
|
|
3566
|
+
*/
|
|
3567
|
+
export function observationKindLabel(kind: ObservationKind): string;
|
|
3568
|
+
|
|
3569
|
+
/**
|
|
3570
|
+
* Parse CCSDS CDM KVN text. Throws an `Error` on a parse failure.
|
|
3571
|
+
*/
|
|
3572
|
+
export function parseCdmKvn(text: string): Cdm;
|
|
3573
|
+
|
|
3574
|
+
/**
|
|
3575
|
+
* Parse CCSDS CDM XML text. Throws an `Error` on a parse failure.
|
|
3576
|
+
*/
|
|
3577
|
+
export function parseCdmXml(text: string): Cdm;
|
|
3578
|
+
|
|
3579
|
+
/**
|
|
3580
|
+
* Parse NAVCEN's GPS constellation status HTML into status rows.
|
|
3581
|
+
*
|
|
3582
|
+
* Returns a `NavcenStatus[]` sorted by PRN. Throws an `Error` when the HTML
|
|
3583
|
+
* carries no GPS rows or a required integer cell fails to parse.
|
|
3584
|
+
*/
|
|
3585
|
+
export function parseNavcen(html: string): any;
|
|
3586
|
+
|
|
3587
|
+
/**
|
|
3588
|
+
* Parse CCSDS/CelesTrak OMM JSON text. Throws an `Error` on a parse failure.
|
|
3589
|
+
*/
|
|
3590
|
+
export function parseOmmJson(text: string): Omm;
|
|
3591
|
+
|
|
3592
|
+
/**
|
|
3593
|
+
* Parse CCSDS OMM KVN text. Throws an `Error` on a parse failure.
|
|
3594
|
+
*/
|
|
3595
|
+
export function parseOmmKvn(text: string): Omm;
|
|
3596
|
+
|
|
3597
|
+
/**
|
|
3598
|
+
* Parse CCSDS OMM XML text. Throws an `Error` on a parse failure.
|
|
3599
|
+
*/
|
|
3600
|
+
export function parseOmmXml(text: string): Omm;
|
|
3601
|
+
|
|
3602
|
+
/**
|
|
3603
|
+
* Strictly parse RINEX clock bytes into satellite clock-bias series. Throws a
|
|
3604
|
+
* `TypeError` on non-UTF-8 input and an `Error` on a malformed record.
|
|
3605
|
+
*/
|
|
3606
|
+
export function parseRinexClock(bytes: Uint8Array): RinexClock;
|
|
3607
|
+
|
|
3608
|
+
/**
|
|
3609
|
+
* Parse RINEX clock bytes, skipping malformed and non-`AS` rows. Throws a
|
|
3610
|
+
* `TypeError` only on non-UTF-8 input.
|
|
3611
|
+
*/
|
|
3612
|
+
export function parseRinexClockLossy(bytes: Uint8Array): RinexClock;
|
|
3613
|
+
|
|
3614
|
+
/**
|
|
3615
|
+
* Parse all GLONASS state-vector records from RINEX NAV bytes.
|
|
3616
|
+
*/
|
|
3617
|
+
export function parseRinexGlonassRecords(bytes: Uint8Array): GlonassRecordJs[];
|
|
3618
|
+
|
|
3619
|
+
/**
|
|
3620
|
+
* Parse GPS and BeiDou Klobuchar coefficients from a RINEX NAV header.
|
|
3621
|
+
*/
|
|
3622
|
+
export function parseRinexIonoCorrections(bytes: Uint8Array): IonoCorrectionsJs;
|
|
3623
|
+
|
|
3624
|
+
/**
|
|
3625
|
+
* Parse the NAV header GPS minus UTC leap seconds, or `undefined`.
|
|
3626
|
+
*/
|
|
3627
|
+
export function parseRinexLeapSeconds(bytes: Uint8Array): number | undefined;
|
|
3628
|
+
|
|
3629
|
+
/**
|
|
3630
|
+
* Parse RINEX NAV bytes into the default broadcast ephemeris store. Throws a
|
|
3631
|
+
* `TypeError` on non-UTF-8 input and an `Error` on a parse failure.
|
|
3632
|
+
*/
|
|
3633
|
+
export function parseRinexNav(bytes: Uint8Array): BroadcastEphemeris;
|
|
3634
|
+
|
|
3635
|
+
/**
|
|
3636
|
+
* Parse all supported GPS, Galileo, and BeiDou broadcast records from NAV
|
|
3637
|
+
* bytes, before the store's default health and message-policy filter.
|
|
3638
|
+
*/
|
|
3639
|
+
export function parseRinexNavRecords(bytes: Uint8Array): BroadcastRecordJs[];
|
|
3640
|
+
|
|
3641
|
+
/**
|
|
3642
|
+
* Parse a RINEX OBS byte buffer (UTF-8 text) into an observation product.
|
|
3643
|
+
* Throws a `TypeError` on non-UTF-8 input and an `Error` on a parse failure.
|
|
3644
|
+
*/
|
|
3645
|
+
export function parseRinexObs(bytes: Uint8Array): RinexObs;
|
|
3646
|
+
|
|
3647
|
+
/**
|
|
3648
|
+
* Sun-satellite-observer phase angle in degrees.
|
|
3649
|
+
*/
|
|
3650
|
+
export function phaseAngle(satellite_position_km: Float64Array, sun_position_km: Float64Array, observer_position_km: Float64Array): Float64Array;
|
|
3651
|
+
|
|
3652
|
+
/**
|
|
3653
|
+
* Carrier phase converted to metres, `L = c / f * phi`.
|
|
3654
|
+
*/
|
|
3655
|
+
export function phaseMeters(phi_cycles: number, f_hz: number): number;
|
|
3656
|
+
|
|
3657
|
+
/**
|
|
3658
|
+
* Numerically propagate an ECI Cartesian state and sample it at a grid of
|
|
3659
|
+
* epochs.
|
|
3660
|
+
*
|
|
3661
|
+
* `request` is a plain object; see the `PropagateStateRequest` TypeScript type.
|
|
3662
|
+
* Throws a `TypeError` for malformed input (wrong shape, unknown selector), a
|
|
3663
|
+
* `RangeError` for a non-positive initial step, and an `Error` if the engine's
|
|
3664
|
+
* propagation fails.
|
|
3665
|
+
*/
|
|
3666
|
+
export function propagateState(request: any): Ephemeris;
|
|
3667
|
+
|
|
3668
|
+
/**
|
|
3669
|
+
* Stable lower-case label for a pseudorange drop reason.
|
|
3670
|
+
*/
|
|
3671
|
+
export function pseudorangeDropReasonLabel(reason: PseudorangeDropReason): string;
|
|
3672
|
+
|
|
3673
|
+
/**
|
|
3674
|
+
* Pseudorange measurement variance, square metres.
|
|
3675
|
+
*/
|
|
3676
|
+
export function pseudorangeVariance(elevation_deg: number, options: any): number;
|
|
3677
|
+
|
|
3678
|
+
/**
|
|
3679
|
+
* Convert a pseudorange rate in metres per second to Doppler shift in hertz.
|
|
3680
|
+
*/
|
|
3681
|
+
export function rangeRateToDoppler(range_rate_m_s: number, carrier_hz: number): number;
|
|
3682
|
+
|
|
3683
|
+
/**
|
|
3684
|
+
* Build a sampled GPS C/A code replica, an `Int8Array`.
|
|
3685
|
+
*/
|
|
3686
|
+
export function replica(prn: bigint, options: any): Int8Array;
|
|
3687
|
+
|
|
3688
|
+
/**
|
|
3689
|
+
* RINEX observation band frequency in hertz for a system and band digit.
|
|
3690
|
+
*/
|
|
3691
|
+
export function rinexBandFrequencyHz(system: GnssSystem, band: string, glonass_channel?: number | null): number | undefined;
|
|
3692
|
+
|
|
3693
|
+
/**
|
|
3694
|
+
* RINEX observation band wavelength in metres for a system and band digit.
|
|
3695
|
+
*/
|
|
3696
|
+
export function rinexBandWavelengthM(system: GnssSystem, band: string, glonass_channel?: number | null): number | undefined;
|
|
3697
|
+
|
|
3698
|
+
/**
|
|
3699
|
+
* Transform a 3x3 RTN covariance (flat row-major length 9) to ECI for the given
|
|
3700
|
+
* orbit state. Returns a flat row-major length-9 `Float64Array`.
|
|
3701
|
+
*/
|
|
3702
|
+
export function rtnToEciCovariance(covariance_rtn: Float64Array, position_km: Float64Array, velocity_km_s: Float64Array): Float64Array;
|
|
3703
|
+
|
|
3704
|
+
/**
|
|
3705
|
+
* Select an IONEX product usable at `requestedEpochJ2000S`, degrading to a
|
|
3706
|
+
* diurnal-shifted prior product within `policy`.
|
|
3707
|
+
*
|
|
3708
|
+
* `products` is a JS array of parsed [`Ionex`] handles (consumed). `policy` is
|
|
3709
|
+
* optional (`{ maxStalenessS }` or `{ maxStalenessDays }`, default 3 days).
|
|
3710
|
+
* Throws a typed selection `Error` when no product fits the request and cap.
|
|
3711
|
+
*/
|
|
3712
|
+
export function selectIonex(products: Ionex[], requested_epoch_j2000_s: number, policy: any): IonexSelection;
|
|
3713
|
+
|
|
3714
|
+
/**
|
|
3715
|
+
* Select an IONEX product usable across `[startEpochJ2000S, endEpochJ2000S]`.
|
|
3716
|
+
* See [`selectIonex`] for the single-epoch case and the arguments.
|
|
3717
|
+
*/
|
|
3718
|
+
export function selectIonexOverRange(products: Ionex[], start_epoch_j2000_s: number, end_epoch_j2000_s: number, policy: any): IonexSelection;
|
|
3719
|
+
|
|
3720
|
+
/**
|
|
3721
|
+
* Select an SP3 product usable at `requestedEpochJ2000S`, degrading to the
|
|
3722
|
+
* most-recent prior product within `policy`. See [`selectIonex`] for the
|
|
3723
|
+
* `products` / `policy` conventions.
|
|
3724
|
+
*/
|
|
3725
|
+
export function selectSp3(products: Sp3[], requested_epoch_j2000_s: number, policy: any): Sp3Selection;
|
|
3726
|
+
|
|
3727
|
+
/**
|
|
3728
|
+
* Select an SP3 product usable across `[startEpochJ2000S, endEpochJ2000S]`.
|
|
3729
|
+
*/
|
|
3730
|
+
export function selectSp3OverRange(products: Sp3[], start_epoch_j2000_s: number, end_epoch_j2000_s: number, policy: any): Sp3Selection;
|
|
3731
|
+
|
|
3732
|
+
/**
|
|
3733
|
+
* Shadow fraction in `[0, 1]` for satellite and Sun position batches, km.
|
|
3734
|
+
*
|
|
3735
|
+
* `satellitePositionKm` and `sunPositionKm` are flat row-major `(n, 3)`
|
|
3736
|
+
* `Float64Array`s. Returns a `Float64Array` of length `n`.
|
|
3737
|
+
*/
|
|
3738
|
+
export function shadowFraction(satellite_position_km: Float64Array, sun_position_km: Float64Array): Float64Array;
|
|
3739
|
+
|
|
3740
|
+
/**
|
|
3741
|
+
* Build satellite-keyed pseudorange sigmas in metres from `{ satelliteId,
|
|
3742
|
+
* elevationDeg, cn0Dbhz? }` entries. Invalid entries are dropped by the core.
|
|
3743
|
+
*/
|
|
3744
|
+
export function sigmas(entries: any, options: any): SatelliteVector;
|
|
3745
|
+
|
|
3746
|
+
/**
|
|
3747
|
+
* Stable lower-case label for a slip reason.
|
|
3748
|
+
*/
|
|
3749
|
+
export function slipReasonLabel(reason: SlipReason): string;
|
|
3750
|
+
|
|
3751
|
+
/**
|
|
3752
|
+
* Single-frequency Hatch carrier-smoothed code on band 1.
|
|
3753
|
+
*/
|
|
3754
|
+
export function smoothCode(arc: any, options: any, hatch_window_cap?: number | null): SmoothCodeResult[];
|
|
3755
|
+
|
|
3756
|
+
/**
|
|
3757
|
+
* Dual-frequency ionosphere-free Hatch carrier-smoothed code.
|
|
3758
|
+
*/
|
|
3759
|
+
export function smoothIonoFreeCode(arc: any, options: any, hatch_window_cap?: number | null): IonoFreeSmoothResult[];
|
|
3760
|
+
|
|
3761
|
+
/**
|
|
3762
|
+
* Post-correlation predetection SNR in decibels.
|
|
3763
|
+
*/
|
|
3764
|
+
export function snrPostDb(cn0_dbhz: number, integration_time_s: number): number;
|
|
3765
|
+
|
|
3766
|
+
/**
|
|
3767
|
+
* Search integer ambiguities from a float PPP solution and re-solve fixed.
|
|
3768
|
+
*
|
|
3769
|
+
* `epochs` and `config` are plain objects (`PppEpoch`, `PppFixedConfig`);
|
|
3770
|
+
* `floatSolution` is the result of [`solvePppFloat`] over the same arc. Throws
|
|
3771
|
+
* a `TypeError` for malformed input and an `Error` if the solve fails.
|
|
3772
|
+
*/
|
|
3773
|
+
export function solvePppFixed(sp3: Sp3, epochs: any, float_solution: PppFloatSolution, config: any): PppFixedSolution;
|
|
3774
|
+
|
|
3775
|
+
/**
|
|
3776
|
+
* Solve a static multi-epoch float PPP arc against an SP3 product.
|
|
3777
|
+
*
|
|
3778
|
+
* `epochs`, `initialState`, and `config` are plain objects; see the
|
|
3779
|
+
* `PppEpoch`, `PppFloatState`, and `PppFloatConfig` TypeScript types. Throws a
|
|
3780
|
+
* `TypeError` for malformed input and an `Error` if the solve fails.
|
|
3781
|
+
*/
|
|
3782
|
+
export function solvePppFloat(sp3: Sp3, epochs: any, initial_state: any, config: any): PppFloatSolution;
|
|
3783
|
+
|
|
3784
|
+
/**
|
|
3785
|
+
* Solve a static fixed RTK baseline with residual validation / FDE.
|
|
3786
|
+
*
|
|
3787
|
+
* `config` is a plain object; see the `RtkFixedConfig` TypeScript type. Throws
|
|
3788
|
+
* a `TypeError` for malformed input and an `Error` if the solve fails.
|
|
3789
|
+
*/
|
|
3790
|
+
export function solveRtkFixed(config: any): RtkFixedSolution;
|
|
3791
|
+
|
|
3792
|
+
/**
|
|
3793
|
+
* Solve a static float RTK baseline.
|
|
3794
|
+
*
|
|
3795
|
+
* `config` is a plain object; see the `RtkFloatConfig` TypeScript type. Throws
|
|
3796
|
+
* a `TypeError` for malformed input and an `Error` if the solve fails.
|
|
3797
|
+
*/
|
|
3798
|
+
export function solveRtkFloat(config: any): RtkFloatSolution;
|
|
3799
|
+
|
|
3800
|
+
/**
|
|
3801
|
+
* Solve receiver ECEF velocity and clock drift from one epoch of observations.
|
|
3802
|
+
* `observations` is an array of `{ satelliteId, value, carrierHz,
|
|
3803
|
+
* satClockDriftSS? }`; `receiverEcefM` is a length-3 `Float64Array`.
|
|
3804
|
+
*/
|
|
3805
|
+
export function solveVelocity(sp3: Sp3, observations: any, receiver_ecef_m: Float64Array, t_rx_j2000_s: number, options: any): VelocitySolution;
|
|
3806
|
+
|
|
3807
|
+
/**
|
|
3808
|
+
* Solve a receiver position, preferring precise SP3 products and falling back to
|
|
3809
|
+
* broadcast ephemeris, reporting which source was used and how stale it is.
|
|
3810
|
+
*
|
|
3811
|
+
* `precise` is a JS array of parsed [`Sp3`] handles (consumed); the staleness
|
|
3812
|
+
* layer selects among them at the request's receive epoch. `broadcast` is the
|
|
3813
|
+
* broadcast store used when no precise product covers the epoch within `policy`.
|
|
3814
|
+
* `request` is the SPP request object [`Sp3.solveSpp`] takes. Returns a
|
|
3815
|
+
* [`SourcedSolution`]; throws a typed fallback `Error` if the chosen path's
|
|
3816
|
+
* solve fails.
|
|
3817
|
+
*/
|
|
3818
|
+
export function solveWithFallback(precise: Sp3[], broadcast: BroadcastEphemeris, request: any, policy: any): SourcedSolution;
|
|
3819
|
+
|
|
3820
|
+
/**
|
|
3821
|
+
* Angle in degrees between satellite nadir and the Sun direction.
|
|
3822
|
+
*/
|
|
3823
|
+
export function sunAngle(satellite_position_km: Float64Array, sun_position_km: Float64Array): Float64Array;
|
|
3824
|
+
|
|
3825
|
+
/**
|
|
3826
|
+
* Sun elevation in degrees above the satellite local horizontal plane.
|
|
3827
|
+
*/
|
|
3828
|
+
export function sunElevation(satellite_position_km: Float64Array, sun_position_km: Float64Array): Float64Array;
|
|
3829
|
+
|
|
3830
|
+
/**
|
|
3831
|
+
* Analytic Sun and Moon geocentric positions in the Earth-fixed ITRS (ECEF)
|
|
3832
|
+
* frame, metres, for a `BigInt64Array` of unix-microsecond epochs.
|
|
3833
|
+
*/
|
|
3834
|
+
export function sunMoonEcef(epochs_unix_us: BigInt64Array): SunMoon;
|
|
3835
|
+
|
|
3836
|
+
/**
|
|
3837
|
+
* Analytic Sun and Moon positions in the geocentric ECI frame (mean equator and
|
|
3838
|
+
* equinox of date), metres, for a `BigInt64Array` of unix-microsecond epochs.
|
|
3839
|
+
*/
|
|
3840
|
+
export function sunMoonEci(epochs_unix_us: BigInt64Array): SunMoon;
|
|
3841
|
+
|
|
3842
|
+
/**
|
|
3843
|
+
* Transform a batch of TEME states to GCRS, each at its own epoch.
|
|
3844
|
+
*
|
|
3845
|
+
* `positionKm` and `velocityKmS` are flat row-major `(n, 3)` `Float64Array`s;
|
|
3846
|
+
* `epochsUnixUs` is a `BigInt64Array` of unix-microsecond UTC stamps.
|
|
3847
|
+
* `skyfieldCompat` (default true) selects the AU-scaled Skyfield-parity path.
|
|
3848
|
+
*/
|
|
3849
|
+
export function temeToGcrs(position_km: Float64Array, velocity_km_s: Float64Array, epochs_unix_us: BigInt64Array, skyfield_compat?: boolean | null): FrameStates;
|
|
3850
|
+
|
|
3851
|
+
/**
|
|
3852
|
+
* Short uppercase identifier for a time scale, e.g. `"GPST"`.
|
|
3853
|
+
*/
|
|
3854
|
+
export function timeScaleAbbrev(scale: TimeScale): string;
|
|
3855
|
+
|
|
3856
|
+
/**
|
|
3857
|
+
* Export records as the compact mapping CSV (`prn,norad_cat_id,active,sp3_id`).
|
|
3858
|
+
*
|
|
3859
|
+
* `booleans` selects the `active` column rendering: `"lower"` (default) for
|
|
3860
|
+
* `true`/`false`, `"title"` for `True`/`False`.
|
|
3861
|
+
*/
|
|
3862
|
+
export function toCsv(records: any, booleans?: string | null): string;
|
|
3863
|
+
|
|
3864
|
+
/**
|
|
3865
|
+
* Niell hydrostatic and wet mapping factors at an elevation.
|
|
3866
|
+
*
|
|
3867
|
+
* `elevationDeg` and `latDeg` are degrees, `heightM` the WGS84 ellipsoidal
|
|
3868
|
+
* height in metres, and (`jdWhole`, `jdFraction`) a split Julian date for the
|
|
3869
|
+
* seasonal day-of-year. Unity at the zenith; grows toward the horizon.
|
|
3870
|
+
*/
|
|
3871
|
+
export function tropoMappingFactors(elevation_deg: number, lat_deg: number, height_m: number, jd_whole: number, jd_fraction: number): MappingFactors;
|
|
3872
|
+
|
|
3873
|
+
/**
|
|
3874
|
+
* Full slant tropospheric delay, positive metres.
|
|
3875
|
+
*
|
|
3876
|
+
* Composes the Saastamoinen zenith delays with the Niell mapping at
|
|
3877
|
+
* `elevationDeg`. The receiver is `latDeg` / `lonDeg` / `heightM`; `met` is the
|
|
3878
|
+
* `{ pressureHpa, temperatureK, relativeHumidity }` object; (`jdWhole`,
|
|
3879
|
+
* `jdFraction`) the split Julian date. Returns `0` at or below the horizon
|
|
3880
|
+
* (no signal path), matching the cross-binding contract.
|
|
3881
|
+
*/
|
|
3882
|
+
export function tropoSlantDelay(elevation_deg: number, lat_deg: number, lon_deg: number, height_m: number, met: any, jd_whole: number, jd_fraction: number): number;
|
|
3883
|
+
|
|
3884
|
+
/**
|
|
3885
|
+
* Saastamoinen zenith tropospheric delays from supplied meteorology.
|
|
3886
|
+
*
|
|
3887
|
+
* `latDeg` is the receiver geodetic latitude in degrees, `heightM` the WGS84
|
|
3888
|
+
* ellipsoidal height in metres, and `met` a `{ pressureHpa, temperatureK,
|
|
3889
|
+
* relativeHumidity }` object. The hydrostatic term carries the latitude/height
|
|
3890
|
+
* gravity correction. Throws a `RangeError`/`Error` for out-of-domain input.
|
|
3891
|
+
*/
|
|
3892
|
+
export function tropoZenithDelay(lat_deg: number, height_m: number, met: any): ZenithDelay;
|
|
3893
|
+
|
|
3894
|
+
/**
|
|
3895
|
+
* Provenance and coverage of the embedded UT1-UTC / delta-T (EOP) table.
|
|
3896
|
+
*/
|
|
3897
|
+
export function ut1CoverageInfo(): Ut1Coverage;
|
|
3898
|
+
|
|
3899
|
+
/**
|
|
3900
|
+
* Validate catalog identity without an SP3 product.
|
|
3901
|
+
*
|
|
3902
|
+
* Returns a `Validation` reporting duplicate PRNs, duplicate NORAD ids, and
|
|
3903
|
+
* inactive/unusable PRNs.
|
|
3904
|
+
*/
|
|
3905
|
+
export function validate(records: any): any;
|
|
3906
|
+
|
|
3907
|
+
/**
|
|
3908
|
+
* Validate catalog identity against a list of SP3/RINEX satellite tokens.
|
|
3909
|
+
*
|
|
3910
|
+
* Returns a `Validation` that additionally reports active+usable catalog ids
|
|
3911
|
+
* missing from `ids` and GPS ids in `ids` absent from the active+usable catalog.
|
|
3912
|
+
*/
|
|
3913
|
+
export function validateAgainstSp3Ids(records: any, ids: any): any;
|
|
3914
|
+
|
|
3915
|
+
/**
|
|
3916
|
+
* Wavelength, metres, for frequency in Hz.
|
|
3917
|
+
*/
|
|
3918
|
+
export function wavelength(frequency_hz: number): number;
|
|
3919
|
+
|
|
3920
|
+
/**
|
|
3921
|
+
* Carrier wavelength in metres for a constellation and canonical carrier band.
|
|
3922
|
+
*/
|
|
3923
|
+
export function wavelengthM(system: GnssSystem, band: CarrierBand): number | undefined;
|
|
3924
|
+
|
|
3925
|
+
/**
|
|
3926
|
+
* Build satellite-keyed inverse-variance pseudorange weights.
|
|
3927
|
+
*/
|
|
3928
|
+
export function weightVector(entries: any, options: any): SatelliteVector;
|
|
3929
|
+
|
|
3930
|
+
/**
|
|
3931
|
+
* Melbourne-Wubbena wide-lane ambiguity estimate, wide-lane cycles.
|
|
3932
|
+
*/
|
|
3933
|
+
export function wideLaneCycles(phi1_cycles: number, phi2_cycles: number, p1_m: number, p2_m: number, f1_hz: number, f2_hz: number): number;
|
|
3934
|
+
|
|
3935
|
+
/**
|
|
3936
|
+
* Wide-lane wavelength `c / (f1 - f2)`, metres.
|
|
3937
|
+
*/
|
|
3938
|
+
export function wideLaneWavelength(f1_hz: number, f2_hz: number): number;
|