@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.
package/pkg/sidereon.js CHANGED
@@ -20386,6 +20386,52 @@ export function boundedIlsSearch(float_cycles, covariance, radius, candidate_lim
20386
20386
  return takeFromExternrefTable0(ret[0]);
20387
20387
  }
20388
20388
 
20389
+ /**
20390
+ * Build dual-frequency RTK arc records from parsed RINEX OBS products.
20391
+ *
20392
+ * Defaults build the GPS `C1C`/`L1C` plus `C2W`/`L2W` arc used by the real
20393
+ * WTZR/WTZZ fixtures.
20394
+ * @param {Sp3} ephemeris
20395
+ * @param {RinexObs} base_obs
20396
+ * @param {RinexObs} rover_obs
20397
+ * @param {any | null} [options]
20398
+ * @returns {any}
20399
+ */
20400
+ export function buildDualFrequencyRinexRtkArc(ephemeris, base_obs, rover_obs, options) {
20401
+ _assertClass(ephemeris, Sp3);
20402
+ _assertClass(base_obs, RinexObs);
20403
+ _assertClass(rover_obs, RinexObs);
20404
+ const ret = wasm.buildDualFrequencyRinexRtkArc(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, isLikeNone(options) ? 0 : addToExternrefTable0(options));
20405
+ if (ret[2]) {
20406
+ throw takeFromExternrefTable0(ret[1]);
20407
+ }
20408
+ return takeFromExternrefTable0(ret[0]);
20409
+ }
20410
+
20411
+ /**
20412
+ * Build single-frequency RTK arc records from parsed RINEX OBS products.
20413
+ *
20414
+ * `ephemeris` is an SP3 precise ephemeris handle, `baseObs` and `roverObs`
20415
+ * are parsed RINEX observation files, and `options` may provide
20416
+ * `{ signalPairs, maxEpochs, minCommonSatellites, includePredictionTime }`.
20417
+ * Defaults build the GPS `C1C`/`L1C` arc used by the real WTZR/WTZZ fixtures.
20418
+ * @param {Sp3} ephemeris
20419
+ * @param {RinexObs} base_obs
20420
+ * @param {RinexObs} rover_obs
20421
+ * @param {any | null} [options]
20422
+ * @returns {any}
20423
+ */
20424
+ export function buildRinexRtkArc(ephemeris, base_obs, rover_obs, options) {
20425
+ _assertClass(ephemeris, Sp3);
20426
+ _assertClass(base_obs, RinexObs);
20427
+ _assertClass(rover_obs, RinexObs);
20428
+ const ret = wasm.buildRinexRtkArc(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, isLikeNone(options) ? 0 : addToExternrefTable0(options));
20429
+ if (ret[2]) {
20430
+ throw takeFromExternrefTable0(ret[1]);
20431
+ }
20432
+ return takeFromExternrefTable0(ret[0]);
20433
+ }
20434
+
20389
20435
  /**
20390
20436
  * One wrapping GPS C/A chip at a zero-based index.
20391
20437
  * @param {bigint} prn
@@ -21649,6 +21695,19 @@ export function errorEllipse2(covariance, confidence) {
21649
21695
  return ErrorEllipse2.__wrap(ret[0]);
21650
21696
  }
21651
21697
 
21698
+ /**
21699
+ * Horizontal one-sigma ellipse from an ENU covariance in square metres.
21700
+ * @param {any} covariance_enu_m2
21701
+ * @returns {ErrorEllipse}
21702
+ */
21703
+ export function errorEllipseFromEnuM2(covariance_enu_m2) {
21704
+ const ret = wasm.errorEllipseFromEnuM2(covariance_enu_m2);
21705
+ if (ret[2]) {
21706
+ throw takeFromExternrefTable0(ret[1]);
21707
+ }
21708
+ return ErrorEllipse.__wrap(ret[0]);
21709
+ }
21710
+
21652
21711
  /**
21653
21712
  * @param {DragForce} drag
21654
21713
  * @param {any} request
@@ -23042,6 +23101,20 @@ export function hessianTrace(jacobian, m, n) {
23042
23101
  return ret[0];
23043
23102
  }
23044
23103
 
23104
+ /**
23105
+ * Horizontal percentile circle radius from an ENU covariance.
23106
+ * @param {any} covariance_enu_m2
23107
+ * @param {number} probability
23108
+ * @returns {PercentileRadius}
23109
+ */
23110
+ export function horizontalRadiusAt(covariance_enu_m2, probability) {
23111
+ const ret = wasm.horizontalRadiusAt(covariance_enu_m2, probability);
23112
+ if (ret[2]) {
23113
+ throw takeFromExternrefTable0(ret[1]);
23114
+ }
23115
+ return PercentileRadius.__wrap(ret[0]);
23116
+ }
23117
+
23045
23118
  /**
23046
23119
  * Gauss angles-only orbit determination.
23047
23120
  *
@@ -24186,6 +24259,22 @@ export function metricsFromKinematicSolution(solution) {
24186
24259
  return PositionErrorMetrics.__wrap(ret[0]);
24187
24260
  }
24188
24261
 
24262
+ /**
24263
+ * Compute position-error metrics from a position covariance object.
24264
+ *
24265
+ * The object must include `ecefM2` and `enuM2`, each a 3 by 3 covariance in
24266
+ * square metres.
24267
+ * @param {any} covariance
24268
+ * @returns {PositionErrorMetrics}
24269
+ */
24270
+ export function metricsFromPositionCovariance(covariance) {
24271
+ const ret = wasm.metricsFromPositionCovariance(covariance);
24272
+ if (ret[2]) {
24273
+ throw takeFromExternrefTable0(ret[1]);
24274
+ }
24275
+ return PositionErrorMetrics.__wrap(ret[0]);
24276
+ }
24277
+
24189
24278
  /**
24190
24279
  * Modified Allan deviation for explicit averaging factors.
24191
24280
  *
@@ -27033,6 +27122,30 @@ export function solveStatic(sp3, epochs, options) {
27033
27122
  return StaticSolution.__wrap(ret[0]);
27034
27123
  }
27035
27124
 
27125
+ /**
27126
+ * Solve one static RTK baseline directly from paired RINEX OBS plus SP3.
27127
+ *
27128
+ * `config.baseM` is the base antenna phase-center ECEF position in metres.
27129
+ * Optional `config.arcOptions` controls RINEX signal extraction; other fields
27130
+ * mirror `RtkStaticArcConfig` but the wavelength and offset maps are filled by
27131
+ * the RINEX builder.
27132
+ * @param {Sp3} ephemeris
27133
+ * @param {RinexObs} base_obs
27134
+ * @param {RinexObs} rover_obs
27135
+ * @param {any} config
27136
+ * @returns {any}
27137
+ */
27138
+ export function solveStaticRinexRtkBaseline(ephemeris, base_obs, rover_obs, config) {
27139
+ _assertClass(ephemeris, Sp3);
27140
+ _assertClass(base_obs, RinexObs);
27141
+ _assertClass(rover_obs, RinexObs);
27142
+ const ret = wasm.solveStaticRinexRtkBaseline(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, config);
27143
+ if (ret[2]) {
27144
+ throw takeFromExternrefTable0(ret[1]);
27145
+ }
27146
+ return takeFromExternrefTable0(ret[0]);
27147
+ }
27148
+
27036
27149
  /**
27037
27150
  * Solve a static RTK arc with one batch float solution and one validated fixed
27038
27151
  * solution over the whole arc.
@@ -27096,6 +27209,29 @@ export function solveVelocityBroadcast(broadcast, observations, receiver_ecef_m,
27096
27209
  return VelocitySolution.__wrap(ret[0]);
27097
27210
  }
27098
27211
 
27212
+ /**
27213
+ * Solve a static dual-frequency wide-lane fixed RTK baseline from RINEX OBS.
27214
+ *
27215
+ * The function builds the dual-frequency RINEX arc, fixes wide-lane
27216
+ * ambiguities, prepares ionosphere-free narrow-lane records, then runs the
27217
+ * static fixed baseline solver.
27218
+ * @param {Sp3} ephemeris
27219
+ * @param {RinexObs} base_obs
27220
+ * @param {RinexObs} rover_obs
27221
+ * @param {any} config
27222
+ * @returns {any}
27223
+ */
27224
+ export function solveWideLaneFixedRinexRtkBaseline(ephemeris, base_obs, rover_obs, config) {
27225
+ _assertClass(ephemeris, Sp3);
27226
+ _assertClass(base_obs, RinexObs);
27227
+ _assertClass(rover_obs, RinexObs);
27228
+ const ret = wasm.solveWideLaneFixedRinexRtkBaseline(ephemeris.__wbg_ptr, base_obs.__wbg_ptr, rover_obs.__wbg_ptr, config);
27229
+ if (ret[2]) {
27230
+ throw takeFromExternrefTable0(ret[1]);
27231
+ }
27232
+ return takeFromExternrefTable0(ret[0]);
27233
+ }
27234
+
27099
27235
  /**
27100
27236
  * Solve a receiver position, preferring precise SP3 products and falling back to
27101
27237
  * broadcast ephemeris, reporting which source was used and how stale it is.
@@ -27248,6 +27384,20 @@ export function spectralSeparationCoefficientHz(desired, interference, receiver_
27248
27384
  return ret[0];
27249
27385
  }
27250
27386
 
27387
+ /**
27388
+ * Three-dimensional percentile sphere radius from an ENU covariance.
27389
+ * @param {any} covariance_enu_m2
27390
+ * @param {number} probability
27391
+ * @returns {PercentileRadius}
27392
+ */
27393
+ export function sphericalRadiusAt(covariance_enu_m2, probability) {
27394
+ const ret = wasm.sphericalRadiusAt(covariance_enu_m2, probability);
27395
+ if (ret[2]) {
27396
+ throw takeFromExternrefTable0(ret[1]);
27397
+ }
27398
+ return PercentileRadius.__wrap(ret[0]);
27399
+ }
27400
+
27251
27401
  /**
27252
27402
  * Continuous seconds since J2000 for a split Julian date.
27253
27403
  * @param {number} jd_whole
@@ -27825,6 +27975,20 @@ export function velocityMidas(series, options) {
27825
27975
  return takeFromExternrefTable0(ret[0]);
27826
27976
  }
27827
27977
 
27978
+ /**
27979
+ * Vertical one-dimensional percentile radius from an up variance.
27980
+ * @param {number} sigma_u_m2
27981
+ * @param {number} probability
27982
+ * @returns {number}
27983
+ */
27984
+ export function verticalRadiusAt(sigma_u_m2, probability) {
27985
+ const ret = wasm.verticalRadiusAt(sigma_u_m2, probability);
27986
+ if (ret[2]) {
27987
+ throw takeFromExternrefTable0(ret[1]);
27988
+ }
27989
+ return ret[0];
27990
+ }
27991
+
27828
27992
  /**
27829
27993
  * Satellites visible above `minElevationDeg` from `station` at a single instant,
27830
27994
  * from already-initialized [`Tle`]s: the opsmode-preserving constellation
Binary file