@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.
@@ -2420,6 +2420,22 @@ export class GnssInsFilter {
2420
2420
  * Apply a loose GNSS fix, replaying retained IMU checkpoints when it is late.
2421
2421
  */
2422
2422
  updateLooseTimeSync(measurement: any): any;
2423
+ /**
2424
+ * Apply a gated wheeled-vehicle non-holonomic constraint update.
2425
+ */
2426
+ updateNonHolonomic(): any;
2427
+ /**
2428
+ * Apply a non-holonomic constraint and record checkpoints when an update applies.
2429
+ */
2430
+ updateNonHolonomicRecorded(history: FusionRtsHistoryBuilder): any;
2431
+ /**
2432
+ * Apply a gated zero-velocity and zero-angular-rate update.
2433
+ */
2434
+ updateStationary(): any;
2435
+ /**
2436
+ * Apply a stationary update and record checkpoints when an update applies.
2437
+ */
2438
+ updateStationaryRecorded(history: FusionRtsHistoryBuilder): any;
2423
2439
  /**
2424
2440
  * Apply a tight raw-observation epoch against a broadcast ephemeris source.
2425
2441
  */
@@ -8055,6 +8071,24 @@ export function betaAngleFromState(r: Float64Array, v: Float64Array, sun: Float6
8055
8071
  */
8056
8072
  export function boundedIlsSearch(float_cycles: Float64Array, covariance: any, radius: number, candidate_limit: number, ratio_threshold: number): any;
8057
8073
 
8074
+ /**
8075
+ * Build dual-frequency RTK arc records from parsed RINEX OBS products.
8076
+ *
8077
+ * Defaults build the GPS `C1C`/`L1C` plus `C2W`/`L2W` arc used by the real
8078
+ * WTZR/WTZZ fixtures.
8079
+ */
8080
+ export function buildDualFrequencyRinexRtkArc(ephemeris: Sp3, base_obs: RinexObs, rover_obs: RinexObs, options?: any | null): any;
8081
+
8082
+ /**
8083
+ * Build single-frequency RTK arc records from parsed RINEX OBS products.
8084
+ *
8085
+ * `ephemeris` is an SP3 precise ephemeris handle, `baseObs` and `roverObs`
8086
+ * are parsed RINEX observation files, and `options` may provide
8087
+ * `{ signalPairs, maxEpochs, minCommonSatellites, includePredictionTime }`.
8088
+ * Defaults build the GPS `C1C`/`L1C` arc used by the real WTZR/WTZZ fixtures.
8089
+ */
8090
+ export function buildRinexRtkArc(ephemeris: Sp3, base_obs: RinexObs, rover_obs: RinexObs, options?: any | null): any;
8091
+
8058
8092
  /**
8059
8093
  * One wrapping GPS C/A chip at a zero-based index.
8060
8094
  */
@@ -8530,6 +8564,11 @@ export function eq2rv(eq: any, mu_km3_s2: number): any;
8530
8564
  */
8531
8565
  export function errorEllipse2(covariance: Float64Array, confidence: number): ErrorEllipse2;
8532
8566
 
8567
+ /**
8568
+ * Horizontal one-sigma ellipse from an ENU covariance in square metres.
8569
+ */
8570
+ export function errorEllipseFromEnuM2(covariance_enu_m2: any): ErrorEllipse;
8571
+
8533
8572
  export function estimateDecay(drag: DragForce, request: any): any;
8534
8573
 
8535
8574
  /**
@@ -9062,6 +9101,11 @@ export function hadamardDeviation(series: any, tau0_s: number, averaging_factors
9062
9101
  */
9063
9102
  export function hessianTrace(jacobian: Float64Array, m: number, n: number): number;
9064
9103
 
9104
+ /**
9105
+ * Horizontal percentile circle radius from an ENU covariance.
9106
+ */
9107
+ export function horizontalRadiusAt(covariance_enu_m2: any, probability: number): PercentileRadius;
9108
+
9065
9109
  /**
9066
9110
  * Gauss angles-only orbit determination.
9067
9111
  *
@@ -9479,6 +9523,14 @@ export function metricsFromEnuCovarianceM2(covariance_enu_m2: any): PositionErro
9479
9523
  */
9480
9524
  export function metricsFromKinematicSolution(solution: any): PositionErrorMetrics;
9481
9525
 
9526
+ /**
9527
+ * Compute position-error metrics from a position covariance object.
9528
+ *
9529
+ * The object must include `ecefM2` and `enuM2`, each a 3 by 3 covariance in
9530
+ * square metres.
9531
+ */
9532
+ export function metricsFromPositionCovariance(covariance: any): PositionErrorMetrics;
9533
+
9482
9534
  /**
9483
9535
  * Modified Allan deviation for explicit averaging factors.
9484
9536
  *
@@ -10511,6 +10563,21 @@ export function solveSppSbas(broadcast: BroadcastEphemeris, store: SbasCorrectio
10511
10563
  */
10512
10564
  export function solveStatic(sp3: Sp3, epochs: any, options: any): StaticSolution;
10513
10565
 
10566
+ /**
10567
+ * Solve one static reference-station coordinate from paired RINEX OBS plus SP3.
10568
+ */
10569
+ export function solveStaticReferenceStationRinex(ephemeris: Sp3, reference_obs: RinexObs, rover_obs: RinexObs, config: any): any;
10570
+
10571
+ /**
10572
+ * Solve one static RTK baseline directly from paired RINEX OBS plus SP3.
10573
+ *
10574
+ * `config.baseM` is the base antenna phase-center ECEF position in metres.
10575
+ * Optional `config.arcOptions` controls RINEX signal extraction; other fields
10576
+ * mirror `RtkStaticArcConfig` but the wavelength and offset maps are filled by
10577
+ * the RINEX builder.
10578
+ */
10579
+ export function solveStaticRinexRtkBaseline(ephemeris: Sp3, base_obs: RinexObs, rover_obs: RinexObs, config: any): any;
10580
+
10514
10581
  /**
10515
10582
  * Solve a static RTK arc with one batch float solution and one validated fixed
10516
10583
  * solution over the whole arc.
@@ -10535,6 +10602,15 @@ export function solveVelocity(sp3: Sp3, observations: any, receiver_ecef_m: Floa
10535
10602
  */
10536
10603
  export function solveVelocityBroadcast(broadcast: BroadcastEphemeris, observations: any, receiver_ecef_m: Float64Array, t_rx_j2000_s: number, options: any): VelocitySolution;
10537
10604
 
10605
+ /**
10606
+ * Solve a static dual-frequency wide-lane fixed RTK baseline from RINEX OBS.
10607
+ *
10608
+ * The function builds the dual-frequency RINEX arc, fixes wide-lane
10609
+ * ambiguities, prepares ionosphere-free narrow-lane records, then runs the
10610
+ * static fixed baseline solver.
10611
+ */
10612
+ export function solveWideLaneFixedRinexRtkBaseline(ephemeris: Sp3, base_obs: RinexObs, rover_obs: RinexObs, config: any): any;
10613
+
10538
10614
  /**
10539
10615
  * Solve a receiver position, preferring precise SP3 products and falling back to
10540
10616
  * broadcast ephemeris, reporting which source was used and how stale it is.
@@ -10599,6 +10675,11 @@ export function spectralSeparationCoefficientDbHz(desired: SignalAnalysisModulat
10599
10675
  */
10600
10676
  export function spectralSeparationCoefficientHz(desired: SignalAnalysisModulation, interference: SignalAnalysisModulation, receiver_bandwidth_hz: number): number;
10601
10677
 
10678
+ /**
10679
+ * Three-dimensional percentile sphere radius from an ENU covariance.
10680
+ */
10681
+ export function sphericalRadiusAt(covariance_enu_m2: any, probability: number): PercentileRadius;
10682
+
10602
10683
  /**
10603
10684
  * Continuous seconds since J2000 for a split Julian date.
10604
10685
  */
@@ -10814,6 +10895,11 @@ export function validate(records: any): any;
10814
10895
  */
10815
10896
  export function validateAgainstSp3Ids(records: any, ids: any): any;
10816
10897
 
10898
+ /**
10899
+ * Blend a first good post-outage fix back over an outage span.
10900
+ */
10901
+ export function velocityMatchOutage(states: any, first_good_fix: any, config: any): any;
10902
+
10817
10903
  /**
10818
10904
  * Estimate robust station velocity with the MIDAS method.
10819
10905
  *
@@ -10823,6 +10909,11 @@ export function validateAgainstSp3Ids(records: any, ids: any): any;
10823
10909
  */
10824
10910
  export function velocityMidas(series: any, options: any): any;
10825
10911
 
10912
+ /**
10913
+ * Vertical one-dimensional percentile radius from an up variance.
10914
+ */
10915
+ export function verticalRadiusAt(sigma_u_m2: number, probability: number): number;
10916
+
10826
10917
  /**
10827
10918
  * Satellites visible above `minElevationDeg` from `station` at a single instant,
10828
10919
  * from already-initialized [`Tle`]s: the opsmode-preserving constellation
@@ -6021,6 +6021,54 @@ class GnssInsFilter {
6021
6021
  }
6022
6022
  return takeFromExternrefTable0(ret[0]);
6023
6023
  }
6024
+ /**
6025
+ * Apply a gated wheeled-vehicle non-holonomic constraint update.
6026
+ * @returns {any}
6027
+ */
6028
+ updateNonHolonomic() {
6029
+ const ret = wasm.gnssinsfilter_updateNonHolonomic(this.__wbg_ptr);
6030
+ if (ret[2]) {
6031
+ throw takeFromExternrefTable0(ret[1]);
6032
+ }
6033
+ return takeFromExternrefTable0(ret[0]);
6034
+ }
6035
+ /**
6036
+ * Apply a non-holonomic constraint and record checkpoints when an update applies.
6037
+ * @param {FusionRtsHistoryBuilder} history
6038
+ * @returns {any}
6039
+ */
6040
+ updateNonHolonomicRecorded(history) {
6041
+ _assertClass(history, FusionRtsHistoryBuilder);
6042
+ const ret = wasm.gnssinsfilter_updateNonHolonomicRecorded(this.__wbg_ptr, history.__wbg_ptr);
6043
+ if (ret[2]) {
6044
+ throw takeFromExternrefTable0(ret[1]);
6045
+ }
6046
+ return takeFromExternrefTable0(ret[0]);
6047
+ }
6048
+ /**
6049
+ * Apply a gated zero-velocity and zero-angular-rate update.
6050
+ * @returns {any}
6051
+ */
6052
+ updateStationary() {
6053
+ const ret = wasm.gnssinsfilter_updateStationary(this.__wbg_ptr);
6054
+ if (ret[2]) {
6055
+ throw takeFromExternrefTable0(ret[1]);
6056
+ }
6057
+ return takeFromExternrefTable0(ret[0]);
6058
+ }
6059
+ /**
6060
+ * Apply a stationary update and record checkpoints when an update applies.
6061
+ * @param {FusionRtsHistoryBuilder} history
6062
+ * @returns {any}
6063
+ */
6064
+ updateStationaryRecorded(history) {
6065
+ _assertClass(history, FusionRtsHistoryBuilder);
6066
+ const ret = wasm.gnssinsfilter_updateStationaryRecorded(this.__wbg_ptr, history.__wbg_ptr);
6067
+ if (ret[2]) {
6068
+ throw takeFromExternrefTable0(ret[1]);
6069
+ }
6070
+ return takeFromExternrefTable0(ret[0]);
6071
+ }
6024
6072
  /**
6025
6073
  * Apply a tight raw-observation epoch against a broadcast ephemeris source.
6026
6074
  * @param {BroadcastEphemeris} broadcast
@@ -20638,6 +20686,54 @@ function boundedIlsSearch(float_cycles, covariance, radius, candidate_limit, rat
20638
20686
  }
20639
20687
  exports.boundedIlsSearch = boundedIlsSearch;
20640
20688
 
20689
+ /**
20690
+ * Build dual-frequency RTK arc records from parsed RINEX OBS products.
20691
+ *
20692
+ * Defaults build the GPS `C1C`/`L1C` plus `C2W`/`L2W` arc used by the real
20693
+ * WTZR/WTZZ fixtures.
20694
+ * @param {Sp3} ephemeris
20695
+ * @param {RinexObs} base_obs
20696
+ * @param {RinexObs} rover_obs
20697
+ * @param {any | null} [options]
20698
+ * @returns {any}
20699
+ */
20700
+ function buildDualFrequencyRinexRtkArc(ephemeris, base_obs, rover_obs, options) {
20701
+ _assertClass(ephemeris, Sp3);
20702
+ _assertClass(base_obs, RinexObs);
20703
+ _assertClass(rover_obs, RinexObs);
20704
+ const ret = wasm.buildDualFrequencyRinexRtkArc(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, isLikeNone(options) ? 0 : addToExternrefTable0(options));
20705
+ if (ret[2]) {
20706
+ throw takeFromExternrefTable0(ret[1]);
20707
+ }
20708
+ return takeFromExternrefTable0(ret[0]);
20709
+ }
20710
+ exports.buildDualFrequencyRinexRtkArc = buildDualFrequencyRinexRtkArc;
20711
+
20712
+ /**
20713
+ * Build single-frequency RTK arc records from parsed RINEX OBS products.
20714
+ *
20715
+ * `ephemeris` is an SP3 precise ephemeris handle, `baseObs` and `roverObs`
20716
+ * are parsed RINEX observation files, and `options` may provide
20717
+ * `{ signalPairs, maxEpochs, minCommonSatellites, includePredictionTime }`.
20718
+ * Defaults build the GPS `C1C`/`L1C` arc used by the real WTZR/WTZZ fixtures.
20719
+ * @param {Sp3} ephemeris
20720
+ * @param {RinexObs} base_obs
20721
+ * @param {RinexObs} rover_obs
20722
+ * @param {any | null} [options]
20723
+ * @returns {any}
20724
+ */
20725
+ function buildRinexRtkArc(ephemeris, base_obs, rover_obs, options) {
20726
+ _assertClass(ephemeris, Sp3);
20727
+ _assertClass(base_obs, RinexObs);
20728
+ _assertClass(rover_obs, RinexObs);
20729
+ const ret = wasm.buildRinexRtkArc(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, isLikeNone(options) ? 0 : addToExternrefTable0(options));
20730
+ if (ret[2]) {
20731
+ throw takeFromExternrefTable0(ret[1]);
20732
+ }
20733
+ return takeFromExternrefTable0(ret[0]);
20734
+ }
20735
+ exports.buildRinexRtkArc = buildRinexRtkArc;
20736
+
20641
20737
  /**
20642
20738
  * One wrapping GPS C/A chip at a zero-based index.
20643
20739
  * @param {bigint} prn
@@ -21971,6 +22067,20 @@ function errorEllipse2(covariance, confidence) {
21971
22067
  }
21972
22068
  exports.errorEllipse2 = errorEllipse2;
21973
22069
 
22070
+ /**
22071
+ * Horizontal one-sigma ellipse from an ENU covariance in square metres.
22072
+ * @param {any} covariance_enu_m2
22073
+ * @returns {ErrorEllipse}
22074
+ */
22075
+ function errorEllipseFromEnuM2(covariance_enu_m2) {
22076
+ const ret = wasm.errorEllipseFromEnuM2(covariance_enu_m2);
22077
+ if (ret[2]) {
22078
+ throw takeFromExternrefTable0(ret[1]);
22079
+ }
22080
+ return ErrorEllipse.__wrap(ret[0]);
22081
+ }
22082
+ exports.errorEllipseFromEnuM2 = errorEllipseFromEnuM2;
22083
+
21974
22084
  /**
21975
22085
  * @param {DragForce} drag
21976
22086
  * @param {any} request
@@ -23432,6 +23542,21 @@ function hessianTrace(jacobian, m, n) {
23432
23542
  }
23433
23543
  exports.hessianTrace = hessianTrace;
23434
23544
 
23545
+ /**
23546
+ * Horizontal percentile circle radius from an ENU covariance.
23547
+ * @param {any} covariance_enu_m2
23548
+ * @param {number} probability
23549
+ * @returns {PercentileRadius}
23550
+ */
23551
+ function horizontalRadiusAt(covariance_enu_m2, probability) {
23552
+ const ret = wasm.horizontalRadiusAt(covariance_enu_m2, probability);
23553
+ if (ret[2]) {
23554
+ throw takeFromExternrefTable0(ret[1]);
23555
+ }
23556
+ return PercentileRadius.__wrap(ret[0]);
23557
+ }
23558
+ exports.horizontalRadiusAt = horizontalRadiusAt;
23559
+
23435
23560
  /**
23436
23561
  * Gauss angles-only orbit determination.
23437
23562
  *
@@ -24639,6 +24764,23 @@ function metricsFromKinematicSolution(solution) {
24639
24764
  }
24640
24765
  exports.metricsFromKinematicSolution = metricsFromKinematicSolution;
24641
24766
 
24767
+ /**
24768
+ * Compute position-error metrics from a position covariance object.
24769
+ *
24770
+ * The object must include `ecefM2` and `enuM2`, each a 3 by 3 covariance in
24771
+ * square metres.
24772
+ * @param {any} covariance
24773
+ * @returns {PositionErrorMetrics}
24774
+ */
24775
+ function metricsFromPositionCovariance(covariance) {
24776
+ const ret = wasm.metricsFromPositionCovariance(covariance);
24777
+ if (ret[2]) {
24778
+ throw takeFromExternrefTable0(ret[1]);
24779
+ }
24780
+ return PositionErrorMetrics.__wrap(ret[0]);
24781
+ }
24782
+ exports.metricsFromPositionCovariance = metricsFromPositionCovariance;
24783
+
24642
24784
  /**
24643
24785
  * Modified Allan deviation for explicit averaging factors.
24644
24786
  *
@@ -27640,6 +27782,51 @@ function solveStatic(sp3, epochs, options) {
27640
27782
  }
27641
27783
  exports.solveStatic = solveStatic;
27642
27784
 
27785
+ /**
27786
+ * Solve one static reference-station coordinate from paired RINEX OBS plus SP3.
27787
+ * @param {Sp3} ephemeris
27788
+ * @param {RinexObs} reference_obs
27789
+ * @param {RinexObs} rover_obs
27790
+ * @param {any} config
27791
+ * @returns {any}
27792
+ */
27793
+ function solveStaticReferenceStationRinex(ephemeris, reference_obs, rover_obs, config) {
27794
+ _assertClass(ephemeris, Sp3);
27795
+ _assertClass(reference_obs, RinexObs);
27796
+ _assertClass(rover_obs, RinexObs);
27797
+ const ret = wasm.solveStaticReferenceStationRinex(ephemeris.__wbg_ptr, reference_obs.__wbg_ptr, rover_obs.__wbg_ptr, config);
27798
+ if (ret[2]) {
27799
+ throw takeFromExternrefTable0(ret[1]);
27800
+ }
27801
+ return takeFromExternrefTable0(ret[0]);
27802
+ }
27803
+ exports.solveStaticReferenceStationRinex = solveStaticReferenceStationRinex;
27804
+
27805
+ /**
27806
+ * Solve one static RTK baseline directly from paired RINEX OBS plus SP3.
27807
+ *
27808
+ * `config.baseM` is the base antenna phase-center ECEF position in metres.
27809
+ * Optional `config.arcOptions` controls RINEX signal extraction; other fields
27810
+ * mirror `RtkStaticArcConfig` but the wavelength and offset maps are filled by
27811
+ * the RINEX builder.
27812
+ * @param {Sp3} ephemeris
27813
+ * @param {RinexObs} base_obs
27814
+ * @param {RinexObs} rover_obs
27815
+ * @param {any} config
27816
+ * @returns {any}
27817
+ */
27818
+ function solveStaticRinexRtkBaseline(ephemeris, base_obs, rover_obs, config) {
27819
+ _assertClass(ephemeris, Sp3);
27820
+ _assertClass(base_obs, RinexObs);
27821
+ _assertClass(rover_obs, RinexObs);
27822
+ const ret = wasm.solveStaticRinexRtkBaseline(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, config);
27823
+ if (ret[2]) {
27824
+ throw takeFromExternrefTable0(ret[1]);
27825
+ }
27826
+ return takeFromExternrefTable0(ret[0]);
27827
+ }
27828
+ exports.solveStaticRinexRtkBaseline = solveStaticRinexRtkBaseline;
27829
+
27643
27830
  /**
27644
27831
  * Solve a static RTK arc with one batch float solution and one validated fixed
27645
27832
  * solution over the whole arc.
@@ -27706,6 +27893,30 @@ function solveVelocityBroadcast(broadcast, observations, receiver_ecef_m, t_rx_j
27706
27893
  }
27707
27894
  exports.solveVelocityBroadcast = solveVelocityBroadcast;
27708
27895
 
27896
+ /**
27897
+ * Solve a static dual-frequency wide-lane fixed RTK baseline from RINEX OBS.
27898
+ *
27899
+ * The function builds the dual-frequency RINEX arc, fixes wide-lane
27900
+ * ambiguities, prepares ionosphere-free narrow-lane records, then runs the
27901
+ * static fixed baseline solver.
27902
+ * @param {Sp3} ephemeris
27903
+ * @param {RinexObs} base_obs
27904
+ * @param {RinexObs} rover_obs
27905
+ * @param {any} config
27906
+ * @returns {any}
27907
+ */
27908
+ function solveWideLaneFixedRinexRtkBaseline(ephemeris, base_obs, rover_obs, config) {
27909
+ _assertClass(ephemeris, Sp3);
27910
+ _assertClass(base_obs, RinexObs);
27911
+ _assertClass(rover_obs, RinexObs);
27912
+ const ret = wasm.solveWideLaneFixedRinexRtkBaseline(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, config);
27913
+ if (ret[2]) {
27914
+ throw takeFromExternrefTable0(ret[1]);
27915
+ }
27916
+ return takeFromExternrefTable0(ret[0]);
27917
+ }
27918
+ exports.solveWideLaneFixedRinexRtkBaseline = solveWideLaneFixedRinexRtkBaseline;
27919
+
27709
27920
  /**
27710
27921
  * Solve a receiver position, preferring precise SP3 products and falling back to
27711
27922
  * broadcast ephemeris, reporting which source was used and how stale it is.
@@ -27866,6 +28077,21 @@ function spectralSeparationCoefficientHz(desired, interference, receiver_bandwid
27866
28077
  }
27867
28078
  exports.spectralSeparationCoefficientHz = spectralSeparationCoefficientHz;
27868
28079
 
28080
+ /**
28081
+ * Three-dimensional percentile sphere radius from an ENU covariance.
28082
+ * @param {any} covariance_enu_m2
28083
+ * @param {number} probability
28084
+ * @returns {PercentileRadius}
28085
+ */
28086
+ function sphericalRadiusAt(covariance_enu_m2, probability) {
28087
+ const ret = wasm.sphericalRadiusAt(covariance_enu_m2, probability);
28088
+ if (ret[2]) {
28089
+ throw takeFromExternrefTable0(ret[1]);
28090
+ }
28091
+ return PercentileRadius.__wrap(ret[0]);
28092
+ }
28093
+ exports.sphericalRadiusAt = sphericalRadiusAt;
28094
+
27869
28095
  /**
27870
28096
  * Continuous seconds since J2000 for a split Julian date.
27871
28097
  * @param {number} jd_whole
@@ -28455,6 +28681,22 @@ function validateAgainstSp3Ids(records, ids) {
28455
28681
  }
28456
28682
  exports.validateAgainstSp3Ids = validateAgainstSp3Ids;
28457
28683
 
28684
+ /**
28685
+ * Blend a first good post-outage fix back over an outage span.
28686
+ * @param {any} states
28687
+ * @param {any} first_good_fix
28688
+ * @param {any} config
28689
+ * @returns {any}
28690
+ */
28691
+ function velocityMatchOutage(states, first_good_fix, config) {
28692
+ const ret = wasm.velocityMatchOutage(states, first_good_fix, config);
28693
+ if (ret[2]) {
28694
+ throw takeFromExternrefTable0(ret[1]);
28695
+ }
28696
+ return takeFromExternrefTable0(ret[0]);
28697
+ }
28698
+ exports.velocityMatchOutage = velocityMatchOutage;
28699
+
28458
28700
  /**
28459
28701
  * Estimate robust station velocity with the MIDAS method.
28460
28702
  *
@@ -28474,6 +28716,21 @@ function velocityMidas(series, options) {
28474
28716
  }
28475
28717
  exports.velocityMidas = velocityMidas;
28476
28718
 
28719
+ /**
28720
+ * Vertical one-dimensional percentile radius from an up variance.
28721
+ * @param {number} sigma_u_m2
28722
+ * @param {number} probability
28723
+ * @returns {number}
28724
+ */
28725
+ function verticalRadiusAt(sigma_u_m2, probability) {
28726
+ const ret = wasm.verticalRadiusAt(sigma_u_m2, probability);
28727
+ if (ret[2]) {
28728
+ throw takeFromExternrefTable0(ret[1]);
28729
+ }
28730
+ return ret[0];
28731
+ }
28732
+ exports.verticalRadiusAt = verticalRadiusAt;
28733
+
28477
28734
  /**
28478
28735
  * Satellites visible above `minElevationDeg` from `station` at a single instant,
28479
28736
  * from already-initialized [`Tle`]s: the opsmode-preserving constellation
Binary file