gnss-js 2.8.0 → 2.8.1
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-PHS7OFHN.js → chunk-F6KOFOXN.js} +1 -1
- package/dist/{chunk-GLMQRZDL.js → chunk-T5M3LVBJ.js} +7 -3
- package/dist/index.cjs +7 -3
- package/dist/index.js +2 -2
- package/dist/orbit.cjs +7 -3
- package/dist/orbit.d.cts +4 -3
- package/dist/orbit.d.ts +4 -3
- package/dist/orbit.js +1 -1
- package/dist/positioning.cjs +7 -3
- package/dist/positioning.js +2 -2
- package/package.json +1 -1
|
@@ -404,17 +404,21 @@ function ecefToAzEl(rxX, rxY, rxZ, satX, satY, satZ) {
|
|
|
404
404
|
const el = Math.atan2(up, Math.sqrt(east * east + north * north));
|
|
405
405
|
return { az: (az + TWO_PI) % TWO_PI, el };
|
|
406
406
|
}
|
|
407
|
+
function dopClock(prn) {
|
|
408
|
+
const sys = prn?.[0] ?? "";
|
|
409
|
+
return sys === "J" || sys === "S" ? "G" : sys;
|
|
410
|
+
}
|
|
407
411
|
function computeDop(satAzEls) {
|
|
408
412
|
const n = satAzEls.length;
|
|
409
|
-
const clocks = [...new Set(satAzEls.map((s) => s.prn
|
|
413
|
+
const clocks = [...new Set(satAzEls.map((s) => dopClock(s.prn)))];
|
|
410
414
|
const m = 3 + clocks.length;
|
|
411
415
|
if (n < Math.max(4, m)) return null;
|
|
412
416
|
const H = [];
|
|
413
417
|
for (const { az, el, prn } of satAzEls) {
|
|
414
418
|
const cosEl = Math.cos(el);
|
|
415
419
|
const row = [cosEl * Math.sin(az), cosEl * Math.cos(az), Math.sin(el)];
|
|
416
|
-
const
|
|
417
|
-
for (const c of clocks) row.push(c ===
|
|
420
|
+
const clock = dopClock(prn);
|
|
421
|
+
for (const c of clocks) row.push(c === clock ? 1 : 0);
|
|
418
422
|
H.push(row);
|
|
419
423
|
}
|
|
420
424
|
const HtH = Array.from({ length: m }, () => new Array(m).fill(0));
|
package/dist/index.cjs
CHANGED
|
@@ -12679,17 +12679,21 @@ function ecefToAzEl(rxX, rxY, rxZ, satX, satY, satZ) {
|
|
|
12679
12679
|
const el = Math.atan2(up, Math.sqrt(east * east + north * north));
|
|
12680
12680
|
return { az: (az + TWO_PI) % TWO_PI, el };
|
|
12681
12681
|
}
|
|
12682
|
+
function dopClock(prn) {
|
|
12683
|
+
const sys = prn?.[0] ?? "";
|
|
12684
|
+
return sys === "J" || sys === "S" ? "G" : sys;
|
|
12685
|
+
}
|
|
12682
12686
|
function computeDop(satAzEls) {
|
|
12683
12687
|
const n = satAzEls.length;
|
|
12684
|
-
const clocks = [...new Set(satAzEls.map((s) => s.prn
|
|
12688
|
+
const clocks = [...new Set(satAzEls.map((s) => dopClock(s.prn)))];
|
|
12685
12689
|
const m = 3 + clocks.length;
|
|
12686
12690
|
if (n < Math.max(4, m)) return null;
|
|
12687
12691
|
const H3 = [];
|
|
12688
12692
|
for (const { az, el, prn } of satAzEls) {
|
|
12689
12693
|
const cosEl = Math.cos(el);
|
|
12690
12694
|
const row = [cosEl * Math.sin(az), cosEl * Math.cos(az), Math.sin(el)];
|
|
12691
|
-
const
|
|
12692
|
-
for (const c of clocks) row.push(c ===
|
|
12695
|
+
const clock = dopClock(prn);
|
|
12696
|
+
for (const c of clocks) row.push(c === clock ? 1 : 0);
|
|
12693
12697
|
H3.push(row);
|
|
12694
12698
|
}
|
|
12695
12699
|
const HtH = Array.from({ length: m }, () => new Array(m).fill(0));
|
package/dist/index.js
CHANGED
|
@@ -213,7 +213,7 @@ import {
|
|
|
213
213
|
sunEcef,
|
|
214
214
|
toRtkEpoch,
|
|
215
215
|
wlWavelength
|
|
216
|
-
} from "./chunk-
|
|
216
|
+
} from "./chunk-F6KOFOXN.js";
|
|
217
217
|
import "./chunk-WQX354KD.js";
|
|
218
218
|
import {
|
|
219
219
|
almanacEpochMs,
|
|
@@ -235,7 +235,7 @@ import {
|
|
|
235
235
|
navTimesFromEph,
|
|
236
236
|
rangeRate,
|
|
237
237
|
selectEphemeris
|
|
238
|
-
} from "./chunk-
|
|
238
|
+
} from "./chunk-T5M3LVBJ.js";
|
|
239
239
|
import {
|
|
240
240
|
getBdsTime,
|
|
241
241
|
getDateFromBdsTime,
|
package/dist/orbit.cjs
CHANGED
|
@@ -565,17 +565,21 @@ function ecefToAzEl(rxX, rxY, rxZ, satX, satY, satZ) {
|
|
|
565
565
|
const el = Math.atan2(up, Math.sqrt(east * east + north * north));
|
|
566
566
|
return { az: (az + TWO_PI) % TWO_PI, el };
|
|
567
567
|
}
|
|
568
|
+
function dopClock(prn) {
|
|
569
|
+
const sys = prn?.[0] ?? "";
|
|
570
|
+
return sys === "J" || sys === "S" ? "G" : sys;
|
|
571
|
+
}
|
|
568
572
|
function computeDop(satAzEls) {
|
|
569
573
|
const n = satAzEls.length;
|
|
570
|
-
const clocks = [...new Set(satAzEls.map((s) => s.prn
|
|
574
|
+
const clocks = [...new Set(satAzEls.map((s) => dopClock(s.prn)))];
|
|
571
575
|
const m = 3 + clocks.length;
|
|
572
576
|
if (n < Math.max(4, m)) return null;
|
|
573
577
|
const H = [];
|
|
574
578
|
for (const { az, el, prn } of satAzEls) {
|
|
575
579
|
const cosEl = Math.cos(el);
|
|
576
580
|
const row = [cosEl * Math.sin(az), cosEl * Math.cos(az), Math.sin(el)];
|
|
577
|
-
const
|
|
578
|
-
for (const c of clocks) row.push(c ===
|
|
581
|
+
const clock = dopClock(prn);
|
|
582
|
+
for (const c of clocks) row.push(c === clock ? 1 : 0);
|
|
579
583
|
H.push(row);
|
|
580
584
|
}
|
|
581
585
|
const HtH = Array.from({ length: m }, () => new Array(m).fill(0));
|
package/dist/orbit.d.cts
CHANGED
|
@@ -161,9 +161,10 @@ declare function ecefToAzEl(rxX: number, rxY: number, rxZ: number, satX: number,
|
|
|
161
161
|
* Compute DOP values from a set of satellite az/el.
|
|
162
162
|
*
|
|
163
163
|
* Satellites tagged with a `prn` get one receiver-clock unknown per
|
|
164
|
-
* constellation
|
|
165
|
-
*
|
|
166
|
-
* time
|
|
164
|
+
* constellation time scale, as a multi-GNSS receiver solves: every extra
|
|
165
|
+
* time scale costs one observation. QZSS and SBAS share the GPS clock —
|
|
166
|
+
* QZSST and SBAS network time are steered to GPST (RTKLIB pntpos does the
|
|
167
|
+
* same) — so a lone SBAS GEO doesn't inflate TDOP/GDOP. Untagged
|
|
167
168
|
* satellites share a single clock (the classic single-system model).
|
|
168
169
|
*
|
|
169
170
|
* @param satAzEls Satellite azimuth/elevation pairs (radians), optionally
|
package/dist/orbit.d.ts
CHANGED
|
@@ -161,9 +161,10 @@ declare function ecefToAzEl(rxX: number, rxY: number, rxZ: number, satX: number,
|
|
|
161
161
|
* Compute DOP values from a set of satellite az/el.
|
|
162
162
|
*
|
|
163
163
|
* Satellites tagged with a `prn` get one receiver-clock unknown per
|
|
164
|
-
* constellation
|
|
165
|
-
*
|
|
166
|
-
* time
|
|
164
|
+
* constellation time scale, as a multi-GNSS receiver solves: every extra
|
|
165
|
+
* time scale costs one observation. QZSS and SBAS share the GPS clock —
|
|
166
|
+
* QZSST and SBAS network time are steered to GPST (RTKLIB pntpos does the
|
|
167
|
+
* same) — so a lone SBAS GEO doesn't inflate TDOP/GDOP. Untagged
|
|
167
168
|
* satellites share a single clock (the classic single-system model).
|
|
168
169
|
*
|
|
169
170
|
* @param satAzEls Satellite azimuth/elevation pairs (radians), optionally
|
package/dist/orbit.js
CHANGED
package/dist/positioning.cjs
CHANGED
|
@@ -437,17 +437,21 @@ function ecefToAzEl(rxX, rxY, rxZ, satX, satY, satZ) {
|
|
|
437
437
|
const el = Math.atan2(up, Math.sqrt(east * east + north * north));
|
|
438
438
|
return { az: (az + TWO_PI) % TWO_PI, el };
|
|
439
439
|
}
|
|
440
|
+
function dopClock(prn) {
|
|
441
|
+
const sys = prn?.[0] ?? "";
|
|
442
|
+
return sys === "J" || sys === "S" ? "G" : sys;
|
|
443
|
+
}
|
|
440
444
|
function computeDop(satAzEls) {
|
|
441
445
|
const n = satAzEls.length;
|
|
442
|
-
const clocks = [...new Set(satAzEls.map((s) => s.prn
|
|
446
|
+
const clocks = [...new Set(satAzEls.map((s) => dopClock(s.prn)))];
|
|
443
447
|
const m = 3 + clocks.length;
|
|
444
448
|
if (n < Math.max(4, m)) return null;
|
|
445
449
|
const H = [];
|
|
446
450
|
for (const { az, el, prn } of satAzEls) {
|
|
447
451
|
const cosEl = Math.cos(el);
|
|
448
452
|
const row = [cosEl * Math.sin(az), cosEl * Math.cos(az), Math.sin(el)];
|
|
449
|
-
const
|
|
450
|
-
for (const c of clocks) row.push(c ===
|
|
453
|
+
const clock = dopClock(prn);
|
|
454
|
+
for (const c of clocks) row.push(c === clock ? 1 : 0);
|
|
451
455
|
H.push(row);
|
|
452
456
|
}
|
|
453
457
|
const HtH = Array.from({ length: m }, () => new Array(m).fill(0));
|
package/dist/positioning.js
CHANGED
|
@@ -40,9 +40,9 @@ import {
|
|
|
40
40
|
sunEcef,
|
|
41
41
|
toRtkEpoch,
|
|
42
42
|
wlWavelength
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-F6KOFOXN.js";
|
|
44
44
|
import "./chunk-WQX354KD.js";
|
|
45
|
-
import "./chunk-
|
|
45
|
+
import "./chunk-T5M3LVBJ.js";
|
|
46
46
|
import "./chunk-HVXYFUCB.js";
|
|
47
47
|
import "./chunk-CVCTRIWU.js";
|
|
48
48
|
import "./chunk-37QNKGTC.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gnss-js",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.1",
|
|
4
4
|
"description": "Comprehensive GNSS library for JavaScript — time scales, coordinates, RINEX parsing, RTCM3 decoding, orbit computation, and signal analysis",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|