@neilberkman/sidereon 0.19.1 → 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.
@@ -8055,6 +8055,24 @@ export function betaAngleFromState(r: Float64Array, v: Float64Array, sun: Float6
8055
8055
  */
8056
8056
  export function boundedIlsSearch(float_cycles: Float64Array, covariance: any, radius: number, candidate_limit: number, ratio_threshold: number): any;
8057
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
+
8058
8076
  /**
8059
8077
  * One wrapping GPS C/A chip at a zero-based index.
8060
8078
  */
@@ -8530,6 +8548,11 @@ export function eq2rv(eq: any, mu_km3_s2: number): any;
8530
8548
  */
8531
8549
  export function errorEllipse2(covariance: Float64Array, confidence: number): ErrorEllipse2;
8532
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
+
8533
8556
  export function estimateDecay(drag: DragForce, request: any): any;
8534
8557
 
8535
8558
  /**
@@ -9062,6 +9085,11 @@ export function hadamardDeviation(series: any, tau0_s: number, averaging_factors
9062
9085
  */
9063
9086
  export function hessianTrace(jacobian: Float64Array, m: number, n: number): number;
9064
9087
 
9088
+ /**
9089
+ * Horizontal percentile circle radius from an ENU covariance.
9090
+ */
9091
+ export function horizontalRadiusAt(covariance_enu_m2: any, probability: number): PercentileRadius;
9092
+
9065
9093
  /**
9066
9094
  * Gauss angles-only orbit determination.
9067
9095
  *
@@ -9479,6 +9507,14 @@ export function metricsFromEnuCovarianceM2(covariance_enu_m2: any): PositionErro
9479
9507
  */
9480
9508
  export function metricsFromKinematicSolution(solution: any): PositionErrorMetrics;
9481
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
+
9482
9518
  /**
9483
9519
  * Modified Allan deviation for explicit averaging factors.
9484
9520
  *
@@ -10511,6 +10547,16 @@ export function solveSppSbas(broadcast: BroadcastEphemeris, store: SbasCorrectio
10511
10547
  */
10512
10548
  export function solveStatic(sp3: Sp3, epochs: any, options: any): StaticSolution;
10513
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
+
10514
10560
  /**
10515
10561
  * Solve a static RTK arc with one batch float solution and one validated fixed
10516
10562
  * solution over the whole arc.
@@ -10535,6 +10581,15 @@ export function solveVelocity(sp3: Sp3, observations: any, receiver_ecef_m: Floa
10535
10581
  */
10536
10582
  export function solveVelocityBroadcast(broadcast: BroadcastEphemeris, observations: any, receiver_ecef_m: Float64Array, t_rx_j2000_s: number, options: any): VelocitySolution;
10537
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
+
10538
10593
  /**
10539
10594
  * Solve a receiver position, preferring precise SP3 products and falling back to
10540
10595
  * broadcast ephemeris, reporting which source was used and how stale it is.
@@ -10599,6 +10654,11 @@ export function spectralSeparationCoefficientDbHz(desired: SignalAnalysisModulat
10599
10654
  */
10600
10655
  export function spectralSeparationCoefficientHz(desired: SignalAnalysisModulation, interference: SignalAnalysisModulation, receiver_bandwidth_hz: number): number;
10601
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
+
10602
10662
  /**
10603
10663
  * Continuous seconds since J2000 for a split Julian date.
10604
10664
  */
@@ -10823,6 +10883,11 @@ export function validateAgainstSp3Ids(records: any, ids: any): any;
10823
10883
  */
10824
10884
  export function velocityMidas(series: any, options: any): any;
10825
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
+
10826
10891
  /**
10827
10892
  * Satellites visible above `minElevationDeg` from `station` at a single instant,
10828
10893
  * from already-initialized [`Tle`]s: the opsmode-preserving constellation
@@ -20638,6 +20638,54 @@ function boundedIlsSearch(float_cycles, covariance, radius, candidate_limit, rat
20638
20638
  }
20639
20639
  exports.boundedIlsSearch = boundedIlsSearch;
20640
20640
 
20641
+ /**
20642
+ * Build dual-frequency RTK arc records from parsed RINEX OBS products.
20643
+ *
20644
+ * Defaults build the GPS `C1C`/`L1C` plus `C2W`/`L2W` arc used by the real
20645
+ * WTZR/WTZZ fixtures.
20646
+ * @param {Sp3} ephemeris
20647
+ * @param {RinexObs} base_obs
20648
+ * @param {RinexObs} rover_obs
20649
+ * @param {any | null} [options]
20650
+ * @returns {any}
20651
+ */
20652
+ function buildDualFrequencyRinexRtkArc(ephemeris, base_obs, rover_obs, options) {
20653
+ _assertClass(ephemeris, Sp3);
20654
+ _assertClass(base_obs, RinexObs);
20655
+ _assertClass(rover_obs, RinexObs);
20656
+ const ret = wasm.buildDualFrequencyRinexRtkArc(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, isLikeNone(options) ? 0 : addToExternrefTable0(options));
20657
+ if (ret[2]) {
20658
+ throw takeFromExternrefTable0(ret[1]);
20659
+ }
20660
+ return takeFromExternrefTable0(ret[0]);
20661
+ }
20662
+ exports.buildDualFrequencyRinexRtkArc = buildDualFrequencyRinexRtkArc;
20663
+
20664
+ /**
20665
+ * Build single-frequency RTK arc records from parsed RINEX OBS products.
20666
+ *
20667
+ * `ephemeris` is an SP3 precise ephemeris handle, `baseObs` and `roverObs`
20668
+ * are parsed RINEX observation files, and `options` may provide
20669
+ * `{ signalPairs, maxEpochs, minCommonSatellites, includePredictionTime }`.
20670
+ * Defaults build the GPS `C1C`/`L1C` arc used by the real WTZR/WTZZ fixtures.
20671
+ * @param {Sp3} ephemeris
20672
+ * @param {RinexObs} base_obs
20673
+ * @param {RinexObs} rover_obs
20674
+ * @param {any | null} [options]
20675
+ * @returns {any}
20676
+ */
20677
+ function buildRinexRtkArc(ephemeris, base_obs, rover_obs, options) {
20678
+ _assertClass(ephemeris, Sp3);
20679
+ _assertClass(base_obs, RinexObs);
20680
+ _assertClass(rover_obs, RinexObs);
20681
+ const ret = wasm.buildRinexRtkArc(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, isLikeNone(options) ? 0 : addToExternrefTable0(options));
20682
+ if (ret[2]) {
20683
+ throw takeFromExternrefTable0(ret[1]);
20684
+ }
20685
+ return takeFromExternrefTable0(ret[0]);
20686
+ }
20687
+ exports.buildRinexRtkArc = buildRinexRtkArc;
20688
+
20641
20689
  /**
20642
20690
  * One wrapping GPS C/A chip at a zero-based index.
20643
20691
  * @param {bigint} prn
@@ -21971,6 +22019,20 @@ function errorEllipse2(covariance, confidence) {
21971
22019
  }
21972
22020
  exports.errorEllipse2 = errorEllipse2;
21973
22021
 
22022
+ /**
22023
+ * Horizontal one-sigma ellipse from an ENU covariance in square metres.
22024
+ * @param {any} covariance_enu_m2
22025
+ * @returns {ErrorEllipse}
22026
+ */
22027
+ function errorEllipseFromEnuM2(covariance_enu_m2) {
22028
+ const ret = wasm.errorEllipseFromEnuM2(covariance_enu_m2);
22029
+ if (ret[2]) {
22030
+ throw takeFromExternrefTable0(ret[1]);
22031
+ }
22032
+ return ErrorEllipse.__wrap(ret[0]);
22033
+ }
22034
+ exports.errorEllipseFromEnuM2 = errorEllipseFromEnuM2;
22035
+
21974
22036
  /**
21975
22037
  * @param {DragForce} drag
21976
22038
  * @param {any} request
@@ -23432,6 +23494,21 @@ function hessianTrace(jacobian, m, n) {
23432
23494
  }
23433
23495
  exports.hessianTrace = hessianTrace;
23434
23496
 
23497
+ /**
23498
+ * Horizontal percentile circle radius from an ENU covariance.
23499
+ * @param {any} covariance_enu_m2
23500
+ * @param {number} probability
23501
+ * @returns {PercentileRadius}
23502
+ */
23503
+ function horizontalRadiusAt(covariance_enu_m2, probability) {
23504
+ const ret = wasm.horizontalRadiusAt(covariance_enu_m2, probability);
23505
+ if (ret[2]) {
23506
+ throw takeFromExternrefTable0(ret[1]);
23507
+ }
23508
+ return PercentileRadius.__wrap(ret[0]);
23509
+ }
23510
+ exports.horizontalRadiusAt = horizontalRadiusAt;
23511
+
23435
23512
  /**
23436
23513
  * Gauss angles-only orbit determination.
23437
23514
  *
@@ -24639,6 +24716,23 @@ function metricsFromKinematicSolution(solution) {
24639
24716
  }
24640
24717
  exports.metricsFromKinematicSolution = metricsFromKinematicSolution;
24641
24718
 
24719
+ /**
24720
+ * Compute position-error metrics from a position covariance object.
24721
+ *
24722
+ * The object must include `ecefM2` and `enuM2`, each a 3 by 3 covariance in
24723
+ * square metres.
24724
+ * @param {any} covariance
24725
+ * @returns {PositionErrorMetrics}
24726
+ */
24727
+ function metricsFromPositionCovariance(covariance) {
24728
+ const ret = wasm.metricsFromPositionCovariance(covariance);
24729
+ if (ret[2]) {
24730
+ throw takeFromExternrefTable0(ret[1]);
24731
+ }
24732
+ return PositionErrorMetrics.__wrap(ret[0]);
24733
+ }
24734
+ exports.metricsFromPositionCovariance = metricsFromPositionCovariance;
24735
+
24642
24736
  /**
24643
24737
  * Modified Allan deviation for explicit averaging factors.
24644
24738
  *
@@ -27640,6 +27734,31 @@ function solveStatic(sp3, epochs, options) {
27640
27734
  }
27641
27735
  exports.solveStatic = solveStatic;
27642
27736
 
27737
+ /**
27738
+ * Solve one static RTK baseline directly from paired RINEX OBS plus SP3.
27739
+ *
27740
+ * `config.baseM` is the base antenna phase-center ECEF position in metres.
27741
+ * Optional `config.arcOptions` controls RINEX signal extraction; other fields
27742
+ * mirror `RtkStaticArcConfig` but the wavelength and offset maps are filled by
27743
+ * the RINEX builder.
27744
+ * @param {Sp3} ephemeris
27745
+ * @param {RinexObs} base_obs
27746
+ * @param {RinexObs} rover_obs
27747
+ * @param {any} config
27748
+ * @returns {any}
27749
+ */
27750
+ function solveStaticRinexRtkBaseline(ephemeris, base_obs, rover_obs, config) {
27751
+ _assertClass(ephemeris, Sp3);
27752
+ _assertClass(base_obs, RinexObs);
27753
+ _assertClass(rover_obs, RinexObs);
27754
+ const ret = wasm.solveStaticRinexRtkBaseline(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, config);
27755
+ if (ret[2]) {
27756
+ throw takeFromExternrefTable0(ret[1]);
27757
+ }
27758
+ return takeFromExternrefTable0(ret[0]);
27759
+ }
27760
+ exports.solveStaticRinexRtkBaseline = solveStaticRinexRtkBaseline;
27761
+
27643
27762
  /**
27644
27763
  * Solve a static RTK arc with one batch float solution and one validated fixed
27645
27764
  * solution over the whole arc.
@@ -27706,6 +27825,30 @@ function solveVelocityBroadcast(broadcast, observations, receiver_ecef_m, t_rx_j
27706
27825
  }
27707
27826
  exports.solveVelocityBroadcast = solveVelocityBroadcast;
27708
27827
 
27828
+ /**
27829
+ * Solve a static dual-frequency wide-lane fixed RTK baseline from RINEX OBS.
27830
+ *
27831
+ * The function builds the dual-frequency RINEX arc, fixes wide-lane
27832
+ * ambiguities, prepares ionosphere-free narrow-lane records, then runs the
27833
+ * static fixed baseline solver.
27834
+ * @param {Sp3} ephemeris
27835
+ * @param {RinexObs} base_obs
27836
+ * @param {RinexObs} rover_obs
27837
+ * @param {any} config
27838
+ * @returns {any}
27839
+ */
27840
+ function solveWideLaneFixedRinexRtkBaseline(ephemeris, base_obs, rover_obs, config) {
27841
+ _assertClass(ephemeris, Sp3);
27842
+ _assertClass(base_obs, RinexObs);
27843
+ _assertClass(rover_obs, RinexObs);
27844
+ const ret = wasm.solveWideLaneFixedRinexRtkBaseline(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, config);
27845
+ if (ret[2]) {
27846
+ throw takeFromExternrefTable0(ret[1]);
27847
+ }
27848
+ return takeFromExternrefTable0(ret[0]);
27849
+ }
27850
+ exports.solveWideLaneFixedRinexRtkBaseline = solveWideLaneFixedRinexRtkBaseline;
27851
+
27709
27852
  /**
27710
27853
  * Solve a receiver position, preferring precise SP3 products and falling back to
27711
27854
  * broadcast ephemeris, reporting which source was used and how stale it is.
@@ -27866,6 +28009,21 @@ function spectralSeparationCoefficientHz(desired, interference, receiver_bandwid
27866
28009
  }
27867
28010
  exports.spectralSeparationCoefficientHz = spectralSeparationCoefficientHz;
27868
28011
 
28012
+ /**
28013
+ * Three-dimensional percentile sphere radius from an ENU covariance.
28014
+ * @param {any} covariance_enu_m2
28015
+ * @param {number} probability
28016
+ * @returns {PercentileRadius}
28017
+ */
28018
+ function sphericalRadiusAt(covariance_enu_m2, probability) {
28019
+ const ret = wasm.sphericalRadiusAt(covariance_enu_m2, probability);
28020
+ if (ret[2]) {
28021
+ throw takeFromExternrefTable0(ret[1]);
28022
+ }
28023
+ return PercentileRadius.__wrap(ret[0]);
28024
+ }
28025
+ exports.sphericalRadiusAt = sphericalRadiusAt;
28026
+
27869
28027
  /**
27870
28028
  * Continuous seconds since J2000 for a split Julian date.
27871
28029
  * @param {number} jd_whole
@@ -28474,6 +28632,21 @@ function velocityMidas(series, options) {
28474
28632
  }
28475
28633
  exports.velocityMidas = velocityMidas;
28476
28634
 
28635
+ /**
28636
+ * Vertical one-dimensional percentile radius from an up variance.
28637
+ * @param {number} sigma_u_m2
28638
+ * @param {number} probability
28639
+ * @returns {number}
28640
+ */
28641
+ function verticalRadiusAt(sigma_u_m2, probability) {
28642
+ const ret = wasm.verticalRadiusAt(sigma_u_m2, probability);
28643
+ if (ret[2]) {
28644
+ throw takeFromExternrefTable0(ret[1]);
28645
+ }
28646
+ return ret[0];
28647
+ }
28648
+ exports.verticalRadiusAt = verticalRadiusAt;
28649
+
28477
28650
  /**
28478
28651
  * Satellites visible above `minElevationDeg` from `station` at a single instant,
28479
28652
  * from already-initialized [`Tle`]s: the opsmode-preserving constellation
Binary file