@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.
package/pkg/sidereon.js CHANGED
@@ -3507,6 +3507,21 @@ export class DgnssSolution {
3507
3507
  }
3508
3508
  if (Symbol.dispose) DgnssSolution.prototype[Symbol.dispose] = DgnssSolution.prototype.free;
3509
3509
 
3510
+ /**
3511
+ * Early-late DLL processing mode for thermal-noise jitter.
3512
+ * @enum {0 | 1}
3513
+ */
3514
+ export const DllProcessing = Object.freeze({
3515
+ /**
3516
+ * Coherent early-minus-late processing.
3517
+ */
3518
+ Coherent: 0, "0": "Coherent",
3519
+ /**
3520
+ * Non-coherent early-minus-late power processing with squaring loss.
3521
+ */
3522
+ NonCoherent: 1, "1": "NonCoherent",
3523
+ });
3524
+
3510
3525
  /**
3511
3526
  * GNSS dilution-of-precision scalars.
3512
3527
  */
@@ -5645,6 +5660,229 @@ export class GlonassRecordJs {
5645
5660
  }
5646
5661
  if (Symbol.dispose) GlonassRecordJs.prototype[Symbol.dispose] = GlonassRecordJs.prototype.free;
5647
5662
 
5663
+ /**
5664
+ * Stateful GNSS/INS filter resource.
5665
+ */
5666
+ export class GnssInsFilter {
5667
+ static __wrap(ptr) {
5668
+ const obj = Object.create(GnssInsFilter.prototype);
5669
+ obj.__wbg_ptr = ptr;
5670
+ GnssInsFilterFinalization.register(obj, obj.__wbg_ptr, obj);
5671
+ return obj;
5672
+ }
5673
+ __destroy_into_raw() {
5674
+ const ptr = this.__wbg_ptr;
5675
+ this.__wbg_ptr = 0;
5676
+ GnssInsFilterFinalization.unregister(this);
5677
+ return ptr;
5678
+ }
5679
+ free() {
5680
+ const ptr = this.__destroy_into_raw();
5681
+ wasm.__wbg_gnssinsfilter_free(ptr, 0);
5682
+ }
5683
+ /**
5684
+ * Replace retained-history capacities for later time-sync replay.
5685
+ * @param {any} config
5686
+ */
5687
+ configureTimeSync(config) {
5688
+ const ret = wasm.gnssinsfilter_configureTimeSync(this.__wbg_ptr, config);
5689
+ if (ret[1]) {
5690
+ throw takeFromExternrefTable0(ret[0]);
5691
+ }
5692
+ }
5693
+ /**
5694
+ * Encode the current fusion state with the core versioned binary codec.
5695
+ * @returns {Uint8Array}
5696
+ */
5697
+ encodeState() {
5698
+ const ret = wasm.gnssinsfilter_encodeState(this.__wbg_ptr);
5699
+ if (ret[3]) {
5700
+ throw takeFromExternrefTable0(ret[2]);
5701
+ }
5702
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
5703
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
5704
+ return v1;
5705
+ }
5706
+ /**
5707
+ * Build a filter, then restore its state from versioned fusion-state bytes.
5708
+ * @param {any} config
5709
+ * @param {Uint8Array} bytes
5710
+ * @returns {GnssInsFilter}
5711
+ */
5712
+ static fromStateBytes(config, bytes) {
5713
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
5714
+ const len0 = WASM_VECTOR_LEN;
5715
+ const ret = wasm.gnssinsfilter_fromStateBytes(config, ptr0, len0);
5716
+ if (ret[2]) {
5717
+ throw takeFromExternrefTable0(ret[1]);
5718
+ }
5719
+ return GnssInsFilter.__wrap(ret[0]);
5720
+ }
5721
+ /**
5722
+ * Build a filter from a JS configuration object.
5723
+ * @param {any} config
5724
+ */
5725
+ constructor(config) {
5726
+ const ret = wasm.gnssinsfilter_new(config);
5727
+ if (ret[2]) {
5728
+ throw takeFromExternrefTable0(ret[1]);
5729
+ }
5730
+ this.__wbg_ptr = ret[0];
5731
+ GnssInsFilterFinalization.register(this, this.__wbg_ptr, this);
5732
+ return this;
5733
+ }
5734
+ /**
5735
+ * Propagate the filter with one IMU rate or increment sample.
5736
+ * @param {any} sample
5737
+ * @returns {any}
5738
+ */
5739
+ propagate(sample) {
5740
+ const ret = wasm.gnssinsfilter_propagate(this.__wbg_ptr, sample);
5741
+ if (ret[2]) {
5742
+ throw takeFromExternrefTable0(ret[1]);
5743
+ }
5744
+ return takeFromExternrefTable0(ret[0]);
5745
+ }
5746
+ /**
5747
+ * Propagate the filter with a JS array of IMU samples.
5748
+ * @param {any} samples
5749
+ * @returns {any}
5750
+ */
5751
+ propagateBatch(samples) {
5752
+ const ret = wasm.gnssinsfilter_propagateBatch(this.__wbg_ptr, samples);
5753
+ if (ret[2]) {
5754
+ throw takeFromExternrefTable0(ret[1]);
5755
+ }
5756
+ return takeFromExternrefTable0(ret[0]);
5757
+ }
5758
+ /**
5759
+ * Restore this filter from versioned fusion-state bytes.
5760
+ * @param {Uint8Array} bytes
5761
+ */
5762
+ restoreState(bytes) {
5763
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
5764
+ const len0 = WASM_VECTOR_LEN;
5765
+ const ret = wasm.gnssinsfilter_restoreState(this.__wbg_ptr, ptr0, len0);
5766
+ if (ret[1]) {
5767
+ throw takeFromExternrefTable0(ret[0]);
5768
+ }
5769
+ }
5770
+ /**
5771
+ * Current INS state, covariance, and last body-rate diagnostic.
5772
+ * @returns {any}
5773
+ */
5774
+ state() {
5775
+ const ret = wasm.gnssinsfilter_state(this.__wbg_ptr);
5776
+ if (ret[2]) {
5777
+ throw takeFromExternrefTable0(ret[1]);
5778
+ }
5779
+ return takeFromExternrefTable0(ret[0]);
5780
+ }
5781
+ /**
5782
+ * Current tight-coupling receiver-clock state.
5783
+ * @returns {any}
5784
+ */
5785
+ tightClockState() {
5786
+ const ret = wasm.gnssinsfilter_tightClockState(this.__wbg_ptr);
5787
+ if (ret[2]) {
5788
+ throw takeFromExternrefTable0(ret[1]);
5789
+ }
5790
+ return takeFromExternrefTable0(ret[0]);
5791
+ }
5792
+ /**
5793
+ * Current retained-history capacity and occupancy.
5794
+ * @returns {any}
5795
+ */
5796
+ timeSyncStatus() {
5797
+ const ret = wasm.gnssinsfilter_timeSyncStatus(this.__wbg_ptr);
5798
+ if (ret[2]) {
5799
+ throw takeFromExternrefTable0(ret[1]);
5800
+ }
5801
+ return takeFromExternrefTable0(ret[0]);
5802
+ }
5803
+ /**
5804
+ * Apply a loose position or position-velocity GNSS fix at the current epoch.
5805
+ * @param {any} measurement
5806
+ * @returns {any}
5807
+ */
5808
+ updateLoose(measurement) {
5809
+ const ret = wasm.gnssinsfilter_updateLoose(this.__wbg_ptr, measurement);
5810
+ if (ret[2]) {
5811
+ throw takeFromExternrefTable0(ret[1]);
5812
+ }
5813
+ return takeFromExternrefTable0(ret[0]);
5814
+ }
5815
+ /**
5816
+ * Apply a loose GNSS fix, replaying retained IMU checkpoints when it is late.
5817
+ * @param {any} measurement
5818
+ * @returns {any}
5819
+ */
5820
+ updateLooseTimeSync(measurement) {
5821
+ const ret = wasm.gnssinsfilter_updateLooseTimeSync(this.__wbg_ptr, measurement);
5822
+ if (ret[2]) {
5823
+ throw takeFromExternrefTable0(ret[1]);
5824
+ }
5825
+ return takeFromExternrefTable0(ret[0]);
5826
+ }
5827
+ /**
5828
+ * Apply a tight raw-observation epoch against a broadcast ephemeris source.
5829
+ * @param {BroadcastEphemeris} broadcast
5830
+ * @param {any} epoch
5831
+ * @returns {any}
5832
+ */
5833
+ updateTightBroadcast(broadcast, epoch) {
5834
+ _assertClass(broadcast, BroadcastEphemeris);
5835
+ const ret = wasm.gnssinsfilter_updateTightBroadcast(this.__wbg_ptr, broadcast.__wbg_ptr, epoch);
5836
+ if (ret[2]) {
5837
+ throw takeFromExternrefTable0(ret[1]);
5838
+ }
5839
+ return takeFromExternrefTable0(ret[0]);
5840
+ }
5841
+ /**
5842
+ * Apply a tight broadcast update, replaying retained IMU checkpoints when it is late.
5843
+ * @param {BroadcastEphemeris} broadcast
5844
+ * @param {any} epoch
5845
+ * @returns {any}
5846
+ */
5847
+ updateTightBroadcastTimeSync(broadcast, epoch) {
5848
+ _assertClass(broadcast, BroadcastEphemeris);
5849
+ const ret = wasm.gnssinsfilter_updateTightBroadcastTimeSync(this.__wbg_ptr, broadcast.__wbg_ptr, epoch);
5850
+ if (ret[2]) {
5851
+ throw takeFromExternrefTable0(ret[1]);
5852
+ }
5853
+ return takeFromExternrefTable0(ret[0]);
5854
+ }
5855
+ /**
5856
+ * Apply a tight raw-observation epoch against an SP3 source.
5857
+ * @param {Sp3} sp3
5858
+ * @param {any} epoch
5859
+ * @returns {any}
5860
+ */
5861
+ updateTightSp3(sp3, epoch) {
5862
+ _assertClass(sp3, Sp3);
5863
+ const ret = wasm.gnssinsfilter_updateTightSp3(this.__wbg_ptr, sp3.__wbg_ptr, epoch);
5864
+ if (ret[2]) {
5865
+ throw takeFromExternrefTable0(ret[1]);
5866
+ }
5867
+ return takeFromExternrefTable0(ret[0]);
5868
+ }
5869
+ /**
5870
+ * Apply a tight SP3 update, replaying retained IMU checkpoints when it is late.
5871
+ * @param {Sp3} sp3
5872
+ * @param {any} epoch
5873
+ * @returns {any}
5874
+ */
5875
+ updateTightSp3TimeSync(sp3, epoch) {
5876
+ _assertClass(sp3, Sp3);
5877
+ const ret = wasm.gnssinsfilter_updateTightSp3TimeSync(this.__wbg_ptr, sp3.__wbg_ptr, epoch);
5878
+ if (ret[2]) {
5879
+ throw takeFromExternrefTable0(ret[1]);
5880
+ }
5881
+ return takeFromExternrefTable0(ret[0]);
5882
+ }
5883
+ }
5884
+ if (Symbol.dispose) GnssInsFilter.prototype[Symbol.dispose] = GnssInsFilter.prototype.free;
5885
+
5648
5886
  /**
5649
5887
  * One sampled rise/set/peak visibility pass, from `gnssPasses`.
5650
5888
  */
@@ -14649,6 +14887,239 @@ export class SbasSisError {
14649
14887
  }
14650
14888
  if (Symbol.dispose) SbasSisError.prototype[Symbol.dispose] = SbasSisError.prototype.free;
14651
14889
 
14890
+ /**
14891
+ * Stable GNSS signal modulation used by the analysis functions.
14892
+ */
14893
+ export class SignalAnalysisModulation {
14894
+ static __wrap(ptr) {
14895
+ const obj = Object.create(SignalAnalysisModulation.prototype);
14896
+ obj.__wbg_ptr = ptr;
14897
+ SignalAnalysisModulationFinalization.register(obj, obj.__wbg_ptr, obj);
14898
+ return obj;
14899
+ }
14900
+ __destroy_into_raw() {
14901
+ const ptr = this.__wbg_ptr;
14902
+ this.__wbg_ptr = 0;
14903
+ SignalAnalysisModulationFinalization.unregister(this);
14904
+ return ptr;
14905
+ }
14906
+ free() {
14907
+ const ptr = this.__destroy_into_raw();
14908
+ wasm.__wbg_signalanalysismodulation_free(ptr, 0);
14909
+ }
14910
+ /**
14911
+ * Normalized in-band autocorrelation at a delay.
14912
+ * @param {number} delay_s
14913
+ * @param {number} receiver_bandwidth_hz
14914
+ * @returns {number}
14915
+ */
14916
+ autocorrelation(delay_s, receiver_bandwidth_hz) {
14917
+ const ret = wasm.signalanalysismodulation_autocorrelation(this.__wbg_ptr, delay_s, receiver_bandwidth_hz);
14918
+ if (ret[2]) {
14919
+ throw takeFromExternrefTable0(ret[1]);
14920
+ }
14921
+ return ret[0];
14922
+ }
14923
+ /**
14924
+ * Build a BPSK(n) modulation, where the code rate is `n * 1.023 MHz`.
14925
+ * @param {number} order
14926
+ * @returns {SignalAnalysisModulation}
14927
+ */
14928
+ static bpsk(order) {
14929
+ const ret = wasm.signalanalysismodulation_bpsk(order);
14930
+ if (ret[2]) {
14931
+ throw takeFromExternrefTable0(ret[1]);
14932
+ }
14933
+ return SignalAnalysisModulation.__wrap(ret[0]);
14934
+ }
14935
+ /**
14936
+ * Build Galileo E1 CBOC(6,1,1/11) with the minus chip-pulse convention.
14937
+ * @returns {SignalAnalysisModulation}
14938
+ */
14939
+ static cboc611Over11Minus() {
14940
+ const ret = wasm.signalanalysismodulation_cboc611Over11Minus();
14941
+ return SignalAnalysisModulation.__wrap(ret);
14942
+ }
14943
+ /**
14944
+ * Build Galileo E1 CBOC(6,1,1/11) with the plus chip-pulse convention.
14945
+ * @returns {SignalAnalysisModulation}
14946
+ */
14947
+ static cboc611Over11Plus() {
14948
+ const ret = wasm.signalanalysismodulation_cboc611Over11Plus();
14949
+ return SignalAnalysisModulation.__wrap(ret);
14950
+ }
14951
+ /**
14952
+ * Code rate in hertz when the modulation has one unambiguous rate.
14953
+ * @returns {number}
14954
+ */
14955
+ get codeRateHz() {
14956
+ const ret = wasm.signalanalysismodulation_codeRateHz(this.__wbg_ptr);
14957
+ if (ret[2]) {
14958
+ throw takeFromExternrefTable0(ret[1]);
14959
+ }
14960
+ return ret[0];
14961
+ }
14962
+ /**
14963
+ * Build a cosine-phased BOC(m,n) modulation.
14964
+ * @param {number} m
14965
+ * @param {number} n
14966
+ * @returns {SignalAnalysisModulation}
14967
+ */
14968
+ static cosineBoc(m, n) {
14969
+ const ret = wasm.signalanalysismodulation_cosineBoc(m, n);
14970
+ if (ret[2]) {
14971
+ throw takeFromExternrefTable0(ret[1]);
14972
+ }
14973
+ return SignalAnalysisModulation.__wrap(ret[0]);
14974
+ }
14975
+ /**
14976
+ * Published lower bound for DLL code-delay jitter.
14977
+ * @param {any} options
14978
+ * @returns {any}
14979
+ */
14980
+ dllLowerBound(options) {
14981
+ const ret = wasm.signalanalysismodulation_dllLowerBound(this.__wbg_ptr, options);
14982
+ if (ret[2]) {
14983
+ throw takeFromExternrefTable0(ret[1]);
14984
+ }
14985
+ return takeFromExternrefTable0(ret[0]);
14986
+ }
14987
+ /**
14988
+ * Early-late DLL thermal-noise jitter for this modulation.
14989
+ * @param {any} options
14990
+ * @param {DllProcessing} processing
14991
+ * @returns {any}
14992
+ */
14993
+ dllThermalNoiseJitter(options, processing) {
14994
+ const ret = wasm.signalanalysismodulation_dllThermalNoiseJitter(this.__wbg_ptr, options, processing);
14995
+ if (ret[2]) {
14996
+ throw takeFromExternrefTable0(ret[1]);
14997
+ }
14998
+ return takeFromExternrefTable0(ret[0]);
14999
+ }
15000
+ /**
15001
+ * Fraction of total signal power inside a two-sided receiver bandwidth.
15002
+ * @param {number} receiver_bandwidth_hz
15003
+ * @returns {number}
15004
+ */
15005
+ fractionPowerInBand(receiver_bandwidth_hz) {
15006
+ const ret = wasm.signalanalysismodulation_fractionPowerInBand(this.__wbg_ptr, receiver_bandwidth_hz);
15007
+ if (ret[2]) {
15008
+ throw takeFromExternrefTable0(ret[1]);
15009
+ }
15010
+ return ret[0];
15011
+ }
15012
+ /**
15013
+ * Stable core label for this modulation.
15014
+ * @returns {string}
15015
+ */
15016
+ get label() {
15017
+ let deferred1_0;
15018
+ let deferred1_1;
15019
+ try {
15020
+ const ret = wasm.signalanalysismodulation_label(this.__wbg_ptr);
15021
+ deferred1_0 = ret[0];
15022
+ deferred1_1 = ret[1];
15023
+ return getStringFromWasm0(ret[0], ret[1]);
15024
+ } finally {
15025
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
15026
+ }
15027
+ }
15028
+ /**
15029
+ * Build the normalized MBOC(6,1,1/11) spectrum.
15030
+ * @returns {SignalAnalysisModulation}
15031
+ */
15032
+ static mboc611Over11() {
15033
+ const ret = wasm.signalanalysismodulation_mboc611Over11();
15034
+ return SignalAnalysisModulation.__wrap(ret);
15035
+ }
15036
+ /**
15037
+ * One-path early-late multipath error envelope on a delay grid.
15038
+ * @param {any} options
15039
+ * @param {Float64Array} delay_chips
15040
+ * @returns {any}
15041
+ */
15042
+ multipathErrorEnvelope(options, delay_chips) {
15043
+ const ptr0 = passArrayF64ToWasm0(delay_chips, wasm.__wbindgen_malloc);
15044
+ const len0 = WASM_VECTOR_LEN;
15045
+ const ret = wasm.signalanalysismodulation_multipathErrorEnvelope(this.__wbg_ptr, options, ptr0, len0);
15046
+ if (ret[2]) {
15047
+ throw takeFromExternrefTable0(ret[1]);
15048
+ }
15049
+ return takeFromExternrefTable0(ret[0]);
15050
+ }
15051
+ /**
15052
+ * Signal power inside a two-sided receiver bandwidth.
15053
+ * @param {number} receiver_bandwidth_hz
15054
+ * @returns {number}
15055
+ */
15056
+ powerInBand(receiver_bandwidth_hz) {
15057
+ const ret = wasm.signalanalysismodulation_powerInBand(this.__wbg_ptr, receiver_bandwidth_hz);
15058
+ if (ret[2]) {
15059
+ throw takeFromExternrefTable0(ret[1]);
15060
+ }
15061
+ return ret[0];
15062
+ }
15063
+ /**
15064
+ * Normalized power spectral density at an offset frequency, in `1/Hz`.
15065
+ * @param {number} offset_hz
15066
+ * @returns {number}
15067
+ */
15068
+ psdHz(offset_hz) {
15069
+ const ret = wasm.signalanalysismodulation_psdHz(this.__wbg_ptr, offset_hz);
15070
+ if (ret[2]) {
15071
+ throw takeFromExternrefTable0(ret[1]);
15072
+ }
15073
+ return ret[0];
15074
+ }
15075
+ /**
15076
+ * RMS, or Gabor, bandwidth over a two-sided receiver bandwidth.
15077
+ * @param {number} receiver_bandwidth_hz
15078
+ * @returns {number}
15079
+ */
15080
+ rmsBandwidthHz(receiver_bandwidth_hz) {
15081
+ const ret = wasm.signalanalysismodulation_rmsBandwidthHz(this.__wbg_ptr, receiver_bandwidth_hz);
15082
+ if (ret[2]) {
15083
+ throw takeFromExternrefTable0(ret[1]);
15084
+ }
15085
+ return ret[0];
15086
+ }
15087
+ /**
15088
+ * Build a sine-phased BOC(m,n) modulation.
15089
+ * @param {number} m
15090
+ * @param {number} n
15091
+ * @returns {SignalAnalysisModulation}
15092
+ */
15093
+ static sineBoc(m, n) {
15094
+ const ret = wasm.signalanalysismodulation_sineBoc(m, n);
15095
+ if (ret[2]) {
15096
+ throw takeFromExternrefTable0(ret[1]);
15097
+ }
15098
+ return SignalAnalysisModulation.__wrap(ret[0]);
15099
+ }
15100
+ /**
15101
+ * Build the GPS L1C pilot TMBOC(6,1,4/33) spectrum.
15102
+ * @returns {SignalAnalysisModulation}
15103
+ */
15104
+ static tmboc614Over33() {
15105
+ const ret = wasm.signalanalysismodulation_tmboc614Over33();
15106
+ return SignalAnalysisModulation.__wrap(ret);
15107
+ }
15108
+ /**
15109
+ * SSC against white interference normalized over the receiver bandwidth.
15110
+ * @param {number} receiver_bandwidth_hz
15111
+ * @returns {number}
15112
+ */
15113
+ whiteNoiseSpectralSeparationHz(receiver_bandwidth_hz) {
15114
+ const ret = wasm.signalanalysismodulation_whiteNoiseSpectralSeparationHz(this.__wbg_ptr, receiver_bandwidth_hz);
15115
+ if (ret[2]) {
15116
+ throw takeFromExternrefTable0(ret[1]);
15117
+ }
15118
+ return ret[0];
15119
+ }
15120
+ }
15121
+ if (Symbol.dispose) SignalAnalysisModulation.prototype[Symbol.dispose] = SignalAnalysisModulation.prototype.free;
15122
+
14652
15123
  /**
14653
15124
  * Per-constellation single-frequency pseudorange code-selection policy. Build
14654
15125
  * with `new SignalPolicy()` then chain `.withSystem(system, codes)`, or use
@@ -19936,6 +20407,23 @@ export function defaultPair(system) {
19936
20407
  return ret === 0 ? undefined : CarrierPair.__wrap(ret);
19937
20408
  }
19938
20409
 
20410
+ /**
20411
+ * Default scenario seed as a hexadecimal string.
20412
+ * @returns {string}
20413
+ */
20414
+ export function defaultScenarioSeedHex() {
20415
+ let deferred1_0;
20416
+ let deferred1_1;
20417
+ try {
20418
+ const ret = wasm.defaultScenarioSeedHex();
20419
+ deferred1_0 = ret[0];
20420
+ deferred1_1 = ret[1];
20421
+ return getStringFromWasm0(ret[0], ret[1]);
20422
+ } finally {
20423
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
20424
+ }
20425
+ }
20426
+
19939
20427
  /**
19940
20428
  * Single-frequency carrier used by the SPP ionosphere-scaling policy.
19941
20429
  * @param {GnssSystem} system
@@ -20250,6 +20738,25 @@ export function eclipseStatus(satellite_position_km, sun_position_km) {
20250
20738
  return v3;
20251
20739
  }
20252
20740
 
20741
+ /**
20742
+ * Effective C/N0 degradation for one finite-band interference term.
20743
+ * @param {SignalAnalysisModulation} desired
20744
+ * @param {SignalAnalysisModulation} interference
20745
+ * @param {number} cn0_db_hz
20746
+ * @param {number} receiver_bandwidth_hz
20747
+ * @param {number} power_ratio_to_carrier
20748
+ * @returns {any}
20749
+ */
20750
+ export function effectiveCn0Degradation(desired, interference, cn0_db_hz, receiver_bandwidth_hz, power_ratio_to_carrier) {
20751
+ _assertClass(desired, SignalAnalysisModulation);
20752
+ _assertClass(interference, SignalAnalysisModulation);
20753
+ const ret = wasm.effectiveCn0Degradation(desired.__wbg_ptr, interference.__wbg_ptr, cn0_db_hz, receiver_bandwidth_hz, power_ratio_to_carrier);
20754
+ if (ret[2]) {
20755
+ throw takeFromExternrefTable0(ret[1]);
20756
+ }
20757
+ return takeFromExternrefTable0(ret[0]);
20758
+ }
20759
+
20253
20760
  /**
20254
20761
  * Ellipsoidal height `h = H + N` (metres above the WGS84 ellipsoid) from an
20255
20762
  * orthometric height and a geodetic position in radians, using the embedded
@@ -21252,6 +21759,23 @@ export function fspl(distance_km, frequency_mhz) {
21252
21759
  return ret[0];
21253
21760
  }
21254
21761
 
21762
+ /**
21763
+ * Decode and re-encode fusion-state bytes through the core codec.
21764
+ * @param {Uint8Array} bytes
21765
+ * @returns {Uint8Array}
21766
+ */
21767
+ export function fusionStateBytesRoundTrip(bytes) {
21768
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
21769
+ const len0 = WASM_VECTOR_LEN;
21770
+ const ret = wasm.fusionStateBytesRoundTrip(ptr0, len0);
21771
+ if (ret[3]) {
21772
+ throw takeFromExternrefTable0(ret[2]);
21773
+ }
21774
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
21775
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
21776
+ return v2;
21777
+ }
21778
+
21255
21779
  /**
21256
21780
  * Galileo NeQuick-G single-frequency ionospheric group delay (positive metres).
21257
21781
  *
@@ -25157,6 +25681,32 @@ export function sbasProtectionLevels(geometry, model, k) {
25157
25681
  return SbasProtection.__wrap(ret[0]);
25158
25682
  }
25159
25683
 
25684
+ /**
25685
+ * Core scenario engine version string used in deterministic outputs.
25686
+ * @returns {string}
25687
+ */
25688
+ export function scenarioEngineVersion() {
25689
+ let deferred1_0;
25690
+ let deferred1_1;
25691
+ try {
25692
+ const ret = wasm.scenarioEngineVersion();
25693
+ deferred1_0 = ret[0];
25694
+ deferred1_1 = ret[1];
25695
+ return getStringFromWasm0(ret[0], ret[1]);
25696
+ } finally {
25697
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
25698
+ }
25699
+ }
25700
+
25701
+ /**
25702
+ * Core scenario schema version accepted by the binding.
25703
+ * @returns {number}
25704
+ */
25705
+ export function scenarioSchemaVersion() {
25706
+ const ret = wasm.scenarioSchemaVersion();
25707
+ return ret >>> 0;
25708
+ }
25709
+
25160
25710
  /**
25161
25711
  * Screen a primary satellite against a secondary TLE catalog for threshold TCAs.
25162
25712
  *
@@ -25428,6 +25978,66 @@ export function sigmas(entries, options) {
25428
25978
  return SatelliteVector.__wrap(ret[0]);
25429
25979
  }
25430
25980
 
25981
+ /**
25982
+ * Simulate a scenario from a JS object or JSON string and return JS arrays.
25983
+ * @param {any} value
25984
+ * @returns {any}
25985
+ */
25986
+ export function simulateScenario(value) {
25987
+ const ret = wasm.simulateScenario(value);
25988
+ if (ret[2]) {
25989
+ throw takeFromExternrefTable0(ret[1]);
25990
+ }
25991
+ return takeFromExternrefTable0(ret[0]);
25992
+ }
25993
+
25994
+ /**
25995
+ * Simulate a scenario from a JS object or JSON string and return deterministic JSON bytes.
25996
+ * @param {any} value
25997
+ * @returns {Uint8Array}
25998
+ */
25999
+ export function simulateScenarioBytes(value) {
26000
+ const ret = wasm.simulateScenarioBytes(value);
26001
+ if (ret[3]) {
26002
+ throw takeFromExternrefTable0(ret[2]);
26003
+ }
26004
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
26005
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
26006
+ return v1;
26007
+ }
26008
+
26009
+ /**
26010
+ * Simulate a scenario from JSON text and return JS arrays.
26011
+ * @param {string} text
26012
+ * @returns {any}
26013
+ */
26014
+ export function simulateScenarioJson(text) {
26015
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
26016
+ const len0 = WASM_VECTOR_LEN;
26017
+ const ret = wasm.simulateScenarioJson(ptr0, len0);
26018
+ if (ret[2]) {
26019
+ throw takeFromExternrefTable0(ret[1]);
26020
+ }
26021
+ return takeFromExternrefTable0(ret[0]);
26022
+ }
26023
+
26024
+ /**
26025
+ * Simulate a scenario from JSON text and return deterministic JSON bytes.
26026
+ * @param {string} text
26027
+ * @returns {Uint8Array}
26028
+ */
26029
+ export function simulateScenarioJsonBytes(text) {
26030
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
26031
+ const len0 = WASM_VECTOR_LEN;
26032
+ const ret = wasm.simulateScenarioJsonBytes(ptr0, len0);
26033
+ if (ret[3]) {
26034
+ throw takeFromExternrefTable0(ret[2]);
26035
+ }
26036
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
26037
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
26038
+ return v2;
26039
+ }
26040
+
25431
26041
  /**
25432
26042
  * Sample skewness of a residual set.
25433
26043
  *
@@ -25982,6 +26592,40 @@ export function sp3PreciseEphemerisSamples(sp3) {
25982
26592
  return takeFromExternrefTable0(ret[0]);
25983
26593
  }
25984
26594
 
26595
+ /**
26596
+ * Spectral separation coefficient between two modulations, in dB-Hz.
26597
+ * @param {SignalAnalysisModulation} desired
26598
+ * @param {SignalAnalysisModulation} interference
26599
+ * @param {number} receiver_bandwidth_hz
26600
+ * @returns {number}
26601
+ */
26602
+ export function spectralSeparationCoefficientDbHz(desired, interference, receiver_bandwidth_hz) {
26603
+ _assertClass(desired, SignalAnalysisModulation);
26604
+ _assertClass(interference, SignalAnalysisModulation);
26605
+ const ret = wasm.spectralSeparationCoefficientDbHz(desired.__wbg_ptr, interference.__wbg_ptr, receiver_bandwidth_hz);
26606
+ if (ret[2]) {
26607
+ throw takeFromExternrefTable0(ret[1]);
26608
+ }
26609
+ return ret[0];
26610
+ }
26611
+
26612
+ /**
26613
+ * Spectral separation coefficient between two modulations, in hertz.
26614
+ * @param {SignalAnalysisModulation} desired
26615
+ * @param {SignalAnalysisModulation} interference
26616
+ * @param {number} receiver_bandwidth_hz
26617
+ * @returns {number}
26618
+ */
26619
+ export function spectralSeparationCoefficientHz(desired, interference, receiver_bandwidth_hz) {
26620
+ _assertClass(desired, SignalAnalysisModulation);
26621
+ _assertClass(interference, SignalAnalysisModulation);
26622
+ const ret = wasm.spectralSeparationCoefficientHz(desired.__wbg_ptr, interference.__wbg_ptr, receiver_bandwidth_hz);
26623
+ if (ret[2]) {
26624
+ throw takeFromExternrefTable0(ret[1]);
26625
+ }
26626
+ return ret[0];
26627
+ }
26628
+
25985
26629
  /**
25986
26630
  * Continuous seconds since J2000 for a split Julian date.
25987
26631
  * @param {number} jd_whole
@@ -27331,6 +27975,9 @@ const GeometryQualityFinalization = (typeof FinalizationRegistry === 'undefined'
27331
27975
  const GlonassRecordJsFinalization = (typeof FinalizationRegistry === 'undefined')
27332
27976
  ? { register: () => {}, unregister: () => {} }
27333
27977
  : new FinalizationRegistry(ptr => wasm.__wbg_glonassrecordjs_free(ptr, 1));
27978
+ const GnssInsFilterFinalization = (typeof FinalizationRegistry === 'undefined')
27979
+ ? { register: () => {}, unregister: () => {} }
27980
+ : new FinalizationRegistry(ptr => wasm.__wbg_gnssinsfilter_free(ptr, 1));
27334
27981
  const GnssPassFinalization = (typeof FinalizationRegistry === 'undefined')
27335
27982
  ? { register: () => {}, unregister: () => {} }
27336
27983
  : new FinalizationRegistry(ptr => wasm.__wbg_gnsspass_free(ptr, 1));
@@ -27604,6 +28251,9 @@ const SbasProtectionFinalization = (typeof FinalizationRegistry === 'undefined')
27604
28251
  const SbasSisErrorFinalization = (typeof FinalizationRegistry === 'undefined')
27605
28252
  ? { register: () => {}, unregister: () => {} }
27606
28253
  : new FinalizationRegistry(ptr => wasm.__wbg_sbassiserror_free(ptr, 1));
28254
+ const SignalAnalysisModulationFinalization = (typeof FinalizationRegistry === 'undefined')
28255
+ ? { register: () => {}, unregister: () => {} }
28256
+ : new FinalizationRegistry(ptr => wasm.__wbg_signalanalysismodulation_free(ptr, 1));
27607
28257
  const SignalPolicyFinalization = (typeof FinalizationRegistry === 'undefined')
27608
28258
  ? { register: () => {}, unregister: () => {} }
27609
28259
  : new FinalizationRegistry(ptr => wasm.__wbg_signalpolicy_free(ptr, 1));