@neilberkman/sidereon 0.19.1 → 0.21.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
@@ -5950,6 +5950,54 @@ export class GnssInsFilter {
5950
5950
  }
5951
5951
  return takeFromExternrefTable0(ret[0]);
5952
5952
  }
5953
+ /**
5954
+ * Apply a gated wheeled-vehicle non-holonomic constraint update.
5955
+ * @returns {any}
5956
+ */
5957
+ updateNonHolonomic() {
5958
+ const ret = wasm.gnssinsfilter_updateNonHolonomic(this.__wbg_ptr);
5959
+ if (ret[2]) {
5960
+ throw takeFromExternrefTable0(ret[1]);
5961
+ }
5962
+ return takeFromExternrefTable0(ret[0]);
5963
+ }
5964
+ /**
5965
+ * Apply a non-holonomic constraint and record checkpoints when an update applies.
5966
+ * @param {FusionRtsHistoryBuilder} history
5967
+ * @returns {any}
5968
+ */
5969
+ updateNonHolonomicRecorded(history) {
5970
+ _assertClass(history, FusionRtsHistoryBuilder);
5971
+ const ret = wasm.gnssinsfilter_updateNonHolonomicRecorded(this.__wbg_ptr, history.__wbg_ptr);
5972
+ if (ret[2]) {
5973
+ throw takeFromExternrefTable0(ret[1]);
5974
+ }
5975
+ return takeFromExternrefTable0(ret[0]);
5976
+ }
5977
+ /**
5978
+ * Apply a gated zero-velocity and zero-angular-rate update.
5979
+ * @returns {any}
5980
+ */
5981
+ updateStationary() {
5982
+ const ret = wasm.gnssinsfilter_updateStationary(this.__wbg_ptr);
5983
+ if (ret[2]) {
5984
+ throw takeFromExternrefTable0(ret[1]);
5985
+ }
5986
+ return takeFromExternrefTable0(ret[0]);
5987
+ }
5988
+ /**
5989
+ * Apply a stationary update and record checkpoints when an update applies.
5990
+ * @param {FusionRtsHistoryBuilder} history
5991
+ * @returns {any}
5992
+ */
5993
+ updateStationaryRecorded(history) {
5994
+ _assertClass(history, FusionRtsHistoryBuilder);
5995
+ const ret = wasm.gnssinsfilter_updateStationaryRecorded(this.__wbg_ptr, history.__wbg_ptr);
5996
+ if (ret[2]) {
5997
+ throw takeFromExternrefTable0(ret[1]);
5998
+ }
5999
+ return takeFromExternrefTable0(ret[0]);
6000
+ }
5953
6001
  /**
5954
6002
  * Apply a tight raw-observation epoch against a broadcast ephemeris source.
5955
6003
  * @param {BroadcastEphemeris} broadcast
@@ -20386,6 +20434,52 @@ export function boundedIlsSearch(float_cycles, covariance, radius, candidate_lim
20386
20434
  return takeFromExternrefTable0(ret[0]);
20387
20435
  }
20388
20436
 
20437
+ /**
20438
+ * Build dual-frequency RTK arc records from parsed RINEX OBS products.
20439
+ *
20440
+ * Defaults build the GPS `C1C`/`L1C` plus `C2W`/`L2W` arc used by the real
20441
+ * WTZR/WTZZ fixtures.
20442
+ * @param {Sp3} ephemeris
20443
+ * @param {RinexObs} base_obs
20444
+ * @param {RinexObs} rover_obs
20445
+ * @param {any | null} [options]
20446
+ * @returns {any}
20447
+ */
20448
+ export function buildDualFrequencyRinexRtkArc(ephemeris, base_obs, rover_obs, options) {
20449
+ _assertClass(ephemeris, Sp3);
20450
+ _assertClass(base_obs, RinexObs);
20451
+ _assertClass(rover_obs, RinexObs);
20452
+ const ret = wasm.buildDualFrequencyRinexRtkArc(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, isLikeNone(options) ? 0 : addToExternrefTable0(options));
20453
+ if (ret[2]) {
20454
+ throw takeFromExternrefTable0(ret[1]);
20455
+ }
20456
+ return takeFromExternrefTable0(ret[0]);
20457
+ }
20458
+
20459
+ /**
20460
+ * Build single-frequency RTK arc records from parsed RINEX OBS products.
20461
+ *
20462
+ * `ephemeris` is an SP3 precise ephemeris handle, `baseObs` and `roverObs`
20463
+ * are parsed RINEX observation files, and `options` may provide
20464
+ * `{ signalPairs, maxEpochs, minCommonSatellites, includePredictionTime }`.
20465
+ * Defaults build the GPS `C1C`/`L1C` arc used by the real WTZR/WTZZ fixtures.
20466
+ * @param {Sp3} ephemeris
20467
+ * @param {RinexObs} base_obs
20468
+ * @param {RinexObs} rover_obs
20469
+ * @param {any | null} [options]
20470
+ * @returns {any}
20471
+ */
20472
+ export function buildRinexRtkArc(ephemeris, base_obs, rover_obs, options) {
20473
+ _assertClass(ephemeris, Sp3);
20474
+ _assertClass(base_obs, RinexObs);
20475
+ _assertClass(rover_obs, RinexObs);
20476
+ const ret = wasm.buildRinexRtkArc(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, isLikeNone(options) ? 0 : addToExternrefTable0(options));
20477
+ if (ret[2]) {
20478
+ throw takeFromExternrefTable0(ret[1]);
20479
+ }
20480
+ return takeFromExternrefTable0(ret[0]);
20481
+ }
20482
+
20389
20483
  /**
20390
20484
  * One wrapping GPS C/A chip at a zero-based index.
20391
20485
  * @param {bigint} prn
@@ -21649,6 +21743,19 @@ export function errorEllipse2(covariance, confidence) {
21649
21743
  return ErrorEllipse2.__wrap(ret[0]);
21650
21744
  }
21651
21745
 
21746
+ /**
21747
+ * Horizontal one-sigma ellipse from an ENU covariance in square metres.
21748
+ * @param {any} covariance_enu_m2
21749
+ * @returns {ErrorEllipse}
21750
+ */
21751
+ export function errorEllipseFromEnuM2(covariance_enu_m2) {
21752
+ const ret = wasm.errorEllipseFromEnuM2(covariance_enu_m2);
21753
+ if (ret[2]) {
21754
+ throw takeFromExternrefTable0(ret[1]);
21755
+ }
21756
+ return ErrorEllipse.__wrap(ret[0]);
21757
+ }
21758
+
21652
21759
  /**
21653
21760
  * @param {DragForce} drag
21654
21761
  * @param {any} request
@@ -23042,6 +23149,20 @@ export function hessianTrace(jacobian, m, n) {
23042
23149
  return ret[0];
23043
23150
  }
23044
23151
 
23152
+ /**
23153
+ * Horizontal percentile circle radius from an ENU covariance.
23154
+ * @param {any} covariance_enu_m2
23155
+ * @param {number} probability
23156
+ * @returns {PercentileRadius}
23157
+ */
23158
+ export function horizontalRadiusAt(covariance_enu_m2, probability) {
23159
+ const ret = wasm.horizontalRadiusAt(covariance_enu_m2, probability);
23160
+ if (ret[2]) {
23161
+ throw takeFromExternrefTable0(ret[1]);
23162
+ }
23163
+ return PercentileRadius.__wrap(ret[0]);
23164
+ }
23165
+
23045
23166
  /**
23046
23167
  * Gauss angles-only orbit determination.
23047
23168
  *
@@ -24186,6 +24307,22 @@ export function metricsFromKinematicSolution(solution) {
24186
24307
  return PositionErrorMetrics.__wrap(ret[0]);
24187
24308
  }
24188
24309
 
24310
+ /**
24311
+ * Compute position-error metrics from a position covariance object.
24312
+ *
24313
+ * The object must include `ecefM2` and `enuM2`, each a 3 by 3 covariance in
24314
+ * square metres.
24315
+ * @param {any} covariance
24316
+ * @returns {PositionErrorMetrics}
24317
+ */
24318
+ export function metricsFromPositionCovariance(covariance) {
24319
+ const ret = wasm.metricsFromPositionCovariance(covariance);
24320
+ if (ret[2]) {
24321
+ throw takeFromExternrefTable0(ret[1]);
24322
+ }
24323
+ return PositionErrorMetrics.__wrap(ret[0]);
24324
+ }
24325
+
24189
24326
  /**
24190
24327
  * Modified Allan deviation for explicit averaging factors.
24191
24328
  *
@@ -27033,6 +27170,49 @@ export function solveStatic(sp3, epochs, options) {
27033
27170
  return StaticSolution.__wrap(ret[0]);
27034
27171
  }
27035
27172
 
27173
+ /**
27174
+ * Solve one static reference-station coordinate from paired RINEX OBS plus SP3.
27175
+ * @param {Sp3} ephemeris
27176
+ * @param {RinexObs} reference_obs
27177
+ * @param {RinexObs} rover_obs
27178
+ * @param {any} config
27179
+ * @returns {any}
27180
+ */
27181
+ export function solveStaticReferenceStationRinex(ephemeris, reference_obs, rover_obs, config) {
27182
+ _assertClass(ephemeris, Sp3);
27183
+ _assertClass(reference_obs, RinexObs);
27184
+ _assertClass(rover_obs, RinexObs);
27185
+ const ret = wasm.solveStaticReferenceStationRinex(ephemeris.__wbg_ptr, reference_obs.__wbg_ptr, rover_obs.__wbg_ptr, config);
27186
+ if (ret[2]) {
27187
+ throw takeFromExternrefTable0(ret[1]);
27188
+ }
27189
+ return takeFromExternrefTable0(ret[0]);
27190
+ }
27191
+
27192
+ /**
27193
+ * Solve one static RTK baseline directly from paired RINEX OBS plus SP3.
27194
+ *
27195
+ * `config.baseM` is the base antenna phase-center ECEF position in metres.
27196
+ * Optional `config.arcOptions` controls RINEX signal extraction; other fields
27197
+ * mirror `RtkStaticArcConfig` but the wavelength and offset maps are filled by
27198
+ * the RINEX builder.
27199
+ * @param {Sp3} ephemeris
27200
+ * @param {RinexObs} base_obs
27201
+ * @param {RinexObs} rover_obs
27202
+ * @param {any} config
27203
+ * @returns {any}
27204
+ */
27205
+ export function solveStaticRinexRtkBaseline(ephemeris, base_obs, rover_obs, config) {
27206
+ _assertClass(ephemeris, Sp3);
27207
+ _assertClass(base_obs, RinexObs);
27208
+ _assertClass(rover_obs, RinexObs);
27209
+ const ret = wasm.solveStaticRinexRtkBaseline(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, config);
27210
+ if (ret[2]) {
27211
+ throw takeFromExternrefTable0(ret[1]);
27212
+ }
27213
+ return takeFromExternrefTable0(ret[0]);
27214
+ }
27215
+
27036
27216
  /**
27037
27217
  * Solve a static RTK arc with one batch float solution and one validated fixed
27038
27218
  * solution over the whole arc.
@@ -27096,6 +27276,29 @@ export function solveVelocityBroadcast(broadcast, observations, receiver_ecef_m,
27096
27276
  return VelocitySolution.__wrap(ret[0]);
27097
27277
  }
27098
27278
 
27279
+ /**
27280
+ * Solve a static dual-frequency wide-lane fixed RTK baseline from RINEX OBS.
27281
+ *
27282
+ * The function builds the dual-frequency RINEX arc, fixes wide-lane
27283
+ * ambiguities, prepares ionosphere-free narrow-lane records, then runs the
27284
+ * static fixed baseline solver.
27285
+ * @param {Sp3} ephemeris
27286
+ * @param {RinexObs} base_obs
27287
+ * @param {RinexObs} rover_obs
27288
+ * @param {any} config
27289
+ * @returns {any}
27290
+ */
27291
+ export function solveWideLaneFixedRinexRtkBaseline(ephemeris, base_obs, rover_obs, config) {
27292
+ _assertClass(ephemeris, Sp3);
27293
+ _assertClass(base_obs, RinexObs);
27294
+ _assertClass(rover_obs, RinexObs);
27295
+ const ret = wasm.solveWideLaneFixedRinexRtkBaseline(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, config);
27296
+ if (ret[2]) {
27297
+ throw takeFromExternrefTable0(ret[1]);
27298
+ }
27299
+ return takeFromExternrefTable0(ret[0]);
27300
+ }
27301
+
27099
27302
  /**
27100
27303
  * Solve a receiver position, preferring precise SP3 products and falling back to
27101
27304
  * broadcast ephemeris, reporting which source was used and how stale it is.
@@ -27248,6 +27451,20 @@ export function spectralSeparationCoefficientHz(desired, interference, receiver_
27248
27451
  return ret[0];
27249
27452
  }
27250
27453
 
27454
+ /**
27455
+ * Three-dimensional percentile sphere radius from an ENU covariance.
27456
+ * @param {any} covariance_enu_m2
27457
+ * @param {number} probability
27458
+ * @returns {PercentileRadius}
27459
+ */
27460
+ export function sphericalRadiusAt(covariance_enu_m2, probability) {
27461
+ const ret = wasm.sphericalRadiusAt(covariance_enu_m2, probability);
27462
+ if (ret[2]) {
27463
+ throw takeFromExternrefTable0(ret[1]);
27464
+ }
27465
+ return PercentileRadius.__wrap(ret[0]);
27466
+ }
27467
+
27251
27468
  /**
27252
27469
  * Continuous seconds since J2000 for a split Julian date.
27253
27470
  * @param {number} jd_whole
@@ -27807,6 +28024,21 @@ export function validateAgainstSp3Ids(records, ids) {
27807
28024
  return takeFromExternrefTable0(ret[0]);
27808
28025
  }
27809
28026
 
28027
+ /**
28028
+ * Blend a first good post-outage fix back over an outage span.
28029
+ * @param {any} states
28030
+ * @param {any} first_good_fix
28031
+ * @param {any} config
28032
+ * @returns {any}
28033
+ */
28034
+ export function velocityMatchOutage(states, first_good_fix, config) {
28035
+ const ret = wasm.velocityMatchOutage(states, first_good_fix, config);
28036
+ if (ret[2]) {
28037
+ throw takeFromExternrefTable0(ret[1]);
28038
+ }
28039
+ return takeFromExternrefTable0(ret[0]);
28040
+ }
28041
+
27810
28042
  /**
27811
28043
  * Estimate robust station velocity with the MIDAS method.
27812
28044
  *
@@ -27825,6 +28057,20 @@ export function velocityMidas(series, options) {
27825
28057
  return takeFromExternrefTable0(ret[0]);
27826
28058
  }
27827
28059
 
28060
+ /**
28061
+ * Vertical one-dimensional percentile radius from an up variance.
28062
+ * @param {number} sigma_u_m2
28063
+ * @param {number} probability
28064
+ * @returns {number}
28065
+ */
28066
+ export function verticalRadiusAt(sigma_u_m2, probability) {
28067
+ const ret = wasm.verticalRadiusAt(sigma_u_m2, probability);
28068
+ if (ret[2]) {
28069
+ throw takeFromExternrefTable0(ret[1]);
28070
+ }
28071
+ return ret[0];
28072
+ }
28073
+
27828
28074
  /**
27829
28075
  * Satellites visible above `minElevationDeg` from `station` at a single instant,
27830
28076
  * from already-initialized [`Tle`]s: the opsmode-preserving constellation
Binary file