@neilberkman/sidereon 2.0.0 → 2.1.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/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
- return PreciseEphemerisInterpolant.__wrap(ret);
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
- return PreciseEphemerisInterpolant.__wrap(ret);
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
  }
Binary file