gnss-js 0.1.2 → 1.0.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/LICENSE +23 -0
- package/README.md +171 -5
- package/dist/analysis.cjs +1488 -0
- package/dist/analysis.d.cts +211 -0
- package/dist/analysis.d.ts +211 -0
- package/dist/analysis.js +14 -0
- package/dist/antex.cjs +239 -0
- package/dist/antex.d.cts +77 -0
- package/dist/antex.d.ts +77 -0
- package/dist/antex.js +8 -0
- package/dist/chunk-37QNKGTC.js +65 -0
- package/dist/chunk-4YN353Q7.js +440 -0
- package/dist/chunk-5CMSYIYM.js +214 -0
- package/dist/chunk-5S5MONFK.js +0 -0
- package/dist/chunk-6FAL6P4G.js +12 -0
- package/dist/chunk-7NOFXKET.js +433 -0
- package/dist/chunk-BJHTBYNG.js +154 -0
- package/dist/chunk-HBLU2EJ4.js +802 -0
- package/dist/chunk-HKN3PUGN.js +800 -0
- package/dist/chunk-LEEU5OIO.js +75 -0
- package/dist/chunk-LWNTWBHB.js +268 -0
- package/dist/chunk-MIIM4LDY.js +239 -0
- package/dist/chunk-SO3POWWR.js +502 -0
- package/dist/chunk-W4YMQKWH.js +622 -0
- package/dist/chunk-WP2JFDLA.js +1475 -0
- package/dist/chunk-YDMYO3YK.js +220 -0
- package/dist/constants.cjs +423 -0
- package/dist/constants.d.cts +14 -0
- package/dist/constants.d.ts +14 -0
- package/dist/constants.js +103 -0
- package/dist/coordinates.cjs +337 -0
- package/dist/coordinates.d.cts +81 -0
- package/dist/coordinates.d.ts +81 -0
- package/dist/coordinates.js +39 -0
- package/dist/ecef-CF0uAysr.d.cts +40 -0
- package/dist/ecef-CF0uAysr.d.ts +40 -0
- package/dist/ephemeris-C10stHhM.d.cts +114 -0
- package/dist/ephemeris-C10stHhM.d.ts +114 -0
- package/dist/gnss-BT6ulR17.d.cts +56 -0
- package/dist/gnss-C-tgoYNa.d.ts +56 -0
- package/dist/index.cjs +5940 -78
- package/dist/index.d.cts +17 -96
- package/dist/index.d.ts +17 -96
- package/dist/index.js +352 -415
- package/dist/nav-BAI1a9vK.d.cts +108 -0
- package/dist/nav-BAI1a9vK.d.ts +108 -0
- package/dist/nmea.cjs +247 -0
- package/dist/nmea.d.cts +37 -0
- package/dist/nmea.d.ts +37 -0
- package/dist/nmea.js +12 -0
- package/dist/ntrip.cjs +180 -0
- package/dist/ntrip.d.cts +98 -0
- package/dist/ntrip.d.ts +98 -0
- package/dist/ntrip.js +10 -0
- package/dist/orbit.cjs +511 -0
- package/dist/orbit.d.cts +117 -0
- package/dist/orbit.d.ts +117 -0
- package/dist/orbit.js +29 -0
- package/dist/parser-JPjjFgeP.d.cts +73 -0
- package/dist/parser-JPjjFgeP.d.ts +73 -0
- package/dist/rinex.cjs +1469 -0
- package/dist/rinex.d.cts +116 -0
- package/dist/rinex.d.ts +116 -0
- package/dist/rinex.js +37 -0
- package/dist/rtcm3.cjs +1512 -0
- package/dist/rtcm3.d.cts +143 -0
- package/dist/rtcm3.d.ts +143 -0
- package/dist/rtcm3.js +31 -0
- package/dist/signals.cjs +858 -0
- package/dist/signals.d.cts +93 -0
- package/dist/signals.d.ts +93 -0
- package/dist/signals.js +70 -0
- package/dist/time-DnI1VpE8.d.cts +33 -0
- package/dist/time-DnI1VpE8.d.ts +33 -0
- package/dist/time.cjs +585 -0
- package/dist/time.d.cts +307 -0
- package/dist/time.d.ts +307 -0
- package/dist/time.js +154 -0
- package/package.json +112 -14
- package/.prettierrc +0 -5
- package/jest.config.ts +0 -9
- package/test/functions.test.ts +0 -63
- package/test/gnss-scales.test.ts +0 -95
- package/test/julian.test.ts +0 -145
- package/test/rinex.test.ts +0 -11
- package/test/test.ts +0 -10
- package/test/utc.test.ts +0 -25
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
// src/nmea/index.ts
|
|
2
|
+
function nmeaCoordToDecimal(raw, direction) {
|
|
3
|
+
if (!raw || !direction) return NaN;
|
|
4
|
+
const isLon = direction === "E" || direction === "W";
|
|
5
|
+
const degLen = isLon ? 3 : 2;
|
|
6
|
+
const degrees = parseInt(raw.substring(0, degLen), 10);
|
|
7
|
+
const minutes = parseFloat(raw.substring(degLen));
|
|
8
|
+
const decimal = degrees + minutes / 60;
|
|
9
|
+
return direction === "S" || direction === "W" ? -decimal : decimal;
|
|
10
|
+
}
|
|
11
|
+
function verifyChecksum(sentence) {
|
|
12
|
+
const starIdx = sentence.indexOf("*");
|
|
13
|
+
if (starIdx === -1) return false;
|
|
14
|
+
const body = sentence.substring(sentence.indexOf("$") + 1, starIdx);
|
|
15
|
+
let xor = 0;
|
|
16
|
+
for (let i = 0; i < body.length; i++) xor ^= body.charCodeAt(i);
|
|
17
|
+
const expected = parseInt(sentence.substring(starIdx + 1, starIdx + 3), 16);
|
|
18
|
+
return xor === expected;
|
|
19
|
+
}
|
|
20
|
+
function buildDate(timeStr, dateStr) {
|
|
21
|
+
if (!timeStr || timeStr.length < 6) return null;
|
|
22
|
+
const h = parseInt(timeStr.substring(0, 2), 10);
|
|
23
|
+
const m = parseInt(timeStr.substring(2, 4), 10);
|
|
24
|
+
const s = parseFloat(timeStr.substring(4));
|
|
25
|
+
if (isNaN(h) || isNaN(m) || isNaN(s)) return null;
|
|
26
|
+
let year = 2e3, month = 0, day = 1;
|
|
27
|
+
if (dateStr && dateStr.length >= 6) {
|
|
28
|
+
day = parseInt(dateStr.substring(0, 2), 10);
|
|
29
|
+
month = parseInt(dateStr.substring(2, 4), 10) - 1;
|
|
30
|
+
const yy = parseInt(dateStr.substring(4, 6), 10);
|
|
31
|
+
year = yy < 80 ? 2e3 + yy : 1900 + yy;
|
|
32
|
+
}
|
|
33
|
+
const ms = Math.round(s % 1 * 1e3);
|
|
34
|
+
return new Date(Date.UTC(year, month, day, h, m, Math.floor(s), ms));
|
|
35
|
+
}
|
|
36
|
+
function parseGGA(fields) {
|
|
37
|
+
if (fields.length < 10) return null;
|
|
38
|
+
const quality = parseInt(fields[6], 10);
|
|
39
|
+
if (isNaN(quality) || quality === 0) return null;
|
|
40
|
+
const lat = nmeaCoordToDecimal(fields[2], fields[3]);
|
|
41
|
+
const lon = nmeaCoordToDecimal(fields[4], fields[5]);
|
|
42
|
+
if (isNaN(lat) || isNaN(lon)) return null;
|
|
43
|
+
return {
|
|
44
|
+
time: buildDate(fields[1]),
|
|
45
|
+
timeKey: fields[1],
|
|
46
|
+
lat,
|
|
47
|
+
lon,
|
|
48
|
+
alt: fields[9] ? parseFloat(fields[9]) : null,
|
|
49
|
+
satellites: fields[7] ? parseInt(fields[7], 10) : null,
|
|
50
|
+
fixQuality: quality
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function parseRMC(fields) {
|
|
54
|
+
if (fields.length < 10) return null;
|
|
55
|
+
if (fields[2] !== "A") return null;
|
|
56
|
+
const lat = nmeaCoordToDecimal(fields[3], fields[4]);
|
|
57
|
+
const lon = nmeaCoordToDecimal(fields[5], fields[6]);
|
|
58
|
+
if (isNaN(lat) || isNaN(lon)) return null;
|
|
59
|
+
return {
|
|
60
|
+
time: buildDate(fields[1], fields[9]),
|
|
61
|
+
timeKey: fields[1],
|
|
62
|
+
lat,
|
|
63
|
+
lon,
|
|
64
|
+
speed: fields[7] ? parseFloat(fields[7]) : null,
|
|
65
|
+
course: fields[8] ? parseFloat(fields[8]) : null,
|
|
66
|
+
hasDate: true
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function computeStats(fixes) {
|
|
70
|
+
const valid = fixes.filter((f) => f.fixQuality > 0);
|
|
71
|
+
const withTime = valid.filter((f) => f.time !== null);
|
|
72
|
+
const withSat = valid.filter((f) => f.satellites !== null).map((f) => f.satellites);
|
|
73
|
+
let startTime = null;
|
|
74
|
+
let endTime = null;
|
|
75
|
+
let duration = null;
|
|
76
|
+
if (withTime.length >= 2) {
|
|
77
|
+
startTime = withTime[0].time;
|
|
78
|
+
endTime = withTime[withTime.length - 1].time;
|
|
79
|
+
duration = (endTime.getTime() - startTime.getTime()) / 1e3;
|
|
80
|
+
} else if (withTime.length === 1) {
|
|
81
|
+
startTime = endTime = withTime[0].time;
|
|
82
|
+
}
|
|
83
|
+
let totalDistance = null;
|
|
84
|
+
if (valid.length >= 2) {
|
|
85
|
+
let dist = 0;
|
|
86
|
+
for (let i = 1; i < valid.length; i++) {
|
|
87
|
+
const prev = valid[i - 1], curr = valid[i];
|
|
88
|
+
dist += haversine(prev.lat, prev.lon, curr.lat, curr.lon);
|
|
89
|
+
}
|
|
90
|
+
totalDistance = dist;
|
|
91
|
+
}
|
|
92
|
+
const speeds = valid.filter((f) => f.speed !== null).map((f) => f.speed * 1.852);
|
|
93
|
+
const maxSpeed = speeds.length > 0 ? Math.max(...speeds) : null;
|
|
94
|
+
let cep = null;
|
|
95
|
+
let drms2 = null;
|
|
96
|
+
let hRms = null;
|
|
97
|
+
let vRms = null;
|
|
98
|
+
if (valid.length >= 2) {
|
|
99
|
+
const toRad = (d) => d * Math.PI / 180;
|
|
100
|
+
const R = 6378137;
|
|
101
|
+
const e2 = 0.00669437999014;
|
|
102
|
+
const ecef = valid.map((f) => {
|
|
103
|
+
const lat = toRad(f.lat), lon = toRad(f.lon), h = f.alt ?? 0;
|
|
104
|
+
const N = R / Math.sqrt(1 - e2 * Math.sin(lat) ** 2);
|
|
105
|
+
return [
|
|
106
|
+
(N + h) * Math.cos(lat) * Math.cos(lon),
|
|
107
|
+
(N + h) * Math.cos(lat) * Math.sin(lon),
|
|
108
|
+
((1 - e2) * N + h) * Math.sin(lat)
|
|
109
|
+
];
|
|
110
|
+
});
|
|
111
|
+
const n = ecef.length;
|
|
112
|
+
const mx = ecef.reduce((s, p) => s + p[0], 0) / n;
|
|
113
|
+
const my = ecef.reduce((s, p) => s + p[1], 0) / n;
|
|
114
|
+
const mz = ecef.reduce((s, p) => s + p[2], 0) / n;
|
|
115
|
+
const refLon = Math.atan2(my, mx);
|
|
116
|
+
const refP = Math.sqrt(mx * mx + my * my);
|
|
117
|
+
const refLat = Math.atan2(mz, refP * (1 - e2));
|
|
118
|
+
const sinLat = Math.sin(refLat), cosLat = Math.cos(refLat);
|
|
119
|
+
const sinLon = Math.sin(refLon), cosLon = Math.cos(refLon);
|
|
120
|
+
const enu = ecef.map((p) => {
|
|
121
|
+
const dx = p[0] - mx, dy = p[1] - my, dz = p[2] - mz;
|
|
122
|
+
return {
|
|
123
|
+
e: -sinLon * dx + cosLon * dy,
|
|
124
|
+
n: -cosLon * sinLat * dx - sinLon * sinLat * dy + cosLat * dz,
|
|
125
|
+
u: cosLon * cosLat * dx + sinLon * cosLat * dy + sinLat * dz
|
|
126
|
+
};
|
|
127
|
+
});
|
|
128
|
+
const hDist = enu.map((p) => Math.sqrt(p.e * p.e + p.n * p.n));
|
|
129
|
+
hDist.sort((a, b) => a - b);
|
|
130
|
+
const medIdx = Math.floor(hDist.length * 0.5);
|
|
131
|
+
cep = hDist[medIdx];
|
|
132
|
+
const hSqSum = enu.reduce((s, p) => s + p.e * p.e + p.n * p.n, 0);
|
|
133
|
+
hRms = Math.sqrt(hSqSum / n);
|
|
134
|
+
drms2 = 2 * hRms;
|
|
135
|
+
const vSqSum = enu.reduce((s, p) => s + p.u * p.u, 0);
|
|
136
|
+
vRms = Math.sqrt(vSqSum / n);
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
totalFixes: fixes.length,
|
|
140
|
+
validFixes: valid.length,
|
|
141
|
+
duration,
|
|
142
|
+
startTime,
|
|
143
|
+
endTime,
|
|
144
|
+
totalDistance,
|
|
145
|
+
maxSpeed,
|
|
146
|
+
cep,
|
|
147
|
+
drms2,
|
|
148
|
+
hRms,
|
|
149
|
+
vRms,
|
|
150
|
+
avgSatellites: withSat.length > 0 ? withSat.reduce((a, b) => a + b, 0) / withSat.length : null
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
function haversine(lat1, lon1, lat2, lon2) {
|
|
154
|
+
const toRad = (d) => d * Math.PI / 180;
|
|
155
|
+
const dLat = toRad(lat2 - lat1);
|
|
156
|
+
const dLon = toRad(lon2 - lon1);
|
|
157
|
+
const a = Math.sin(dLat / 2) ** 2 + Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) * Math.sin(dLon / 2) ** 2;
|
|
158
|
+
return 6371e3 * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
|
159
|
+
}
|
|
160
|
+
function parseNmeaFile(content) {
|
|
161
|
+
const lines = content.split(/\r?\n/);
|
|
162
|
+
const fixMap = /* @__PURE__ */ new Map();
|
|
163
|
+
const fixOrder = [];
|
|
164
|
+
let lastDate;
|
|
165
|
+
for (const raw of lines) {
|
|
166
|
+
const line = raw.trim();
|
|
167
|
+
if (!line.startsWith("$")) continue;
|
|
168
|
+
if (line.includes("*") && !verifyChecksum(line)) continue;
|
|
169
|
+
const fields = line.split("*")[0].split(",");
|
|
170
|
+
const sentenceId = fields[0].substring(3);
|
|
171
|
+
let partial = null;
|
|
172
|
+
if (sentenceId === "GGA") partial = parseGGA(fields);
|
|
173
|
+
else if (sentenceId === "RMC") partial = parseRMC(fields);
|
|
174
|
+
if (!partial) continue;
|
|
175
|
+
const key = partial.timeKey || `line-${fixOrder.length}`;
|
|
176
|
+
if (partial.hasDate && partial.time) {
|
|
177
|
+
const d = partial.time;
|
|
178
|
+
lastDate = `${String(d.getUTCDate()).padStart(2, "0")}${String(d.getUTCMonth() + 1).padStart(2, "0")}${String(d.getUTCFullYear() % 100).padStart(2, "0")}`;
|
|
179
|
+
}
|
|
180
|
+
const existing = fixMap.get(key);
|
|
181
|
+
if (existing) {
|
|
182
|
+
if (partial.alt !== void 0 && partial.alt !== null)
|
|
183
|
+
existing.alt = partial.alt;
|
|
184
|
+
if (partial.satellites !== void 0 && partial.satellites !== null)
|
|
185
|
+
existing.satellites = partial.satellites;
|
|
186
|
+
if (partial.fixQuality !== void 0)
|
|
187
|
+
existing.fixQuality = partial.fixQuality;
|
|
188
|
+
if (partial.speed !== void 0 && partial.speed !== null)
|
|
189
|
+
existing.speed = partial.speed;
|
|
190
|
+
if (partial.course !== void 0 && partial.course !== null)
|
|
191
|
+
existing.course = partial.course;
|
|
192
|
+
if (partial.hasDate && partial.time) existing.time = partial.time;
|
|
193
|
+
} else {
|
|
194
|
+
let time = partial.time;
|
|
195
|
+
if (!partial.hasDate && time && lastDate) {
|
|
196
|
+
time = buildDate(partial.timeKey, lastDate);
|
|
197
|
+
}
|
|
198
|
+
fixMap.set(key, {
|
|
199
|
+
time,
|
|
200
|
+
lat: partial.lat ?? 0,
|
|
201
|
+
lon: partial.lon ?? 0,
|
|
202
|
+
alt: partial.alt ?? null,
|
|
203
|
+
satellites: partial.satellites ?? null,
|
|
204
|
+
fixQuality: partial.fixQuality ?? 0,
|
|
205
|
+
speed: partial.speed ?? null,
|
|
206
|
+
course: partial.course ?? null
|
|
207
|
+
});
|
|
208
|
+
fixOrder.push(key);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const fixes = fixOrder.map((k) => fixMap.get(k));
|
|
212
|
+
return { fixes, stats: computeStats(fixes) };
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
export {
|
|
216
|
+
nmeaCoordToDecimal,
|
|
217
|
+
verifyChecksum,
|
|
218
|
+
computeStats,
|
|
219
|
+
parseNmeaFile
|
|
220
|
+
};
|
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/constants/index.ts
|
|
21
|
+
var constants_exports = {};
|
|
22
|
+
__export(constants_exports, {
|
|
23
|
+
ARC_GAP_FACTOR: () => ARC_GAP_FACTOR,
|
|
24
|
+
BAND_LABELS: () => BAND_LABELS,
|
|
25
|
+
BDS_SATELLITES: () => BDS_SATELLITES,
|
|
26
|
+
C_LIGHT: () => C_LIGHT,
|
|
27
|
+
DAYS_MJD2000_MJD: () => DAYS_MJD2000_MJD,
|
|
28
|
+
DAYS_MJD_JULIAN: () => DAYS_MJD_JULIAN,
|
|
29
|
+
DEFAULT_ELEV_MASK_DEG: () => DEFAULT_ELEV_MASK_DEG,
|
|
30
|
+
DUAL_FREQ_PAIRS: () => DUAL_FREQ_PAIRS,
|
|
31
|
+
FREQ: () => FREQ,
|
|
32
|
+
GLO_CHANNEL_FALLBACK: () => GLO_CHANNEL_FALLBACK,
|
|
33
|
+
GLO_F1_BASE: () => GLO_F1_BASE,
|
|
34
|
+
GLO_F1_STEP: () => GLO_F1_STEP,
|
|
35
|
+
GLO_F2_BASE: () => GLO_F2_BASE,
|
|
36
|
+
GLO_F2_STEP: () => GLO_F2_STEP,
|
|
37
|
+
GLO_F3: () => GLO_F3,
|
|
38
|
+
MILLISECONDS_GPS_TAI: () => MILLISECONDS_GPS_TAI,
|
|
39
|
+
MILLISECONDS_IN_DAY: () => MILLISECONDS_IN_DAY,
|
|
40
|
+
MILLISECONDS_IN_HOUR: () => MILLISECONDS_IN_HOUR,
|
|
41
|
+
MILLISECONDS_IN_MINUTE: () => MILLISECONDS_IN_MINUTE,
|
|
42
|
+
MILLISECONDS_IN_SECOND: () => MILLISECONDS_IN_SECOND,
|
|
43
|
+
MILLISECONDS_IN_WEEK: () => MILLISECONDS_IN_WEEK,
|
|
44
|
+
MILLISECONDS_TT_TAI: () => MILLISECONDS_TT_TAI,
|
|
45
|
+
RINEX_CODES: () => RINEX_CODES,
|
|
46
|
+
SECONDS_IN_DAY: () => SECONDS_IN_DAY,
|
|
47
|
+
SECONDS_IN_HOUR: () => SECONDS_IN_HOUR,
|
|
48
|
+
SECONDS_IN_MINUTE: () => SECONDS_IN_MINUTE,
|
|
49
|
+
SECONDS_IN_WEEK: () => SECONDS_IN_WEEK,
|
|
50
|
+
START_BDS_TIME: () => START_BDS_TIME,
|
|
51
|
+
START_GAL_TIME: () => START_GAL_TIME,
|
|
52
|
+
START_GLO_LEAP: () => START_GLO_LEAP,
|
|
53
|
+
START_GPS_TIME: () => START_GPS_TIME,
|
|
54
|
+
START_JULIAN_TAI: () => START_JULIAN_TAI,
|
|
55
|
+
START_MJD_UNIX_SECONDS: () => START_MJD_UNIX_SECONDS,
|
|
56
|
+
START_NTP_TIME: () => START_NTP_TIME,
|
|
57
|
+
START_TAI_TIME: () => START_TAI_TIME,
|
|
58
|
+
START_UNIX_TIME: () => START_UNIX_TIME,
|
|
59
|
+
SYSTEM_NAMES: () => SYSTEM_NAMES,
|
|
60
|
+
SYS_SHORT: () => SYS_SHORT,
|
|
61
|
+
WGS84_ECCENTRICITY_SQUARED: () => WGS84_ECCENTRICITY_SQUARED,
|
|
62
|
+
WGS84_FLATTENING: () => WGS84_FLATTENING,
|
|
63
|
+
WGS84_SEMI_MAJOR_AXIS: () => WGS84_SEMI_MAJOR_AXIS,
|
|
64
|
+
WGS84_SEMI_MINOR_AXIS: () => WGS84_SEMI_MINOR_AXIS,
|
|
65
|
+
buildGloChannelMap: () => buildGloChannelMap,
|
|
66
|
+
buildObsIndices: () => buildObsIndices,
|
|
67
|
+
formatUTCTime: () => formatUTCTime,
|
|
68
|
+
getFreq: () => getFreq,
|
|
69
|
+
gloFreq: () => gloFreq
|
|
70
|
+
});
|
|
71
|
+
module.exports = __toCommonJS(constants_exports);
|
|
72
|
+
|
|
73
|
+
// src/constants/time.ts
|
|
74
|
+
var SECONDS_IN_WEEK = 604800;
|
|
75
|
+
var SECONDS_IN_DAY = 86400;
|
|
76
|
+
var SECONDS_IN_HOUR = 3600;
|
|
77
|
+
var SECONDS_IN_MINUTE = 60;
|
|
78
|
+
var MILLISECONDS_IN_WEEK = 6048e5;
|
|
79
|
+
var MILLISECONDS_IN_DAY = 864e5;
|
|
80
|
+
var MILLISECONDS_IN_HOUR = 36e5;
|
|
81
|
+
var MILLISECONDS_IN_MINUTE = 6e4;
|
|
82
|
+
var MILLISECONDS_IN_SECOND = 1e3;
|
|
83
|
+
var MILLISECONDS_TT_TAI = 32184;
|
|
84
|
+
var MILLISECONDS_GPS_TAI = 19e3;
|
|
85
|
+
var START_GPS_TIME = /* @__PURE__ */ new Date("1980-01-06T00:00:00Z");
|
|
86
|
+
var START_GAL_TIME = /* @__PURE__ */ new Date("1999-08-22T00:00:00Z");
|
|
87
|
+
var START_BDS_TIME = /* @__PURE__ */ new Date("2006-01-01T00:00:14Z");
|
|
88
|
+
var START_UNIX_TIME = /* @__PURE__ */ new Date("1969-12-31T23:59:49Z");
|
|
89
|
+
var START_NTP_TIME = /* @__PURE__ */ new Date("1900-01-01T00:00:00Z");
|
|
90
|
+
var START_GLO_LEAP = /* @__PURE__ */ new Date("1996-01-01T00:00:00Z");
|
|
91
|
+
var START_TAI_TIME = /* @__PURE__ */ new Date("1957-12-31T23:59:41Z");
|
|
92
|
+
var RINEX_CODES = [
|
|
93
|
+
"a",
|
|
94
|
+
"b",
|
|
95
|
+
"c",
|
|
96
|
+
"d",
|
|
97
|
+
"e",
|
|
98
|
+
"f",
|
|
99
|
+
"g",
|
|
100
|
+
"h",
|
|
101
|
+
"i",
|
|
102
|
+
"j",
|
|
103
|
+
"k",
|
|
104
|
+
"l",
|
|
105
|
+
"m",
|
|
106
|
+
"n",
|
|
107
|
+
"o",
|
|
108
|
+
"p",
|
|
109
|
+
"q",
|
|
110
|
+
"r",
|
|
111
|
+
"s",
|
|
112
|
+
"t",
|
|
113
|
+
"u",
|
|
114
|
+
"v",
|
|
115
|
+
"w",
|
|
116
|
+
"x"
|
|
117
|
+
];
|
|
118
|
+
var START_JULIAN_TAI = 24362045e-1;
|
|
119
|
+
var DAYS_MJD_JULIAN = 24000005e-1;
|
|
120
|
+
var DAYS_MJD2000_MJD = 51544.5;
|
|
121
|
+
var START_MJD_UNIX_SECONDS = 40587;
|
|
122
|
+
|
|
123
|
+
// src/constants/wgs84.ts
|
|
124
|
+
var WGS84_SEMI_MAJOR_AXIS = 6378137;
|
|
125
|
+
var WGS84_SEMI_MINOR_AXIS = 6356752314245e-6;
|
|
126
|
+
var WGS84_FLATTENING = 1 / 298.257223563;
|
|
127
|
+
var WGS84_ECCENTRICITY_SQUARED = 0.006694379990197;
|
|
128
|
+
|
|
129
|
+
// src/constants/gnss.ts
|
|
130
|
+
var SYSTEM_NAMES = {
|
|
131
|
+
G: "GPS",
|
|
132
|
+
R: "GLONASS",
|
|
133
|
+
E: "Galileo",
|
|
134
|
+
C: "BeiDou",
|
|
135
|
+
J: "QZSS",
|
|
136
|
+
I: "NavIC",
|
|
137
|
+
S: "SBAS"
|
|
138
|
+
};
|
|
139
|
+
var SYS_SHORT = {
|
|
140
|
+
G: "GPS",
|
|
141
|
+
R: "GLO",
|
|
142
|
+
E: "GAL",
|
|
143
|
+
C: "BDS",
|
|
144
|
+
J: "QZS",
|
|
145
|
+
I: "NIC",
|
|
146
|
+
S: "SBS"
|
|
147
|
+
};
|
|
148
|
+
var C_LIGHT = 299792458;
|
|
149
|
+
var FREQ = {
|
|
150
|
+
G: { "1": 157542e4, "2": 12276e5, "5": 117645e4 },
|
|
151
|
+
R: { "3": 1202025e3 },
|
|
152
|
+
E: {
|
|
153
|
+
"1": 157542e4,
|
|
154
|
+
"5": 117645e4,
|
|
155
|
+
"6": 127875e4,
|
|
156
|
+
"7": 120714e4,
|
|
157
|
+
"8": 1191795e3
|
|
158
|
+
},
|
|
159
|
+
C: {
|
|
160
|
+
"1": 157542e4,
|
|
161
|
+
"2": 1561098e3,
|
|
162
|
+
"5": 117645e4,
|
|
163
|
+
"6": 126852e4,
|
|
164
|
+
"7": 120714e4
|
|
165
|
+
},
|
|
166
|
+
J: { "1": 157542e4, "2": 12276e5, "5": 117645e4, "6": 127875e4 },
|
|
167
|
+
I: { "5": 117645e4, "9": 2492028e3 },
|
|
168
|
+
S: { "1": 157542e4, "5": 117645e4 }
|
|
169
|
+
};
|
|
170
|
+
var BAND_LABELS = {
|
|
171
|
+
G: { "1": "L1", "2": "L2", "5": "L5" },
|
|
172
|
+
R: { "1": "G1", "2": "G2", "3": "G3" },
|
|
173
|
+
E: { "1": "E1", "5": "E5a", "6": "E6", "7": "E5b", "8": "E5" },
|
|
174
|
+
C: { "1": "B1C", "2": "B1I", "5": "B2a", "6": "B3I", "7": "B2I" },
|
|
175
|
+
J: { "1": "L1", "2": "L2", "5": "L5", "6": "L6" },
|
|
176
|
+
I: { "5": "L5", "9": "S" },
|
|
177
|
+
S: { "1": "L1", "5": "L5" }
|
|
178
|
+
};
|
|
179
|
+
var DUAL_FREQ_PAIRS = {
|
|
180
|
+
G: [
|
|
181
|
+
["1", "2"],
|
|
182
|
+
["1", "5"]
|
|
183
|
+
],
|
|
184
|
+
R: [
|
|
185
|
+
["1", "2"],
|
|
186
|
+
["1", "3"]
|
|
187
|
+
],
|
|
188
|
+
E: [
|
|
189
|
+
["1", "5"],
|
|
190
|
+
["1", "7"],
|
|
191
|
+
["1", "6"]
|
|
192
|
+
],
|
|
193
|
+
C: [
|
|
194
|
+
["2", "7"],
|
|
195
|
+
["2", "6"],
|
|
196
|
+
["1", "5"]
|
|
197
|
+
],
|
|
198
|
+
J: [
|
|
199
|
+
["1", "2"],
|
|
200
|
+
["1", "5"]
|
|
201
|
+
],
|
|
202
|
+
I: [["5", "9"]],
|
|
203
|
+
S: [["1", "5"]]
|
|
204
|
+
};
|
|
205
|
+
var GLO_F1_BASE = 1602e6;
|
|
206
|
+
var GLO_F1_STEP = 562500;
|
|
207
|
+
var GLO_F2_BASE = 1246e6;
|
|
208
|
+
var GLO_F2_STEP = 437500;
|
|
209
|
+
var GLO_F3 = 1202025e3;
|
|
210
|
+
var GLO_CHANNEL_FALLBACK = {
|
|
211
|
+
R01: 1,
|
|
212
|
+
R02: -4,
|
|
213
|
+
R03: 5,
|
|
214
|
+
R04: 6,
|
|
215
|
+
R05: 1,
|
|
216
|
+
R06: -4,
|
|
217
|
+
R07: 5,
|
|
218
|
+
R08: 6,
|
|
219
|
+
R09: -2,
|
|
220
|
+
R10: -7,
|
|
221
|
+
R11: 0,
|
|
222
|
+
R12: -1,
|
|
223
|
+
R13: -2,
|
|
224
|
+
R14: -7,
|
|
225
|
+
R15: 0,
|
|
226
|
+
R16: -1,
|
|
227
|
+
R17: 4,
|
|
228
|
+
R18: -3,
|
|
229
|
+
R19: 3,
|
|
230
|
+
R20: 2,
|
|
231
|
+
R21: 4,
|
|
232
|
+
R22: -3,
|
|
233
|
+
R23: 3,
|
|
234
|
+
R24: 2
|
|
235
|
+
};
|
|
236
|
+
function buildGloChannelMap(slots) {
|
|
237
|
+
if (Object.keys(slots).length === 0) return { ...GLO_CHANNEL_FALLBACK };
|
|
238
|
+
const map = {};
|
|
239
|
+
for (const [slot, k] of Object.entries(slots)) {
|
|
240
|
+
map[`R${String(slot).padStart(2, "0")}`] = k;
|
|
241
|
+
}
|
|
242
|
+
return map;
|
|
243
|
+
}
|
|
244
|
+
function gloFreq(gloChannels, prn, band) {
|
|
245
|
+
const k = gloChannels[prn];
|
|
246
|
+
if (k === void 0) return void 0;
|
|
247
|
+
if (band === "1") return GLO_F1_BASE + k * GLO_F1_STEP;
|
|
248
|
+
if (band === "2") return GLO_F2_BASE + k * GLO_F2_STEP;
|
|
249
|
+
if (band === "3") return GLO_F3;
|
|
250
|
+
return void 0;
|
|
251
|
+
}
|
|
252
|
+
function getFreq(gloChannels, prn, band) {
|
|
253
|
+
const sys = prn[0];
|
|
254
|
+
if (sys === "R") return gloFreq(gloChannels, prn, band);
|
|
255
|
+
return FREQ[sys]?.[band];
|
|
256
|
+
}
|
|
257
|
+
var BDS_SATELLITES = [
|
|
258
|
+
{ prn: "C01", phase: "BDS-2", orbit: "GEO" },
|
|
259
|
+
{ prn: "C02", phase: "BDS-2", orbit: "GEO" },
|
|
260
|
+
{ prn: "C03", phase: "BDS-2", orbit: "GEO" },
|
|
261
|
+
{ prn: "C04", phase: "BDS-2", orbit: "GEO" },
|
|
262
|
+
{ prn: "C05", phase: "BDS-2", orbit: "GEO" },
|
|
263
|
+
{ prn: "C06", phase: "BDS-2", orbit: "IGSO" },
|
|
264
|
+
{ prn: "C07", phase: "BDS-2", orbit: "IGSO" },
|
|
265
|
+
{ prn: "C08", phase: "BDS-2", orbit: "IGSO" },
|
|
266
|
+
{ prn: "C09", phase: "BDS-2", orbit: "IGSO" },
|
|
267
|
+
{ prn: "C10", phase: "BDS-2", orbit: "IGSO" },
|
|
268
|
+
{ prn: "C13", phase: "BDS-2", orbit: "IGSO" },
|
|
269
|
+
{ prn: "C16", phase: "BDS-2", orbit: "IGSO" },
|
|
270
|
+
{ prn: "C11", phase: "BDS-2", orbit: "MEO" },
|
|
271
|
+
{ prn: "C12", phase: "BDS-2", orbit: "MEO" },
|
|
272
|
+
{ prn: "C14", phase: "BDS-2", orbit: "MEO" },
|
|
273
|
+
{ prn: "C19", phase: "BDS-3", orbit: "MEO" },
|
|
274
|
+
{ prn: "C20", phase: "BDS-3", orbit: "MEO" },
|
|
275
|
+
{ prn: "C21", phase: "BDS-3", orbit: "MEO" },
|
|
276
|
+
{ prn: "C22", phase: "BDS-3", orbit: "MEO" },
|
|
277
|
+
{ prn: "C23", phase: "BDS-3", orbit: "MEO" },
|
|
278
|
+
{ prn: "C24", phase: "BDS-3", orbit: "MEO" },
|
|
279
|
+
{ prn: "C25", phase: "BDS-3", orbit: "MEO" },
|
|
280
|
+
{ prn: "C26", phase: "BDS-3", orbit: "MEO" },
|
|
281
|
+
{ prn: "C27", phase: "BDS-3", orbit: "MEO" },
|
|
282
|
+
{ prn: "C28", phase: "BDS-3", orbit: "MEO" },
|
|
283
|
+
{ prn: "C29", phase: "BDS-3", orbit: "MEO" },
|
|
284
|
+
{ prn: "C30", phase: "BDS-3", orbit: "MEO" },
|
|
285
|
+
{ prn: "C32", phase: "BDS-3", orbit: "MEO" },
|
|
286
|
+
{ prn: "C33", phase: "BDS-3", orbit: "MEO" },
|
|
287
|
+
{ prn: "C34", phase: "BDS-3", orbit: "MEO" },
|
|
288
|
+
{ prn: "C35", phase: "BDS-3", orbit: "MEO" },
|
|
289
|
+
{ prn: "C36", phase: "BDS-3", orbit: "MEO" },
|
|
290
|
+
{ prn: "C37", phase: "BDS-3", orbit: "MEO" },
|
|
291
|
+
{ prn: "C41", phase: "BDS-3", orbit: "MEO" },
|
|
292
|
+
{ prn: "C42", phase: "BDS-3", orbit: "MEO" },
|
|
293
|
+
{ prn: "C43", phase: "BDS-3", orbit: "MEO" },
|
|
294
|
+
{ prn: "C44", phase: "BDS-3", orbit: "MEO" },
|
|
295
|
+
{ prn: "C45", phase: "BDS-3", orbit: "MEO" },
|
|
296
|
+
{ prn: "C46", phase: "BDS-3", orbit: "MEO" },
|
|
297
|
+
{ prn: "C38", phase: "BDS-3", orbit: "IGSO" },
|
|
298
|
+
{ prn: "C39", phase: "BDS-3", orbit: "IGSO" },
|
|
299
|
+
{ prn: "C40", phase: "BDS-3", orbit: "IGSO" },
|
|
300
|
+
{ prn: "C59", phase: "BDS-3", orbit: "GEO" },
|
|
301
|
+
{ prn: "C60", phase: "BDS-3", orbit: "GEO" },
|
|
302
|
+
{ prn: "C61", phase: "BDS-3", orbit: "GEO" }
|
|
303
|
+
];
|
|
304
|
+
var ATTR_PRIORITY = {
|
|
305
|
+
X: 8,
|
|
306
|
+
C: 7,
|
|
307
|
+
S: 6,
|
|
308
|
+
L: 6,
|
|
309
|
+
Q: 6,
|
|
310
|
+
I: 5,
|
|
311
|
+
B: 5,
|
|
312
|
+
D: 4,
|
|
313
|
+
Z: 3,
|
|
314
|
+
P: 2,
|
|
315
|
+
W: 1
|
|
316
|
+
};
|
|
317
|
+
function attrRank(code) {
|
|
318
|
+
return ATTR_PRIORITY[code[2] ?? ""] ?? 3;
|
|
319
|
+
}
|
|
320
|
+
function buildObsIndices(header) {
|
|
321
|
+
const result = /* @__PURE__ */ new Map();
|
|
322
|
+
for (const [sys, codes] of Object.entries(header.obsTypes)) {
|
|
323
|
+
if (sys === "_v2") continue;
|
|
324
|
+
const lIdx = /* @__PURE__ */ new Map();
|
|
325
|
+
const lRank = /* @__PURE__ */ new Map();
|
|
326
|
+
const cIdx = /* @__PURE__ */ new Map();
|
|
327
|
+
const cRank = /* @__PURE__ */ new Map();
|
|
328
|
+
for (let i = 0; i < codes.length; i++) {
|
|
329
|
+
const code = codes[i];
|
|
330
|
+
const type = code[0];
|
|
331
|
+
const band = code[1];
|
|
332
|
+
if (!band) continue;
|
|
333
|
+
const rank = attrRank(code);
|
|
334
|
+
if (type === "L" && rank > (lRank.get(band) ?? -1)) {
|
|
335
|
+
lIdx.set(band, i);
|
|
336
|
+
lRank.set(band, rank);
|
|
337
|
+
}
|
|
338
|
+
if ((type === "C" || type === "P") && rank > (cRank.get(band) ?? -1)) {
|
|
339
|
+
cIdx.set(band, i);
|
|
340
|
+
cRank.set(band, rank);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
const bandMap = /* @__PURE__ */ new Map();
|
|
344
|
+
for (const [band, li] of lIdx) {
|
|
345
|
+
bandMap.set(band, { L: li, C: cIdx.get(band) ?? null });
|
|
346
|
+
}
|
|
347
|
+
if (bandMap.size > 0) result.set(sys, bandMap);
|
|
348
|
+
}
|
|
349
|
+
const v2codes = header.obsTypes["_v2"];
|
|
350
|
+
if (v2codes) {
|
|
351
|
+
const lIdx = /* @__PURE__ */ new Map();
|
|
352
|
+
const cIdx = /* @__PURE__ */ new Map();
|
|
353
|
+
for (let i = 0; i < v2codes.length; i++) {
|
|
354
|
+
const code = v2codes[i];
|
|
355
|
+
const type = code[0];
|
|
356
|
+
const band = code[1];
|
|
357
|
+
if (!band) continue;
|
|
358
|
+
if (type === "L" && !lIdx.has(band)) lIdx.set(band, i);
|
|
359
|
+
if ((type === "C" || type === "P") && !cIdx.has(band)) cIdx.set(band, i);
|
|
360
|
+
}
|
|
361
|
+
const bandMap = /* @__PURE__ */ new Map();
|
|
362
|
+
for (const [band, li] of lIdx) {
|
|
363
|
+
bandMap.set(band, { L: li, C: cIdx.get(band) ?? null });
|
|
364
|
+
}
|
|
365
|
+
if (bandMap.size > 0) result.set("_v2", bandMap);
|
|
366
|
+
}
|
|
367
|
+
return result;
|
|
368
|
+
}
|
|
369
|
+
var ARC_GAP_FACTOR = 5;
|
|
370
|
+
var DEFAULT_ELEV_MASK_DEG = 5;
|
|
371
|
+
function formatUTCTime(d) {
|
|
372
|
+
return `${String(d.getUTCHours()).padStart(2, "0")}:${String(d.getUTCMinutes()).padStart(2, "0")}:${String(d.getUTCSeconds()).padStart(2, "0")}`;
|
|
373
|
+
}
|
|
374
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
375
|
+
0 && (module.exports = {
|
|
376
|
+
ARC_GAP_FACTOR,
|
|
377
|
+
BAND_LABELS,
|
|
378
|
+
BDS_SATELLITES,
|
|
379
|
+
C_LIGHT,
|
|
380
|
+
DAYS_MJD2000_MJD,
|
|
381
|
+
DAYS_MJD_JULIAN,
|
|
382
|
+
DEFAULT_ELEV_MASK_DEG,
|
|
383
|
+
DUAL_FREQ_PAIRS,
|
|
384
|
+
FREQ,
|
|
385
|
+
GLO_CHANNEL_FALLBACK,
|
|
386
|
+
GLO_F1_BASE,
|
|
387
|
+
GLO_F1_STEP,
|
|
388
|
+
GLO_F2_BASE,
|
|
389
|
+
GLO_F2_STEP,
|
|
390
|
+
GLO_F3,
|
|
391
|
+
MILLISECONDS_GPS_TAI,
|
|
392
|
+
MILLISECONDS_IN_DAY,
|
|
393
|
+
MILLISECONDS_IN_HOUR,
|
|
394
|
+
MILLISECONDS_IN_MINUTE,
|
|
395
|
+
MILLISECONDS_IN_SECOND,
|
|
396
|
+
MILLISECONDS_IN_WEEK,
|
|
397
|
+
MILLISECONDS_TT_TAI,
|
|
398
|
+
RINEX_CODES,
|
|
399
|
+
SECONDS_IN_DAY,
|
|
400
|
+
SECONDS_IN_HOUR,
|
|
401
|
+
SECONDS_IN_MINUTE,
|
|
402
|
+
SECONDS_IN_WEEK,
|
|
403
|
+
START_BDS_TIME,
|
|
404
|
+
START_GAL_TIME,
|
|
405
|
+
START_GLO_LEAP,
|
|
406
|
+
START_GPS_TIME,
|
|
407
|
+
START_JULIAN_TAI,
|
|
408
|
+
START_MJD_UNIX_SECONDS,
|
|
409
|
+
START_NTP_TIME,
|
|
410
|
+
START_TAI_TIME,
|
|
411
|
+
START_UNIX_TIME,
|
|
412
|
+
SYSTEM_NAMES,
|
|
413
|
+
SYS_SHORT,
|
|
414
|
+
WGS84_ECCENTRICITY_SQUARED,
|
|
415
|
+
WGS84_FLATTENING,
|
|
416
|
+
WGS84_SEMI_MAJOR_AXIS,
|
|
417
|
+
WGS84_SEMI_MINOR_AXIS,
|
|
418
|
+
buildGloChannelMap,
|
|
419
|
+
buildObsIndices,
|
|
420
|
+
formatUTCTime,
|
|
421
|
+
getFreq,
|
|
422
|
+
gloFreq
|
|
423
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { D as DAYS_MJD2000_MJD, a as DAYS_MJD_JULIAN, M as MILLISECONDS_GPS_TAI, b as MILLISECONDS_IN_DAY, c as MILLISECONDS_IN_HOUR, d as MILLISECONDS_IN_MINUTE, e as MILLISECONDS_IN_SECOND, f as MILLISECONDS_IN_WEEK, g as MILLISECONDS_TT_TAI, R as RINEX_CODES, S as SECONDS_IN_DAY, h as SECONDS_IN_HOUR, i as SECONDS_IN_MINUTE, j as SECONDS_IN_WEEK, k as START_BDS_TIME, l as START_GAL_TIME, m as START_GLO_LEAP, n as START_GPS_TIME, o as START_JULIAN_TAI, p as START_MJD_UNIX_SECONDS, q as START_NTP_TIME, r as START_TAI_TIME, s as START_UNIX_TIME } from './time-DnI1VpE8.cjs';
|
|
2
|
+
export { A as ARC_GAP_FACTOR, B as BAND_LABELS, a as BDS_SATELLITES, b as BdsSatellite, C as C_LIGHT, D as DEFAULT_ELEV_MASK_DEG, c as DUAL_FREQ_PAIRS, F as FREQ, G as GLO_CHANNEL_FALLBACK, d as GLO_F1_BASE, e as GLO_F1_STEP, f as GLO_F2_BASE, g as GLO_F2_STEP, h as GLO_F3, O as OnSlipDetected, S as SYSTEM_NAMES, i as SYS_SHORT, j as buildGloChannelMap, k as buildObsIndices, l as formatUTCTime, m as getFreq, n as gloFreq } from './gnss-BT6ulR17.cjs';
|
|
3
|
+
import './parser-JPjjFgeP.cjs';
|
|
4
|
+
|
|
5
|
+
/** WGS84 semi-major axis in meters. */
|
|
6
|
+
declare const WGS84_SEMI_MAJOR_AXIS = 6378137;
|
|
7
|
+
/** WGS84 semi-minor axis in meters. */
|
|
8
|
+
declare const WGS84_SEMI_MINOR_AXIS = 6356752.314245;
|
|
9
|
+
/** WGS84 flattening (1/298.257223563). */
|
|
10
|
+
declare const WGS84_FLATTENING: number;
|
|
11
|
+
/** WGS84 first eccentricity squared. */
|
|
12
|
+
declare const WGS84_ECCENTRICITY_SQUARED = 0.006694379990197;
|
|
13
|
+
|
|
14
|
+
export { WGS84_ECCENTRICITY_SQUARED, WGS84_FLATTENING, WGS84_SEMI_MAJOR_AXIS, WGS84_SEMI_MINOR_AXIS };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { D as DAYS_MJD2000_MJD, a as DAYS_MJD_JULIAN, M as MILLISECONDS_GPS_TAI, b as MILLISECONDS_IN_DAY, c as MILLISECONDS_IN_HOUR, d as MILLISECONDS_IN_MINUTE, e as MILLISECONDS_IN_SECOND, f as MILLISECONDS_IN_WEEK, g as MILLISECONDS_TT_TAI, R as RINEX_CODES, S as SECONDS_IN_DAY, h as SECONDS_IN_HOUR, i as SECONDS_IN_MINUTE, j as SECONDS_IN_WEEK, k as START_BDS_TIME, l as START_GAL_TIME, m as START_GLO_LEAP, n as START_GPS_TIME, o as START_JULIAN_TAI, p as START_MJD_UNIX_SECONDS, q as START_NTP_TIME, r as START_TAI_TIME, s as START_UNIX_TIME } from './time-DnI1VpE8.js';
|
|
2
|
+
export { A as ARC_GAP_FACTOR, B as BAND_LABELS, a as BDS_SATELLITES, b as BdsSatellite, C as C_LIGHT, D as DEFAULT_ELEV_MASK_DEG, c as DUAL_FREQ_PAIRS, F as FREQ, G as GLO_CHANNEL_FALLBACK, d as GLO_F1_BASE, e as GLO_F1_STEP, f as GLO_F2_BASE, g as GLO_F2_STEP, h as GLO_F3, O as OnSlipDetected, S as SYSTEM_NAMES, i as SYS_SHORT, j as buildGloChannelMap, k as buildObsIndices, l as formatUTCTime, m as getFreq, n as gloFreq } from './gnss-C-tgoYNa.js';
|
|
3
|
+
import './parser-JPjjFgeP.js';
|
|
4
|
+
|
|
5
|
+
/** WGS84 semi-major axis in meters. */
|
|
6
|
+
declare const WGS84_SEMI_MAJOR_AXIS = 6378137;
|
|
7
|
+
/** WGS84 semi-minor axis in meters. */
|
|
8
|
+
declare const WGS84_SEMI_MINOR_AXIS = 6356752.314245;
|
|
9
|
+
/** WGS84 flattening (1/298.257223563). */
|
|
10
|
+
declare const WGS84_FLATTENING: number;
|
|
11
|
+
/** WGS84 first eccentricity squared. */
|
|
12
|
+
declare const WGS84_ECCENTRICITY_SQUARED = 0.006694379990197;
|
|
13
|
+
|
|
14
|
+
export { WGS84_ECCENTRICITY_SQUARED, WGS84_FLATTENING, WGS84_SEMI_MAJOR_AXIS, WGS84_SEMI_MINOR_AXIS };
|