@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.
@@ -1371,6 +1371,20 @@ export class DgnssSolution {
1371
1371
  readonly usedSats: string[];
1372
1372
  }
1373
1373
 
1374
+ /**
1375
+ * Early-late DLL processing mode for thermal-noise jitter.
1376
+ */
1377
+ export enum DllProcessing {
1378
+ /**
1379
+ * Coherent early-minus-late processing.
1380
+ */
1381
+ Coherent = 0,
1382
+ /**
1383
+ * Non-coherent early-minus-late power processing with squaring loss.
1384
+ */
1385
+ NonCoherent = 1,
1386
+ }
1387
+
1374
1388
  /**
1375
1389
  * GNSS dilution-of-precision scalars.
1376
1390
  */
@@ -2307,6 +2321,78 @@ export class GlonassRecordJs {
2307
2321
  readonly velocityMS: Float64Array;
2308
2322
  }
2309
2323
 
2324
+ /**
2325
+ * Stateful GNSS/INS filter resource.
2326
+ */
2327
+ export class GnssInsFilter {
2328
+ free(): void;
2329
+ [Symbol.dispose](): void;
2330
+ /**
2331
+ * Replace retained-history capacities for later time-sync replay.
2332
+ */
2333
+ configureTimeSync(config: any): void;
2334
+ /**
2335
+ * Encode the current fusion state with the core versioned binary codec.
2336
+ */
2337
+ encodeState(): Uint8Array;
2338
+ /**
2339
+ * Build a filter, then restore its state from versioned fusion-state bytes.
2340
+ */
2341
+ static fromStateBytes(config: any, bytes: Uint8Array): GnssInsFilter;
2342
+ /**
2343
+ * Build a filter from a JS configuration object.
2344
+ */
2345
+ constructor(config: any);
2346
+ /**
2347
+ * Propagate the filter with one IMU rate or increment sample.
2348
+ */
2349
+ propagate(sample: any): any;
2350
+ /**
2351
+ * Propagate the filter with a JS array of IMU samples.
2352
+ */
2353
+ propagateBatch(samples: any): any;
2354
+ /**
2355
+ * Restore this filter from versioned fusion-state bytes.
2356
+ */
2357
+ restoreState(bytes: Uint8Array): void;
2358
+ /**
2359
+ * Current INS state, covariance, and last body-rate diagnostic.
2360
+ */
2361
+ state(): any;
2362
+ /**
2363
+ * Current tight-coupling receiver-clock state.
2364
+ */
2365
+ tightClockState(): any;
2366
+ /**
2367
+ * Current retained-history capacity and occupancy.
2368
+ */
2369
+ timeSyncStatus(): any;
2370
+ /**
2371
+ * Apply a loose position or position-velocity GNSS fix at the current epoch.
2372
+ */
2373
+ updateLoose(measurement: any): any;
2374
+ /**
2375
+ * Apply a loose GNSS fix, replaying retained IMU checkpoints when it is late.
2376
+ */
2377
+ updateLooseTimeSync(measurement: any): any;
2378
+ /**
2379
+ * Apply a tight raw-observation epoch against a broadcast ephemeris source.
2380
+ */
2381
+ updateTightBroadcast(broadcast: BroadcastEphemeris, epoch: any): any;
2382
+ /**
2383
+ * Apply a tight broadcast update, replaying retained IMU checkpoints when it is late.
2384
+ */
2385
+ updateTightBroadcastTimeSync(broadcast: BroadcastEphemeris, epoch: any): any;
2386
+ /**
2387
+ * Apply a tight raw-observation epoch against an SP3 source.
2388
+ */
2389
+ updateTightSp3(sp3: Sp3, epoch: any): any;
2390
+ /**
2391
+ * Apply a tight SP3 update, replaying retained IMU checkpoints when it is late.
2392
+ */
2393
+ updateTightSp3TimeSync(sp3: Sp3, epoch: any): any;
2394
+ }
2395
+
2310
2396
  /**
2311
2397
  * One sampled rise/set/peak visibility pass, from `gnssPasses`.
2312
2398
  */
@@ -5809,6 +5895,87 @@ export class SbasSisError {
5809
5895
  readonly sigmaUireM: number;
5810
5896
  }
5811
5897
 
5898
+ /**
5899
+ * Stable GNSS signal modulation used by the analysis functions.
5900
+ */
5901
+ export class SignalAnalysisModulation {
5902
+ private constructor();
5903
+ free(): void;
5904
+ [Symbol.dispose](): void;
5905
+ /**
5906
+ * Normalized in-band autocorrelation at a delay.
5907
+ */
5908
+ autocorrelation(delay_s: number, receiver_bandwidth_hz: number): number;
5909
+ /**
5910
+ * Build a BPSK(n) modulation, where the code rate is `n * 1.023 MHz`.
5911
+ */
5912
+ static bpsk(order: number): SignalAnalysisModulation;
5913
+ /**
5914
+ * Build Galileo E1 CBOC(6,1,1/11) with the minus chip-pulse convention.
5915
+ */
5916
+ static cboc611Over11Minus(): SignalAnalysisModulation;
5917
+ /**
5918
+ * Build Galileo E1 CBOC(6,1,1/11) with the plus chip-pulse convention.
5919
+ */
5920
+ static cboc611Over11Plus(): SignalAnalysisModulation;
5921
+ /**
5922
+ * Build a cosine-phased BOC(m,n) modulation.
5923
+ */
5924
+ static cosineBoc(m: number, n: number): SignalAnalysisModulation;
5925
+ /**
5926
+ * Published lower bound for DLL code-delay jitter.
5927
+ */
5928
+ dllLowerBound(options: any): any;
5929
+ /**
5930
+ * Early-late DLL thermal-noise jitter for this modulation.
5931
+ */
5932
+ dllThermalNoiseJitter(options: any, processing: DllProcessing): any;
5933
+ /**
5934
+ * Fraction of total signal power inside a two-sided receiver bandwidth.
5935
+ */
5936
+ fractionPowerInBand(receiver_bandwidth_hz: number): number;
5937
+ /**
5938
+ * Build the normalized MBOC(6,1,1/11) spectrum.
5939
+ */
5940
+ static mboc611Over11(): SignalAnalysisModulation;
5941
+ /**
5942
+ * One-path early-late multipath error envelope on a delay grid.
5943
+ */
5944
+ multipathErrorEnvelope(options: any, delay_chips: Float64Array): any;
5945
+ /**
5946
+ * Signal power inside a two-sided receiver bandwidth.
5947
+ */
5948
+ powerInBand(receiver_bandwidth_hz: number): number;
5949
+ /**
5950
+ * Normalized power spectral density at an offset frequency, in `1/Hz`.
5951
+ */
5952
+ psdHz(offset_hz: number): number;
5953
+ /**
5954
+ * RMS, or Gabor, bandwidth over a two-sided receiver bandwidth.
5955
+ */
5956
+ rmsBandwidthHz(receiver_bandwidth_hz: number): number;
5957
+ /**
5958
+ * Build a sine-phased BOC(m,n) modulation.
5959
+ */
5960
+ static sineBoc(m: number, n: number): SignalAnalysisModulation;
5961
+ /**
5962
+ * Build the GPS L1C pilot TMBOC(6,1,4/33) spectrum.
5963
+ */
5964
+ static tmboc614Over33(): SignalAnalysisModulation;
5965
+ /**
5966
+ * SSC against white interference normalized over the receiver bandwidth.
5967
+ */
5968
+ whiteNoiseSpectralSeparationHz(receiver_bandwidth_hz: number): number;
5969
+ /**
5970
+ * Code rate in hertz when the modulation has one unambiguous rate.
5971
+ */
5972
+ readonly codeRateHz: number;
5973
+ /**
5974
+ * Stable core label for this modulation.
5975
+ */
5976
+ readonly label: string;
5977
+ }
5978
+
5812
5979
  /**
5813
5980
  * Per-constellation single-frequency pseudorange code-selection policy. Build
5814
5981
  * with `new SignalPolicy()` then chain `.withSystem(system, codes)`, or use
@@ -7978,6 +8145,11 @@ export function decodeSsr(bytes: Uint8Array, framed?: boolean | null): any;
7978
8145
  */
7979
8146
  export function defaultPair(system: GnssSystem): CarrierPair | undefined;
7980
8147
 
8148
+ /**
8149
+ * Default scenario seed as a hexadecimal string.
8150
+ */
8151
+ export function defaultScenarioSeedHex(): string;
8152
+
7981
8153
  /**
7982
8154
  * Single-frequency carrier used by the SPP ionosphere-scaling policy.
7983
8155
  */
@@ -8092,6 +8264,11 @@ export function ecefToGeodetic(position_km: Float64Array): Float64Array;
8092
8264
  */
8093
8265
  export function eclipseStatus(satellite_position_km: Float64Array, sun_position_km: Float64Array): string[];
8094
8266
 
8267
+ /**
8268
+ * Effective C/N0 degradation for one finite-band interference term.
8269
+ */
8270
+ export function effectiveCn0Degradation(desired: SignalAnalysisModulation, interference: SignalAnalysisModulation, cn0_db_hz: number, receiver_bandwidth_hz: number, power_ratio_to_carrier: number): any;
8271
+
8095
8272
  /**
8096
8273
  * Ellipsoidal height `h = H + N` (metres above the WGS84 ellipsoid) from an
8097
8274
  * orthometric height and a geodetic position in radians, using the embedded
@@ -8498,6 +8675,11 @@ export function fromCelestrakJsonLenient(json: string, system?: string | null):
8498
8675
  */
8499
8676
  export function fspl(distance_km: number, frequency_mhz: number): number;
8500
8677
 
8678
+ /**
8679
+ * Decode and re-encode fusion-state bytes through the core codec.
8680
+ */
8681
+ export function fusionStateBytesRoundTrip(bytes: Uint8Array): Uint8Array;
8682
+
8501
8683
  /**
8502
8684
  * Galileo NeQuick-G single-frequency ionospheric group delay (positive metres).
8503
8685
  *
@@ -9902,6 +10084,16 @@ export function sbasPrnToSat(broadcast_prn: number): any;
9902
10084
  */
9903
10085
  export function sbasProtectionLevels(geometry: any, model: SbasErrorModel, k: SbasKMultipliers): SbasProtection;
9904
10086
 
10087
+ /**
10088
+ * Core scenario engine version string used in deterministic outputs.
10089
+ */
10090
+ export function scenarioEngineVersion(): string;
10091
+
10092
+ /**
10093
+ * Core scenario schema version accepted by the binding.
10094
+ */
10095
+ export function scenarioSchemaVersion(): number;
10096
+
9905
10097
  /**
9906
10098
  * Screen a primary satellite against a secondary TLE catalog for threshold TCAs.
9907
10099
  *
@@ -9998,6 +10190,26 @@ export function siderealFilter(series: any, period_s: number, options: any): any
9998
10190
  */
9999
10191
  export function sigmas(entries: any, options: any): SatelliteVector;
10000
10192
 
10193
+ /**
10194
+ * Simulate a scenario from a JS object or JSON string and return JS arrays.
10195
+ */
10196
+ export function simulateScenario(value: any): any;
10197
+
10198
+ /**
10199
+ * Simulate a scenario from a JS object or JSON string and return deterministic JSON bytes.
10200
+ */
10201
+ export function simulateScenarioBytes(value: any): Uint8Array;
10202
+
10203
+ /**
10204
+ * Simulate a scenario from JSON text and return JS arrays.
10205
+ */
10206
+ export function simulateScenarioJson(text: string): any;
10207
+
10208
+ /**
10209
+ * Simulate a scenario from JSON text and return deterministic JSON bytes.
10210
+ */
10211
+ export function simulateScenarioJsonBytes(text: string): Uint8Array;
10212
+
10001
10213
  /**
10002
10214
  * Sample skewness of a residual set.
10003
10215
  *
@@ -10227,6 +10439,16 @@ export function sourceSolveModeToa(): string;
10227
10439
  */
10228
10440
  export function sp3PreciseEphemerisSamples(sp3: Sp3): any;
10229
10441
 
10442
+ /**
10443
+ * Spectral separation coefficient between two modulations, in dB-Hz.
10444
+ */
10445
+ export function spectralSeparationCoefficientDbHz(desired: SignalAnalysisModulation, interference: SignalAnalysisModulation, receiver_bandwidth_hz: number): number;
10446
+
10447
+ /**
10448
+ * Spectral separation coefficient between two modulations, in hertz.
10449
+ */
10450
+ export function spectralSeparationCoefficientHz(desired: SignalAnalysisModulation, interference: SignalAnalysisModulation, receiver_bandwidth_hz: number): number;
10451
+
10230
10452
  /**
10231
10453
  * Continuous seconds since J2000 for a split Julian date.
10232
10454
  */