@neilberkman/sidereon 0.17.0 → 0.18.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.
@@ -3545,6 +3545,22 @@ class DgnssSolution {
3545
3545
  if (Symbol.dispose) DgnssSolution.prototype[Symbol.dispose] = DgnssSolution.prototype.free;
3546
3546
  exports.DgnssSolution = DgnssSolution;
3547
3547
 
3548
+ /**
3549
+ * Early-late DLL processing mode for thermal-noise jitter.
3550
+ * @enum {0 | 1}
3551
+ */
3552
+ const DllProcessing = Object.freeze({
3553
+ /**
3554
+ * Coherent early-minus-late processing.
3555
+ */
3556
+ Coherent: 0, "0": "Coherent",
3557
+ /**
3558
+ * Non-coherent early-minus-late power processing with squaring loss.
3559
+ */
3560
+ NonCoherent: 1, "1": "NonCoherent",
3561
+ });
3562
+ exports.DllProcessing = DllProcessing;
3563
+
3548
3564
  /**
3549
3565
  * GNSS dilution-of-precision scalars.
3550
3566
  */
@@ -5713,6 +5729,230 @@ class GlonassRecordJs {
5713
5729
  if (Symbol.dispose) GlonassRecordJs.prototype[Symbol.dispose] = GlonassRecordJs.prototype.free;
5714
5730
  exports.GlonassRecordJs = GlonassRecordJs;
5715
5731
 
5732
+ /**
5733
+ * Stateful GNSS/INS filter resource.
5734
+ */
5735
+ class GnssInsFilter {
5736
+ static __wrap(ptr) {
5737
+ const obj = Object.create(GnssInsFilter.prototype);
5738
+ obj.__wbg_ptr = ptr;
5739
+ GnssInsFilterFinalization.register(obj, obj.__wbg_ptr, obj);
5740
+ return obj;
5741
+ }
5742
+ __destroy_into_raw() {
5743
+ const ptr = this.__wbg_ptr;
5744
+ this.__wbg_ptr = 0;
5745
+ GnssInsFilterFinalization.unregister(this);
5746
+ return ptr;
5747
+ }
5748
+ free() {
5749
+ const ptr = this.__destroy_into_raw();
5750
+ wasm.__wbg_gnssinsfilter_free(ptr, 0);
5751
+ }
5752
+ /**
5753
+ * Replace retained-history capacities for later time-sync replay.
5754
+ * @param {any} config
5755
+ */
5756
+ configureTimeSync(config) {
5757
+ const ret = wasm.gnssinsfilter_configureTimeSync(this.__wbg_ptr, config);
5758
+ if (ret[1]) {
5759
+ throw takeFromExternrefTable0(ret[0]);
5760
+ }
5761
+ }
5762
+ /**
5763
+ * Encode the current fusion state with the core versioned binary codec.
5764
+ * @returns {Uint8Array}
5765
+ */
5766
+ encodeState() {
5767
+ const ret = wasm.gnssinsfilter_encodeState(this.__wbg_ptr);
5768
+ if (ret[3]) {
5769
+ throw takeFromExternrefTable0(ret[2]);
5770
+ }
5771
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
5772
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
5773
+ return v1;
5774
+ }
5775
+ /**
5776
+ * Build a filter, then restore its state from versioned fusion-state bytes.
5777
+ * @param {any} config
5778
+ * @param {Uint8Array} bytes
5779
+ * @returns {GnssInsFilter}
5780
+ */
5781
+ static fromStateBytes(config, bytes) {
5782
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
5783
+ const len0 = WASM_VECTOR_LEN;
5784
+ const ret = wasm.gnssinsfilter_fromStateBytes(config, ptr0, len0);
5785
+ if (ret[2]) {
5786
+ throw takeFromExternrefTable0(ret[1]);
5787
+ }
5788
+ return GnssInsFilter.__wrap(ret[0]);
5789
+ }
5790
+ /**
5791
+ * Build a filter from a JS configuration object.
5792
+ * @param {any} config
5793
+ */
5794
+ constructor(config) {
5795
+ const ret = wasm.gnssinsfilter_new(config);
5796
+ if (ret[2]) {
5797
+ throw takeFromExternrefTable0(ret[1]);
5798
+ }
5799
+ this.__wbg_ptr = ret[0];
5800
+ GnssInsFilterFinalization.register(this, this.__wbg_ptr, this);
5801
+ return this;
5802
+ }
5803
+ /**
5804
+ * Propagate the filter with one IMU rate or increment sample.
5805
+ * @param {any} sample
5806
+ * @returns {any}
5807
+ */
5808
+ propagate(sample) {
5809
+ const ret = wasm.gnssinsfilter_propagate(this.__wbg_ptr, sample);
5810
+ if (ret[2]) {
5811
+ throw takeFromExternrefTable0(ret[1]);
5812
+ }
5813
+ return takeFromExternrefTable0(ret[0]);
5814
+ }
5815
+ /**
5816
+ * Propagate the filter with a JS array of IMU samples.
5817
+ * @param {any} samples
5818
+ * @returns {any}
5819
+ */
5820
+ propagateBatch(samples) {
5821
+ const ret = wasm.gnssinsfilter_propagateBatch(this.__wbg_ptr, samples);
5822
+ if (ret[2]) {
5823
+ throw takeFromExternrefTable0(ret[1]);
5824
+ }
5825
+ return takeFromExternrefTable0(ret[0]);
5826
+ }
5827
+ /**
5828
+ * Restore this filter from versioned fusion-state bytes.
5829
+ * @param {Uint8Array} bytes
5830
+ */
5831
+ restoreState(bytes) {
5832
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
5833
+ const len0 = WASM_VECTOR_LEN;
5834
+ const ret = wasm.gnssinsfilter_restoreState(this.__wbg_ptr, ptr0, len0);
5835
+ if (ret[1]) {
5836
+ throw takeFromExternrefTable0(ret[0]);
5837
+ }
5838
+ }
5839
+ /**
5840
+ * Current INS state, covariance, and last body-rate diagnostic.
5841
+ * @returns {any}
5842
+ */
5843
+ state() {
5844
+ const ret = wasm.gnssinsfilter_state(this.__wbg_ptr);
5845
+ if (ret[2]) {
5846
+ throw takeFromExternrefTable0(ret[1]);
5847
+ }
5848
+ return takeFromExternrefTable0(ret[0]);
5849
+ }
5850
+ /**
5851
+ * Current tight-coupling receiver-clock state.
5852
+ * @returns {any}
5853
+ */
5854
+ tightClockState() {
5855
+ const ret = wasm.gnssinsfilter_tightClockState(this.__wbg_ptr);
5856
+ if (ret[2]) {
5857
+ throw takeFromExternrefTable0(ret[1]);
5858
+ }
5859
+ return takeFromExternrefTable0(ret[0]);
5860
+ }
5861
+ /**
5862
+ * Current retained-history capacity and occupancy.
5863
+ * @returns {any}
5864
+ */
5865
+ timeSyncStatus() {
5866
+ const ret = wasm.gnssinsfilter_timeSyncStatus(this.__wbg_ptr);
5867
+ if (ret[2]) {
5868
+ throw takeFromExternrefTable0(ret[1]);
5869
+ }
5870
+ return takeFromExternrefTable0(ret[0]);
5871
+ }
5872
+ /**
5873
+ * Apply a loose position or position-velocity GNSS fix at the current epoch.
5874
+ * @param {any} measurement
5875
+ * @returns {any}
5876
+ */
5877
+ updateLoose(measurement) {
5878
+ const ret = wasm.gnssinsfilter_updateLoose(this.__wbg_ptr, measurement);
5879
+ if (ret[2]) {
5880
+ throw takeFromExternrefTable0(ret[1]);
5881
+ }
5882
+ return takeFromExternrefTable0(ret[0]);
5883
+ }
5884
+ /**
5885
+ * Apply a loose GNSS fix, replaying retained IMU checkpoints when it is late.
5886
+ * @param {any} measurement
5887
+ * @returns {any}
5888
+ */
5889
+ updateLooseTimeSync(measurement) {
5890
+ const ret = wasm.gnssinsfilter_updateLooseTimeSync(this.__wbg_ptr, measurement);
5891
+ if (ret[2]) {
5892
+ throw takeFromExternrefTable0(ret[1]);
5893
+ }
5894
+ return takeFromExternrefTable0(ret[0]);
5895
+ }
5896
+ /**
5897
+ * Apply a tight raw-observation epoch against a broadcast ephemeris source.
5898
+ * @param {BroadcastEphemeris} broadcast
5899
+ * @param {any} epoch
5900
+ * @returns {any}
5901
+ */
5902
+ updateTightBroadcast(broadcast, epoch) {
5903
+ _assertClass(broadcast, BroadcastEphemeris);
5904
+ const ret = wasm.gnssinsfilter_updateTightBroadcast(this.__wbg_ptr, broadcast.__wbg_ptr, epoch);
5905
+ if (ret[2]) {
5906
+ throw takeFromExternrefTable0(ret[1]);
5907
+ }
5908
+ return takeFromExternrefTable0(ret[0]);
5909
+ }
5910
+ /**
5911
+ * Apply a tight broadcast update, replaying retained IMU checkpoints when it is late.
5912
+ * @param {BroadcastEphemeris} broadcast
5913
+ * @param {any} epoch
5914
+ * @returns {any}
5915
+ */
5916
+ updateTightBroadcastTimeSync(broadcast, epoch) {
5917
+ _assertClass(broadcast, BroadcastEphemeris);
5918
+ const ret = wasm.gnssinsfilter_updateTightBroadcastTimeSync(this.__wbg_ptr, broadcast.__wbg_ptr, epoch);
5919
+ if (ret[2]) {
5920
+ throw takeFromExternrefTable0(ret[1]);
5921
+ }
5922
+ return takeFromExternrefTable0(ret[0]);
5923
+ }
5924
+ /**
5925
+ * Apply a tight raw-observation epoch against an SP3 source.
5926
+ * @param {Sp3} sp3
5927
+ * @param {any} epoch
5928
+ * @returns {any}
5929
+ */
5930
+ updateTightSp3(sp3, epoch) {
5931
+ _assertClass(sp3, Sp3);
5932
+ const ret = wasm.gnssinsfilter_updateTightSp3(this.__wbg_ptr, sp3.__wbg_ptr, epoch);
5933
+ if (ret[2]) {
5934
+ throw takeFromExternrefTable0(ret[1]);
5935
+ }
5936
+ return takeFromExternrefTable0(ret[0]);
5937
+ }
5938
+ /**
5939
+ * Apply a tight SP3 update, replaying retained IMU checkpoints when it is late.
5940
+ * @param {Sp3} sp3
5941
+ * @param {any} epoch
5942
+ * @returns {any}
5943
+ */
5944
+ updateTightSp3TimeSync(sp3, epoch) {
5945
+ _assertClass(sp3, Sp3);
5946
+ const ret = wasm.gnssinsfilter_updateTightSp3TimeSync(this.__wbg_ptr, sp3.__wbg_ptr, epoch);
5947
+ if (ret[2]) {
5948
+ throw takeFromExternrefTable0(ret[1]);
5949
+ }
5950
+ return takeFromExternrefTable0(ret[0]);
5951
+ }
5952
+ }
5953
+ if (Symbol.dispose) GnssInsFilter.prototype[Symbol.dispose] = GnssInsFilter.prototype.free;
5954
+ exports.GnssInsFilter = GnssInsFilter;
5955
+
5716
5956
  /**
5717
5957
  * One sampled rise/set/peak visibility pass, from `gnssPasses`.
5718
5958
  */
@@ -14819,6 +15059,240 @@ class SbasSisError {
14819
15059
  if (Symbol.dispose) SbasSisError.prototype[Symbol.dispose] = SbasSisError.prototype.free;
14820
15060
  exports.SbasSisError = SbasSisError;
14821
15061
 
15062
+ /**
15063
+ * Stable GNSS signal modulation used by the analysis functions.
15064
+ */
15065
+ class SignalAnalysisModulation {
15066
+ static __wrap(ptr) {
15067
+ const obj = Object.create(SignalAnalysisModulation.prototype);
15068
+ obj.__wbg_ptr = ptr;
15069
+ SignalAnalysisModulationFinalization.register(obj, obj.__wbg_ptr, obj);
15070
+ return obj;
15071
+ }
15072
+ __destroy_into_raw() {
15073
+ const ptr = this.__wbg_ptr;
15074
+ this.__wbg_ptr = 0;
15075
+ SignalAnalysisModulationFinalization.unregister(this);
15076
+ return ptr;
15077
+ }
15078
+ free() {
15079
+ const ptr = this.__destroy_into_raw();
15080
+ wasm.__wbg_signalanalysismodulation_free(ptr, 0);
15081
+ }
15082
+ /**
15083
+ * Normalized in-band autocorrelation at a delay.
15084
+ * @param {number} delay_s
15085
+ * @param {number} receiver_bandwidth_hz
15086
+ * @returns {number}
15087
+ */
15088
+ autocorrelation(delay_s, receiver_bandwidth_hz) {
15089
+ const ret = wasm.signalanalysismodulation_autocorrelation(this.__wbg_ptr, delay_s, receiver_bandwidth_hz);
15090
+ if (ret[2]) {
15091
+ throw takeFromExternrefTable0(ret[1]);
15092
+ }
15093
+ return ret[0];
15094
+ }
15095
+ /**
15096
+ * Build a BPSK(n) modulation, where the code rate is `n * 1.023 MHz`.
15097
+ * @param {number} order
15098
+ * @returns {SignalAnalysisModulation}
15099
+ */
15100
+ static bpsk(order) {
15101
+ const ret = wasm.signalanalysismodulation_bpsk(order);
15102
+ if (ret[2]) {
15103
+ throw takeFromExternrefTable0(ret[1]);
15104
+ }
15105
+ return SignalAnalysisModulation.__wrap(ret[0]);
15106
+ }
15107
+ /**
15108
+ * Build Galileo E1 CBOC(6,1,1/11) with the minus chip-pulse convention.
15109
+ * @returns {SignalAnalysisModulation}
15110
+ */
15111
+ static cboc611Over11Minus() {
15112
+ const ret = wasm.signalanalysismodulation_cboc611Over11Minus();
15113
+ return SignalAnalysisModulation.__wrap(ret);
15114
+ }
15115
+ /**
15116
+ * Build Galileo E1 CBOC(6,1,1/11) with the plus chip-pulse convention.
15117
+ * @returns {SignalAnalysisModulation}
15118
+ */
15119
+ static cboc611Over11Plus() {
15120
+ const ret = wasm.signalanalysismodulation_cboc611Over11Plus();
15121
+ return SignalAnalysisModulation.__wrap(ret);
15122
+ }
15123
+ /**
15124
+ * Code rate in hertz when the modulation has one unambiguous rate.
15125
+ * @returns {number}
15126
+ */
15127
+ get codeRateHz() {
15128
+ const ret = wasm.signalanalysismodulation_codeRateHz(this.__wbg_ptr);
15129
+ if (ret[2]) {
15130
+ throw takeFromExternrefTable0(ret[1]);
15131
+ }
15132
+ return ret[0];
15133
+ }
15134
+ /**
15135
+ * Build a cosine-phased BOC(m,n) modulation.
15136
+ * @param {number} m
15137
+ * @param {number} n
15138
+ * @returns {SignalAnalysisModulation}
15139
+ */
15140
+ static cosineBoc(m, n) {
15141
+ const ret = wasm.signalanalysismodulation_cosineBoc(m, n);
15142
+ if (ret[2]) {
15143
+ throw takeFromExternrefTable0(ret[1]);
15144
+ }
15145
+ return SignalAnalysisModulation.__wrap(ret[0]);
15146
+ }
15147
+ /**
15148
+ * Published lower bound for DLL code-delay jitter.
15149
+ * @param {any} options
15150
+ * @returns {any}
15151
+ */
15152
+ dllLowerBound(options) {
15153
+ const ret = wasm.signalanalysismodulation_dllLowerBound(this.__wbg_ptr, options);
15154
+ if (ret[2]) {
15155
+ throw takeFromExternrefTable0(ret[1]);
15156
+ }
15157
+ return takeFromExternrefTable0(ret[0]);
15158
+ }
15159
+ /**
15160
+ * Early-late DLL thermal-noise jitter for this modulation.
15161
+ * @param {any} options
15162
+ * @param {DllProcessing} processing
15163
+ * @returns {any}
15164
+ */
15165
+ dllThermalNoiseJitter(options, processing) {
15166
+ const ret = wasm.signalanalysismodulation_dllThermalNoiseJitter(this.__wbg_ptr, options, processing);
15167
+ if (ret[2]) {
15168
+ throw takeFromExternrefTable0(ret[1]);
15169
+ }
15170
+ return takeFromExternrefTable0(ret[0]);
15171
+ }
15172
+ /**
15173
+ * Fraction of total signal power inside a two-sided receiver bandwidth.
15174
+ * @param {number} receiver_bandwidth_hz
15175
+ * @returns {number}
15176
+ */
15177
+ fractionPowerInBand(receiver_bandwidth_hz) {
15178
+ const ret = wasm.signalanalysismodulation_fractionPowerInBand(this.__wbg_ptr, receiver_bandwidth_hz);
15179
+ if (ret[2]) {
15180
+ throw takeFromExternrefTable0(ret[1]);
15181
+ }
15182
+ return ret[0];
15183
+ }
15184
+ /**
15185
+ * Stable core label for this modulation.
15186
+ * @returns {string}
15187
+ */
15188
+ get label() {
15189
+ let deferred1_0;
15190
+ let deferred1_1;
15191
+ try {
15192
+ const ret = wasm.signalanalysismodulation_label(this.__wbg_ptr);
15193
+ deferred1_0 = ret[0];
15194
+ deferred1_1 = ret[1];
15195
+ return getStringFromWasm0(ret[0], ret[1]);
15196
+ } finally {
15197
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
15198
+ }
15199
+ }
15200
+ /**
15201
+ * Build the normalized MBOC(6,1,1/11) spectrum.
15202
+ * @returns {SignalAnalysisModulation}
15203
+ */
15204
+ static mboc611Over11() {
15205
+ const ret = wasm.signalanalysismodulation_mboc611Over11();
15206
+ return SignalAnalysisModulation.__wrap(ret);
15207
+ }
15208
+ /**
15209
+ * One-path early-late multipath error envelope on a delay grid.
15210
+ * @param {any} options
15211
+ * @param {Float64Array} delay_chips
15212
+ * @returns {any}
15213
+ */
15214
+ multipathErrorEnvelope(options, delay_chips) {
15215
+ const ptr0 = passArrayF64ToWasm0(delay_chips, wasm.__wbindgen_malloc);
15216
+ const len0 = WASM_VECTOR_LEN;
15217
+ const ret = wasm.signalanalysismodulation_multipathErrorEnvelope(this.__wbg_ptr, options, ptr0, len0);
15218
+ if (ret[2]) {
15219
+ throw takeFromExternrefTable0(ret[1]);
15220
+ }
15221
+ return takeFromExternrefTable0(ret[0]);
15222
+ }
15223
+ /**
15224
+ * Signal power inside a two-sided receiver bandwidth.
15225
+ * @param {number} receiver_bandwidth_hz
15226
+ * @returns {number}
15227
+ */
15228
+ powerInBand(receiver_bandwidth_hz) {
15229
+ const ret = wasm.signalanalysismodulation_powerInBand(this.__wbg_ptr, receiver_bandwidth_hz);
15230
+ if (ret[2]) {
15231
+ throw takeFromExternrefTable0(ret[1]);
15232
+ }
15233
+ return ret[0];
15234
+ }
15235
+ /**
15236
+ * Normalized power spectral density at an offset frequency, in `1/Hz`.
15237
+ * @param {number} offset_hz
15238
+ * @returns {number}
15239
+ */
15240
+ psdHz(offset_hz) {
15241
+ const ret = wasm.signalanalysismodulation_psdHz(this.__wbg_ptr, offset_hz);
15242
+ if (ret[2]) {
15243
+ throw takeFromExternrefTable0(ret[1]);
15244
+ }
15245
+ return ret[0];
15246
+ }
15247
+ /**
15248
+ * RMS, or Gabor, bandwidth over a two-sided receiver bandwidth.
15249
+ * @param {number} receiver_bandwidth_hz
15250
+ * @returns {number}
15251
+ */
15252
+ rmsBandwidthHz(receiver_bandwidth_hz) {
15253
+ const ret = wasm.signalanalysismodulation_rmsBandwidthHz(this.__wbg_ptr, receiver_bandwidth_hz);
15254
+ if (ret[2]) {
15255
+ throw takeFromExternrefTable0(ret[1]);
15256
+ }
15257
+ return ret[0];
15258
+ }
15259
+ /**
15260
+ * Build a sine-phased BOC(m,n) modulation.
15261
+ * @param {number} m
15262
+ * @param {number} n
15263
+ * @returns {SignalAnalysisModulation}
15264
+ */
15265
+ static sineBoc(m, n) {
15266
+ const ret = wasm.signalanalysismodulation_sineBoc(m, n);
15267
+ if (ret[2]) {
15268
+ throw takeFromExternrefTable0(ret[1]);
15269
+ }
15270
+ return SignalAnalysisModulation.__wrap(ret[0]);
15271
+ }
15272
+ /**
15273
+ * Build the GPS L1C pilot TMBOC(6,1,4/33) spectrum.
15274
+ * @returns {SignalAnalysisModulation}
15275
+ */
15276
+ static tmboc614Over33() {
15277
+ const ret = wasm.signalanalysismodulation_tmboc614Over33();
15278
+ return SignalAnalysisModulation.__wrap(ret);
15279
+ }
15280
+ /**
15281
+ * SSC against white interference normalized over the receiver bandwidth.
15282
+ * @param {number} receiver_bandwidth_hz
15283
+ * @returns {number}
15284
+ */
15285
+ whiteNoiseSpectralSeparationHz(receiver_bandwidth_hz) {
15286
+ const ret = wasm.signalanalysismodulation_whiteNoiseSpectralSeparationHz(this.__wbg_ptr, receiver_bandwidth_hz);
15287
+ if (ret[2]) {
15288
+ throw takeFromExternrefTable0(ret[1]);
15289
+ }
15290
+ return ret[0];
15291
+ }
15292
+ }
15293
+ if (Symbol.dispose) SignalAnalysisModulation.prototype[Symbol.dispose] = SignalAnalysisModulation.prototype.free;
15294
+ exports.SignalAnalysisModulation = SignalAnalysisModulation;
15295
+
14822
15296
  /**
14823
15297
  * Per-constellation single-frequency pseudorange code-selection policy. Build
14824
15298
  * with `new SignalPolicy()` then chain `.withSystem(system, codes)`, or use
@@ -20213,6 +20687,24 @@ function defaultPair(system) {
20213
20687
  }
20214
20688
  exports.defaultPair = defaultPair;
20215
20689
 
20690
+ /**
20691
+ * Default scenario seed as a hexadecimal string.
20692
+ * @returns {string}
20693
+ */
20694
+ function defaultScenarioSeedHex() {
20695
+ let deferred1_0;
20696
+ let deferred1_1;
20697
+ try {
20698
+ const ret = wasm.defaultScenarioSeedHex();
20699
+ deferred1_0 = ret[0];
20700
+ deferred1_1 = ret[1];
20701
+ return getStringFromWasm0(ret[0], ret[1]);
20702
+ } finally {
20703
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
20704
+ }
20705
+ }
20706
+ exports.defaultScenarioSeedHex = defaultScenarioSeedHex;
20707
+
20216
20708
  /**
20217
20709
  * Single-frequency carrier used by the SPP ionosphere-scaling policy.
20218
20710
  * @param {GnssSystem} system
@@ -20543,6 +21035,26 @@ function eclipseStatus(satellite_position_km, sun_position_km) {
20543
21035
  }
20544
21036
  exports.eclipseStatus = eclipseStatus;
20545
21037
 
21038
+ /**
21039
+ * Effective C/N0 degradation for one finite-band interference term.
21040
+ * @param {SignalAnalysisModulation} desired
21041
+ * @param {SignalAnalysisModulation} interference
21042
+ * @param {number} cn0_db_hz
21043
+ * @param {number} receiver_bandwidth_hz
21044
+ * @param {number} power_ratio_to_carrier
21045
+ * @returns {any}
21046
+ */
21047
+ function effectiveCn0Degradation(desired, interference, cn0_db_hz, receiver_bandwidth_hz, power_ratio_to_carrier) {
21048
+ _assertClass(desired, SignalAnalysisModulation);
21049
+ _assertClass(interference, SignalAnalysisModulation);
21050
+ const ret = wasm.effectiveCn0Degradation(desired.__wbg_ptr, interference.__wbg_ptr, cn0_db_hz, receiver_bandwidth_hz, power_ratio_to_carrier);
21051
+ if (ret[2]) {
21052
+ throw takeFromExternrefTable0(ret[1]);
21053
+ }
21054
+ return takeFromExternrefTable0(ret[0]);
21055
+ }
21056
+ exports.effectiveCn0Degradation = effectiveCn0Degradation;
21057
+
20546
21058
  /**
20547
21059
  * Ellipsoidal height `h = H + N` (metres above the WGS84 ellipsoid) from an
20548
21060
  * orthometric height and a geodetic position in radians, using the embedded
@@ -21594,6 +22106,24 @@ function fspl(distance_km, frequency_mhz) {
21594
22106
  }
21595
22107
  exports.fspl = fspl;
21596
22108
 
22109
+ /**
22110
+ * Decode and re-encode fusion-state bytes through the core codec.
22111
+ * @param {Uint8Array} bytes
22112
+ * @returns {Uint8Array}
22113
+ */
22114
+ function fusionStateBytesRoundTrip(bytes) {
22115
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
22116
+ const len0 = WASM_VECTOR_LEN;
22117
+ const ret = wasm.fusionStateBytesRoundTrip(ptr0, len0);
22118
+ if (ret[3]) {
22119
+ throw takeFromExternrefTable0(ret[2]);
22120
+ }
22121
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
22122
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
22123
+ return v2;
22124
+ }
22125
+ exports.fusionStateBytesRoundTrip = fusionStateBytesRoundTrip;
22126
+
21597
22127
  /**
21598
22128
  * Galileo NeQuick-G single-frequency ionospheric group delay (positive metres).
21599
22129
  *
@@ -25711,6 +26241,34 @@ function sbasProtectionLevels(geometry, model, k) {
25711
26241
  }
25712
26242
  exports.sbasProtectionLevels = sbasProtectionLevels;
25713
26243
 
26244
+ /**
26245
+ * Core scenario engine version string used in deterministic outputs.
26246
+ * @returns {string}
26247
+ */
26248
+ function scenarioEngineVersion() {
26249
+ let deferred1_0;
26250
+ let deferred1_1;
26251
+ try {
26252
+ const ret = wasm.scenarioEngineVersion();
26253
+ deferred1_0 = ret[0];
26254
+ deferred1_1 = ret[1];
26255
+ return getStringFromWasm0(ret[0], ret[1]);
26256
+ } finally {
26257
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
26258
+ }
26259
+ }
26260
+ exports.scenarioEngineVersion = scenarioEngineVersion;
26261
+
26262
+ /**
26263
+ * Core scenario schema version accepted by the binding.
26264
+ * @returns {number}
26265
+ */
26266
+ function scenarioSchemaVersion() {
26267
+ const ret = wasm.scenarioSchemaVersion();
26268
+ return ret >>> 0;
26269
+ }
26270
+ exports.scenarioSchemaVersion = scenarioSchemaVersion;
26271
+
25714
26272
  /**
25715
26273
  * Screen a primary satellite against a secondary TLE catalog for threshold TCAs.
25716
26274
  *
@@ -25995,6 +26553,70 @@ function sigmas(entries, options) {
25995
26553
  }
25996
26554
  exports.sigmas = sigmas;
25997
26555
 
26556
+ /**
26557
+ * Simulate a scenario from a JS object or JSON string and return JS arrays.
26558
+ * @param {any} value
26559
+ * @returns {any}
26560
+ */
26561
+ function simulateScenario(value) {
26562
+ const ret = wasm.simulateScenario(value);
26563
+ if (ret[2]) {
26564
+ throw takeFromExternrefTable0(ret[1]);
26565
+ }
26566
+ return takeFromExternrefTable0(ret[0]);
26567
+ }
26568
+ exports.simulateScenario = simulateScenario;
26569
+
26570
+ /**
26571
+ * Simulate a scenario from a JS object or JSON string and return deterministic JSON bytes.
26572
+ * @param {any} value
26573
+ * @returns {Uint8Array}
26574
+ */
26575
+ function simulateScenarioBytes(value) {
26576
+ const ret = wasm.simulateScenarioBytes(value);
26577
+ if (ret[3]) {
26578
+ throw takeFromExternrefTable0(ret[2]);
26579
+ }
26580
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
26581
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
26582
+ return v1;
26583
+ }
26584
+ exports.simulateScenarioBytes = simulateScenarioBytes;
26585
+
26586
+ /**
26587
+ * Simulate a scenario from JSON text and return JS arrays.
26588
+ * @param {string} text
26589
+ * @returns {any}
26590
+ */
26591
+ function simulateScenarioJson(text) {
26592
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
26593
+ const len0 = WASM_VECTOR_LEN;
26594
+ const ret = wasm.simulateScenarioJson(ptr0, len0);
26595
+ if (ret[2]) {
26596
+ throw takeFromExternrefTable0(ret[1]);
26597
+ }
26598
+ return takeFromExternrefTable0(ret[0]);
26599
+ }
26600
+ exports.simulateScenarioJson = simulateScenarioJson;
26601
+
26602
+ /**
26603
+ * Simulate a scenario from JSON text and return deterministic JSON bytes.
26604
+ * @param {string} text
26605
+ * @returns {Uint8Array}
26606
+ */
26607
+ function simulateScenarioJsonBytes(text) {
26608
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
26609
+ const len0 = WASM_VECTOR_LEN;
26610
+ const ret = wasm.simulateScenarioJsonBytes(ptr0, len0);
26611
+ if (ret[3]) {
26612
+ throw takeFromExternrefTable0(ret[2]);
26613
+ }
26614
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
26615
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
26616
+ return v2;
26617
+ }
26618
+ exports.simulateScenarioJsonBytes = simulateScenarioJsonBytes;
26619
+
25998
26620
  /**
25999
26621
  * Sample skewness of a residual set.
26000
26622
  *
@@ -26576,6 +27198,42 @@ function sp3PreciseEphemerisSamples(sp3) {
26576
27198
  }
26577
27199
  exports.sp3PreciseEphemerisSamples = sp3PreciseEphemerisSamples;
26578
27200
 
27201
+ /**
27202
+ * Spectral separation coefficient between two modulations, in dB-Hz.
27203
+ * @param {SignalAnalysisModulation} desired
27204
+ * @param {SignalAnalysisModulation} interference
27205
+ * @param {number} receiver_bandwidth_hz
27206
+ * @returns {number}
27207
+ */
27208
+ function spectralSeparationCoefficientDbHz(desired, interference, receiver_bandwidth_hz) {
27209
+ _assertClass(desired, SignalAnalysisModulation);
27210
+ _assertClass(interference, SignalAnalysisModulation);
27211
+ const ret = wasm.spectralSeparationCoefficientDbHz(desired.__wbg_ptr, interference.__wbg_ptr, receiver_bandwidth_hz);
27212
+ if (ret[2]) {
27213
+ throw takeFromExternrefTable0(ret[1]);
27214
+ }
27215
+ return ret[0];
27216
+ }
27217
+ exports.spectralSeparationCoefficientDbHz = spectralSeparationCoefficientDbHz;
27218
+
27219
+ /**
27220
+ * Spectral separation coefficient between two modulations, in hertz.
27221
+ * @param {SignalAnalysisModulation} desired
27222
+ * @param {SignalAnalysisModulation} interference
27223
+ * @param {number} receiver_bandwidth_hz
27224
+ * @returns {number}
27225
+ */
27226
+ function spectralSeparationCoefficientHz(desired, interference, receiver_bandwidth_hz) {
27227
+ _assertClass(desired, SignalAnalysisModulation);
27228
+ _assertClass(interference, SignalAnalysisModulation);
27229
+ const ret = wasm.spectralSeparationCoefficientHz(desired.__wbg_ptr, interference.__wbg_ptr, receiver_bandwidth_hz);
27230
+ if (ret[2]) {
27231
+ throw takeFromExternrefTable0(ret[1]);
27232
+ }
27233
+ return ret[0];
27234
+ }
27235
+ exports.spectralSeparationCoefficientHz = spectralSeparationCoefficientHz;
27236
+
26579
27237
  /**
26580
27238
  * Continuous seconds since J2000 for a split Julian date.
26581
27239
  * @param {number} jd_whole
@@ -27964,6 +28622,9 @@ const GeometryQualityFinalization = (typeof FinalizationRegistry === 'undefined'
27964
28622
  const GlonassRecordJsFinalization = (typeof FinalizationRegistry === 'undefined')
27965
28623
  ? { register: () => {}, unregister: () => {} }
27966
28624
  : new FinalizationRegistry(ptr => wasm.__wbg_glonassrecordjs_free(ptr, 1));
28625
+ const GnssInsFilterFinalization = (typeof FinalizationRegistry === 'undefined')
28626
+ ? { register: () => {}, unregister: () => {} }
28627
+ : new FinalizationRegistry(ptr => wasm.__wbg_gnssinsfilter_free(ptr, 1));
27967
28628
  const GnssPassFinalization = (typeof FinalizationRegistry === 'undefined')
27968
28629
  ? { register: () => {}, unregister: () => {} }
27969
28630
  : new FinalizationRegistry(ptr => wasm.__wbg_gnsspass_free(ptr, 1));
@@ -28237,6 +28898,9 @@ const SbasProtectionFinalization = (typeof FinalizationRegistry === 'undefined')
28237
28898
  const SbasSisErrorFinalization = (typeof FinalizationRegistry === 'undefined')
28238
28899
  ? { register: () => {}, unregister: () => {} }
28239
28900
  : new FinalizationRegistry(ptr => wasm.__wbg_sbassiserror_free(ptr, 1));
28901
+ const SignalAnalysisModulationFinalization = (typeof FinalizationRegistry === 'undefined')
28902
+ ? { register: () => {}, unregister: () => {} }
28903
+ : new FinalizationRegistry(ptr => wasm.__wbg_signalanalysismodulation_free(ptr, 1));
28240
28904
  const SignalPolicyFinalization = (typeof FinalizationRegistry === 'undefined')
28241
28905
  ? { register: () => {}, unregister: () => {} }
28242
28906
  : new FinalizationRegistry(ptr => wasm.__wbg_signalpolicy_free(ptr, 1));