@neilberkman/sidereon 2.0.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -0
- package/README.md +7 -4
- package/package.json +1 -1
- package/pkg/sidereon.d.ts +2119 -2074
- package/pkg/sidereon.js +117 -26
- package/pkg/sidereon_bg.wasm +0 -0
- package/pkg/sidereon_bg.wasm.d.ts +2065 -2058
- package/pkg-node/sidereon.d.ts +54 -16
- package/pkg-node/sidereon.js +117 -26
- package/pkg-node/sidereon_bg.wasm +0 -0
- package/pkg-node/sidereon_bg.wasm.d.ts +2065 -2058
package/pkg/sidereon.js
CHANGED
|
@@ -13865,12 +13865,16 @@ export class PreciseEphemerisInterpolant {
|
|
|
13865
13865
|
/**
|
|
13866
13866
|
* Build a cached interpolant from an existing sample-backed precise source.
|
|
13867
13867
|
* @param {PreciseEphemerisSampleSource} source
|
|
13868
|
+
* @param {number | null} [gap_threshold_factor]
|
|
13868
13869
|
* @returns {PreciseEphemerisInterpolant}
|
|
13869
13870
|
*/
|
|
13870
|
-
static fromPreciseEphemerisSamples(source) {
|
|
13871
|
+
static fromPreciseEphemerisSamples(source, gap_threshold_factor) {
|
|
13871
13872
|
_assertClass(source, PreciseEphemerisSampleSource);
|
|
13872
|
-
const ret = wasm.preciseephemerisinterpolant_fromPreciseEphemerisSamples(source.__wbg_ptr);
|
|
13873
|
-
|
|
13873
|
+
const ret = wasm.preciseephemerisinterpolant_fromPreciseEphemerisSamples(source.__wbg_ptr, !isLikeNone(gap_threshold_factor), isLikeNone(gap_threshold_factor) ? 0 : gap_threshold_factor);
|
|
13874
|
+
if (ret[2]) {
|
|
13875
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
13876
|
+
}
|
|
13877
|
+
return PreciseEphemerisInterpolant.__wrap(ret[0]);
|
|
13874
13878
|
}
|
|
13875
13879
|
/**
|
|
13876
13880
|
* Build a cached interpolant directly from precise samples.
|
|
@@ -13881,10 +13885,11 @@ export class PreciseEphemerisInterpolant {
|
|
|
13881
13885
|
* J2000 and positions in ECEF metres. Throws a `TypeError` for malformed
|
|
13882
13886
|
* JS input and a `RangeError` for sample validation failures.
|
|
13883
13887
|
* @param {any} samples
|
|
13888
|
+
* @param {number | null} [gap_threshold_factor]
|
|
13884
13889
|
* @returns {PreciseEphemerisInterpolant}
|
|
13885
13890
|
*/
|
|
13886
|
-
static fromSamples(samples) {
|
|
13887
|
-
const ret = wasm.preciseephemerisinterpolant_fromSamples(samples);
|
|
13891
|
+
static fromSamples(samples, gap_threshold_factor) {
|
|
13892
|
+
const ret = wasm.preciseephemerisinterpolant_fromSamples(samples, !isLikeNone(gap_threshold_factor), isLikeNone(gap_threshold_factor) ? 0 : gap_threshold_factor);
|
|
13888
13893
|
if (ret[2]) {
|
|
13889
13894
|
throw takeFromExternrefTable0(ret[1]);
|
|
13890
13895
|
}
|
|
@@ -13896,12 +13901,24 @@ export class PreciseEphemerisInterpolant {
|
|
|
13896
13901
|
* Nodes are copied from the product's native SP3 records. Query epochs are
|
|
13897
13902
|
* seconds since J2000 in the SP3 product time scale.
|
|
13898
13903
|
* @param {Sp3} sp3
|
|
13904
|
+
* @param {number | null} [gap_threshold_factor]
|
|
13899
13905
|
* @returns {PreciseEphemerisInterpolant}
|
|
13900
13906
|
*/
|
|
13901
|
-
static fromSp3(sp3) {
|
|
13907
|
+
static fromSp3(sp3, gap_threshold_factor) {
|
|
13902
13908
|
_assertClass(sp3, Sp3);
|
|
13903
|
-
const ret = wasm.preciseephemerisinterpolant_fromSp3(sp3.__wbg_ptr);
|
|
13904
|
-
|
|
13909
|
+
const ret = wasm.preciseephemerisinterpolant_fromSp3(sp3.__wbg_ptr, !isLikeNone(gap_threshold_factor), isLikeNone(gap_threshold_factor) ? 0 : gap_threshold_factor);
|
|
13910
|
+
if (ret[2]) {
|
|
13911
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
13912
|
+
}
|
|
13913
|
+
return PreciseEphemerisInterpolant.__wrap(ret[0]);
|
|
13914
|
+
}
|
|
13915
|
+
/**
|
|
13916
|
+
* SP3 interpolation gap threshold factor carried by this interpolant.
|
|
13917
|
+
* @returns {number}
|
|
13918
|
+
*/
|
|
13919
|
+
get gapThresholdFactor() {
|
|
13920
|
+
const ret = wasm.preciseephemerisinterpolant_gapThresholdFactor(this.__wbg_ptr);
|
|
13921
|
+
return ret;
|
|
13905
13922
|
}
|
|
13906
13923
|
/**
|
|
13907
13924
|
* Query ECEF position and optional clock for parallel satellite and epoch
|
|
@@ -13985,6 +14002,18 @@ export class PreciseEphemerisInterpolant {
|
|
|
13985
14002
|
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
13986
14003
|
}
|
|
13987
14004
|
}
|
|
14005
|
+
/**
|
|
14006
|
+
* Return a copy of this interpolant with an explicit gap threshold factor.
|
|
14007
|
+
* @param {number} gap_threshold_factor
|
|
14008
|
+
* @returns {PreciseEphemerisInterpolant}
|
|
14009
|
+
*/
|
|
14010
|
+
withInterpolationOptions(gap_threshold_factor) {
|
|
14011
|
+
const ret = wasm.preciseephemerisinterpolant_withInterpolationOptions(this.__wbg_ptr, gap_threshold_factor);
|
|
14012
|
+
if (ret[2]) {
|
|
14013
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
14014
|
+
}
|
|
14015
|
+
return PreciseEphemerisInterpolant.__wrap(ret[0]);
|
|
14016
|
+
}
|
|
13988
14017
|
}
|
|
13989
14018
|
if (Symbol.dispose) PreciseEphemerisInterpolant.prototype[Symbol.dispose] = PreciseEphemerisInterpolant.prototype.free;
|
|
13990
14019
|
|
|
@@ -14012,6 +14041,14 @@ export class PreciseEphemerisSampleSource {
|
|
|
14012
14041
|
const ptr = this.__destroy_into_raw();
|
|
14013
14042
|
wasm.__wbg_preciseephemerissamplesource_free(ptr, 0);
|
|
14014
14043
|
}
|
|
14044
|
+
/**
|
|
14045
|
+
* SP3 interpolation gap threshold factor carried by this source.
|
|
14046
|
+
* @returns {number}
|
|
14047
|
+
*/
|
|
14048
|
+
get gapThresholdFactor() {
|
|
14049
|
+
const ret = wasm.preciseephemerissamplesource_gapThresholdFactor(this.__wbg_ptr);
|
|
14050
|
+
return ret;
|
|
14051
|
+
}
|
|
14015
14052
|
/**
|
|
14016
14053
|
* Query ECEF position and optional clock for parallel satellite and epoch
|
|
14017
14054
|
* arrays against this sample-backed precise source.
|
|
@@ -14075,6 +14112,18 @@ export class PreciseEphemerisSampleSource {
|
|
|
14075
14112
|
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
14076
14113
|
return v1;
|
|
14077
14114
|
}
|
|
14115
|
+
/**
|
|
14116
|
+
* Return a copy of these samples with an explicit gap threshold factor.
|
|
14117
|
+
* @param {number} gap_threshold_factor
|
|
14118
|
+
* @returns {PreciseEphemerisSampleSource}
|
|
14119
|
+
*/
|
|
14120
|
+
withInterpolationOptions(gap_threshold_factor) {
|
|
14121
|
+
const ret = wasm.preciseephemerissamplesource_withInterpolationOptions(this.__wbg_ptr, gap_threshold_factor);
|
|
14122
|
+
if (ret[2]) {
|
|
14123
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
14124
|
+
}
|
|
14125
|
+
return PreciseEphemerisSampleSource.__wrap(ret[0]);
|
|
14126
|
+
}
|
|
14078
14127
|
}
|
|
14079
14128
|
if (Symbol.dispose) PreciseEphemerisSampleSource.prototype[Symbol.dispose] = PreciseEphemerisSampleSource.prototype.free;
|
|
14080
14129
|
|
|
@@ -14197,6 +14246,14 @@ export class PreciseInterpolantArtifact {
|
|
|
14197
14246
|
}
|
|
14198
14247
|
return PreciseInterpolantArtifact.__wrap(ret[0]);
|
|
14199
14248
|
}
|
|
14249
|
+
/**
|
|
14250
|
+
* SP3 interpolation gap threshold factor read from the artifact header.
|
|
14251
|
+
* @returns {number}
|
|
14252
|
+
*/
|
|
14253
|
+
get gapThresholdFactor() {
|
|
14254
|
+
const ret = wasm.preciseinterpolantartifact_gapThresholdFactor(this.__wbg_ptr);
|
|
14255
|
+
return ret;
|
|
14256
|
+
}
|
|
14200
14257
|
/**
|
|
14201
14258
|
* Satellite tokens present in the artifact, ascending.
|
|
14202
14259
|
* @returns {string[]}
|
|
@@ -17303,19 +17360,21 @@ export class Sp3 {
|
|
|
17303
17360
|
*
|
|
17304
17361
|
* `orbitClass` is `"meo_gnss"` (default), `"geosynchronous"`, `"leo"`, or
|
|
17305
17362
|
* `null` to disable the speed gate. `residualToleranceM` enables the
|
|
17306
|
-
* residual check; `null` disables it.
|
|
17363
|
+
* residual check; `null` disables it. `gapThresholdFactor` configures the
|
|
17364
|
+
* hold-out interpolation policy; `null` leaves the core default (1.5).
|
|
17307
17365
|
*
|
|
17308
17366
|
* Returns `{ attested, defects, pairsChecked, residualsChecked,
|
|
17309
17367
|
* residualsSkipped }`. Reports rather than refuses: whether a product with
|
|
17310
17368
|
* defects is acceptable is the caller's decision.
|
|
17311
17369
|
* @param {string | null} [orbit_class]
|
|
17312
17370
|
* @param {number | null} [residual_tolerance_m]
|
|
17371
|
+
* @param {number | null} [gap_threshold_factor]
|
|
17313
17372
|
* @returns {any}
|
|
17314
17373
|
*/
|
|
17315
|
-
checkContinuity(orbit_class, residual_tolerance_m) {
|
|
17374
|
+
checkContinuity(orbit_class, residual_tolerance_m, gap_threshold_factor) {
|
|
17316
17375
|
var ptr0 = isLikeNone(orbit_class) ? 0 : passStringToWasm0(orbit_class, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
17317
17376
|
var len0 = WASM_VECTOR_LEN;
|
|
17318
|
-
const ret = wasm.sp3_checkContinuity(this.__wbg_ptr, ptr0, len0, !isLikeNone(residual_tolerance_m), isLikeNone(residual_tolerance_m) ? 0 : residual_tolerance_m);
|
|
17377
|
+
const ret = wasm.sp3_checkContinuity(this.__wbg_ptr, ptr0, len0, !isLikeNone(residual_tolerance_m), isLikeNone(residual_tolerance_m) ? 0 : residual_tolerance_m, !isLikeNone(gap_threshold_factor), isLikeNone(gap_threshold_factor) ? 0 : gap_threshold_factor);
|
|
17319
17378
|
if (ret[2]) {
|
|
17320
17379
|
throw takeFromExternrefTable0(ret[1]);
|
|
17321
17380
|
}
|
|
@@ -17354,10 +17413,11 @@ export class Sp3 {
|
|
|
17354
17413
|
* @param {number} through_j2000_s
|
|
17355
17414
|
* @param {any} orbit_class
|
|
17356
17415
|
* @param {any} residual_tolerance_m
|
|
17416
|
+
* @param {any} gap_threshold_factor
|
|
17357
17417
|
* @returns {any}
|
|
17358
17418
|
*/
|
|
17359
|
-
continuityVerdict(from_j2000_s, through_j2000_s, orbit_class, residual_tolerance_m) {
|
|
17360
|
-
const ret = wasm.sp3_continuityVerdict(this.__wbg_ptr, from_j2000_s, through_j2000_s, orbit_class, residual_tolerance_m);
|
|
17419
|
+
continuityVerdict(from_j2000_s, through_j2000_s, orbit_class, residual_tolerance_m, gap_threshold_factor) {
|
|
17420
|
+
const ret = wasm.sp3_continuityVerdict(this.__wbg_ptr, from_j2000_s, through_j2000_s, orbit_class, residual_tolerance_m, gap_threshold_factor);
|
|
17361
17421
|
if (ret[2]) {
|
|
17362
17422
|
throw takeFromExternrefTable0(ret[1]);
|
|
17363
17423
|
}
|
|
@@ -17500,6 +17560,14 @@ export class Sp3 {
|
|
|
17500
17560
|
}
|
|
17501
17561
|
return FdeSolution.__wrap(ret[0]);
|
|
17502
17562
|
}
|
|
17563
|
+
/**
|
|
17564
|
+
* SP3 interpolation gap threshold factor carried by this product.
|
|
17565
|
+
* @returns {number}
|
|
17566
|
+
*/
|
|
17567
|
+
get gapThresholdFactor() {
|
|
17568
|
+
const ret = wasm.sp3_gapThresholdFactor(this.__wbg_ptr);
|
|
17569
|
+
return ret;
|
|
17570
|
+
}
|
|
17503
17571
|
/**
|
|
17504
17572
|
* Interpolate `satellite`'s position and clock at each query epoch.
|
|
17505
17573
|
*
|
|
@@ -17562,10 +17630,14 @@ export class Sp3 {
|
|
|
17562
17630
|
}
|
|
17563
17631
|
/**
|
|
17564
17632
|
* Build deterministic precise-interpolant artifact bytes from this SP3 product.
|
|
17633
|
+
*
|
|
17634
|
+
* `gapThresholdFactor` optionally overrides the product's interpolation policy;
|
|
17635
|
+
* `null` or omitted retains this product's active policy.
|
|
17636
|
+
* @param {number | null} [gap_threshold_factor]
|
|
17565
17637
|
* @returns {Uint8Array}
|
|
17566
17638
|
*/
|
|
17567
|
-
preciseInterpolantArtifactBytes() {
|
|
17568
|
-
const ret = wasm.sp3_preciseInterpolantArtifactBytes(this.__wbg_ptr);
|
|
17639
|
+
preciseInterpolantArtifactBytes(gap_threshold_factor) {
|
|
17640
|
+
const ret = wasm.sp3_preciseInterpolantArtifactBytes(this.__wbg_ptr, !isLikeNone(gap_threshold_factor), isLikeNone(gap_threshold_factor) ? 0 : gap_threshold_factor);
|
|
17569
17641
|
if (ret[3]) {
|
|
17570
17642
|
throw takeFromExternrefTable0(ret[2]);
|
|
17571
17643
|
}
|
|
@@ -17745,6 +17817,18 @@ export class Sp3 {
|
|
|
17745
17817
|
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
17746
17818
|
}
|
|
17747
17819
|
}
|
|
17820
|
+
/**
|
|
17821
|
+
* Return a copy of this product with an explicit gap threshold factor.
|
|
17822
|
+
* @param {number} gap_threshold_factor
|
|
17823
|
+
* @returns {Sp3}
|
|
17824
|
+
*/
|
|
17825
|
+
withInterpolationOptions(gap_threshold_factor) {
|
|
17826
|
+
const ret = wasm.sp3_withInterpolationOptions(this.__wbg_ptr, gap_threshold_factor);
|
|
17827
|
+
if (ret[2]) {
|
|
17828
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
17829
|
+
}
|
|
17830
|
+
return Sp3.__wrap(ret[0]);
|
|
17831
|
+
}
|
|
17748
17832
|
}
|
|
17749
17833
|
if (Symbol.dispose) Sp3.prototype[Symbol.dispose] = Sp3.prototype.free;
|
|
17750
17834
|
|
|
@@ -26394,13 +26478,17 @@ export function loadRinexObs(bytes) {
|
|
|
26394
26478
|
/**
|
|
26395
26479
|
* Parse an SP3-c or SP3-d byte buffer (the full, already-decompressed file)
|
|
26396
26480
|
* into a precise-ephemeris product. Throws an `Error` on malformed input.
|
|
26481
|
+
*
|
|
26482
|
+
* `gapThresholdFactor` optionally configures the product-carried SP3 coverage-gap
|
|
26483
|
+
* interpolation policy; omitted or `null` leaves the core default (1.5).
|
|
26397
26484
|
* @param {Uint8Array} bytes
|
|
26485
|
+
* @param {number | null} [gap_threshold_factor]
|
|
26398
26486
|
* @returns {Sp3}
|
|
26399
26487
|
*/
|
|
26400
|
-
export function loadSp3(bytes) {
|
|
26488
|
+
export function loadSp3(bytes, gap_threshold_factor) {
|
|
26401
26489
|
const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
|
|
26402
26490
|
const len0 = WASM_VECTOR_LEN;
|
|
26403
|
-
const ret = wasm.loadSp3(ptr0, len0);
|
|
26491
|
+
const ret = wasm.loadSp3(ptr0, len0, !isLikeNone(gap_threshold_factor), isLikeNone(gap_threshold_factor) ? 0 : gap_threshold_factor);
|
|
26404
26492
|
if (ret[2]) {
|
|
26405
26493
|
throw takeFromExternrefTable0(ret[1]);
|
|
26406
26494
|
}
|
|
@@ -28202,10 +28290,11 @@ export function pppCorrectionsWithCodeBias(sp3, epochs, receiver_ecef_m, options
|
|
|
28202
28290
|
* (empty input, a single-sample satellite, non-monotonic epochs, a non-finite
|
|
28203
28291
|
* sample). Delegates to `sidereon_core::sp3::PreciseEphemerisSamples::from_samples`.
|
|
28204
28292
|
* @param {any} samples
|
|
28293
|
+
* @param {number | null} [gap_threshold_factor]
|
|
28205
28294
|
* @returns {PreciseEphemerisSampleSource}
|
|
28206
28295
|
*/
|
|
28207
|
-
export function preciseEphemerisSamplesFromSamples(samples) {
|
|
28208
|
-
const ret = wasm.preciseEphemerisSamplesFromSamples(samples);
|
|
28296
|
+
export function preciseEphemerisSamplesFromSamples(samples, gap_threshold_factor) {
|
|
28297
|
+
const ret = wasm.preciseEphemerisSamplesFromSamples(samples, !isLikeNone(gap_threshold_factor), isLikeNone(gap_threshold_factor) ? 0 : gap_threshold_factor);
|
|
28209
28298
|
if (ret[2]) {
|
|
28210
28299
|
throw takeFromExternrefTable0(ret[1]);
|
|
28211
28300
|
}
|
|
@@ -28304,13 +28393,15 @@ export function predictBatchSp3(sp3, satellites, receivers_ecef_m, epochs_j2000_
|
|
|
28304
28393
|
/**
|
|
28305
28394
|
* Ordered cross-line candidates for one predicted IONEX map date.
|
|
28306
28395
|
*
|
|
28307
|
-
*
|
|
28308
|
-
*
|
|
28309
|
-
*
|
|
28310
|
-
*
|
|
28311
|
-
*
|
|
28312
|
-
*
|
|
28313
|
-
*
|
|
28396
|
+
* CODE archives both predicted lines under `CODE/IONO/PRD/`, the one-day
|
|
28397
|
+
* line as `COD0OPSP0D_*` and the two-day line as `COD0OPSP1D_*`, with the
|
|
28398
|
+
* map date in both filenames. The two-day line is produced a day earlier,
|
|
28399
|
+
* so `cod_prd2` is routinely published while `cod_prd1` is still absent
|
|
28400
|
+
* when CODE runs behind. Candidates are ordered `cod_prd1` first, all
|
|
28401
|
+
* cover the SAME map date (never a neighboring day's map), and each keeps
|
|
28402
|
+
* its own line identity so resolved provenance names the line actually
|
|
28403
|
+
* served. The walk is opt-in; single-line requests keep their fail-closed
|
|
28404
|
+
* behavior.
|
|
28314
28405
|
*
|
|
28315
28406
|
* Returns an array of `{center, date, sample, issue, filename, url}`.
|
|
28316
28407
|
* @param {number} year
|
package/pkg/sidereon_bg.wasm
CHANGED
|
Binary file
|