gnss-js 1.1.0 → 1.2.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/index.js CHANGED
@@ -1,3 +1,8 @@
1
+ import {
2
+ connectToMountpoint,
3
+ fetchSourcetable,
4
+ parseSourcetable
5
+ } from "./chunk-BJHTBYNG.js";
1
6
  import {
2
7
  CompletenessAccumulator,
3
8
  CycleSlipAccumulator,
@@ -51,40 +56,68 @@ import {
51
56
  } from "./chunk-5SPJH4MG.js";
52
57
  import {
53
58
  Scale,
54
- getBdsTime,
55
- getDateFromBdsTime,
56
59
  getDateFromDayOfWeek,
57
60
  getDateFromDayOfYear,
58
- getDateFromGalTime,
59
- getDateFromGloN,
60
- getDateFromGpsData,
61
- getDateFromGpsTime,
62
61
  getDateFromHourCode,
63
62
  getDateFromJulianDate,
64
63
  getDateFromMJD,
65
64
  getDateFromMJD2000,
66
65
  getDateFromRINEX,
67
- getDateFromTai,
68
66
  getDateFromTimeOfDay,
67
+ getDayOfWeek,
68
+ getDayOfYear,
69
+ getHourCode,
70
+ getJulianDate,
71
+ getMJD,
72
+ getMJD2000,
73
+ getRINEX,
74
+ getTimeOfDay,
75
+ getWeekOfYear
76
+ } from "./chunk-L5OUUNLT.js";
77
+ import {
78
+ deg2dms,
79
+ deg2rad,
80
+ euclidean3D,
81
+ geodeticToGeohash,
82
+ geodeticToMaidenhead,
83
+ geodeticToUtm,
84
+ greatCircleMidpoint,
85
+ horizonDistance,
86
+ rad2deg,
87
+ rhumbLine,
88
+ vincenty
89
+ } from "./chunk-MIIM4LDY.js";
90
+ import {
91
+ computeAllPositions,
92
+ computeDop,
93
+ computeLiveSkyPositions,
94
+ computeSatPosition,
95
+ ecefToAzEl,
96
+ glonassPosition,
97
+ keplerPosition,
98
+ navTimesFromEph,
99
+ selectEphemeris
100
+ } from "./chunk-VANVV4F7.js";
101
+ import {
102
+ getBdsTime,
103
+ getDateFromBdsTime,
104
+ getDateFromGalTime,
105
+ getDateFromGloN,
106
+ getDateFromGpsData,
107
+ getDateFromGpsTime,
108
+ getDateFromTai,
69
109
  getDateFromTt,
70
110
  getDateFromUnixTime,
71
111
  getDateFromUtc,
72
- getDayOfWeek,
73
- getDayOfYear,
74
112
  getGalTime,
75
113
  getGloN4,
76
114
  getGloNA,
77
115
  getGpsLeap,
78
116
  getGpsTime,
79
- getHourCode,
80
117
  getHoursFromTimeDifference,
81
- getJulianDate,
82
118
  getLeap,
83
- getMJD,
84
- getMJD2000,
85
119
  getMinutesFromTimeDifference,
86
120
  getNtpTime,
87
- getRINEX,
88
121
  getSecondsFromTimeDifference,
89
122
  getTaiDate,
90
123
  getTimeDifference,
@@ -93,29 +126,27 @@ import {
93
126
  getTimeDifferenceFromMinutes,
94
127
  getTimeDifferenceFromObject,
95
128
  getTimeDifferenceFromSeconds,
96
- getTimeOfDay,
97
129
  getTimeOfWeek,
98
130
  getTotalDaysFromTimeDifference,
99
131
  getTtDate,
100
132
  getUnixTime,
101
133
  getUtcDate,
102
- getWeekNumber,
103
- getWeekOfYear
104
- } from "./chunk-7NOFXKET.js";
134
+ getWeekNumber
135
+ } from "./chunk-HVXYFUCB.js";
105
136
  import {
106
- deg2dms,
107
- deg2rad,
108
- euclidean3D,
109
- geodeticToGeohash,
110
- geodeticToMaidenhead,
111
- geodeticToUtm,
112
- greatCircleMidpoint,
113
- horizonDistance,
114
- rad2deg,
115
- rhumbLine,
116
- vincenty
117
- } from "./chunk-MIIM4LDY.js";
137
+ clampUnit,
138
+ ecefToGeodetic,
139
+ geodeticToEcef,
140
+ getAer,
141
+ getEnuDifference
142
+ } from "./chunk-37QNKGTC.js";
118
143
  import "./chunk-5S5MONFK.js";
144
+ import {
145
+ WGS84_ECCENTRICITY_SQUARED,
146
+ WGS84_FLATTENING,
147
+ WGS84_SEMI_MAJOR_AXIS,
148
+ WGS84_SEMI_MINOR_AXIS
149
+ } from "./chunk-6FAL6P4G.js";
119
150
  import {
120
151
  EMPTY_WARNINGS,
121
152
  WarningAccumulator,
@@ -152,53 +183,7 @@ import {
152
183
  setRtcm3DebugHandler,
153
184
  updateStationMeta,
154
185
  updateStreamStats
155
- } from "./chunk-JDO3LEPC.js";
156
- import {
157
- ARC_GAP_FACTOR,
158
- BAND_LABELS,
159
- BDS_SATELLITES,
160
- C_LIGHT,
161
- DEFAULT_ELEV_MASK_DEG,
162
- DUAL_FREQ_PAIRS,
163
- FREQ,
164
- GLO_CHANNEL_FALLBACK,
165
- GLO_F1_BASE,
166
- GLO_F1_STEP,
167
- GLO_F2_BASE,
168
- GLO_F2_STEP,
169
- GLO_F3,
170
- SYSTEM_NAMES,
171
- SYS_SHORT,
172
- buildGloChannelMap,
173
- buildObsIndices,
174
- formatUTCTime,
175
- getFreq,
176
- gloFreq
177
- } from "./chunk-W5WKEV7U.js";
178
- import {
179
- computeAllPositions,
180
- computeDop,
181
- computeLiveSkyPositions,
182
- computeSatPosition,
183
- ecefToAzEl,
184
- glonassPosition,
185
- keplerPosition,
186
- navTimesFromEph,
187
- selectEphemeris
188
- } from "./chunk-PGHDJFQK.js";
189
- import {
190
- clampUnit,
191
- ecefToGeodetic,
192
- geodeticToEcef,
193
- getAer,
194
- getEnuDifference
195
- } from "./chunk-37QNKGTC.js";
196
- import {
197
- WGS84_ECCENTRICITY_SQUARED,
198
- WGS84_FLATTENING,
199
- WGS84_SEMI_MAJOR_AXIS,
200
- WGS84_SEMI_MINOR_AXIS
201
- } from "./chunk-6FAL6P4G.js";
186
+ } from "./chunk-7EEWQ5DU.js";
202
187
  import {
203
188
  DAYS_MJD2000_MJD,
204
189
  DAYS_MJD_JULIAN,
@@ -225,10 +210,27 @@ import {
225
210
  START_UNIX_TIME
226
211
  } from "./chunk-LEEU5OIO.js";
227
212
  import {
228
- connectToMountpoint,
229
- fetchSourcetable,
230
- parseSourcetable
231
- } from "./chunk-BJHTBYNG.js";
213
+ ARC_GAP_FACTOR,
214
+ BAND_LABELS,
215
+ BDS_SATELLITES,
216
+ C_LIGHT,
217
+ DEFAULT_ELEV_MASK_DEG,
218
+ DUAL_FREQ_PAIRS,
219
+ FREQ,
220
+ GLO_CHANNEL_FALLBACK,
221
+ GLO_F1_BASE,
222
+ GLO_F1_STEP,
223
+ GLO_F2_BASE,
224
+ GLO_F2_STEP,
225
+ GLO_F3,
226
+ SYSTEM_NAMES,
227
+ SYS_SHORT,
228
+ buildGloChannelMap,
229
+ buildObsIndices,
230
+ formatUTCTime,
231
+ getFreq,
232
+ gloFreq
233
+ } from "./chunk-W5WKEV7U.js";
232
234
  export {
233
235
  ARC_GAP_FACTOR,
234
236
  BAND_LABELS,
package/dist/orbit.cjs CHANGED
@@ -72,8 +72,93 @@ function ecefToGeodetic(x, y, z) {
72
72
  }
73
73
 
74
74
  // src/constants/time.ts
75
+ var MILLISECONDS_IN_SECOND = 1e3;
76
+ var MILLISECONDS_GPS_TAI = 19e3;
75
77
  var START_GPS_TIME = /* @__PURE__ */ new Date("1980-01-06T00:00:00Z");
76
78
  var START_BDS_TIME = /* @__PURE__ */ new Date("2006-01-01T00:00:14Z");
79
+ var START_NTP_TIME = /* @__PURE__ */ new Date("1900-01-01T00:00:00Z");
80
+
81
+ // src/time/gnss.ts
82
+ function getTaiDate(date) {
83
+ return new Date(date.getTime() + MILLISECONDS_GPS_TAI);
84
+ }
85
+ function getNtpTime(date) {
86
+ return getTaiDate(date).getTime() - START_NTP_TIME.getTime();
87
+ }
88
+
89
+ // src/time/utc.ts
90
+ var LEAP_SECONDS_TABLE = [
91
+ [3692217600, 37],
92
+ // 1 Jan 2017
93
+ [3644697600, 36],
94
+ // 1 Jul 2015
95
+ [3550089600, 35],
96
+ // 1 Jul 2012
97
+ [3439756800, 34],
98
+ // 1 Jan 2009
99
+ [3345062400, 33],
100
+ // 1 Jan 2006
101
+ [3124137600, 32],
102
+ // 1 Jan 1999
103
+ [3076704e3, 31],
104
+ // 1 Jul 1997
105
+ [3029443200, 30],
106
+ // 1 Jan 1996
107
+ [2982009600, 29],
108
+ // 1 Jul 1994
109
+ [2950473600, 28],
110
+ // 1 Jul 1993
111
+ [2918937600, 27],
112
+ // 1 Jul 1992
113
+ [2871676800, 26],
114
+ // 1 Jan 1991
115
+ [2840140800, 25],
116
+ // 1 Jan 1990
117
+ [2776982400, 24],
118
+ // 1 Jan 1988
119
+ [2698012800, 23],
120
+ // 1 Jul 1985
121
+ [2634854400, 22],
122
+ // 1 Jul 1983
123
+ [2603318400, 21],
124
+ // 1 Jul 1982
125
+ [2571782400, 20],
126
+ // 1 Jul 1981
127
+ [2524521600, 19],
128
+ // 1 Jan 1980
129
+ [2492985600, 18],
130
+ // 1 Jan 1979
131
+ [2461449600, 17],
132
+ // 1 Jan 1978
133
+ [2429913600, 16],
134
+ // 1 Jan 1977
135
+ [2398291200, 15],
136
+ // 1 Jan 1976
137
+ [2366755200, 14],
138
+ // 1 Jan 1975
139
+ [2335219200, 13],
140
+ // 1 Jan 1974
141
+ [2303683200, 12],
142
+ // 1 Jan 1973
143
+ [2287785600, 11],
144
+ // 1 Jul 1972
145
+ [2272060800, 10]
146
+ // 1 Jan 1972
147
+ ];
148
+ function getLeap(date) {
149
+ const ntp_time = getNtpTime(date);
150
+ for (const [timestamp, leapSeconds] of LEAP_SECONDS_TABLE) {
151
+ if (ntp_time / MILLISECONDS_IN_SECOND - leapSeconds >= timestamp) {
152
+ return leapSeconds;
153
+ }
154
+ }
155
+ return 8;
156
+ }
157
+ function getGpsLeap(date) {
158
+ const leap_seconds = getLeap(date);
159
+ if (leap_seconds < 0) return 0;
160
+ return leap_seconds - 19;
161
+ }
77
162
 
78
163
  // src/orbit/index.ts
79
164
  var GM_GPS = 3986005e8;
@@ -299,7 +384,8 @@ function selectEphemeris(ephemerides, prn, timeMs) {
299
384
  }
300
385
  function computeSatPosition(eph, timeMs) {
301
386
  if (eph.system === "R" || eph.system === "S") {
302
- return glonassPosition(eph, timeMs / 1e3);
387
+ const leapMs = getGpsLeap(new Date(timeMs)) * 1e3;
388
+ return glonassPosition(eph, (timeMs - leapMs) / 1e3);
303
389
  }
304
390
  const GPS_EPOCH = START_GPS_TIME.getTime();
305
391
  const gpsSeconds = (timeMs - GPS_EPOCH) / 1e3;
@@ -472,7 +558,7 @@ function ephInfoToEphemeris(info) {
472
558
  };
473
559
  }
474
560
  function computeLiveSkyPositions(ephemerides, rxPos, cn0Map) {
475
- const now = Date.now();
561
+ const now = Date.now() + getGpsLeap(/* @__PURE__ */ new Date()) * 1e3;
476
562
  const result = [];
477
563
  const [rxX, rxY, rxZ] = rxPos;
478
564
  const [rxLat, rxLon] = ecefToGeodetic(rxX, rxY, rxZ);
package/dist/orbit.js CHANGED
@@ -8,7 +8,8 @@ import {
8
8
  keplerPosition,
9
9
  navTimesFromEph,
10
10
  selectEphemeris
11
- } from "./chunk-PGHDJFQK.js";
11
+ } from "./chunk-VANVV4F7.js";
12
+ import "./chunk-HVXYFUCB.js";
12
13
  import {
13
14
  ecefToGeodetic,
14
15
  geodeticToEcef