@neilberkman/sidereon 0.19.0 → 0.20.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.
@@ -2042,6 +2042,43 @@ export class FrameStates {
2042
2042
  readonly velocityKmS: Float64Array;
2043
2043
  }
2044
2044
 
2045
+ /**
2046
+ * Recorded fusion forward-pass history accepted by `smoothFusionRts`.
2047
+ */
2048
+ export class FusionRtsHistory {
2049
+ private constructor();
2050
+ free(): void;
2051
+ [Symbol.dispose](): void;
2052
+ /**
2053
+ * Number of recorded epochs.
2054
+ */
2055
+ readonly epochCount: number;
2056
+ /**
2057
+ * Recorded epochs in forward time order.
2058
+ */
2059
+ readonly epochs: any;
2060
+ }
2061
+
2062
+ /**
2063
+ * Builder for recording a fusion forward pass before RTS smoothing.
2064
+ */
2065
+ export class FusionRtsHistoryBuilder {
2066
+ free(): void;
2067
+ [Symbol.dispose](): void;
2068
+ /**
2069
+ * Return a validated recorded history.
2070
+ */
2071
+ finish(): FusionRtsHistory;
2072
+ /**
2073
+ * Start a history from the filter's current checkpoint.
2074
+ */
2075
+ static fromFilter(filter: GnssInsFilter): FusionRtsHistoryBuilder;
2076
+ /**
2077
+ * Start an empty history for manual recording.
2078
+ */
2079
+ constructor();
2080
+ }
2081
+
2045
2082
  /**
2046
2083
  * WGS84 geodesic input failure class exposed as a stable enum symbol.
2047
2084
  */
@@ -2351,6 +2388,10 @@ export class GnssInsFilter {
2351
2388
  * Propagate the filter with a JS array of IMU samples.
2352
2389
  */
2353
2390
  propagateBatch(samples: any): any;
2391
+ /**
2392
+ * Propagate and record the transition for later fusion RTS smoothing.
2393
+ */
2394
+ propagateRecorded(sample: any, history: FusionRtsHistoryBuilder): any;
2354
2395
  /**
2355
2396
  * Restore this filter from versioned fusion-state bytes.
2356
2397
  */
@@ -2371,6 +2412,10 @@ export class GnssInsFilter {
2371
2412
  * Apply a loose position or position-velocity GNSS fix at the current epoch.
2372
2413
  */
2373
2414
  updateLoose(measurement: any): any;
2415
+ /**
2416
+ * Apply a loose GNSS fix and record checkpoints for fusion RTS smoothing.
2417
+ */
2418
+ updateLooseRecorded(measurement: any, history: FusionRtsHistoryBuilder): any;
2374
2419
  /**
2375
2420
  * Apply a loose GNSS fix, replaying retained IMU checkpoints when it is late.
2376
2421
  */
@@ -2379,6 +2424,10 @@ export class GnssInsFilter {
2379
2424
  * Apply a tight raw-observation epoch against a broadcast ephemeris source.
2380
2425
  */
2381
2426
  updateTightBroadcast(broadcast: BroadcastEphemeris, epoch: any): any;
2427
+ /**
2428
+ * Apply a tight broadcast update and record checkpoints for fusion RTS smoothing.
2429
+ */
2430
+ updateTightBroadcastRecorded(broadcast: BroadcastEphemeris, epoch: any, history: FusionRtsHistoryBuilder): any;
2382
2431
  /**
2383
2432
  * Apply a tight broadcast update, replaying retained IMU checkpoints when it is late.
2384
2433
  */
@@ -2387,6 +2436,10 @@ export class GnssInsFilter {
2387
2436
  * Apply a tight raw-observation epoch against an SP3 source.
2388
2437
  */
2389
2438
  updateTightSp3(sp3: Sp3, epoch: any): any;
2439
+ /**
2440
+ * Apply a tight SP3 update and record checkpoints for fusion RTS smoothing.
2441
+ */
2442
+ updateTightSp3Recorded(sp3: Sp3, epoch: any, history: FusionRtsHistoryBuilder): any;
2390
2443
  /**
2391
2444
  * Apply a tight SP3 update, replaying retained IMU checkpoints when it is late.
2392
2445
  */
@@ -6070,6 +6123,23 @@ export class SmoothCodeResult {
6070
6123
  readonly window: number;
6071
6124
  }
6072
6125
 
6126
+ /**
6127
+ * Smoothed fusion trajectory returned by fixed-interval RTS smoothing.
6128
+ */
6129
+ export class SmoothedFusionTrajectory {
6130
+ private constructor();
6131
+ free(): void;
6132
+ [Symbol.dispose](): void;
6133
+ /**
6134
+ * Number of smoothed epochs.
6135
+ */
6136
+ readonly epochCount: number;
6137
+ /**
6138
+ * Smoothed epochs in the same order as the recorded history.
6139
+ */
6140
+ readonly epochs: any;
6141
+ }
6142
+
6073
6143
  export class SmoothedTrack {
6074
6144
  private constructor();
6075
6145
  free(): void;
@@ -7985,6 +8055,24 @@ export function betaAngleFromState(r: Float64Array, v: Float64Array, sun: Float6
7985
8055
  */
7986
8056
  export function boundedIlsSearch(float_cycles: Float64Array, covariance: any, radius: number, candidate_limit: number, ratio_threshold: number): any;
7987
8057
 
8058
+ /**
8059
+ * Build dual-frequency RTK arc records from parsed RINEX OBS products.
8060
+ *
8061
+ * Defaults build the GPS `C1C`/`L1C` plus `C2W`/`L2W` arc used by the real
8062
+ * WTZR/WTZZ fixtures.
8063
+ */
8064
+ export function buildDualFrequencyRinexRtkArc(ephemeris: Sp3, base_obs: RinexObs, rover_obs: RinexObs, options?: any | null): any;
8065
+
8066
+ /**
8067
+ * Build single-frequency RTK arc records from parsed RINEX OBS products.
8068
+ *
8069
+ * `ephemeris` is an SP3 precise ephemeris handle, `baseObs` and `roverObs`
8070
+ * are parsed RINEX observation files, and `options` may provide
8071
+ * `{ signalPairs, maxEpochs, minCommonSatellites, includePredictionTime }`.
8072
+ * Defaults build the GPS `C1C`/`L1C` arc used by the real WTZR/WTZZ fixtures.
8073
+ */
8074
+ export function buildRinexRtkArc(ephemeris: Sp3, base_obs: RinexObs, rover_obs: RinexObs, options?: any | null): any;
8075
+
7988
8076
  /**
7989
8077
  * One wrapping GPS C/A chip at a zero-based index.
7990
8078
  */
@@ -8460,6 +8548,11 @@ export function eq2rv(eq: any, mu_km3_s2: number): any;
8460
8548
  */
8461
8549
  export function errorEllipse2(covariance: Float64Array, confidence: number): ErrorEllipse2;
8462
8550
 
8551
+ /**
8552
+ * Horizontal one-sigma ellipse from an ENU covariance in square metres.
8553
+ */
8554
+ export function errorEllipseFromEnuM2(covariance_enu_m2: any): ErrorEllipse;
8555
+
8463
8556
  export function estimateDecay(drag: DragForce, request: any): any;
8464
8557
 
8465
8558
  /**
@@ -8992,6 +9085,11 @@ export function hadamardDeviation(series: any, tau0_s: number, averaging_factors
8992
9085
  */
8993
9086
  export function hessianTrace(jacobian: Float64Array, m: number, n: number): number;
8994
9087
 
9088
+ /**
9089
+ * Horizontal percentile circle radius from an ENU covariance.
9090
+ */
9091
+ export function horizontalRadiusAt(covariance_enu_m2: any, probability: number): PercentileRadius;
9092
+
8995
9093
  /**
8996
9094
  * Gauss angles-only orbit determination.
8997
9095
  *
@@ -9409,6 +9507,14 @@ export function metricsFromEnuCovarianceM2(covariance_enu_m2: any): PositionErro
9409
9507
  */
9410
9508
  export function metricsFromKinematicSolution(solution: any): PositionErrorMetrics;
9411
9509
 
9510
+ /**
9511
+ * Compute position-error metrics from a position covariance object.
9512
+ *
9513
+ * The object must include `ecefM2` and `enuM2`, each a 3 by 3 covariance in
9514
+ * square metres.
9515
+ */
9516
+ export function metricsFromPositionCovariance(covariance: any): PositionErrorMetrics;
9517
+
9412
9518
  /**
9413
9519
  * Modified Allan deviation for explicit averaging factors.
9414
9520
  *
@@ -10303,6 +10409,11 @@ export function slipReasonLabel(reason: SlipReason): string;
10303
10409
  */
10304
10410
  export function smoothCode(arc: any, options: any, hatch_window_cap?: number | null): SmoothCodeResult[];
10305
10411
 
10412
+ /**
10413
+ * Apply fixed-interval RTS smoothing to recorded fusion history.
10414
+ */
10415
+ export function smoothFusionRts(history: FusionRtsHistory): SmoothedFusionTrajectory;
10416
+
10306
10417
  /**
10307
10418
  * Dual-frequency ionosphere-free Hatch carrier-smoothed code.
10308
10419
  */
@@ -10436,6 +10547,16 @@ export function solveSppSbas(broadcast: BroadcastEphemeris, store: SbasCorrectio
10436
10547
  */
10437
10548
  export function solveStatic(sp3: Sp3, epochs: any, options: any): StaticSolution;
10438
10549
 
10550
+ /**
10551
+ * Solve one static RTK baseline directly from paired RINEX OBS plus SP3.
10552
+ *
10553
+ * `config.baseM` is the base antenna phase-center ECEF position in metres.
10554
+ * Optional `config.arcOptions` controls RINEX signal extraction; other fields
10555
+ * mirror `RtkStaticArcConfig` but the wavelength and offset maps are filled by
10556
+ * the RINEX builder.
10557
+ */
10558
+ export function solveStaticRinexRtkBaseline(ephemeris: Sp3, base_obs: RinexObs, rover_obs: RinexObs, config: any): any;
10559
+
10439
10560
  /**
10440
10561
  * Solve a static RTK arc with one batch float solution and one validated fixed
10441
10562
  * solution over the whole arc.
@@ -10460,6 +10581,15 @@ export function solveVelocity(sp3: Sp3, observations: any, receiver_ecef_m: Floa
10460
10581
  */
10461
10582
  export function solveVelocityBroadcast(broadcast: BroadcastEphemeris, observations: any, receiver_ecef_m: Float64Array, t_rx_j2000_s: number, options: any): VelocitySolution;
10462
10583
 
10584
+ /**
10585
+ * Solve a static dual-frequency wide-lane fixed RTK baseline from RINEX OBS.
10586
+ *
10587
+ * The function builds the dual-frequency RINEX arc, fixes wide-lane
10588
+ * ambiguities, prepares ionosphere-free narrow-lane records, then runs the
10589
+ * static fixed baseline solver.
10590
+ */
10591
+ export function solveWideLaneFixedRinexRtkBaseline(ephemeris: Sp3, base_obs: RinexObs, rover_obs: RinexObs, config: any): any;
10592
+
10463
10593
  /**
10464
10594
  * Solve a receiver position, preferring precise SP3 products and falling back to
10465
10595
  * broadcast ephemeris, reporting which source was used and how stale it is.
@@ -10524,6 +10654,11 @@ export function spectralSeparationCoefficientDbHz(desired: SignalAnalysisModulat
10524
10654
  */
10525
10655
  export function spectralSeparationCoefficientHz(desired: SignalAnalysisModulation, interference: SignalAnalysisModulation, receiver_bandwidth_hz: number): number;
10526
10656
 
10657
+ /**
10658
+ * Three-dimensional percentile sphere radius from an ENU covariance.
10659
+ */
10660
+ export function sphericalRadiusAt(covariance_enu_m2: any, probability: number): PercentileRadius;
10661
+
10527
10662
  /**
10528
10663
  * Continuous seconds since J2000 for a split Julian date.
10529
10664
  */
@@ -10748,6 +10883,11 @@ export function validateAgainstSp3Ids(records: any, ids: any): any;
10748
10883
  */
10749
10884
  export function velocityMidas(series: any, options: any): any;
10750
10885
 
10886
+ /**
10887
+ * Vertical one-dimensional percentile radius from an up variance.
10888
+ */
10889
+ export function verticalRadiusAt(sigma_u_m2: number, probability: number): number;
10890
+
10751
10891
  /**
10752
10892
  * Satellites visible above `minElevationDeg` from `station` at a single instant,
10753
10893
  * from already-initialized [`Tle`]s: the opsmode-preserving constellation