gnss-js 1.23.0 → 1.24.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/dist/{chunk-CUWF56ST.js → chunk-T2ZMNRCY.js} +311 -3
- package/dist/index.cjs +313 -3
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +5 -1
- package/dist/positioning.cjs +313 -3
- package/dist/positioning.d.cts +167 -5
- package/dist/positioning.d.ts +167 -5
- package/dist/positioning.js +5 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -212,6 +212,8 @@ __export(src_exports, {
|
|
|
212
212
|
ionoFree: () => ionoFree,
|
|
213
213
|
keplerPosition: () => keplerPosition,
|
|
214
214
|
klobucharDelay: () => klobucharDelay,
|
|
215
|
+
lambdaReduction: () => lambdaReduction,
|
|
216
|
+
lambdaSearch: () => lambdaSearch,
|
|
215
217
|
maskRadForAzimuth: () => maskRadForAzimuth,
|
|
216
218
|
msmEpochToDate: () => msmEpochToDate,
|
|
217
219
|
navTimesFromEph: () => navTimesFromEph,
|
|
@@ -9680,6 +9682,207 @@ function klobucharDelay(coeffs, latRad, lonRad, azRad, elRad, gpsTowSec) {
|
|
|
9680
9682
|
return F * (5e-9 + amp * (1 - x2 / 2 + x2 * x2 / 24));
|
|
9681
9683
|
}
|
|
9682
9684
|
|
|
9685
|
+
// src/positioning/lambda.ts
|
|
9686
|
+
var LOOPMAX = 1e4;
|
|
9687
|
+
var ROUND = (x) => Math.floor(x + 0.5);
|
|
9688
|
+
var SGN = (x) => x <= 0 ? -1 : 1;
|
|
9689
|
+
function ldFactor(n, Q, L, D) {
|
|
9690
|
+
const A = Float64Array.from(Q);
|
|
9691
|
+
for (let i = n - 1; i >= 0; i--) {
|
|
9692
|
+
D[i] = A[i + i * n];
|
|
9693
|
+
if (D[i] <= 0) return false;
|
|
9694
|
+
const a = Math.sqrt(D[i]);
|
|
9695
|
+
for (let j = 0; j <= i; j++) L[i + j * n] = A[i + j * n] / a;
|
|
9696
|
+
for (let j = 0; j <= i - 1; j++)
|
|
9697
|
+
for (let k = 0; k <= j; k++) A[j + k * n] -= L[i + k * n] * L[i + j * n];
|
|
9698
|
+
for (let j = 0; j <= i; j++) L[i + j * n] /= L[i + i * n];
|
|
9699
|
+
}
|
|
9700
|
+
return true;
|
|
9701
|
+
}
|
|
9702
|
+
function gauss(n, L, Z2, i, j) {
|
|
9703
|
+
const mu = ROUND(L[i + j * n]);
|
|
9704
|
+
if (mu !== 0) {
|
|
9705
|
+
for (let k = i; k < n; k++) L[k + n * j] -= mu * L[k + i * n];
|
|
9706
|
+
for (let k = 0; k < n; k++) Z2[k + n * j] -= mu * Z2[k + i * n];
|
|
9707
|
+
}
|
|
9708
|
+
}
|
|
9709
|
+
function perm(n, L, D, j, del, Z2) {
|
|
9710
|
+
const eta = D[j] / del;
|
|
9711
|
+
const lam = D[j + 1] * L[j + 1 + j * n] / del;
|
|
9712
|
+
D[j] = eta * D[j + 1];
|
|
9713
|
+
D[j + 1] = del;
|
|
9714
|
+
for (let k = 0; k <= j - 1; k++) {
|
|
9715
|
+
const a0 = L[j + k * n];
|
|
9716
|
+
const a1 = L[j + 1 + k * n];
|
|
9717
|
+
L[j + k * n] = -L[j + 1 + j * n] * a0 + a1;
|
|
9718
|
+
L[j + 1 + k * n] = eta * a0 + lam * a1;
|
|
9719
|
+
}
|
|
9720
|
+
L[j + 1 + j * n] = lam;
|
|
9721
|
+
for (let k = j + 2; k < n; k++) {
|
|
9722
|
+
const t = L[k + j * n];
|
|
9723
|
+
L[k + j * n] = L[k + (j + 1) * n];
|
|
9724
|
+
L[k + (j + 1) * n] = t;
|
|
9725
|
+
}
|
|
9726
|
+
for (let k = 0; k < n; k++) {
|
|
9727
|
+
const t = Z2[k + j * n];
|
|
9728
|
+
Z2[k + j * n] = Z2[k + (j + 1) * n];
|
|
9729
|
+
Z2[k + (j + 1) * n] = t;
|
|
9730
|
+
}
|
|
9731
|
+
}
|
|
9732
|
+
function reduction(n, L, D, Z2) {
|
|
9733
|
+
let j = n - 2;
|
|
9734
|
+
let k = n - 2;
|
|
9735
|
+
while (j >= 0) {
|
|
9736
|
+
if (j <= k) for (let i = j + 1; i < n; i++) gauss(n, L, Z2, i, j);
|
|
9737
|
+
const del = D[j] + L[j + 1 + j * n] * L[j + 1 + j * n] * D[j + 1];
|
|
9738
|
+
if (del + 1e-6 < D[j + 1]) {
|
|
9739
|
+
perm(n, L, D, j, del, Z2);
|
|
9740
|
+
k = j;
|
|
9741
|
+
j = n - 2;
|
|
9742
|
+
} else j--;
|
|
9743
|
+
}
|
|
9744
|
+
}
|
|
9745
|
+
function search(n, m, L, D, zs, zn, s) {
|
|
9746
|
+
let nn = 0;
|
|
9747
|
+
let imax = 0;
|
|
9748
|
+
let maxdist = 1e99;
|
|
9749
|
+
const S = new Float64Array(n * n);
|
|
9750
|
+
const dist = new Float64Array(n);
|
|
9751
|
+
const zb = new Float64Array(n);
|
|
9752
|
+
const z = new Float64Array(n);
|
|
9753
|
+
const step = new Float64Array(n);
|
|
9754
|
+
let k = n - 1;
|
|
9755
|
+
dist[k] = 0;
|
|
9756
|
+
zb[k] = zs[k];
|
|
9757
|
+
z[k] = ROUND(zb[k]);
|
|
9758
|
+
let y = zb[k] - z[k];
|
|
9759
|
+
step[k] = SGN(y);
|
|
9760
|
+
let c = 0;
|
|
9761
|
+
for (; c < LOOPMAX; c++) {
|
|
9762
|
+
const newdist = dist[k] + y * y / D[k];
|
|
9763
|
+
if (newdist < maxdist) {
|
|
9764
|
+
if (k !== 0) {
|
|
9765
|
+
dist[--k] = newdist;
|
|
9766
|
+
for (let i = 0; i <= k; i++)
|
|
9767
|
+
S[k + i * n] = S[k + 1 + i * n] + (z[k + 1] - zb[k + 1]) * L[k + 1 + i * n];
|
|
9768
|
+
zb[k] = zs[k] + S[k + k * n];
|
|
9769
|
+
z[k] = ROUND(zb[k]);
|
|
9770
|
+
y = zb[k] - z[k];
|
|
9771
|
+
step[k] = SGN(y);
|
|
9772
|
+
} else {
|
|
9773
|
+
if (nn < m) {
|
|
9774
|
+
if (nn === 0 || newdist > s[imax]) imax = nn;
|
|
9775
|
+
for (let i = 0; i < n; i++) zn[i + nn * n] = z[i];
|
|
9776
|
+
s[nn++] = newdist;
|
|
9777
|
+
} else {
|
|
9778
|
+
if (newdist < s[imax]) {
|
|
9779
|
+
for (let i = 0; i < n; i++) zn[i + imax * n] = z[i];
|
|
9780
|
+
s[imax] = newdist;
|
|
9781
|
+
imax = 0;
|
|
9782
|
+
for (let i = 0; i < m; i++) if (s[imax] < s[i]) imax = i;
|
|
9783
|
+
}
|
|
9784
|
+
maxdist = s[imax];
|
|
9785
|
+
}
|
|
9786
|
+
z[0] += step[0];
|
|
9787
|
+
y = zb[0] - z[0];
|
|
9788
|
+
step[0] = -step[0] - SGN(step[0]);
|
|
9789
|
+
}
|
|
9790
|
+
} else {
|
|
9791
|
+
if (k === n - 1) break;
|
|
9792
|
+
k++;
|
|
9793
|
+
z[k] += step[k];
|
|
9794
|
+
y = zb[k] - z[k];
|
|
9795
|
+
step[k] = -step[k] - SGN(step[k]);
|
|
9796
|
+
}
|
|
9797
|
+
}
|
|
9798
|
+
for (let i = 0; i < m - 1; i++) {
|
|
9799
|
+
for (let j = i + 1; j < m; j++) {
|
|
9800
|
+
if (s[i] < s[j]) continue;
|
|
9801
|
+
const t = s[i];
|
|
9802
|
+
s[i] = s[j];
|
|
9803
|
+
s[j] = t;
|
|
9804
|
+
for (let l = 0; l < n; l++) {
|
|
9805
|
+
const u = zn[l + i * n];
|
|
9806
|
+
zn[l + i * n] = zn[l + j * n];
|
|
9807
|
+
zn[l + j * n] = u;
|
|
9808
|
+
}
|
|
9809
|
+
}
|
|
9810
|
+
}
|
|
9811
|
+
return c < LOOPMAX;
|
|
9812
|
+
}
|
|
9813
|
+
function solveZt(n, m, Z2, E) {
|
|
9814
|
+
const w = n + m;
|
|
9815
|
+
const M = new Float64Array(n * w);
|
|
9816
|
+
for (let r = 0; r < n; r++) {
|
|
9817
|
+
for (let cIdx = 0; cIdx < n; cIdx++) M[r * w + cIdx] = Z2[cIdx + r * n];
|
|
9818
|
+
for (let cIdx = 0; cIdx < m; cIdx++) M[r * w + n + cIdx] = E[r + cIdx * n];
|
|
9819
|
+
}
|
|
9820
|
+
for (let col = 0; col < n; col++) {
|
|
9821
|
+
let piv = col;
|
|
9822
|
+
for (let r = col + 1; r < n; r++)
|
|
9823
|
+
if (Math.abs(M[r * w + col]) > Math.abs(M[piv * w + col])) piv = r;
|
|
9824
|
+
if (Math.abs(M[piv * w + col]) < 1e-12) return null;
|
|
9825
|
+
if (piv !== col) {
|
|
9826
|
+
for (let cIdx = col; cIdx < w; cIdx++) {
|
|
9827
|
+
const t = M[col * w + cIdx];
|
|
9828
|
+
M[col * w + cIdx] = M[piv * w + cIdx];
|
|
9829
|
+
M[piv * w + cIdx] = t;
|
|
9830
|
+
}
|
|
9831
|
+
}
|
|
9832
|
+
const d = M[col * w + col];
|
|
9833
|
+
for (let cIdx = col; cIdx < w; cIdx++) M[col * w + cIdx] /= d;
|
|
9834
|
+
for (let r = 0; r < n; r++) {
|
|
9835
|
+
if (r === col) continue;
|
|
9836
|
+
const f = M[r * w + col];
|
|
9837
|
+
if (f === 0) continue;
|
|
9838
|
+
for (let cIdx = col; cIdx < w; cIdx++)
|
|
9839
|
+
M[r * w + cIdx] -= f * M[col * w + cIdx];
|
|
9840
|
+
}
|
|
9841
|
+
}
|
|
9842
|
+
const X = new Float64Array(n * m);
|
|
9843
|
+
for (let r = 0; r < n; r++)
|
|
9844
|
+
for (let cIdx = 0; cIdx < m; cIdx++) X[r + cIdx * n] = M[r * w + n + cIdx];
|
|
9845
|
+
return X;
|
|
9846
|
+
}
|
|
9847
|
+
function lambdaSearch(a, Q, n, m = 2) {
|
|
9848
|
+
if (n <= 0 || m <= 0 || a.length < n || Q.length < n * n) return null;
|
|
9849
|
+
const L = new Float64Array(n * n);
|
|
9850
|
+
const D = new Float64Array(n);
|
|
9851
|
+
if (!ldFactor(n, Q, L, D)) return null;
|
|
9852
|
+
const Z2 = new Float64Array(n * n);
|
|
9853
|
+
for (let i = 0; i < n; i++) Z2[i + i * n] = 1;
|
|
9854
|
+
reduction(n, L, D, Z2);
|
|
9855
|
+
const z = new Float64Array(n);
|
|
9856
|
+
for (let j = 0; j < n; j++) {
|
|
9857
|
+
let sum = 0;
|
|
9858
|
+
for (let k = 0; k < n; k++) sum += Z2[k + j * n] * a[k];
|
|
9859
|
+
z[j] = sum;
|
|
9860
|
+
}
|
|
9861
|
+
const E = new Float64Array(n * m);
|
|
9862
|
+
const s = new Float64Array(m);
|
|
9863
|
+
if (!search(n, m, L, D, z, E, s)) return null;
|
|
9864
|
+
const F = solveZt(n, m, Z2, E);
|
|
9865
|
+
if (!F) return null;
|
|
9866
|
+
const candidates = [];
|
|
9867
|
+
for (let c = 0; c < m; c++) {
|
|
9868
|
+
const v = new Float64Array(n);
|
|
9869
|
+
for (let i = 0; i < n; i++) v[i] = ROUND(F[i + c * n]);
|
|
9870
|
+
candidates.push(v);
|
|
9871
|
+
}
|
|
9872
|
+
const ratio = m >= 2 && s[0] > 0 ? s[1] / s[0] : Infinity;
|
|
9873
|
+
return { candidates, residuals: s, ratio };
|
|
9874
|
+
}
|
|
9875
|
+
function lambdaReduction(Q, n) {
|
|
9876
|
+
if (n <= 0 || Q.length < n * n) return null;
|
|
9877
|
+
const L = new Float64Array(n * n);
|
|
9878
|
+
const D = new Float64Array(n);
|
|
9879
|
+
if (!ldFactor(n, Q, L, D)) return null;
|
|
9880
|
+
const Z2 = new Float64Array(n * n);
|
|
9881
|
+
for (let i = 0; i < n; i++) Z2[i + i * n] = 1;
|
|
9882
|
+
reduction(n, L, D, Z2);
|
|
9883
|
+
return Z2;
|
|
9884
|
+
}
|
|
9885
|
+
|
|
9683
9886
|
// src/positioning/rtk.ts
|
|
9684
9887
|
var L1_CODES = {
|
|
9685
9888
|
G: ["1C"],
|
|
@@ -10040,7 +10243,13 @@ var RtkFloatEngine = class {
|
|
|
10040
10243
|
maxGapMs: opts.maxGapMs ?? 1e4,
|
|
10041
10244
|
codeGateM: opts.codeGateM ?? 30,
|
|
10042
10245
|
slipGateM: opts.slipGateM ?? 5,
|
|
10043
|
-
updateIterations: opts.updateIterations ?? 2
|
|
10246
|
+
updateIterations: opts.updateIterations ?? 2,
|
|
10247
|
+
ambiguityResolution: opts.ambiguityResolution ?? "off",
|
|
10248
|
+
ratioThreshold: opts.ratioThreshold ?? 3,
|
|
10249
|
+
arElevationMaskDeg: opts.arElevationMaskDeg ?? 0,
|
|
10250
|
+
glonassAr: opts.glonassAr ?? false,
|
|
10251
|
+
partialFixing: opts.partialFixing ?? true,
|
|
10252
|
+
minFixAmbiguities: opts.minFixAmbiguities ?? 4
|
|
10044
10253
|
};
|
|
10045
10254
|
}
|
|
10046
10255
|
/** Clear all filter state (position, ambiguities, lock history). */
|
|
@@ -10098,6 +10307,56 @@ var RtkFloatEngine = class {
|
|
|
10098
10307
|
const entry = this.amb[newRefIdx];
|
|
10099
10308
|
entry.prn = oldRef;
|
|
10100
10309
|
}
|
|
10310
|
+
/**
|
|
10311
|
+
* Try to fix the ambiguity subset `idxs` (indices into `this.amb`):
|
|
10312
|
+
* extract the float subvector b and covariance Q_b from the filter,
|
|
10313
|
+
* run MLAMBDA and, without touching the filter state, condition the
|
|
10314
|
+
* position on the best integer candidate,
|
|
10315
|
+
* xa = x − P_xb·Q_b⁻¹·(b − ǎ)
|
|
10316
|
+
* (RTKLIB rtkpos.c `resamb_LAMBDA`). Returns null when Q_b is not
|
|
10317
|
+
* positive definite / invertible or the search fails; ratio
|
|
10318
|
+
* validation is the caller's job.
|
|
10319
|
+
*/
|
|
10320
|
+
tryFix(idxs) {
|
|
10321
|
+
const k = idxs.length;
|
|
10322
|
+
const b = new Float64Array(k);
|
|
10323
|
+
const Qb = new Float64Array(k * k);
|
|
10324
|
+
const QbRows = [];
|
|
10325
|
+
for (let i = 0; i < k; i++) {
|
|
10326
|
+
const si = 3 + idxs[i];
|
|
10327
|
+
b[i] = this.x[si];
|
|
10328
|
+
const row = [];
|
|
10329
|
+
for (let j = 0; j < k; j++) {
|
|
10330
|
+
const sj = 3 + idxs[j];
|
|
10331
|
+
const q = (this.P[si][sj] + this.P[sj][si]) / 2;
|
|
10332
|
+
Qb[i + j * k] = q;
|
|
10333
|
+
row.push(q);
|
|
10334
|
+
}
|
|
10335
|
+
QbRows.push(row);
|
|
10336
|
+
}
|
|
10337
|
+
const res = lambdaSearch(b, Qb, k, 2);
|
|
10338
|
+
if (!res) return null;
|
|
10339
|
+
const best = res.candidates[0];
|
|
10340
|
+
const QbInv = matInv(QbRows);
|
|
10341
|
+
if (!QbInv) return null;
|
|
10342
|
+
const db = [];
|
|
10343
|
+
for (let i = 0; i < k; i++) db.push(b[i] - best[i]);
|
|
10344
|
+
const position = [
|
|
10345
|
+
this.x[0],
|
|
10346
|
+
this.x[1],
|
|
10347
|
+
this.x[2]
|
|
10348
|
+
];
|
|
10349
|
+
for (let r = 0; r < 3; r++) {
|
|
10350
|
+
let dx = 0;
|
|
10351
|
+
for (let i = 0; i < k; i++) {
|
|
10352
|
+
let yi = 0;
|
|
10353
|
+
for (let j = 0; j < k; j++) yi += QbInv[i][j] * db[j];
|
|
10354
|
+
dx += this.P[r][3 + idxs[i]] * yi;
|
|
10355
|
+
}
|
|
10356
|
+
position[r] -= dx;
|
|
10357
|
+
}
|
|
10358
|
+
return { ratio: res.ratio, position, intAmb: [...best] };
|
|
10359
|
+
}
|
|
10101
10360
|
/**
|
|
10102
10361
|
* Process one synchronized epoch (same nominal `timeMs` for both
|
|
10103
10362
|
* receivers). Returns null until a first position can be
|
|
@@ -10348,6 +10607,47 @@ var RtkFloatEngine = class {
|
|
|
10348
10607
|
Pnew[j][i] = s;
|
|
10349
10608
|
}
|
|
10350
10609
|
this.P = Pnew;
|
|
10610
|
+
let status = rows.some(
|
|
10611
|
+
(r) => r.kind === "phase"
|
|
10612
|
+
) ? "float" : "dgnss";
|
|
10613
|
+
let ratio;
|
|
10614
|
+
let nFixed;
|
|
10615
|
+
let fixedPos = null;
|
|
10616
|
+
let fixedAmbiguities;
|
|
10617
|
+
if (o.ambiguityResolution === "instant") {
|
|
10618
|
+
const cands = [];
|
|
10619
|
+
for (const row of rows) {
|
|
10620
|
+
if (row.kind !== "phase") continue;
|
|
10621
|
+
if (row.g.prn[0] === "R" && !o.glonassAr) continue;
|
|
10622
|
+
if (row.g.elB < o.arElevationMaskDeg * Math.PI / 180) continue;
|
|
10623
|
+
cands.push({ idx: row.ambIdx, el: row.g.elB });
|
|
10624
|
+
}
|
|
10625
|
+
cands.sort((a, b) => b.el - a.el);
|
|
10626
|
+
const floor = Math.max(
|
|
10627
|
+
o.minFixAmbiguities,
|
|
10628
|
+
Math.ceil(cands.length / 2),
|
|
10629
|
+
1
|
|
10630
|
+
);
|
|
10631
|
+
while (cands.length >= floor) {
|
|
10632
|
+
const fix = this.tryFix(cands.map((c) => c.idx));
|
|
10633
|
+
if (!fix) break;
|
|
10634
|
+
const capped = Math.min(fix.ratio, 999.9);
|
|
10635
|
+
ratio ??= capped;
|
|
10636
|
+
if (fix.ratio >= o.ratioThreshold) {
|
|
10637
|
+
ratio = capped;
|
|
10638
|
+
status = "fixed";
|
|
10639
|
+
nFixed = cands.length;
|
|
10640
|
+
fixedPos = fix.position;
|
|
10641
|
+
fixedAmbiguities = {};
|
|
10642
|
+
cands.forEach((c, i) => {
|
|
10643
|
+
fixedAmbiguities[this.amb[c.idx].prn] = fix.intAmb[i];
|
|
10644
|
+
});
|
|
10645
|
+
break;
|
|
10646
|
+
}
|
|
10647
|
+
if (!o.partialFixing) break;
|
|
10648
|
+
cands.pop();
|
|
10649
|
+
}
|
|
10650
|
+
}
|
|
10351
10651
|
for (const g of geom) {
|
|
10352
10652
|
if (g.cpR === null || g.cpB === null) continue;
|
|
10353
10653
|
this.track.set(g.prn, { lockR: g.lockR, lockB: g.lockB, lastMs: timeMs });
|
|
@@ -10361,14 +10661,22 @@ var RtkFloatEngine = class {
|
|
|
10361
10661
|
const nSats = new Set(rows.flatMap((r) => [r.g.prn, r.ref.prn])).size;
|
|
10362
10662
|
return {
|
|
10363
10663
|
timeMs,
|
|
10364
|
-
position: [this.x[0], this.x[1], this.x[2]],
|
|
10664
|
+
position: fixedPos ?? [this.x[0], this.x[1], this.x[2]],
|
|
10365
10665
|
floatBaseline: [
|
|
10366
10666
|
this.x[0] - this.basePos[0],
|
|
10367
10667
|
this.x[1] - this.basePos[1],
|
|
10368
10668
|
this.x[2] - this.basePos[2]
|
|
10369
10669
|
],
|
|
10670
|
+
status,
|
|
10370
10671
|
nSats,
|
|
10371
|
-
ratio
|
|
10672
|
+
ratio,
|
|
10673
|
+
nFixed,
|
|
10674
|
+
fixedBaseline: fixedPos ? [
|
|
10675
|
+
fixedPos[0] - this.basePos[0],
|
|
10676
|
+
fixedPos[1] - this.basePos[1],
|
|
10677
|
+
fixedPos[2] - this.basePos[2]
|
|
10678
|
+
] : void 0,
|
|
10679
|
+
fixedAmbiguities,
|
|
10372
10680
|
sigmas: [
|
|
10373
10681
|
Math.sqrt(Math.max(this.P[0][0], 0)),
|
|
10374
10682
|
Math.sqrt(Math.max(this.P[1][1], 0)),
|
|
@@ -13044,6 +13352,8 @@ function computePsdDb(centerMHz, halfSpanChips, numPoints, psdFn, f0 = 1023e3, f
|
|
|
13044
13352
|
ionoFree,
|
|
13045
13353
|
keplerPosition,
|
|
13046
13354
|
klobucharDelay,
|
|
13355
|
+
lambdaReduction,
|
|
13356
|
+
lambdaSearch,
|
|
13047
13357
|
maskRadForAzimuth,
|
|
13048
13358
|
msmEpochToDate,
|
|
13049
13359
|
navTimesFromEph,
|
package/dist/index.d.cts
CHANGED
|
@@ -14,7 +14,7 @@ export { HasMessage, SbfBdsNavResult, SbfCnavEphemeris, SbfCnavResult, SbfGalEph
|
|
|
14
14
|
export { NovatelEpoch, NovatelMeasurement, NovatelNavResult, NovatelParseResult, OEM4_HLEN, Oem4Frame, crc32, oem4Frames, parseNovatelNav, parseNovatelRange } from './novatel.cjs';
|
|
15
15
|
export { AllPositionsData, AlmanacPosition, DopValues, EpochSkyData, SatAzEl, SatPoint, SatPosition, VisibilityPass, VisibilityResult, almanacEpochMs, almanacSatPosition, computeAllPositions, computeDop, computeLiveSkyPositions, computeSatPosition, computeVisibility, computeVisibilityFromPositions, dopplerHz, ecefToAzEl, ephInfoToEphemeris, glonassAlmanacEpochMs, glonassAlmanacPosition, glonassPosition, keplerPosition, maskRadForAzimuth, navTimesFromEph, rangeRate, selectEphemeris } from './orbit.cjs';
|
|
16
16
|
export { Helmert14, REFERENCE_FRAMES, ReferenceFrame, applyHelmert, dateToEpoch, transformFrame } from './frames.cjs';
|
|
17
|
-
export { DgnssOptions, DgnssSolution, EphemerisSource, KlobucharCoeffs, RawObservation, RtkEpochMeasurements, RtkFloatEngine, RtkFloatOptions, RtkFloatSolution, RtkMeasurement, SppOptions, SppSolution, ionoFree, klobucharDelay, satClockCorrection, solveDgnss, solveSpp, toRtkEpoch } from './positioning.cjs';
|
|
17
|
+
export { DgnssOptions, DgnssSolution, EphemerisSource, KlobucharCoeffs, LambdaResult, RawObservation, RtkEpochMeasurements, RtkFloatEngine, RtkFloatOptions, RtkFloatSolution, RtkMeasurement, SppOptions, SppSolution, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, satClockCorrection, solveDgnss, solveSpp, toRtkEpoch } from './positioning.cjs';
|
|
18
18
|
export { NtripCaster, NtripConnectionInfo, NtripNetwork, NtripStream, NtripStreamConnection, NtripVersion, Sourcetable, SourcetableEntry, connectToMountpoint, fetchSourcetable, parseSourcetable } from './ntrip.cjs';
|
|
19
19
|
export { CompleteSatSignal, CompleteSignalStats, CompletenessAccumulator, CompletenessResult, CycleSlipAccumulator, CycleSlipEvent, CycleSlipResult, CycleSlipSignalStats, IonoAccumulator, IonoDcbResult, IonoPoint, IonoRatePoint, IonoRateSeries, IonoResult, IonoSeries, MultipathAccumulator, MultipathPoint, MultipathResult, MultipathSeries, MultipathSignalStat, QualityResult, SatDcbMap, analyzeQuality, applyIonoDcb, computeIonoRate, detrendIonoArcs, parseSinexBiasDcb } from './analysis.cjs';
|
|
20
20
|
export { AntennaEntry, AntexFile, FrequencyData, frequencyLabel, parseAntex } from './antex.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export { HasMessage, SbfBdsNavResult, SbfCnavEphemeris, SbfCnavResult, SbfGalEph
|
|
|
14
14
|
export { NovatelEpoch, NovatelMeasurement, NovatelNavResult, NovatelParseResult, OEM4_HLEN, Oem4Frame, crc32, oem4Frames, parseNovatelNav, parseNovatelRange } from './novatel.js';
|
|
15
15
|
export { AllPositionsData, AlmanacPosition, DopValues, EpochSkyData, SatAzEl, SatPoint, SatPosition, VisibilityPass, VisibilityResult, almanacEpochMs, almanacSatPosition, computeAllPositions, computeDop, computeLiveSkyPositions, computeSatPosition, computeVisibility, computeVisibilityFromPositions, dopplerHz, ecefToAzEl, ephInfoToEphemeris, glonassAlmanacEpochMs, glonassAlmanacPosition, glonassPosition, keplerPosition, maskRadForAzimuth, navTimesFromEph, rangeRate, selectEphemeris } from './orbit.js';
|
|
16
16
|
export { Helmert14, REFERENCE_FRAMES, ReferenceFrame, applyHelmert, dateToEpoch, transformFrame } from './frames.js';
|
|
17
|
-
export { DgnssOptions, DgnssSolution, EphemerisSource, KlobucharCoeffs, RawObservation, RtkEpochMeasurements, RtkFloatEngine, RtkFloatOptions, RtkFloatSolution, RtkMeasurement, SppOptions, SppSolution, ionoFree, klobucharDelay, satClockCorrection, solveDgnss, solveSpp, toRtkEpoch } from './positioning.js';
|
|
17
|
+
export { DgnssOptions, DgnssSolution, EphemerisSource, KlobucharCoeffs, LambdaResult, RawObservation, RtkEpochMeasurements, RtkFloatEngine, RtkFloatOptions, RtkFloatSolution, RtkMeasurement, SppOptions, SppSolution, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, satClockCorrection, solveDgnss, solveSpp, toRtkEpoch } from './positioning.js';
|
|
18
18
|
export { NtripCaster, NtripConnectionInfo, NtripNetwork, NtripStream, NtripStreamConnection, NtripVersion, Sourcetable, SourcetableEntry, connectToMountpoint, fetchSourcetable, parseSourcetable } from './ntrip.js';
|
|
19
19
|
export { CompleteSatSignal, CompleteSignalStats, CompletenessAccumulator, CompletenessResult, CycleSlipAccumulator, CycleSlipEvent, CycleSlipResult, CycleSlipSignalStats, IonoAccumulator, IonoDcbResult, IonoPoint, IonoRatePoint, IonoRateSeries, IonoResult, IonoSeries, MultipathAccumulator, MultipathPoint, MultipathResult, MultipathSeries, MultipathSignalStat, QualityResult, SatDcbMap, analyzeQuality, applyIonoDcb, computeIonoRate, detrendIonoArcs, parseSinexBiasDcb } from './analysis.js';
|
|
20
20
|
export { AntennaEntry, AntexFile, FrequencyData, frequencyLabel, parseAntex } from './antex.js';
|
package/dist/index.js
CHANGED
|
@@ -131,11 +131,13 @@ import {
|
|
|
131
131
|
RtkFloatEngine,
|
|
132
132
|
ionoFree,
|
|
133
133
|
klobucharDelay,
|
|
134
|
+
lambdaReduction,
|
|
135
|
+
lambdaSearch,
|
|
134
136
|
satClockCorrection,
|
|
135
137
|
solveDgnss,
|
|
136
138
|
solveSpp,
|
|
137
139
|
toRtkEpoch
|
|
138
|
-
} from "./chunk-
|
|
140
|
+
} from "./chunk-T2ZMNRCY.js";
|
|
139
141
|
import {
|
|
140
142
|
almanacEpochMs,
|
|
141
143
|
almanacSatPosition,
|
|
@@ -496,6 +498,8 @@ export {
|
|
|
496
498
|
ionoFree,
|
|
497
499
|
keplerPosition,
|
|
498
500
|
klobucharDelay,
|
|
501
|
+
lambdaReduction,
|
|
502
|
+
lambdaSearch,
|
|
499
503
|
maskRadForAzimuth,
|
|
500
504
|
msmEpochToDate,
|
|
501
505
|
navTimesFromEph,
|