@neilberkman/sidereon 0.13.0 → 0.15.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
@@ -128,6 +128,75 @@ export class AcquisitionResult {
128
128
  }
129
129
  if (Symbol.dispose) AcquisitionResult.prototype[Symbol.dispose] = AcquisitionResult.prototype.free;
130
130
 
131
+ /**
132
+ * Airborne receiver and multipath contribution model.
133
+ */
134
+ export class AirborneModel {
135
+ static __wrap(ptr) {
136
+ const obj = Object.create(AirborneModel.prototype);
137
+ obj.__wbg_ptr = ptr;
138
+ AirborneModelFinalization.register(obj, obj.__wbg_ptr, obj);
139
+ return obj;
140
+ }
141
+ __destroy_into_raw() {
142
+ const ptr = this.__wbg_ptr;
143
+ this.__wbg_ptr = 0;
144
+ AirborneModelFinalization.unregister(this);
145
+ return ptr;
146
+ }
147
+ free() {
148
+ const ptr = this.__destroy_into_raw();
149
+ wasm.__wbg_airbornemodel_free(ptr, 0);
150
+ }
151
+ /**
152
+ * AAD-A airborne model.
153
+ * @returns {AirborneModel}
154
+ */
155
+ static aadA() {
156
+ const ret = wasm.airbornemodel_aadA();
157
+ return AirborneModel.__wrap(ret);
158
+ }
159
+ /**
160
+ * Default airborne model.
161
+ * @returns {AirborneModel}
162
+ */
163
+ static defaultModel() {
164
+ const ret = wasm.airbornemodel_defaultModel();
165
+ return AirborneModel.__wrap(ret);
166
+ }
167
+ /**
168
+ * Construct an airborne model from a receiver noise term in metres.
169
+ * @param {number} sigma_noise_divergence_m
170
+ */
171
+ constructor(sigma_noise_divergence_m) {
172
+ const ret = wasm.airbornemodel_new(sigma_noise_divergence_m);
173
+ if (ret[2]) {
174
+ throw takeFromExternrefTable0(ret[1]);
175
+ }
176
+ this.__wbg_ptr = ret[0];
177
+ AirborneModelFinalization.register(this, this.__wbg_ptr, this);
178
+ return this;
179
+ }
180
+ /**
181
+ * Airborne receiver, divergence, and multipath sigma, metres, or `null`.
182
+ * @param {number} elevation_rad
183
+ * @returns {any}
184
+ */
185
+ sigmaAirM(elevation_rad) {
186
+ const ret = wasm.airbornemodel_sigmaAirM(this.__wbg_ptr, elevation_rad);
187
+ return ret;
188
+ }
189
+ /**
190
+ * Receiver noise and code-carrier divergence sigma, metres.
191
+ * @returns {number}
192
+ */
193
+ get sigmaNoiseDivergenceM() {
194
+ const ret = wasm.airbornemodel_sigmaNoiseDivergenceM(this.__wbg_ptr);
195
+ return ret;
196
+ }
197
+ }
198
+ if (Symbol.dispose) AirborneModel.prototype[Symbol.dispose] = AirborneModel.prototype.free;
199
+
131
200
  /**
132
201
  * A receiver or satellite ANTEX antenna calibration block.
133
202
  */
@@ -3165,6 +3234,131 @@ export class CoverageGrid {
3165
3234
  }
3166
3235
  if (Symbol.dispose) CoverageGrid.prototype[Symbol.dispose] = CoverageGrid.prototype.free;
3167
3236
 
3237
+ /**
3238
+ * SBAS degradation terms used when deriving an error model from a store.
3239
+ */
3240
+ export class DegradationParams {
3241
+ static __wrap(ptr) {
3242
+ const obj = Object.create(DegradationParams.prototype);
3243
+ obj.__wbg_ptr = ptr;
3244
+ DegradationParamsFinalization.register(obj, obj.__wbg_ptr, obj);
3245
+ return obj;
3246
+ }
3247
+ __destroy_into_raw() {
3248
+ const ptr = this.__wbg_ptr;
3249
+ this.__wbg_ptr = 0;
3250
+ DegradationParamsFinalization.unregister(this);
3251
+ return ptr;
3252
+ }
3253
+ free() {
3254
+ const ptr = this.__destroy_into_raw();
3255
+ wasm.__wbg_degradationparams_free(ptr, 0);
3256
+ }
3257
+ /**
3258
+ * Default degradation parameters.
3259
+ * @returns {DegradationParams}
3260
+ */
3261
+ static defaultParams() {
3262
+ const ret = wasm.degradationparams_defaultParams();
3263
+ return DegradationParams.__wrap(ret);
3264
+ }
3265
+ /**
3266
+ * Variance multiplier applied to the UDRE variance table.
3267
+ * @returns {number}
3268
+ */
3269
+ get deltaUdre() {
3270
+ const ret = wasm.degradationparams_deltaUdre(this.__wbg_ptr);
3271
+ return ret;
3272
+ }
3273
+ /**
3274
+ * En-route degradation term, metres.
3275
+ * @returns {number}
3276
+ */
3277
+ get epsErM() {
3278
+ const ret = wasm.degradationparams_epsErM(this.__wbg_ptr);
3279
+ return ret;
3280
+ }
3281
+ /**
3282
+ * Fast-correction degradation term, metres.
3283
+ * @returns {number}
3284
+ */
3285
+ get epsFcM() {
3286
+ const ret = wasm.degradationparams_epsFcM(this.__wbg_ptr);
3287
+ return ret;
3288
+ }
3289
+ /**
3290
+ * Ionospheric degradation term added to UIRE, metres.
3291
+ * @returns {number}
3292
+ */
3293
+ get epsIonoM() {
3294
+ const ret = wasm.degradationparams_epsIonoM(this.__wbg_ptr);
3295
+ return ret;
3296
+ }
3297
+ /**
3298
+ * Long-term-correction degradation term, metres.
3299
+ * @returns {number}
3300
+ */
3301
+ get epsLtcM() {
3302
+ const ret = wasm.degradationparams_epsLtcM(this.__wbg_ptr);
3303
+ return ret;
3304
+ }
3305
+ /**
3306
+ * Range-rate-correction degradation term, metres.
3307
+ * @returns {number}
3308
+ */
3309
+ get epsRrcM() {
3310
+ const ret = wasm.degradationparams_epsRrcM(this.__wbg_ptr);
3311
+ return ret;
3312
+ }
3313
+ /**
3314
+ * True when all degradation parameters are inside the valid domain.
3315
+ * @returns {boolean}
3316
+ */
3317
+ isValid() {
3318
+ const ret = wasm.degradationparams_isValid(this.__wbg_ptr);
3319
+ return ret !== 0;
3320
+ }
3321
+ /**
3322
+ * Construct SBAS degradation parameters.
3323
+ *
3324
+ * Omitted numeric fields use the no-degradation defaults. Invalid values
3325
+ * throw a `RangeError`.
3326
+ * @param {number | null} [delta_udre]
3327
+ * @param {number | null} [eps_fc_m]
3328
+ * @param {number | null} [eps_rrc_m]
3329
+ * @param {number | null} [eps_ltc_m]
3330
+ * @param {number | null} [eps_er_m]
3331
+ * @param {number | null} [eps_iono_m]
3332
+ * @param {boolean | null} [rss_udre]
3333
+ */
3334
+ constructor(delta_udre, eps_fc_m, eps_rrc_m, eps_ltc_m, eps_er_m, eps_iono_m, rss_udre) {
3335
+ const ret = wasm.degradationparams_new(!isLikeNone(delta_udre), isLikeNone(delta_udre) ? 0 : delta_udre, !isLikeNone(eps_fc_m), isLikeNone(eps_fc_m) ? 0 : eps_fc_m, !isLikeNone(eps_rrc_m), isLikeNone(eps_rrc_m) ? 0 : eps_rrc_m, !isLikeNone(eps_ltc_m), isLikeNone(eps_ltc_m) ? 0 : eps_ltc_m, !isLikeNone(eps_er_m), isLikeNone(eps_er_m) ? 0 : eps_er_m, !isLikeNone(eps_iono_m), isLikeNone(eps_iono_m) ? 0 : eps_iono_m, isLikeNone(rss_udre) ? 0xFFFFFF : rss_udre ? 1 : 0);
3336
+ if (ret[2]) {
3337
+ throw takeFromExternrefTable0(ret[1]);
3338
+ }
3339
+ this.__wbg_ptr = ret[0];
3340
+ DegradationParamsFinalization.register(this, this.__wbg_ptr, this);
3341
+ return this;
3342
+ }
3343
+ /**
3344
+ * No extra degradation and no UDRE inflation.
3345
+ * @returns {DegradationParams}
3346
+ */
3347
+ static none() {
3348
+ const ret = wasm.degradationparams_none();
3349
+ return DegradationParams.__wrap(ret);
3350
+ }
3351
+ /**
3352
+ * Whether UDRE degradation terms are combined by root-sum-square.
3353
+ * @returns {boolean}
3354
+ */
3355
+ get rssUdre() {
3356
+ const ret = wasm.degradationparams_rssUdre(this.__wbg_ptr);
3357
+ return ret !== 0;
3358
+ }
3359
+ }
3360
+ if (Symbol.dispose) DegradationParams.prototype[Symbol.dispose] = DegradationParams.prototype.free;
3361
+
3168
3362
  /**
3169
3363
  * A DGNSS rover solve: the corrected SPP solution plus the base-relative
3170
3364
  * baseline.
@@ -4172,6 +4366,53 @@ export class Ephemeris {
4172
4366
  }
4173
4367
  if (Symbol.dispose) Ephemeris.prototype[Symbol.dispose] = Ephemeris.prototype.free;
4174
4368
 
4369
+ /**
4370
+ * A horizontal one-sigma error ellipse.
4371
+ */
4372
+ export class ErrorEllipse {
4373
+ static __wrap(ptr) {
4374
+ const obj = Object.create(ErrorEllipse.prototype);
4375
+ obj.__wbg_ptr = ptr;
4376
+ ErrorEllipseFinalization.register(obj, obj.__wbg_ptr, obj);
4377
+ return obj;
4378
+ }
4379
+ __destroy_into_raw() {
4380
+ const ptr = this.__wbg_ptr;
4381
+ this.__wbg_ptr = 0;
4382
+ ErrorEllipseFinalization.unregister(this);
4383
+ return ptr;
4384
+ }
4385
+ free() {
4386
+ const ptr = this.__destroy_into_raw();
4387
+ wasm.__wbg_errorellipse_free(ptr, 0);
4388
+ }
4389
+ /**
4390
+ * Semi-major-axis orientation in radians, from east toward north.
4391
+ * @returns {number}
4392
+ */
4393
+ get orientationRad() {
4394
+ const ret = wasm.errorellipse_orientationRad(this.__wbg_ptr);
4395
+ return ret;
4396
+ }
4397
+ /**
4398
+ * Semi-major axis length, metres.
4399
+ * @returns {number}
4400
+ */
4401
+ get semiMajorM() {
4402
+ const ret = wasm.errorellipse_semiMajorM(this.__wbg_ptr);
4403
+ return ret;
4404
+ }
4405
+ /**
4406
+ * Semi-minor axis length, metres.
4407
+ * @returns {number}
4408
+ */
4409
+ get semiMinorM() {
4410
+ const ret = wasm.errorellipse_semiMinorM(this.__wbg_ptr);
4411
+ return ret;
4412
+ }
4413
+ }
4414
+ if (Symbol.dispose) ErrorEllipse.prototype[Symbol.dispose] = ErrorEllipse.prototype.free;
4415
+
4175
4416
  /**
4176
4417
  * A confidence ellipse from a 2x2 covariance block: semi-axes scaled by the
4177
4418
  * two-degree-of-freedom chi-square quantile `-2 ln(1 - confidence)`.
@@ -4745,6 +4986,85 @@ export class GeoidGrid {
4745
4986
  }
4746
4987
  if (Symbol.dispose) GeoidGrid.prototype[Symbol.dispose] = GeoidGrid.prototype.free;
4747
4988
 
4989
+ /**
4990
+ * Geometry observability and covariance-validation diagnostics.
4991
+ */
4992
+ export class GeometryQuality {
4993
+ static __wrap(ptr) {
4994
+ const obj = Object.create(GeometryQuality.prototype);
4995
+ obj.__wbg_ptr = ptr;
4996
+ GeometryQualityFinalization.register(obj, obj.__wbg_ptr, obj);
4997
+ return obj;
4998
+ }
4999
+ __destroy_into_raw() {
5000
+ const ptr = this.__wbg_ptr;
5001
+ this.__wbg_ptr = 0;
5002
+ GeometryQualityFinalization.unregister(this);
5003
+ return ptr;
5004
+ }
5005
+ free() {
5006
+ const ptr = this.__destroy_into_raw();
5007
+ wasm.__wbg_geometryquality_free(ptr, 0);
5008
+ }
5009
+ /**
5010
+ * Singular-value condition number of the design matrix.
5011
+ * @returns {number}
5012
+ */
5013
+ get conditionNumber() {
5014
+ const ret = wasm.geometryquality_conditionNumber(this.__wbg_ptr);
5015
+ return ret;
5016
+ }
5017
+ /**
5018
+ * Whether residuals or a propagated prior validated the covariance bound.
5019
+ * @returns {boolean}
5020
+ */
5021
+ get covarianceValidated() {
5022
+ const ret = wasm.geometryquality_covarianceValidated(this.__wbg_ptr);
5023
+ return ret !== 0;
5024
+ }
5025
+ /**
5026
+ * Geometric dilution of precision for the solved state.
5027
+ * @returns {number}
5028
+ */
5029
+ get gdop() {
5030
+ const ret = wasm.geometryquality_gdop(this.__wbg_ptr);
5031
+ return ret;
5032
+ }
5033
+ /**
5034
+ * Whether residual-based RAIM can test the solve.
5035
+ * @returns {boolean}
5036
+ */
5037
+ get raimCheckable() {
5038
+ const ret = wasm.geometryquality_raimCheckable(this.__wbg_ptr);
5039
+ return ret !== 0;
5040
+ }
5041
+ /**
5042
+ * Rank of the design matrix used by the solve.
5043
+ * @returns {number}
5044
+ */
5045
+ get rank() {
5046
+ const ret = wasm.geometryquality_rank(this.__wbg_ptr);
5047
+ return ret >>> 0;
5048
+ }
5049
+ /**
5050
+ * Observation redundancy, `nObs - nParams`.
5051
+ * @returns {number}
5052
+ */
5053
+ get redundancy() {
5054
+ const ret = wasm.geometryquality_redundancy(this.__wbg_ptr);
5055
+ return ret;
5056
+ }
5057
+ /**
5058
+ * Observability and validation tier.
5059
+ * @returns {ObservabilityTier}
5060
+ */
5061
+ get tier() {
5062
+ const ret = wasm.geometryquality_tier(this.__wbg_ptr);
5063
+ return ret;
5064
+ }
5065
+ }
5066
+ if (Symbol.dispose) GeometryQuality.prototype[Symbol.dispose] = GeometryQuality.prototype.free;
5067
+
4748
5068
  /**
4749
5069
  * One GLONASS broadcast state-vector record. `toeUtcJ2000S` is UTC seconds past
4750
5070
  * J2000; position is PZ-90.11 ECEF metres, velocity m/s, acceleration m/s^2.
@@ -8162,6 +8482,35 @@ export class ObsPhaseShift {
8162
8482
  }
8163
8483
  if (Symbol.dispose) ObsPhaseShift.prototype[Symbol.dispose] = ObsPhaseShift.prototype.free;
8164
8484
 
8485
+ /**
8486
+ * Observability and validation tier for an estimation design.
8487
+ *
8488
+ * `ZeroRedundancy` means the design is full rank but has no residual degrees of
8489
+ * freedom, so snapshot-solve covariance bounds are unvalidated unless a
8490
+ * propagated prior is present. `Weak` means the design exceeded the configured
8491
+ * condition-number or GDOP cutoff; the returned bounds are reported as computed
8492
+ * and are not clamped.
8493
+ * @enum {0 | 1 | 2 | 3}
8494
+ */
8495
+ export const ObservabilityTier = Object.freeze({
8496
+ /**
8497
+ * At least one estimated parameter is not observable.
8498
+ */
8499
+ RankDeficient: 0, "0": "RankDeficient",
8500
+ /**
8501
+ * Full rank with no residual degrees of freedom.
8502
+ */
8503
+ ZeroRedundancy: 1, "1": "ZeroRedundancy",
8504
+ /**
8505
+ * Full rank with residual degrees of freedom, but above a cutoff.
8506
+ */
8507
+ Weak: 2, "2": "Weak",
8508
+ /**
8509
+ * Full rank and within the configured cutoffs.
8510
+ */
8511
+ Nominal: 3, "3": "Nominal",
8512
+ });
8513
+
8165
8514
  /**
8166
8515
  * Optional observation-code allow-list for raw and carrier-phase rows. Build
8167
8516
  * with `new ObservationFilter()` then chain `.withSystem(system, codes)`.
@@ -10529,6 +10878,61 @@ export class ParsedTleFile {
10529
10878
  }
10530
10879
  if (Symbol.dispose) ParsedTleFile.prototype[Symbol.dispose] = ParsedTleFile.prototype.free;
10531
10880
 
10881
+ /**
10882
+ * A percentile circle or sphere radius.
10883
+ */
10884
+ export class PercentileRadius {
10885
+ static __wrap(ptr) {
10886
+ const obj = Object.create(PercentileRadius.prototype);
10887
+ obj.__wbg_ptr = ptr;
10888
+ PercentileRadiusFinalization.register(obj, obj.__wbg_ptr, obj);
10889
+ return obj;
10890
+ }
10891
+ __destroy_into_raw() {
10892
+ const ptr = this.__wbg_ptr;
10893
+ this.__wbg_ptr = 0;
10894
+ PercentileRadiusFinalization.unregister(this);
10895
+ return ptr;
10896
+ }
10897
+ free() {
10898
+ const ptr = this.__destroy_into_raw();
10899
+ wasm.__wbg_percentileradius_free(ptr, 0);
10900
+ }
10901
+ /**
10902
+ * Approximate named radius, metres, when applicable.
10903
+ * @returns {number}
10904
+ */
10905
+ get approxM() {
10906
+ const ret = wasm.percentileradius_approxM(this.__wbg_ptr);
10907
+ return ret;
10908
+ }
10909
+ /**
10910
+ * Whether `approxM` is valid for the covariance ratio.
10911
+ * @returns {boolean}
10912
+ */
10913
+ get approxValid() {
10914
+ const ret = wasm.percentileradius_approxValid(this.__wbg_ptr);
10915
+ return ret !== 0;
10916
+ }
10917
+ /**
10918
+ * Probability mass inside this radius.
10919
+ * @returns {number}
10920
+ */
10921
+ get probability() {
10922
+ const ret = wasm.percentileradius_probability(this.__wbg_ptr);
10923
+ return ret;
10924
+ }
10925
+ /**
10926
+ * Exact circle or sphere radius, metres.
10927
+ * @returns {number}
10928
+ */
10929
+ get radiusM() {
10930
+ const ret = wasm.percentileradius_radiusM(this.__wbg_ptr);
10931
+ return ret;
10932
+ }
10933
+ }
10934
+ if (Symbol.dispose) PercentileRadius.prototype[Symbol.dispose] = PercentileRadius.prototype.free;
10935
+
10532
10936
  /**
10533
10937
  * A long span represented by contiguous independently-fitted reduced-orbit
10534
10938
  * segments. Carries the fitted segments and the time scale they were fitted in;
@@ -10733,34 +11137,180 @@ export class PiecewiseOrbitSourceFit {
10733
11137
  if (Symbol.dispose) PiecewiseOrbitSourceFit.prototype[Symbol.dispose] = PiecewiseOrbitSourceFit.prototype.free;
10734
11138
 
10735
11139
  /**
10736
- * Static integer-fixed PPP solution.
11140
+ * Standard position-error metrics derived from a position covariance.
10737
11141
  */
10738
- export class PppFixedSolution {
11142
+ export class PositionErrorMetrics {
10739
11143
  static __wrap(ptr) {
10740
- const obj = Object.create(PppFixedSolution.prototype);
11144
+ const obj = Object.create(PositionErrorMetrics.prototype);
10741
11145
  obj.__wbg_ptr = ptr;
10742
- PppFixedSolutionFinalization.register(obj, obj.__wbg_ptr, obj);
11146
+ PositionErrorMetricsFinalization.register(obj, obj.__wbg_ptr, obj);
10743
11147
  return obj;
10744
11148
  }
10745
11149
  __destroy_into_raw() {
10746
11150
  const ptr = this.__wbg_ptr;
10747
11151
  this.__wbg_ptr = 0;
10748
- PppFixedSolutionFinalization.unregister(this);
11152
+ PositionErrorMetricsFinalization.unregister(this);
10749
11153
  return ptr;
10750
11154
  }
10751
11155
  free() {
10752
11156
  const ptr = this.__destroy_into_raw();
10753
- wasm.__wbg_pppfixedsolution_free(ptr, 0);
11157
+ wasm.__wbg_positionerrormetrics_free(ptr, 0);
11158
+ }
11159
+ /**
11160
+ * Horizontal 50 percent circle radius.
11161
+ * @returns {PercentileRadius}
11162
+ */
11163
+ get cepM() {
11164
+ const ret = wasm.positionerrormetrics_cepM(this.__wbg_ptr);
11165
+ return PercentileRadius.__wrap(ret);
10754
11166
  }
10755
11167
  /**
11168
+ * Distance root mean square, metres.
10756
11169
  * @returns {number}
10757
11170
  */
10758
- get codeRmsM() {
10759
- const ret = wasm.pppfixedsolution_codeRmsM(this.__wbg_ptr);
11171
+ get drmsM() {
11172
+ const ret = wasm.positionerrormetrics_drmsM(this.__wbg_ptr);
10760
11173
  return ret;
10761
11174
  }
10762
11175
  /**
10763
- * @returns {boolean}
11176
+ * Horizontal one-sigma covariance ellipse.
11177
+ * @returns {ErrorEllipse}
11178
+ */
11179
+ get ellipse() {
11180
+ const ret = wasm.positionerrormetrics_ellipse(this.__wbg_ptr);
11181
+ return ErrorEllipse.__wrap(ret);
11182
+ }
11183
+ /**
11184
+ * Mean radial spherical error, metres.
11185
+ * @returns {number}
11186
+ */
11187
+ get mrseM() {
11188
+ const ret = wasm.positionerrormetrics_mrseM(this.__wbg_ptr);
11189
+ return ret;
11190
+ }
11191
+ /**
11192
+ * Horizontal 95 percent circle radius.
11193
+ * @returns {PercentileRadius}
11194
+ */
11195
+ get r95M() {
11196
+ const ret = wasm.positionerrormetrics_r95M(this.__wbg_ptr);
11197
+ return PercentileRadius.__wrap(ret);
11198
+ }
11199
+ /**
11200
+ * Horizontal 99 percent circle radius.
11201
+ * @returns {PercentileRadius}
11202
+ */
11203
+ get r99M() {
11204
+ const ret = wasm.positionerrormetrics_r99M(this.__wbg_ptr);
11205
+ return PercentileRadius.__wrap(ret);
11206
+ }
11207
+ /**
11208
+ * Three-dimensional 50 percent sphere radius.
11209
+ * @returns {PercentileRadius}
11210
+ */
11211
+ get sepM() {
11212
+ const ret = wasm.positionerrormetrics_sepM(this.__wbg_ptr);
11213
+ return PercentileRadius.__wrap(ret);
11214
+ }
11215
+ /**
11216
+ * East standard deviation, metres.
11217
+ * @returns {number}
11218
+ */
11219
+ get sigmaEM() {
11220
+ const ret = wasm.positionerrormetrics_sigmaEM(this.__wbg_ptr);
11221
+ return ret;
11222
+ }
11223
+ /**
11224
+ * North standard deviation, metres.
11225
+ * @returns {number}
11226
+ */
11227
+ get sigmaNM() {
11228
+ const ret = wasm.positionerrormetrics_sigmaNM(this.__wbg_ptr);
11229
+ return ret;
11230
+ }
11231
+ /**
11232
+ * Up standard deviation, metres.
11233
+ * @returns {number}
11234
+ */
11235
+ get sigmaUM() {
11236
+ const ret = wasm.positionerrormetrics_sigmaUM(this.__wbg_ptr);
11237
+ return ret;
11238
+ }
11239
+ /**
11240
+ * Two times distance root mean square, metres.
11241
+ * @returns {number}
11242
+ */
11243
+ get twoDrmsM() {
11244
+ const ret = wasm.positionerrormetrics_twoDrmsM(this.__wbg_ptr);
11245
+ return ret;
11246
+ }
11247
+ /**
11248
+ * Vertical 50 percent one-dimensional radius, metres.
11249
+ * @returns {number}
11250
+ */
11251
+ get vepM() {
11252
+ const ret = wasm.positionerrormetrics_vepM(this.__wbg_ptr);
11253
+ return ret;
11254
+ }
11255
+ }
11256
+ if (Symbol.dispose) PositionErrorMetrics.prototype[Symbol.dispose] = PositionErrorMetrics.prototype.free;
11257
+
11258
+ /**
11259
+ * IEEE 1139 fractional-frequency PSD power-law noise type.
11260
+ * @enum {0 | 1 | 2 | 3 | 4}
11261
+ */
11262
+ export const PowerLawNoiseType = Object.freeze({
11263
+ /**
11264
+ * Random-walk frequency modulation, `S_y(f) = h_-2 f^-2`.
11265
+ */
11266
+ RandomWalkFM: 0, "0": "RandomWalkFM",
11267
+ /**
11268
+ * Flicker frequency modulation, `S_y(f) = h_-1 f^-1`.
11269
+ */
11270
+ FlickerFM: 1, "1": "FlickerFM",
11271
+ /**
11272
+ * White frequency modulation, `S_y(f) = h_0`.
11273
+ */
11274
+ WhiteFM: 2, "2": "WhiteFM",
11275
+ /**
11276
+ * Flicker phase modulation, `S_y(f) = h_1 f`.
11277
+ */
11278
+ FlickerPM: 3, "3": "FlickerPM",
11279
+ /**
11280
+ * White phase modulation, `S_y(f) = h_2 f^2`.
11281
+ */
11282
+ WhitePM: 4, "4": "WhitePM",
11283
+ });
11284
+
11285
+ /**
11286
+ * Static integer-fixed PPP solution.
11287
+ */
11288
+ export class PppFixedSolution {
11289
+ static __wrap(ptr) {
11290
+ const obj = Object.create(PppFixedSolution.prototype);
11291
+ obj.__wbg_ptr = ptr;
11292
+ PppFixedSolutionFinalization.register(obj, obj.__wbg_ptr, obj);
11293
+ return obj;
11294
+ }
11295
+ __destroy_into_raw() {
11296
+ const ptr = this.__wbg_ptr;
11297
+ this.__wbg_ptr = 0;
11298
+ PppFixedSolutionFinalization.unregister(this);
11299
+ return ptr;
11300
+ }
11301
+ free() {
11302
+ const ptr = this.__destroy_into_raw();
11303
+ wasm.__wbg_pppfixedsolution_free(ptr, 0);
11304
+ }
11305
+ /**
11306
+ * @returns {number}
11307
+ */
11308
+ get codeRmsM() {
11309
+ const ret = wasm.pppfixedsolution_codeRmsM(this.__wbg_ptr);
11310
+ return ret;
11311
+ }
11312
+ /**
11313
+ * @returns {boolean}
10764
11314
  */
10765
11315
  get converged() {
10766
11316
  const ret = wasm.pppfixedsolution_converged(this.__wbg_ptr);
@@ -12420,6 +12970,15 @@ export class RtkFixedSolution {
12420
12970
  wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
12421
12971
  return v1;
12422
12972
  }
12973
+ /**
12974
+ * Geometry observability and covariance-validation diagnostics for the
12975
+ * float design used by the integer-fixed solve.
12976
+ * @returns {GeometryQuality}
12977
+ */
12978
+ get geometryQuality() {
12979
+ const ret = wasm.rtkfixedsolution_geometryQuality(this.__wbg_ptr);
12980
+ return GeometryQuality.__wrap(ret);
12981
+ }
12423
12982
  /**
12424
12983
  * @returns {number}
12425
12984
  */
@@ -12451,6 +13010,24 @@ export class RtkFixedSolution {
12451
13010
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
12452
13011
  }
12453
13012
  }
13013
+ /**
13014
+ * Whether residual-based RAIM can test the float design used by the
13015
+ * integer-fixed solve.
13016
+ * @returns {boolean}
13017
+ */
13018
+ get raimCheckable() {
13019
+ const ret = wasm.rtkfixedsolution_raimCheckable(this.__wbg_ptr);
13020
+ return ret !== 0;
13021
+ }
13022
+ /**
13023
+ * Observation redundancy, `nObs - nParams`, for the float design used by
13024
+ * the integer-fixed solve.
13025
+ * @returns {number}
13026
+ */
13027
+ get redundancy() {
13028
+ const ret = wasm.rtkfixedsolution_redundancy(this.__wbg_ptr);
13029
+ return ret;
13030
+ }
12454
13031
  }
12455
13032
  if (Symbol.dispose) RtkFixedSolution.prototype[Symbol.dispose] = RtkFixedSolution.prototype.free;
12456
13033
 
@@ -12506,6 +13083,17 @@ export class RtkFloatSolution {
12506
13083
  const ret = wasm.rtkfloatsolution_converged(this.__wbg_ptr);
12507
13084
  return ret !== 0;
12508
13085
  }
13086
+ /**
13087
+ * Geometry observability and covariance-validation diagnostics for the
13088
+ * final double-difference design. `ZeroRedundancy` bounds are unvalidated
13089
+ * for snapshot solves, `Weak` bounds are unclamped, and rank-deficient
13090
+ * designs are returned as a singular-geometry `Error`.
13091
+ * @returns {GeometryQuality}
13092
+ */
13093
+ get geometryQuality() {
13094
+ const ret = wasm.rtkfloatsolution_geometryQuality(this.__wbg_ptr);
13095
+ return GeometryQuality.__wrap(ret);
13096
+ }
12509
13097
  /**
12510
13098
  * @returns {number}
12511
13099
  */
@@ -12527,6 +13115,22 @@ export class RtkFloatSolution {
12527
13115
  const ret = wasm.rtkfloatsolution_phaseRmsM(this.__wbg_ptr);
12528
13116
  return ret;
12529
13117
  }
13118
+ /**
13119
+ * Whether residual-based RAIM can test the float design.
13120
+ * @returns {boolean}
13121
+ */
13122
+ get raimCheckable() {
13123
+ const ret = wasm.rtkfloatsolution_raimCheckable(this.__wbg_ptr);
13124
+ return ret !== 0;
13125
+ }
13126
+ /**
13127
+ * Observation redundancy, `nObs - nParams`, for the float design.
13128
+ * @returns {number}
13129
+ */
13130
+ get redundancy() {
13131
+ const ret = wasm.rtkfloatsolution_redundancy(this.__wbg_ptr);
13132
+ return ret;
13133
+ }
12530
13134
  /**
12531
13135
  * @returns {number}
12532
13136
  */
@@ -12832,6 +13436,391 @@ export class SbasCorrectionStore {
12832
13436
  }
12833
13437
  if (Symbol.dispose) SbasCorrectionStore.prototype[Symbol.dispose] = SbasCorrectionStore.prototype.free;
12834
13438
 
13439
+ /**
13440
+ * Index-aligned SBAS error model for protection-level geometry rows.
13441
+ */
13442
+ export class SbasErrorModel {
13443
+ static __wrap(ptr) {
13444
+ const obj = Object.create(SbasErrorModel.prototype);
13445
+ obj.__wbg_ptr = ptr;
13446
+ SbasErrorModelFinalization.register(obj, obj.__wbg_ptr, obj);
13447
+ return obj;
13448
+ }
13449
+ __destroy_into_raw() {
13450
+ const ptr = this.__wbg_ptr;
13451
+ this.__wbg_ptr = 0;
13452
+ SbasErrorModelFinalization.unregister(this);
13453
+ return ptr;
13454
+ }
13455
+ free() {
13456
+ const ptr = this.__destroy_into_raw();
13457
+ wasm.__wbg_sbaserrormodel_free(ptr, 0);
13458
+ }
13459
+ /**
13460
+ * Build an SBAS error model from a decoded correction store.
13461
+ *
13462
+ * `geo` is an SBAS satellite token, `geometry` is protection geometry, and
13463
+ * `epochJ2000S` is the receive epoch used for freshness checks. Omit
13464
+ * `airborne` or `degradation` to use their defaults.
13465
+ * @param {SbasCorrectionStore} store
13466
+ * @param {string} geo
13467
+ * @param {any} geometry
13468
+ * @param {AirborneModel | null | undefined} airborne
13469
+ * @param {number} epoch_j2000_s
13470
+ * @param {DegradationParams | null} [degradation]
13471
+ * @returns {SbasErrorModel}
13472
+ */
13473
+ static fromStore(store, geo, geometry, airborne, epoch_j2000_s, degradation) {
13474
+ _assertClass(store, SbasCorrectionStore);
13475
+ const ptr0 = passStringToWasm0(geo, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
13476
+ const len0 = WASM_VECTOR_LEN;
13477
+ let ptr1 = 0;
13478
+ if (!isLikeNone(airborne)) {
13479
+ _assertClass(airborne, AirborneModel);
13480
+ ptr1 = airborne.__destroy_into_raw();
13481
+ }
13482
+ let ptr2 = 0;
13483
+ if (!isLikeNone(degradation)) {
13484
+ _assertClass(degradation, DegradationParams);
13485
+ ptr2 = degradation.__destroy_into_raw();
13486
+ }
13487
+ const ret = wasm.sbaserrormodel_fromStore(store.__wbg_ptr, ptr0, len0, geometry, ptr1, epoch_j2000_s, ptr2);
13488
+ if (ret[2]) {
13489
+ throw takeFromExternrefTable0(ret[1]);
13490
+ }
13491
+ return SbasErrorModel.__wrap(ret[0]);
13492
+ }
13493
+ /**
13494
+ * Construct an SBAS error model from rows.
13495
+ *
13496
+ * `rows` is an array of `{ id, sigmaFltM, sigmaUireM?, sigmaAirM?,
13497
+ * sigmaTropoM? }` objects. As a shorthand, a row may provide only
13498
+ * `{ id, sigmaM }`, which is stored as the total one-sigma range term.
13499
+ * @param {any} rows
13500
+ */
13501
+ constructor(rows) {
13502
+ const ret = wasm.sbaserrormodel_new(rows);
13503
+ if (ret[2]) {
13504
+ throw takeFromExternrefTable0(ret[1]);
13505
+ }
13506
+ this.__wbg_ptr = ret[0];
13507
+ SbasErrorModelFinalization.register(this, this.__wbg_ptr, this);
13508
+ return this;
13509
+ }
13510
+ /**
13511
+ * Number of range-error rows in the model.
13512
+ * @returns {number}
13513
+ */
13514
+ get rowCount() {
13515
+ const ret = wasm.sbaserrormodel_rowCount(this.__wbg_ptr);
13516
+ return ret >>> 0;
13517
+ }
13518
+ /**
13519
+ * Return the row for a satellite token, or `undefined` if it is absent.
13520
+ * @param {string} id
13521
+ * @returns {SbasSisError | undefined}
13522
+ */
13523
+ rowFor(id) {
13524
+ const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
13525
+ const len0 = WASM_VECTOR_LEN;
13526
+ const ret = wasm.sbaserrormodel_rowFor(this.__wbg_ptr, ptr0, len0);
13527
+ if (ret[2]) {
13528
+ throw takeFromExternrefTable0(ret[1]);
13529
+ }
13530
+ return ret[0] === 0 ? undefined : SbasSisError.__wrap(ret[0]);
13531
+ }
13532
+ /**
13533
+ * Error-model rows as plain objects.
13534
+ * @returns {any}
13535
+ */
13536
+ get rows() {
13537
+ const ret = wasm.sbaserrormodel_rows(this.__wbg_ptr);
13538
+ if (ret[2]) {
13539
+ throw takeFromExternrefTable0(ret[1]);
13540
+ }
13541
+ return takeFromExternrefTable0(ret[0]);
13542
+ }
13543
+ }
13544
+ if (Symbol.dispose) SbasErrorModel.prototype[Symbol.dispose] = SbasErrorModel.prototype.free;
13545
+
13546
+ /**
13547
+ * Fixed SBAS protection-level multipliers.
13548
+ */
13549
+ export class SbasKMultipliers {
13550
+ static __wrap(ptr) {
13551
+ const obj = Object.create(SbasKMultipliers.prototype);
13552
+ obj.__wbg_ptr = ptr;
13553
+ SbasKMultipliersFinalization.register(obj, obj.__wbg_ptr, obj);
13554
+ return obj;
13555
+ }
13556
+ __destroy_into_raw() {
13557
+ const ptr = this.__wbg_ptr;
13558
+ this.__wbg_ptr = 0;
13559
+ SbasKMultipliersFinalization.unregister(this);
13560
+ return ptr;
13561
+ }
13562
+ free() {
13563
+ const ptr = this.__destroy_into_raw();
13564
+ wasm.__wbg_sbaskmultipliers_free(ptr, 0);
13565
+ }
13566
+ /**
13567
+ * En-route through non-precision-approach SBAS K multipliers.
13568
+ * @returns {SbasKMultipliers}
13569
+ */
13570
+ static enRouteNpa() {
13571
+ const ret = wasm.sbaskmultipliers_enRouteNpa();
13572
+ return SbasKMultipliers.__wrap(ret);
13573
+ }
13574
+ /**
13575
+ * Horizontal K multiplier.
13576
+ * @returns {number}
13577
+ */
13578
+ get kH() {
13579
+ const ret = wasm.sbaskmultipliers_kH(this.__wbg_ptr);
13580
+ return ret;
13581
+ }
13582
+ /**
13583
+ * Vertical K multiplier.
13584
+ * @returns {number}
13585
+ */
13586
+ get kV() {
13587
+ const ret = wasm.sbaskmultipliers_kV(this.__wbg_ptr);
13588
+ return ret;
13589
+ }
13590
+ /**
13591
+ * Construct SBAS horizontal and vertical K multipliers.
13592
+ *
13593
+ * Both values must be positive finite numbers.
13594
+ * @param {number} k_h
13595
+ * @param {number} k_v
13596
+ */
13597
+ constructor(k_h, k_v) {
13598
+ const ret = wasm.sbaskmultipliers_new(k_h, k_v);
13599
+ if (ret[2]) {
13600
+ throw takeFromExternrefTable0(ret[1]);
13601
+ }
13602
+ this.__wbg_ptr = ret[0];
13603
+ SbasKMultipliersFinalization.register(this, this.__wbg_ptr, this);
13604
+ return this;
13605
+ }
13606
+ /**
13607
+ * Precision-approach SBAS K multipliers.
13608
+ * @returns {SbasKMultipliers}
13609
+ */
13610
+ static precisionApproach() {
13611
+ const ret = wasm.sbaskmultipliers_precisionApproach();
13612
+ return SbasKMultipliers.__wrap(ret);
13613
+ }
13614
+ }
13615
+ if (Symbol.dispose) SbasKMultipliers.prototype[Symbol.dispose] = SbasKMultipliers.prototype.free;
13616
+
13617
+ /**
13618
+ * SBAS protection-level input or numerical failure.
13619
+ * @enum {0 | 1 | 2}
13620
+ */
13621
+ export const SbasPlError = Object.freeze({
13622
+ /**
13623
+ * The geometry lacks enough independent rows for the active clocks.
13624
+ */
13625
+ InsufficientGeometry: 0, "0": "InsufficientGeometry",
13626
+ /**
13627
+ * Matrix projection or covariance processing failed.
13628
+ */
13629
+ NumericalFailure: 1, "1": "NumericalFailure",
13630
+ /**
13631
+ * The supplied error model or K multipliers are outside their domain.
13632
+ */
13633
+ InvalidErrorModel: 2, "2": "InvalidErrorModel",
13634
+ });
13635
+
13636
+ /**
13637
+ * SBAS protection-level output for one geometry snapshot.
13638
+ */
13639
+ export class SbasProtection {
13640
+ static __wrap(ptr) {
13641
+ const obj = Object.create(SbasProtection.prototype);
13642
+ obj.__wbg_ptr = ptr;
13643
+ SbasProtectionFinalization.register(obj, obj.__wbg_ptr, obj);
13644
+ return obj;
13645
+ }
13646
+ __destroy_into_raw() {
13647
+ const ptr = this.__wbg_ptr;
13648
+ this.__wbg_ptr = 0;
13649
+ SbasProtectionFinalization.unregister(this);
13650
+ return ptr;
13651
+ }
13652
+ free() {
13653
+ const ptr = this.__destroy_into_raw();
13654
+ wasm.__wbg_sbasprotection_free(ptr, 0);
13655
+ }
13656
+ /**
13657
+ * East one-sigma standard deviation, metres.
13658
+ * @returns {number}
13659
+ */
13660
+ get dEastM() {
13661
+ const ret = wasm.sbasprotection_dEastM(this.__wbg_ptr);
13662
+ return ret;
13663
+ }
13664
+ /**
13665
+ * East-north covariance term, square metres.
13666
+ * @returns {number}
13667
+ */
13668
+ get dEnM2() {
13669
+ const ret = wasm.sbasprotection_dEnM2(this.__wbg_ptr);
13670
+ return ret;
13671
+ }
13672
+ /**
13673
+ * Horizontal one-sigma semi-major axis, metres.
13674
+ * @returns {number}
13675
+ */
13676
+ get dMajorM() {
13677
+ const ret = wasm.sbasprotection_dMajorM(this.__wbg_ptr);
13678
+ return ret;
13679
+ }
13680
+ /**
13681
+ * North one-sigma standard deviation, metres.
13682
+ * @returns {number}
13683
+ */
13684
+ get dNorthM() {
13685
+ const ret = wasm.sbasprotection_dNorthM(this.__wbg_ptr);
13686
+ return ret;
13687
+ }
13688
+ /**
13689
+ * Horizontal protection level, metres.
13690
+ * @returns {number}
13691
+ */
13692
+ get hplM() {
13693
+ const ret = wasm.sbasprotection_hplM(this.__wbg_ptr);
13694
+ return ret;
13695
+ }
13696
+ /**
13697
+ * Vertical one-sigma standard deviation, metres.
13698
+ * @returns {number}
13699
+ */
13700
+ get sigmaUM() {
13701
+ const ret = wasm.sbasprotection_sigmaUM(this.__wbg_ptr);
13702
+ return ret;
13703
+ }
13704
+ /**
13705
+ * Vertical protection level, metres.
13706
+ * @returns {number}
13707
+ */
13708
+ get vplM() {
13709
+ const ret = wasm.sbasprotection_vplM(this.__wbg_ptr);
13710
+ return ret;
13711
+ }
13712
+ }
13713
+ if (Symbol.dispose) SbasProtection.prototype[Symbol.dispose] = SbasProtection.prototype.free;
13714
+
13715
+ /**
13716
+ * One satellite's SBAS one-sigma range-error budget.
13717
+ */
13718
+ export class SbasSisError {
13719
+ static __wrap(ptr) {
13720
+ const obj = Object.create(SbasSisError.prototype);
13721
+ obj.__wbg_ptr = ptr;
13722
+ SbasSisErrorFinalization.register(obj, obj.__wbg_ptr, obj);
13723
+ return obj;
13724
+ }
13725
+ __destroy_into_raw() {
13726
+ const ptr = this.__wbg_ptr;
13727
+ this.__wbg_ptr = 0;
13728
+ SbasSisErrorFinalization.unregister(this);
13729
+ return ptr;
13730
+ }
13731
+ free() {
13732
+ const ptr = this.__destroy_into_raw();
13733
+ wasm.__wbg_sbassiserror_free(ptr, 0);
13734
+ }
13735
+ /**
13736
+ * Satellite token for this range-error row.
13737
+ * @returns {string}
13738
+ */
13739
+ get id() {
13740
+ let deferred1_0;
13741
+ let deferred1_1;
13742
+ try {
13743
+ const ret = wasm.sbassiserror_id(this.__wbg_ptr);
13744
+ deferred1_0 = ret[0];
13745
+ deferred1_1 = ret[1];
13746
+ return getStringFromWasm0(ret[0], ret[1]);
13747
+ } finally {
13748
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
13749
+ }
13750
+ }
13751
+ /**
13752
+ * Construct one SBAS range-error row.
13753
+ *
13754
+ * Component sigmas are metres. They are combined by root-sum-square when
13755
+ * the model is evaluated.
13756
+ * @param {string} id
13757
+ * @param {number} sigma_flt_m
13758
+ * @param {number} sigma_uire_m
13759
+ * @param {number} sigma_air_m
13760
+ * @param {number} sigma_tropo_m
13761
+ */
13762
+ constructor(id, sigma_flt_m, sigma_uire_m, sigma_air_m, sigma_tropo_m) {
13763
+ const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
13764
+ const len0 = WASM_VECTOR_LEN;
13765
+ const ret = wasm.sbassiserror_new(ptr0, len0, sigma_flt_m, sigma_uire_m, sigma_air_m, sigma_tropo_m);
13766
+ if (ret[2]) {
13767
+ throw takeFromExternrefTable0(ret[1]);
13768
+ }
13769
+ this.__wbg_ptr = ret[0];
13770
+ SbasSisErrorFinalization.register(this, this.__wbg_ptr, this);
13771
+ return this;
13772
+ }
13773
+ /**
13774
+ * Airborne receiver noise, divergence, and multipath sigma, metres.
13775
+ * @returns {number}
13776
+ */
13777
+ get sigmaAirM() {
13778
+ const ret = wasm.sbassiserror_sigmaAirM(this.__wbg_ptr);
13779
+ return ret;
13780
+ }
13781
+ /**
13782
+ * Fast and long-term correction residual sigma, metres.
13783
+ * @returns {number}
13784
+ */
13785
+ get sigmaFltM() {
13786
+ const ret = wasm.sbassiserror_sigmaFltM(this.__wbg_ptr);
13787
+ return ret;
13788
+ }
13789
+ /**
13790
+ * Total one-sigma range error, metres, or `null` if invalid.
13791
+ * @returns {any}
13792
+ */
13793
+ sigmaM() {
13794
+ const ret = wasm.sbassiserror_sigmaM(this.__wbg_ptr);
13795
+ return ret;
13796
+ }
13797
+ /**
13798
+ * Tropospheric residual sigma, metres.
13799
+ * @returns {number}
13800
+ */
13801
+ get sigmaTropoM() {
13802
+ const ret = wasm.sbassiserror_sigmaTropoM(this.__wbg_ptr);
13803
+ return ret;
13804
+ }
13805
+ /**
13806
+ * User ionospheric range-error sigma, metres.
13807
+ * @returns {number}
13808
+ */
13809
+ get sigmaUireM() {
13810
+ const ret = wasm.sbassiserror_sigmaUireM(this.__wbg_ptr);
13811
+ return ret;
13812
+ }
13813
+ /**
13814
+ * Sum-of-squares range variance, square metres, or `null` if invalid.
13815
+ * @returns {any}
13816
+ */
13817
+ varianceM2() {
13818
+ const ret = wasm.sbassiserror_varianceM2(this.__wbg_ptr);
13819
+ return ret;
13820
+ }
13821
+ }
13822
+ if (Symbol.dispose) SbasSisError.prototype[Symbol.dispose] = SbasSisError.prototype.free;
13823
+
12835
13824
  /**
12836
13825
  * Per-constellation single-frequency pseudorange code-selection policy. Build
12837
13826
  * with `new SignalPolicy()` then chain `.withSystem(system, codes)`, or use
@@ -14554,6 +15543,17 @@ export class SppSolution {
14554
15543
  }
14555
15544
  return v1;
14556
15545
  }
15546
+ /**
15547
+ * Geometry observability and covariance-validation diagnostics for this
15548
+ * solved design. `ZeroRedundancy` marks unvalidated snapshot covariance
15549
+ * bounds, `Weak` leaves large bounds unclamped, and rank-deficient designs
15550
+ * are returned as a singular-geometry `Error` rather than a solution.
15551
+ * @returns {GeometryQuality}
15552
+ */
15553
+ get geometryQuality() {
15554
+ const ret = wasm.sppsolution_geometryQuality(this.__wbg_ptr);
15555
+ return GeometryQuality.__wrap(ret);
15556
+ }
14557
15557
  /**
14558
15558
  * ECEF position as a `Float64Array` `[x, y, z]`, metres.
14559
15559
  * @returns {Float64Array}
@@ -14564,6 +15564,22 @@ export class SppSolution {
14564
15564
  wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
14565
15565
  return v1;
14566
15566
  }
15567
+ /**
15568
+ * Whether residual-based RAIM can test the accepted solve.
15569
+ * @returns {boolean}
15570
+ */
15571
+ get raimCheckable() {
15572
+ const ret = wasm.sppsolution_raimCheckable(this.__wbg_ptr);
15573
+ return ret !== 0;
15574
+ }
15575
+ /**
15576
+ * Degrees of freedom in the accepted solve: `usedCount - (3 + clocks)`.
15577
+ * @returns {number}
15578
+ */
15579
+ get redundancy() {
15580
+ const ret = wasm.sppsolution_redundancy(this.__wbg_ptr);
15581
+ return ret;
15582
+ }
14567
15583
  /**
14568
15584
  * Post-fit residuals, metres, index-aligned to `usedSats`.
14569
15585
  * @returns {Float64Array}
@@ -15356,6 +16372,9 @@ export class Tle {
15356
16372
  */
15357
16373
  toLines() {
15358
16374
  const ret = wasm.tle_toLines(this.__wbg_ptr);
16375
+ if (ret[3]) {
16376
+ throw takeFromExternrefTable0(ret[2]);
16377
+ }
15359
16378
  var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
15360
16379
  wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
15361
16380
  return v1;
@@ -15998,6 +17017,26 @@ export function allanDeviation(series, tau0_s, averaging_factors) {
15998
17017
  return takeFromExternrefTable0(ret[0]);
15999
17018
  }
16000
17019
 
17020
+ /**
17021
+ * Exact ADEV log-log slope for a power-law noise type.
17022
+ * @param {PowerLawNoiseType} noise_type
17023
+ * @returns {number}
17024
+ */
17025
+ export function allanDeviationPowerLawSlope(noise_type) {
17026
+ const ret = wasm.allanDeviationPowerLawSlope(noise_type);
17027
+ return ret;
17028
+ }
17029
+
17030
+ /**
17031
+ * Exact Allan-variance tau exponent for a power-law noise type.
17032
+ * @param {PowerLawNoiseType} noise_type
17033
+ * @returns {number}
17034
+ */
17035
+ export function allanVariancePowerLawTauExponent(noise_type) {
17036
+ const ret = wasm.allanVariancePowerLawTauExponent(noise_type);
17037
+ return ret;
17038
+ }
17039
+
16001
17040
  /**
16002
17041
  * Alpha-beta measurement update applied to a predicted scalar state.
16003
17042
  *
@@ -16914,6 +17953,23 @@ export function detectCycleSlips(arc, options) {
16914
17953
  return v1;
16915
17954
  }
16916
17955
 
17956
+ /**
17957
+ * Detect candidate displacement steps in a station position series.
17958
+ *
17959
+ * `options` may set `windowYears`, `scoreThreshold`, `minOffsetM`,
17960
+ * `minSamplesEachSide`, `minSeparationYears`, and nested `midas` controls.
17961
+ * @param {any} series
17962
+ * @param {any} options
17963
+ * @returns {any}
17964
+ */
17965
+ export function detectSteps(series, options) {
17966
+ const ret = wasm.detectSteps(series, options);
17967
+ if (ret[2]) {
17968
+ throw takeFromExternrefTable0(ret[1]);
17969
+ }
17970
+ return takeFromExternrefTable0(ret[0]);
17971
+ }
17972
+
16917
17973
  /**
16918
17974
  * Apply base pseudorange corrections to rover observations by satellite token.
16919
17975
  *
@@ -17714,6 +18770,47 @@ export function fitPiecewiseReducedOrbitTle(tle, options) {
17714
18770
  return PiecewiseOrbitSourceFit.__wrap(ret[0]);
17715
18771
  }
17716
18772
 
18773
+ /**
18774
+ * Identify power-law clock-noise regions from ADEV and MDEV curves.
18775
+ *
18776
+ * `adev` and `mdev` are `{ tauS, deviation, n }` objects, matching the output
18777
+ * from the Allan-family functions. `options` may set `basicTauS`,
18778
+ * `measurementBandwidthHz`, `minPointsPerOctave`, `slopeTolerance`, and
18779
+ * `scatterTolerance`.
18780
+ * @param {any} adev
18781
+ * @param {any} mdev
18782
+ * @param {any} options
18783
+ * @returns {any}
18784
+ */
18785
+ export function fitPowerLawNoise(adev, mdev, options) {
18786
+ const ret = wasm.fitPowerLawNoise(adev, mdev, options);
18787
+ if (ret[2]) {
18788
+ throw takeFromExternrefTable0(ret[1]);
18789
+ }
18790
+ return takeFromExternrefTable0(ret[0]);
18791
+ }
18792
+
18793
+ /**
18794
+ * Fit one satellite orbit from caller-supplied precise ephemeris samples.
18795
+ *
18796
+ * `samples` is the same array accepted by `preciseEphemerisSamplesFromSamples`:
18797
+ * `{ sat, epoch, positionEcefM, clockS?, clockEvent? }` with epochs in seconds
18798
+ * since J2000.
18799
+ * @param {any} samples
18800
+ * @param {string} satellite
18801
+ * @param {any} options
18802
+ * @returns {any}
18803
+ */
18804
+ export function fitPreciseEphemerisSampleOrbit(samples, satellite, options) {
18805
+ const ptr0 = passStringToWasm0(satellite, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
18806
+ const len0 = WASM_VECTOR_LEN;
18807
+ const ret = wasm.fitPreciseEphemerisSampleOrbit(samples, ptr0, len0, options);
18808
+ if (ret[2]) {
18809
+ throw takeFromExternrefTable0(ret[1]);
18810
+ }
18811
+ return takeFromExternrefTable0(ret[0]);
18812
+ }
18813
+
17717
18814
  /**
17718
18815
  * Fit a reduced-orbit model to ECEF position samples.
17719
18816
  *
@@ -17775,6 +18872,28 @@ export function fitReducedOrbitTle(tle, options) {
17775
18872
  return ReducedOrbitSourceFit.__wrap(ret[0]);
17776
18873
  }
17777
18874
 
18875
+ /**
18876
+ * Fit one satellite orbit from a parsed SP3 precise product.
18877
+ *
18878
+ * `satellite` is an IGS token such as `"G01"`. `options` may set
18879
+ * `forceModel`, `integrator`, `integratorOptions`, `solverOptions`,
18880
+ * `linearSolve`, `minLedgerSamples`, and `drag`.
18881
+ * @param {Sp3} sp3
18882
+ * @param {string} satellite
18883
+ * @param {any} options
18884
+ * @returns {any}
18885
+ */
18886
+ export function fitSp3PreciseOrbit(sp3, satellite, options) {
18887
+ _assertClass(sp3, Sp3);
18888
+ const ptr0 = passStringToWasm0(satellite, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
18889
+ const len0 = WASM_VECTOR_LEN;
18890
+ const ret = wasm.fitSp3PreciseOrbit(sp3.__wbg_ptr, ptr0, len0, options);
18891
+ if (ret[2]) {
18892
+ throw takeFromExternrefTable0(ret[1]);
18893
+ }
18894
+ return takeFromExternrefTable0(ret[0]);
18895
+ }
18896
+
17778
18897
  /**
17779
18898
  * Fit SGP4 mean elements and optional B* to TEME state samples.
17780
18899
  * @param {any} samples
@@ -17789,6 +18908,25 @@ export function fitTle(samples, config) {
17789
18908
  return TleFit.__wrap(ret[0]);
17790
18909
  }
17791
18910
 
18911
+ /**
18912
+ * Fit a geodetic trajectory model with velocity, seasonal, and step terms.
18913
+ *
18914
+ * `model` may set `referenceEpochYear`, `includeAnnual`,
18915
+ * `includeSemiannual`, and `offsetEpochsYear`. `options` may set `loss`,
18916
+ * `fScaleM`, and `maxNfev`.
18917
+ * @param {any} series
18918
+ * @param {any} model
18919
+ * @param {any} options
18920
+ * @returns {any}
18921
+ */
18922
+ export function fitTrajectory(series, model, options) {
18923
+ const ret = wasm.fitTrajectory(series, model, options);
18924
+ if (ret[2]) {
18925
+ throw takeFromExternrefTable0(ret[1]);
18926
+ }
18927
+ return takeFromExternrefTable0(ret[0]);
18928
+ }
18929
+
17792
18930
  /**
17793
18931
  * Fix Melbourne-Wubbena wide-lane ambiguities over a dual-frequency RTK arc.
17794
18932
  *
@@ -19495,6 +20633,51 @@ export function meridianTransitsSpk(spk, body, station, start_unix_us, end_unix_
19495
20633
  return takeFromExternrefTable0(ret[0]);
19496
20634
  }
19497
20635
 
20636
+ /**
20637
+ * Rotate an ECEF covariance to ENU and compute position-error metrics.
20638
+ *
20639
+ * `receiver` is `{ latRad, lonRad, heightM? }` with radians and metres.
20640
+ * @param {any} covariance_ecef_m2
20641
+ * @param {any} receiver
20642
+ * @returns {PositionErrorMetrics}
20643
+ */
20644
+ export function metricsFromEcefCovarianceM2(covariance_ecef_m2, receiver) {
20645
+ const ret = wasm.metricsFromEcefCovarianceM2(covariance_ecef_m2, receiver);
20646
+ if (ret[2]) {
20647
+ throw takeFromExternrefTable0(ret[1]);
20648
+ }
20649
+ return PositionErrorMetrics.__wrap(ret[0]);
20650
+ }
20651
+
20652
+ /**
20653
+ * Compute position-error metrics from an ENU covariance in square metres.
20654
+ * @param {any} covariance_enu_m2
20655
+ * @returns {PositionErrorMetrics}
20656
+ */
20657
+ export function metricsFromEnuCovarianceM2(covariance_enu_m2) {
20658
+ const ret = wasm.metricsFromEnuCovarianceM2(covariance_enu_m2);
20659
+ if (ret[2]) {
20660
+ throw takeFromExternrefTable0(ret[1]);
20661
+ }
20662
+ return PositionErrorMetrics.__wrap(ret[0]);
20663
+ }
20664
+
20665
+ /**
20666
+ * Compute position-error metrics from a kinematic solution object.
20667
+ *
20668
+ * The object must include `positionM` and `positionCovarianceM2`; optional
20669
+ * extra kinematic fields are accepted and ignored by this metric calculation.
20670
+ * @param {any} solution
20671
+ * @returns {PositionErrorMetrics}
20672
+ */
20673
+ export function metricsFromKinematicSolution(solution) {
20674
+ const ret = wasm.metricsFromKinematicSolution(solution);
20675
+ if (ret[2]) {
20676
+ throw takeFromExternrefTable0(ret[1]);
20677
+ }
20678
+ return PositionErrorMetrics.__wrap(ret[0]);
20679
+ }
20680
+
19498
20681
  /**
19499
20682
  * Modified Allan deviation for explicit averaging factors.
19500
20683
  *
@@ -19514,6 +20697,16 @@ export function modifiedAdev(series, tau0_s, averaging_factors) {
19514
20697
  return takeFromExternrefTable0(ret[0]);
19515
20698
  }
19516
20699
 
20700
+ /**
20701
+ * Exact MDEV log-log slope for a power-law noise type.
20702
+ * @param {PowerLawNoiseType} noise_type
20703
+ * @returns {number}
20704
+ */
20705
+ export function modifiedAllanDeviationPowerLawSlope(noise_type) {
20706
+ const ret = wasm.modifiedAllanDeviationPowerLawSlope(noise_type);
20707
+ return ret;
20708
+ }
20709
+
19517
20710
  /**
19518
20711
  * Mean, variance, skewness, and excess kurtosis of a residual set in one pass.
19519
20712
  *
@@ -19725,6 +20918,23 @@ export function nequickGStecTecu(_eval) {
19725
20918
  return ret[0];
19726
20919
  }
19727
20920
 
20921
+ /**
20922
+ * Estimate a station network velocity field in one local ENU frame.
20923
+ *
20924
+ * The input is `{ frame: { origin, removeCommonMode? }, stations }`. Each
20925
+ * station has `{ id, reference, series }`, and each series follows
20926
+ * `velocityMidas`.
20927
+ * @param {any} input
20928
+ * @returns {any}
20929
+ */
20930
+ export function networkField(input) {
20931
+ const ret = wasm.networkField(input);
20932
+ if (ret[2]) {
20933
+ throw takeFromExternrefTable0(ret[1]);
20934
+ }
20935
+ return takeFromExternrefTable0(ret[0]);
20936
+ }
20937
+
19728
20938
  /**
19729
20939
  * Scalar normalized innovation squared statistic.
19730
20940
  * @param {number} innovation
@@ -19896,6 +21106,24 @@ export function ntripRequestBytes(config) {
19896
21106
  return v1;
19897
21107
  }
19898
21108
 
21109
+ /**
21110
+ * Stable string label for an [`ObservabilityTier`] enum value.
21111
+ * @param {ObservabilityTier} tier
21112
+ * @returns {string}
21113
+ */
21114
+ export function observabilityTierLabel(tier) {
21115
+ let deferred1_0;
21116
+ let deferred1_1;
21117
+ try {
21118
+ const ret = wasm.observabilityTierLabel(tier);
21119
+ deferred1_0 = ret[0];
21120
+ deferred1_1 = ret[1];
21121
+ return getStringFromWasm0(ret[0], ret[1]);
21122
+ } finally {
21123
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
21124
+ }
21125
+ }
21126
+
19899
21127
  /**
19900
21128
  * Missing-position sentinel used in failed observable-state batch elements.
19901
21129
  *
@@ -20085,6 +21313,27 @@ export function oceanTideLoading(station_ecef_m, year, month, day, fractional_ho
20085
21313
  return v4;
20086
21314
  }
20087
21315
 
21316
+ /**
21317
+ * Broadcast-derived per-satellite orbit-repeat lag, in seconds.
21318
+ *
21319
+ * `satellite` is an IGS token such as `"G01"`, and `nearEpochJ2000S` is the
21320
+ * broadcast-selection epoch in seconds since J2000.
21321
+ * @param {BroadcastEphemeris} ephemeris
21322
+ * @param {string} satellite
21323
+ * @param {number} near_epoch_j2000_s
21324
+ * @returns {number}
21325
+ */
21326
+ export function orbitRepeatLag(ephemeris, satellite, near_epoch_j2000_s) {
21327
+ _assertClass(ephemeris, BroadcastEphemeris);
21328
+ const ptr0 = passStringToWasm0(satellite, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
21329
+ const len0 = WASM_VECTOR_LEN;
21330
+ const ret = wasm.orbitRepeatLag(ephemeris.__wbg_ptr, ptr0, len0, near_epoch_j2000_s);
21331
+ if (ret[2]) {
21332
+ throw takeFromExternrefTable0(ret[1]);
21333
+ }
21334
+ return ret[0];
21335
+ }
21336
+
20088
21337
  /**
20089
21338
  * Orthometric height `H = h - N` (metres above mean sea level) from an
20090
21339
  * ellipsoidal height and a geodetic position in radians, using the built-in
@@ -20518,6 +21767,24 @@ export function parseTleFile(text, ops_mode_label) {
20518
21767
  return ParsedTleFile.__wrap(ret[0]);
20519
21768
  }
20520
21769
 
21770
+ /**
21771
+ * Score repeating components at candidate periods.
21772
+ *
21773
+ * `series` and `candidatePeriodsS` are JS number arrays. `sampleIntervalS`
21774
+ * defaults to one second. The result is an array of `{ periodS, strength }`.
21775
+ * @param {any} series
21776
+ * @param {any} candidate_periods_s
21777
+ * @param {number | null} [sample_interval_s]
21778
+ * @returns {any}
21779
+ */
21780
+ export function periodicityStrength(series, candidate_periods_s, sample_interval_s) {
21781
+ const ret = wasm.periodicityStrength(series, candidate_periods_s, !isLikeNone(sample_interval_s), isLikeNone(sample_interval_s) ? 0 : sample_interval_s);
21782
+ if (ret[2]) {
21783
+ throw takeFromExternrefTable0(ret[1]);
21784
+ }
21785
+ return takeFromExternrefTable0(ret[0]);
21786
+ }
21787
+
20521
21788
  /**
20522
21789
  * Sun-satellite-observer phase angle in degrees.
20523
21790
  * @param {Float64Array} satellite_position_km
@@ -20810,7 +22077,7 @@ export function propagateKepler(coe, mu_km3_s2, dt_s) {
20810
22077
  * epochs.
20811
22078
  *
20812
22079
  * `request` is a plain object; see the `PropagateStateRequest` TypeScript type.
20813
- * Throws a `TypeError` for malformed input (wrong shape, unknown selector), a
22080
+ * Throws a `TypeError` for malformed input (wrong layout, unknown selector), a
20814
22081
  * `RangeError` for a non-positive initial step, and an `Error` if the engine's
20815
22082
  * propagation fails.
20816
22083
  * @param {any} request
@@ -20906,6 +22173,44 @@ export function relativeState(chief, deputy) {
20906
22173
  return takeFromExternrefTable0(ret[0]);
20907
22174
  }
20908
22175
 
22176
+ /**
22177
+ * Compute pre-data ARAIM reliability using an ARAIM ISM range-error model.
22178
+ *
22179
+ * `geometry` and `ism` use the same plain objects accepted by `araim`.
22180
+ * `options` follows `reliabilityDesign`. External effects are returned in local
22181
+ * east, north, up metres. Uncheckable rows return `null` for optional fields.
22182
+ * @param {any} geometry
22183
+ * @param {any} ism
22184
+ * @param {any} options
22185
+ * @returns {any}
22186
+ */
22187
+ export function reliabilityAraim(geometry, ism, options) {
22188
+ const ret = wasm.reliabilityAraim(geometry, ism, options);
22189
+ if (ret[2]) {
22190
+ throw takeFromExternrefTable0(ret[1]);
22191
+ }
22192
+ return takeFromExternrefTable0(ret[0]);
22193
+ }
22194
+
22195
+ /**
22196
+ * Compute pre-data reliability from supplied range design rows.
22197
+ *
22198
+ * `rows` is an array of `{ id, designRow, sigmaM }` objects. `options` may set
22199
+ * `{ alpha?, power?, beta?, lambda0Override?, lambda0?, minRedundancy? }`.
22200
+ * `power` is converted to the core missed-detection probability. Rows below
22201
+ * `minRedundancy` return `null` for `mdbM`, `externalEnuM`, and `biasToNoise`.
22202
+ * @param {any} rows
22203
+ * @param {any} options
22204
+ * @returns {any}
22205
+ */
22206
+ export function reliabilityDesign(rows, options) {
22207
+ const ret = wasm.reliabilityDesign(rows, options);
22208
+ if (ret[2]) {
22209
+ throw takeFromExternrefTable0(ret[1]);
22210
+ }
22211
+ return takeFromExternrefTable0(ret[0]);
22212
+ }
22213
+
20909
22214
  /**
20910
22215
  * Repair RINEX navigation text.
20911
22216
  * @param {Uint8Array} bytes
@@ -20938,6 +22243,16 @@ export function repairRinexObs(bytes, options) {
20938
22243
  return RinexObsRepair.__wrap(ret[0]);
20939
22244
  }
20940
22245
 
22246
+ /**
22247
+ * Default ground-track repeat period for a GNSS constellation, in seconds.
22248
+ * @param {GnssSystem} system
22249
+ * @returns {number}
22250
+ */
22251
+ export function repeatPeriod(system) {
22252
+ const ret = wasm.repeatPeriod(system);
22253
+ return ret;
22254
+ }
22255
+
20941
22256
  /**
20942
22257
  * Build a sampled GPS C/A code replica, an `Int8Array`.
20943
22258
  * @param {bigint} prn
@@ -21340,6 +22655,24 @@ export function sbasCorrectedState(broadcast, store, geo, sat, t_j2000_s, mode)
21340
22655
  return takeFromExternrefTable0(ret[0]);
21341
22656
  }
21342
22657
 
22658
+ /**
22659
+ * Stable string label for an [`SbasPlError`] enum value.
22660
+ * @param {SbasPlError} error
22661
+ * @returns {string}
22662
+ */
22663
+ export function sbasPlErrorLabel(error) {
22664
+ let deferred1_0;
22665
+ let deferred1_1;
22666
+ try {
22667
+ const ret = wasm.sbasPlErrorLabel(error);
22668
+ deferred1_0 = ret[0];
22669
+ deferred1_1 = ret[1];
22670
+ return getStringFromWasm0(ret[0], ret[1]);
22671
+ } finally {
22672
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
22673
+ }
22674
+ }
22675
+
21343
22676
  /**
21344
22677
  * Convert an SBAS broadcast PRN number such as `129` to an SBAS satellite
21345
22678
  * token such as `"S29"`. Returns `null` when the PRN is outside the SBAS range.
@@ -21351,6 +22684,27 @@ export function sbasPrnToSat(broadcast_prn) {
21351
22684
  return ret;
21352
22685
  }
21353
22686
 
22687
+ /**
22688
+ * Compute SBAS horizontal and vertical protection levels.
22689
+ *
22690
+ * `geometry` is the ARAIM protection geometry object with rows, receiver, and
22691
+ * clock systems. `model` supplies one range-error row per satellite. `k`
22692
+ * supplies the fixed SBAS multipliers.
22693
+ * @param {any} geometry
22694
+ * @param {SbasErrorModel} model
22695
+ * @param {SbasKMultipliers} k
22696
+ * @returns {SbasProtection}
22697
+ */
22698
+ export function sbasProtectionLevels(geometry, model, k) {
22699
+ _assertClass(model, SbasErrorModel);
22700
+ _assertClass(k, SbasKMultipliers);
22701
+ const ret = wasm.sbasProtectionLevels(geometry, model.__wbg_ptr, k.__wbg_ptr);
22702
+ if (ret[2]) {
22703
+ throw takeFromExternrefTable0(ret[1]);
22704
+ }
22705
+ return SbasProtection.__wrap(ret[0]);
22706
+ }
22707
+
21354
22708
  /**
21355
22709
  * Screen a primary satellite against a secondary TLE catalog for threshold TCAs.
21356
22710
  *
@@ -21562,6 +22916,25 @@ export function shapiroWilk(x) {
21562
22916
  return takeFromExternrefTable0(ret[0]);
21563
22917
  }
21564
22918
 
22919
+ /**
22920
+ * Apply a sidereal residual filter to a scalar series.
22921
+ *
22922
+ * `series` is a JS number array, `periodS` is seconds, and `options` may set
22923
+ * `sampleIntervalS`, `priorPeriods`, `minCoverage`, and `templateMethod`.
22924
+ * Returns `{ filtered, template, coverage, underCovered }`.
22925
+ * @param {any} series
22926
+ * @param {number} period_s
22927
+ * @param {any} options
22928
+ * @returns {any}
22929
+ */
22930
+ export function siderealFilter(series, period_s, options) {
22931
+ const ret = wasm.siderealFilter(series, period_s, options);
22932
+ if (ret[2]) {
22933
+ throw takeFromExternrefTable0(ret[1]);
22934
+ }
22935
+ return takeFromExternrefTable0(ret[0]);
22936
+ }
22937
+
21565
22938
  /**
21566
22939
  * Build satellite-keyed pseudorange sigmas in metres from `{ satelliteId,
21567
22940
  * elevationDeg, cn0Dbhz? }` entries. Invalid entries are dropped by the core.
@@ -22638,6 +24011,24 @@ export function validateAgainstSp3Ids(records, ids) {
22638
24011
  return takeFromExternrefTable0(ret[0]);
22639
24012
  }
22640
24013
 
24014
+ /**
24015
+ * Estimate robust station velocity with the MIDAS method.
24016
+ *
24017
+ * `series` is `{ samples, frame? }`, where samples are
24018
+ * `{ epochYear, positionM, covarianceM2? }`. The frame is `"enu"` by default
24019
+ * or `{ kind: "ecef", reference }`.
24020
+ * @param {any} series
24021
+ * @param {any} options
24022
+ * @returns {any}
24023
+ */
24024
+ export function velocityMidas(series, options) {
24025
+ const ret = wasm.velocityMidas(series, options);
24026
+ if (ret[2]) {
24027
+ throw takeFromExternrefTable0(ret[1]);
24028
+ }
24029
+ return takeFromExternrefTable0(ret[0]);
24030
+ }
24031
+
22641
24032
  /**
22642
24033
  * Satellites visible above `minElevationDeg` from `station` at a single instant,
22643
24034
  * from already-initialized [`Tle`]s: the opsmode-preserving constellation
@@ -22761,6 +24152,24 @@ export function writeDtedTreeToMmapStore(root, out_path) {
22761
24152
  throw takeFromExternrefTable0(ret[0]);
22762
24153
  }
22763
24154
  }
24155
+
24156
+ /**
24157
+ * Compute Baarda's w-test noncentrality from false-alarm probability and power.
24158
+ *
24159
+ * `alpha` is the two-sided false-alarm probability. `power` is detection power,
24160
+ * so the core missed-detection probability is `1 - power`. The returned object
24161
+ * contains `delta0` and `lambda0 = delta0 * delta0`.
24162
+ * @param {number} alpha
24163
+ * @param {number} power
24164
+ * @returns {any}
24165
+ */
24166
+ export function wtestNoncentrality(alpha, power) {
24167
+ const ret = wasm.wtestNoncentrality(alpha, power);
24168
+ if (ret[2]) {
24169
+ throw takeFromExternrefTable0(ret[1]);
24170
+ }
24171
+ return takeFromExternrefTable0(ret[0]);
24172
+ }
22764
24173
  function __wbg_get_imports() {
22765
24174
  const import0 = {
22766
24175
  __proto__: null,
@@ -23199,6 +24608,9 @@ const AcquisitionGridFinalization = (typeof FinalizationRegistry === 'undefined'
23199
24608
  const AcquisitionResultFinalization = (typeof FinalizationRegistry === 'undefined')
23200
24609
  ? { register: () => {}, unregister: () => {} }
23201
24610
  : new FinalizationRegistry(ptr => wasm.__wbg_acquisitionresult_free(ptr, 1));
24611
+ const AirborneModelFinalization = (typeof FinalizationRegistry === 'undefined')
24612
+ ? { register: () => {}, unregister: () => {} }
24613
+ : new FinalizationRegistry(ptr => wasm.__wbg_airbornemodel_free(ptr, 1));
23202
24614
  const AntennaFinalization = (typeof FinalizationRegistry === 'undefined')
23203
24615
  ? { register: () => {}, unregister: () => {} }
23204
24616
  : new FinalizationRegistry(ptr => wasm.__wbg_antenna_free(ptr, 1));
@@ -23283,6 +24695,9 @@ const CovarianceTransportResultFinalization = (typeof FinalizationRegistry === '
23283
24695
  const CoverageGridFinalization = (typeof FinalizationRegistry === 'undefined')
23284
24696
  ? { register: () => {}, unregister: () => {} }
23285
24697
  : new FinalizationRegistry(ptr => wasm.__wbg_coveragegrid_free(ptr, 1));
24698
+ const DegradationParamsFinalization = (typeof FinalizationRegistry === 'undefined')
24699
+ ? { register: () => {}, unregister: () => {} }
24700
+ : new FinalizationRegistry(ptr => wasm.__wbg_degradationparams_free(ptr, 1));
23286
24701
  const DgnssSolutionFinalization = (typeof FinalizationRegistry === 'undefined')
23287
24702
  ? { register: () => {}, unregister: () => {} }
23288
24703
  : new FinalizationRegistry(ptr => wasm.__wbg_dgnsssolution_free(ptr, 1));
@@ -23319,6 +24734,9 @@ const EncounterFrameFinalization = (typeof FinalizationRegistry === 'undefined')
23319
24734
  const EphemerisFinalization = (typeof FinalizationRegistry === 'undefined')
23320
24735
  ? { register: () => {}, unregister: () => {} }
23321
24736
  : new FinalizationRegistry(ptr => wasm.__wbg_ephemeris_free(ptr, 1));
24737
+ const ErrorEllipseFinalization = (typeof FinalizationRegistry === 'undefined')
24738
+ ? { register: () => {}, unregister: () => {} }
24739
+ : new FinalizationRegistry(ptr => wasm.__wbg_errorellipse_free(ptr, 1));
23322
24740
  const ErrorEllipse2Finalization = (typeof FinalizationRegistry === 'undefined')
23323
24741
  ? { register: () => {}, unregister: () => {} }
23324
24742
  : new FinalizationRegistry(ptr => wasm.__wbg_errorellipse2_free(ptr, 1));
@@ -23340,6 +24758,9 @@ const FrameStatesFinalization = (typeof FinalizationRegistry === 'undefined')
23340
24758
  const GeoidGridFinalization = (typeof FinalizationRegistry === 'undefined')
23341
24759
  ? { register: () => {}, unregister: () => {} }
23342
24760
  : new FinalizationRegistry(ptr => wasm.__wbg_geoidgrid_free(ptr, 1));
24761
+ const GeometryQualityFinalization = (typeof FinalizationRegistry === 'undefined')
24762
+ ? { register: () => {}, unregister: () => {} }
24763
+ : new FinalizationRegistry(ptr => wasm.__wbg_geometryquality_free(ptr, 1));
23343
24764
  const GlonassRecordJsFinalization = (typeof FinalizationRegistry === 'undefined')
23344
24765
  ? { register: () => {}, unregister: () => {} }
23345
24766
  : new FinalizationRegistry(ptr => wasm.__wbg_glonassrecordjs_free(ptr, 1));
@@ -23514,12 +24935,18 @@ const OrthometricHeightMFinalization = (typeof FinalizationRegistry === 'undefin
23514
24935
  const ParsedTleFileFinalization = (typeof FinalizationRegistry === 'undefined')
23515
24936
  ? { register: () => {}, unregister: () => {} }
23516
24937
  : new FinalizationRegistry(ptr => wasm.__wbg_parsedtlefile_free(ptr, 1));
24938
+ const PercentileRadiusFinalization = (typeof FinalizationRegistry === 'undefined')
24939
+ ? { register: () => {}, unregister: () => {} }
24940
+ : new FinalizationRegistry(ptr => wasm.__wbg_percentileradius_free(ptr, 1));
23517
24941
  const PiecewiseOrbitFinalization = (typeof FinalizationRegistry === 'undefined')
23518
24942
  ? { register: () => {}, unregister: () => {} }
23519
24943
  : new FinalizationRegistry(ptr => wasm.__wbg_piecewiseorbit_free(ptr, 1));
23520
24944
  const PiecewiseOrbitSourceFitFinalization = (typeof FinalizationRegistry === 'undefined')
23521
24945
  ? { register: () => {}, unregister: () => {} }
23522
24946
  : new FinalizationRegistry(ptr => wasm.__wbg_piecewiseorbitsourcefit_free(ptr, 1));
24947
+ const PositionErrorMetricsFinalization = (typeof FinalizationRegistry === 'undefined')
24948
+ ? { register: () => {}, unregister: () => {} }
24949
+ : new FinalizationRegistry(ptr => wasm.__wbg_positionerrormetrics_free(ptr, 1));
23523
24950
  const PppFixedSolutionFinalization = (typeof FinalizationRegistry === 'undefined')
23524
24951
  ? { register: () => {}, unregister: () => {} }
23525
24952
  : new FinalizationRegistry(ptr => wasm.__wbg_pppfixedsolution_free(ptr, 1));
@@ -23586,6 +25013,18 @@ const SatelliteVectorFinalization = (typeof FinalizationRegistry === 'undefined'
23586
25013
  const SbasCorrectionStoreFinalization = (typeof FinalizationRegistry === 'undefined')
23587
25014
  ? { register: () => {}, unregister: () => {} }
23588
25015
  : new FinalizationRegistry(ptr => wasm.__wbg_sbascorrectionstore_free(ptr, 1));
25016
+ const SbasErrorModelFinalization = (typeof FinalizationRegistry === 'undefined')
25017
+ ? { register: () => {}, unregister: () => {} }
25018
+ : new FinalizationRegistry(ptr => wasm.__wbg_sbaserrormodel_free(ptr, 1));
25019
+ const SbasKMultipliersFinalization = (typeof FinalizationRegistry === 'undefined')
25020
+ ? { register: () => {}, unregister: () => {} }
25021
+ : new FinalizationRegistry(ptr => wasm.__wbg_sbaskmultipliers_free(ptr, 1));
25022
+ const SbasProtectionFinalization = (typeof FinalizationRegistry === 'undefined')
25023
+ ? { register: () => {}, unregister: () => {} }
25024
+ : new FinalizationRegistry(ptr => wasm.__wbg_sbasprotection_free(ptr, 1));
25025
+ const SbasSisErrorFinalization = (typeof FinalizationRegistry === 'undefined')
25026
+ ? { register: () => {}, unregister: () => {} }
25027
+ : new FinalizationRegistry(ptr => wasm.__wbg_sbassiserror_free(ptr, 1));
23589
25028
  const SignalPolicyFinalization = (typeof FinalizationRegistry === 'undefined')
23590
25029
  ? { register: () => {}, unregister: () => {} }
23591
25030
  : new FinalizationRegistry(ptr => wasm.__wbg_signalpolicy_free(ptr, 1));