gnss-js 1.6.1 → 1.8.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.
@@ -2,7 +2,7 @@ import {
2
2
  computeDop,
3
3
  computeSatPosition,
4
4
  ecefToAzEl
5
- } from "./chunk-JG2HDJGK.js";
5
+ } from "./chunk-MN2DBDJL.js";
6
6
  import {
7
7
  C_LIGHT,
8
8
  OMEGA_E
@@ -444,12 +444,17 @@ function computeVisibility(ephemerides, rxPos, startMs, endMs, stepSec = 300, el
444
444
  const maskRad = elevationMaskDeg * Math.PI / 180;
445
445
  const all = computeAllPositions(ephemerides, times, rxPos);
446
446
  const elevation = {};
447
+ const azimuth = {};
447
448
  const visibleCount = new Array(times.length).fill(0);
448
449
  const pdop = new Array(times.length).fill(null);
450
+ const gdop = new Array(times.length).fill(null);
451
+ const hdop = new Array(times.length).fill(null);
452
+ const vdop = new Array(times.length).fill(null);
449
453
  const visiblePerEpoch = times.map(() => []);
450
454
  for (const prn of all.prns) {
451
455
  const series = all.positions[prn];
452
456
  elevation[prn] = series.map((p) => p ? p.el : null);
457
+ azimuth[prn] = series.map((p) => p ? p.az : null);
453
458
  for (let i = 0; i < series.length; i++) {
454
459
  const p = series[i];
455
460
  if (p && p.el >= maskRad) {
@@ -461,6 +466,9 @@ function computeVisibility(ephemerides, rxPos, startMs, endMs, stepSec = 300, el
461
466
  for (let i = 0; i < times.length; i++) {
462
467
  const dop = computeDop(visiblePerEpoch[i]);
463
468
  pdop[i] = dop ? dop.pdop : null;
469
+ gdop[i] = dop ? dop.gdop : null;
470
+ hdop[i] = dop ? dop.hdop : null;
471
+ vdop[i] = dop ? dop.vdop : null;
464
472
  }
465
473
  const passes = [];
466
474
  for (const prn of all.prns) {
@@ -494,7 +502,17 @@ function computeVisibility(ephemerides, rxPos, startMs, endMs, stepSec = 300, el
494
502
  }
495
503
  }
496
504
  passes.sort((a, b) => a.rise - b.rise);
497
- return { times, elevation, visibleCount, pdop, passes };
505
+ return {
506
+ times,
507
+ elevation,
508
+ azimuth,
509
+ visibleCount,
510
+ pdop,
511
+ gdop,
512
+ hdop,
513
+ vdop,
514
+ passes
515
+ };
498
516
  }
499
517
 
500
518
  export {
package/dist/index.cjs CHANGED
@@ -4434,12 +4434,17 @@ function computeVisibility(ephemerides, rxPos, startMs, endMs, stepSec = 300, el
4434
4434
  const maskRad = elevationMaskDeg * Math.PI / 180;
4435
4435
  const all = computeAllPositions(ephemerides, times, rxPos);
4436
4436
  const elevation = {};
4437
+ const azimuth = {};
4437
4438
  const visibleCount = new Array(times.length).fill(0);
4438
4439
  const pdop = new Array(times.length).fill(null);
4440
+ const gdop = new Array(times.length).fill(null);
4441
+ const hdop = new Array(times.length).fill(null);
4442
+ const vdop = new Array(times.length).fill(null);
4439
4443
  const visiblePerEpoch = times.map(() => []);
4440
4444
  for (const prn of all.prns) {
4441
4445
  const series = all.positions[prn];
4442
4446
  elevation[prn] = series.map((p) => p ? p.el : null);
4447
+ azimuth[prn] = series.map((p) => p ? p.az : null);
4443
4448
  for (let i = 0; i < series.length; i++) {
4444
4449
  const p = series[i];
4445
4450
  if (p && p.el >= maskRad) {
@@ -4451,6 +4456,9 @@ function computeVisibility(ephemerides, rxPos, startMs, endMs, stepSec = 300, el
4451
4456
  for (let i = 0; i < times.length; i++) {
4452
4457
  const dop = computeDop(visiblePerEpoch[i]);
4453
4458
  pdop[i] = dop ? dop.pdop : null;
4459
+ gdop[i] = dop ? dop.gdop : null;
4460
+ hdop[i] = dop ? dop.hdop : null;
4461
+ vdop[i] = dop ? dop.vdop : null;
4454
4462
  }
4455
4463
  const passes = [];
4456
4464
  for (const prn of all.prns) {
@@ -4484,7 +4492,17 @@ function computeVisibility(ephemerides, rxPos, startMs, endMs, stepSec = 300, el
4484
4492
  }
4485
4493
  }
4486
4494
  passes.sort((a, b) => a.rise - b.rise);
4487
- return { times, elevation, visibleCount, pdop, passes };
4495
+ return {
4496
+ times,
4497
+ elevation,
4498
+ azimuth,
4499
+ visibleCount,
4500
+ pdop,
4501
+ gdop,
4502
+ hdop,
4503
+ vdop,
4504
+ passes
4505
+ };
4488
4506
  }
4489
4507
 
4490
4508
  // src/frames/index.ts
package/dist/index.js CHANGED
@@ -102,7 +102,7 @@ import {
102
102
  ionoFree,
103
103
  satClockCorrection,
104
104
  solveSpp
105
- } from "./chunk-4PXLRDK6.js";
105
+ } from "./chunk-GXK4MMHS.js";
106
106
  import {
107
107
  computeAllPositions,
108
108
  computeDop,
@@ -115,7 +115,7 @@ import {
115
115
  keplerPosition,
116
116
  navTimesFromEph,
117
117
  selectEphemeris
118
- } from "./chunk-JG2HDJGK.js";
118
+ } from "./chunk-MN2DBDJL.js";
119
119
  import {
120
120
  getBdsTime,
121
121
  getDateFromBdsTime,
package/dist/orbit.cjs CHANGED
@@ -597,12 +597,17 @@ function computeVisibility(ephemerides, rxPos, startMs, endMs, stepSec = 300, el
597
597
  const maskRad = elevationMaskDeg * Math.PI / 180;
598
598
  const all = computeAllPositions(ephemerides, times, rxPos);
599
599
  const elevation = {};
600
+ const azimuth = {};
600
601
  const visibleCount = new Array(times.length).fill(0);
601
602
  const pdop = new Array(times.length).fill(null);
603
+ const gdop = new Array(times.length).fill(null);
604
+ const hdop = new Array(times.length).fill(null);
605
+ const vdop = new Array(times.length).fill(null);
602
606
  const visiblePerEpoch = times.map(() => []);
603
607
  for (const prn of all.prns) {
604
608
  const series = all.positions[prn];
605
609
  elevation[prn] = series.map((p) => p ? p.el : null);
610
+ azimuth[prn] = series.map((p) => p ? p.az : null);
606
611
  for (let i = 0; i < series.length; i++) {
607
612
  const p = series[i];
608
613
  if (p && p.el >= maskRad) {
@@ -614,6 +619,9 @@ function computeVisibility(ephemerides, rxPos, startMs, endMs, stepSec = 300, el
614
619
  for (let i = 0; i < times.length; i++) {
615
620
  const dop = computeDop(visiblePerEpoch[i]);
616
621
  pdop[i] = dop ? dop.pdop : null;
622
+ gdop[i] = dop ? dop.gdop : null;
623
+ hdop[i] = dop ? dop.hdop : null;
624
+ vdop[i] = dop ? dop.vdop : null;
617
625
  }
618
626
  const passes = [];
619
627
  for (const prn of all.prns) {
@@ -647,7 +655,17 @@ function computeVisibility(ephemerides, rxPos, startMs, endMs, stepSec = 300, el
647
655
  }
648
656
  }
649
657
  passes.sort((a, b) => a.rise - b.rise);
650
- return { times, elevation, visibleCount, pdop, passes };
658
+ return {
659
+ times,
660
+ elevation,
661
+ azimuth,
662
+ visibleCount,
663
+ pdop,
664
+ gdop,
665
+ hdop,
666
+ vdop,
667
+ passes
668
+ };
651
669
  }
652
670
  // Annotate the CommonJS export names for ESM import in node:
653
671
  0 && (module.exports = {
package/dist/orbit.d.cts CHANGED
@@ -133,10 +133,18 @@ interface VisibilityResult {
133
133
  times: number[];
134
134
  /** Elevation (radians) per PRN per epoch; null when no valid ephemeris. */
135
135
  elevation: Record<string, (number | null)[]>;
136
+ /** Azimuth (radians) per PRN per epoch; null when no valid ephemeris. */
137
+ azimuth: Record<string, (number | null)[]>;
136
138
  /** Number of satellites at or above the mask, per epoch. */
137
139
  visibleCount: number[];
138
140
  /** PDOP per epoch (null when < 4 satellites above the mask). */
139
141
  pdop: (number | null)[];
142
+ /** GDOP per epoch (null when < 4 satellites above the mask). */
143
+ gdop: (number | null)[];
144
+ /** HDOP per epoch (null when < 4 satellites above the mask). */
145
+ hdop: (number | null)[];
146
+ /** VDOP per epoch (null when < 4 satellites above the mask). */
147
+ vdop: (number | null)[];
140
148
  /** Discrete above-mask passes, sorted by rise time. */
141
149
  passes: VisibilityPass[];
142
150
  }
package/dist/orbit.d.ts CHANGED
@@ -133,10 +133,18 @@ interface VisibilityResult {
133
133
  times: number[];
134
134
  /** Elevation (radians) per PRN per epoch; null when no valid ephemeris. */
135
135
  elevation: Record<string, (number | null)[]>;
136
+ /** Azimuth (radians) per PRN per epoch; null when no valid ephemeris. */
137
+ azimuth: Record<string, (number | null)[]>;
136
138
  /** Number of satellites at or above the mask, per epoch. */
137
139
  visibleCount: number[];
138
140
  /** PDOP per epoch (null when < 4 satellites above the mask). */
139
141
  pdop: (number | null)[];
142
+ /** GDOP per epoch (null when < 4 satellites above the mask). */
143
+ gdop: (number | null)[];
144
+ /** HDOP per epoch (null when < 4 satellites above the mask). */
145
+ hdop: (number | null)[];
146
+ /** VDOP per epoch (null when < 4 satellites above the mask). */
147
+ vdop: (number | null)[];
140
148
  /** Discrete above-mask passes, sorted by rise time. */
141
149
  passes: VisibilityPass[];
142
150
  }
package/dist/orbit.js CHANGED
@@ -10,7 +10,7 @@ import {
10
10
  keplerPosition,
11
11
  navTimesFromEph,
12
12
  selectEphemeris
13
- } from "./chunk-JG2HDJGK.js";
13
+ } from "./chunk-MN2DBDJL.js";
14
14
  import "./chunk-HVXYFUCB.js";
15
15
  import {
16
16
  ecefToGeodetic,
@@ -2,8 +2,8 @@ import {
2
2
  ionoFree,
3
3
  satClockCorrection,
4
4
  solveSpp
5
- } from "./chunk-4PXLRDK6.js";
6
- import "./chunk-JG2HDJGK.js";
5
+ } from "./chunk-GXK4MMHS.js";
6
+ import "./chunk-MN2DBDJL.js";
7
7
  import "./chunk-HVXYFUCB.js";
8
8
  import "./chunk-37QNKGTC.js";
9
9
  import "./chunk-6FAL6P4G.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gnss-js",
3
- "version": "1.6.1",
3
+ "version": "1.8.0",
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,