gnss-js 2.10.0 → 2.11.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/README.md +1 -1
- package/dist/binex.d.cts +1 -1
- package/dist/binex.d.ts +1 -1
- package/dist/{chunk-WQX354KD.js → chunk-H3AKFD25.js} +1 -1
- package/dist/{chunk-YUW33VXK.js → chunk-HUXQABJI.js} +2 -0
- package/dist/{chunk-GH7MYXON.js → chunk-IQHQHUOB.js} +3 -3
- package/dist/{chunk-56HM5B6T.js → chunk-MDO77CCC.js} +132 -9
- package/dist/chunk-NL2ORX75.js +319 -0
- package/dist/{chunk-N6GQUHM4.js → chunk-PBENVPFL.js} +1 -1
- package/dist/{chunk-74IVYOQV.js → chunk-RFPR4LKM.js} +110 -4
- package/dist/{chunk-3KSDL3CO.js → chunk-SSWFX3P3.js} +1 -1
- package/dist/{chunk-SEYH4BEN.js → chunk-SZP4TLYR.js} +2 -2
- package/dist/{chunk-K3GLUWZI.js → chunk-UMINQTMK.js} +1 -1
- package/dist/index.cjs +626 -110
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +12 -9
- package/dist/{nav-DImXUdbp.d.ts → nav-COp0Vmlw.d.cts} +83 -2
- package/dist/{nav-DImXUdbp.d.cts → nav-COp0Vmlw.d.ts} +83 -2
- package/dist/{nav-BYmYoh9A.d.cts → nav-CvZXmumD.d.cts} +1 -1
- package/dist/{nav-CN8rxL4h.d.ts → nav-D2DFlVpa.d.ts} +1 -1
- package/dist/novatel.d.cts +1 -1
- package/dist/novatel.d.ts +1 -1
- package/dist/novatel.js +3 -3
- package/dist/orbit.d.cts +2 -2
- package/dist/orbit.d.ts +2 -2
- package/dist/positioning.d.cts +2 -2
- package/dist/positioning.d.ts +2 -2
- package/dist/positioning.js +3 -3
- package/dist/rinex.cjs +140 -11
- package/dist/rinex.d.cts +9 -6
- package/dist/rinex.d.ts +9 -6
- package/dist/rinex.js +3 -2
- package/dist/rtcm3.cjs +1 -1
- package/dist/rtcm3.js +1 -1
- package/dist/sbf.cjs +420 -24
- package/dist/sbf.d.cts +46 -5
- package/dist/sbf.d.ts +46 -5
- package/dist/sbf.js +7 -4
- package/dist/trimble.d.cts +1 -1
- package/dist/trimble.d.ts +1 -1
- package/dist/ubx.d.cts +1 -1
- package/dist/ubx.d.ts +1 -1
- package/dist/ubx.js +4 -4
- package/package.json +1 -1
package/dist/rinex.cjs
CHANGED
|
@@ -1495,6 +1495,15 @@ var SEC_PER_WEEK2 = 7 * 86400;
|
|
|
1495
1495
|
var CNAV_A_REF = 26559710;
|
|
1496
1496
|
var CNAV_OMEGA_DOT_REF = -26e-10;
|
|
1497
1497
|
|
|
1498
|
+
// src/navbits/bds-cnav.ts
|
|
1499
|
+
var BDT_EPOCH_MS = Date.UTC(2006, 0, 1);
|
|
1500
|
+
var SEC_PER_WEEK3 = 7 * 86400;
|
|
1501
|
+
var BDS_CNAV_A_REF_MEO = 27906100;
|
|
1502
|
+
var BDS_CNAV_A_REF_IGSO_GEO = 42162200;
|
|
1503
|
+
function bdsCnavAref(satType) {
|
|
1504
|
+
return satType === 3 ? BDS_CNAV_A_REF_MEO : BDS_CNAV_A_REF_IGSO_GEO;
|
|
1505
|
+
}
|
|
1506
|
+
|
|
1498
1507
|
// src/rinex/nav.ts
|
|
1499
1508
|
var DATA_LINES = {
|
|
1500
1509
|
G: 7,
|
|
@@ -1520,16 +1529,17 @@ var R4_MSG_LINES = {
|
|
|
1520
1529
|
// RINEX 4 adds orbit-4 (status flags) vs 3 in RINEX 3
|
|
1521
1530
|
// EPH type parsed into RinexCnavEphemeris for G/J (skipped otherwise)
|
|
1522
1531
|
CNAV: 9,
|
|
1523
|
-
//
|
|
1532
|
+
// BeiDou-3 B-CNAV, parsed into BdsCnavEphemeris
|
|
1524
1533
|
CNV1: 10,
|
|
1525
1534
|
CNV2: 10,
|
|
1526
1535
|
CNV3: 9,
|
|
1536
|
+
// EPH types we skip (different field layout)
|
|
1527
1537
|
L1NV: 8,
|
|
1528
1538
|
L1OC: 9,
|
|
1529
1539
|
L3OC: 9
|
|
1530
1540
|
};
|
|
1531
1541
|
var GPS_EPOCH_MS3 = Date.UTC(1980, 0, 6);
|
|
1532
|
-
var
|
|
1542
|
+
var SEC_PER_WEEK4 = 7 * 86400;
|
|
1533
1543
|
var QZSS_CNAV_A_REF = 42164200;
|
|
1534
1544
|
var SUPPORTED_EPH_MSGS = /* @__PURE__ */ new Set([
|
|
1535
1545
|
"LNAV",
|
|
@@ -1674,8 +1684,8 @@ function buildCnavEphemeris(sys, prn, date, epochVals, d) {
|
|
|
1674
1684
|
const num = (r, c) => d[r]?.[c] ?? 0;
|
|
1675
1685
|
const opt = (r, c) => d[r]?.[c] ?? null;
|
|
1676
1686
|
const t = (date.getTime() - GPS_EPOCH_MS3) / 1e3;
|
|
1677
|
-
const week = Math.floor(t /
|
|
1678
|
-
const toc = t - week *
|
|
1687
|
+
const week = Math.floor(t / SEC_PER_WEEK4);
|
|
1688
|
+
const toc = t - week * SEC_PER_WEEK4;
|
|
1679
1689
|
const sqrtA = num(1, 3);
|
|
1680
1690
|
const a = sqrtA * sqrtA;
|
|
1681
1691
|
const aRef = sys === "J" ? QZSS_CNAV_A_REF : CNAV_A_REF;
|
|
@@ -1732,6 +1742,68 @@ function buildCnavEphemeris(sys, prn, date, epochVals, d) {
|
|
|
1732
1742
|
tow: num(7, 0)
|
|
1733
1743
|
};
|
|
1734
1744
|
}
|
|
1745
|
+
var BDT_EPOCH_MS2 = Date.UTC(2006, 0, 1);
|
|
1746
|
+
function buildBdsCnavEphemeris(message, prn, date, epochVals, d) {
|
|
1747
|
+
const num = (r, c) => d[r]?.[c] ?? 0;
|
|
1748
|
+
const opt = (r, c) => d[r]?.[c] ?? null;
|
|
1749
|
+
const cnv3 = message === "CNV3";
|
|
1750
|
+
const t = (date.getTime() - BDT_EPOCH_MS2) / 1e3;
|
|
1751
|
+
const weekToc = Math.floor(t / SEC_PER_WEEK4);
|
|
1752
|
+
const toc = t - weekToc * SEC_PER_WEEK4;
|
|
1753
|
+
const toe = num(2, 0);
|
|
1754
|
+
const week = toe - toc > SEC_PER_WEEK4 / 2 ? weekToc - 1 : toc - toe > SEC_PER_WEEK4 / 2 ? weekToc + 1 : weekToc;
|
|
1755
|
+
const sqrtA = num(1, 3);
|
|
1756
|
+
const a = sqrtA * sqrtA;
|
|
1757
|
+
const satType = num(4, 2);
|
|
1758
|
+
return {
|
|
1759
|
+
system: "C",
|
|
1760
|
+
prn,
|
|
1761
|
+
message,
|
|
1762
|
+
week,
|
|
1763
|
+
toe,
|
|
1764
|
+
toeDate: new Date(BDT_EPOCH_MS2 + (week * SEC_PER_WEEK4 + toe) * 1e3),
|
|
1765
|
+
toc,
|
|
1766
|
+
tocDate: date,
|
|
1767
|
+
satType,
|
|
1768
|
+
a,
|
|
1769
|
+
deltaA: a - bdsCnavAref(satType),
|
|
1770
|
+
aDot: num(0, 0),
|
|
1771
|
+
deltaN0: num(0, 2),
|
|
1772
|
+
deltaN0Dot: num(4, 1),
|
|
1773
|
+
m0: num(0, 3),
|
|
1774
|
+
e: num(1, 1),
|
|
1775
|
+
omega: num(3, 2),
|
|
1776
|
+
omega0: num(2, 2),
|
|
1777
|
+
i0: num(3, 0),
|
|
1778
|
+
omegaDot: num(3, 3),
|
|
1779
|
+
i0Dot: num(4, 0),
|
|
1780
|
+
cis: num(2, 3),
|
|
1781
|
+
cic: num(2, 1),
|
|
1782
|
+
crs: num(0, 1),
|
|
1783
|
+
crc: num(3, 1),
|
|
1784
|
+
cus: num(1, 2),
|
|
1785
|
+
cuc: num(1, 0),
|
|
1786
|
+
af0: epochVals[0] ?? 0,
|
|
1787
|
+
af1: epochVals[1] ?? 0,
|
|
1788
|
+
af2: epochVals[2] ?? 0,
|
|
1789
|
+
iode: cnv3 ? null : opt(8, 3),
|
|
1790
|
+
iodc: cnv3 ? null : opt(7, 3),
|
|
1791
|
+
tgdB1Cp: cnv3 ? null : opt(6, 2),
|
|
1792
|
+
tgdB2ap: cnv3 ? null : opt(6, 3),
|
|
1793
|
+
iscB1Cd: cnv3 ? null : opt(6, 0),
|
|
1794
|
+
iscB2ad: cnv3 ? null : opt(6, 1),
|
|
1795
|
+
tgdB2bI: cnv3 ? opt(6, 3) : null,
|
|
1796
|
+
top: opt(4, 3),
|
|
1797
|
+
sisaiOe: opt(5, 0),
|
|
1798
|
+
sisaiOcb: opt(5, 1),
|
|
1799
|
+
sisaiOc1: opt(5, 2),
|
|
1800
|
+
sisaiOc2: opt(5, 3),
|
|
1801
|
+
sismai: cnv3 ? opt(6, 0) : opt(7, 0),
|
|
1802
|
+
health: cnv3 ? opt(6, 1) : opt(7, 1),
|
|
1803
|
+
integrityFlags: cnv3 ? opt(6, 2) : opt(7, 2),
|
|
1804
|
+
tow: cnv3 ? num(7, 0) : num(8, 0)
|
|
1805
|
+
};
|
|
1806
|
+
}
|
|
1735
1807
|
function parseNavFile(text) {
|
|
1736
1808
|
const lines = text.split("\n");
|
|
1737
1809
|
const header = {
|
|
@@ -1742,6 +1814,7 @@ function parseNavFile(text) {
|
|
|
1742
1814
|
};
|
|
1743
1815
|
const ephemerides = [];
|
|
1744
1816
|
const cnav = [];
|
|
1817
|
+
const bdsCnav = [];
|
|
1745
1818
|
let inHeader = true;
|
|
1746
1819
|
let i = 0;
|
|
1747
1820
|
while (i < lines.length) {
|
|
@@ -1810,7 +1883,8 @@ function parseNavFile(text) {
|
|
|
1810
1883
|
continue;
|
|
1811
1884
|
}
|
|
1812
1885
|
const isCnav = msgType === "CNAV" && (svSys === "G" || svSys === "J");
|
|
1813
|
-
|
|
1886
|
+
const isBdsCnav = svSys === "C" && (msgType === "CNV1" || msgType === "CNV2" || msgType === "CNV3");
|
|
1887
|
+
if (!SUPPORTED_EPH_MSGS.has(msgType) && !isCnav && !isBdsCnav) {
|
|
1814
1888
|
const totalLines = R4_MSG_LINES[msgType] ?? 2;
|
|
1815
1889
|
i += totalLines + 1;
|
|
1816
1890
|
continue;
|
|
@@ -1822,17 +1896,34 @@ function parseNavFile(text) {
|
|
|
1822
1896
|
const sys2 = epochLine.charAt(0);
|
|
1823
1897
|
const parsed = parseNavEpochV3(epochLine);
|
|
1824
1898
|
const prn2 = `${sys2}${parsed.prn.substring(1)}`;
|
|
1825
|
-
if (isCnav) {
|
|
1899
|
+
if (isCnav || isBdsCnav) {
|
|
1826
1900
|
const slotLines = [];
|
|
1827
1901
|
for (let j = 0; j < numDataLines2; j++) {
|
|
1828
1902
|
i++;
|
|
1829
1903
|
if (i >= lines.length) break;
|
|
1830
1904
|
slotLines.push(parseDataLineSlots(lines[i]));
|
|
1831
1905
|
}
|
|
1832
|
-
if (slotLines.length === numDataLines2
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1906
|
+
if (slotLines.length === numDataLines2) {
|
|
1907
|
+
if (isBdsCnav && sys2 === "C")
|
|
1908
|
+
bdsCnav.push(
|
|
1909
|
+
buildBdsCnavEphemeris(
|
|
1910
|
+
msgType,
|
|
1911
|
+
prn2,
|
|
1912
|
+
parsed.date,
|
|
1913
|
+
parsed.values,
|
|
1914
|
+
slotLines
|
|
1915
|
+
)
|
|
1916
|
+
);
|
|
1917
|
+
else if (sys2 === "G" || sys2 === "J")
|
|
1918
|
+
cnav.push(
|
|
1919
|
+
buildCnavEphemeris(
|
|
1920
|
+
sys2,
|
|
1921
|
+
prn2,
|
|
1922
|
+
parsed.date,
|
|
1923
|
+
parsed.values,
|
|
1924
|
+
slotLines
|
|
1925
|
+
)
|
|
1926
|
+
);
|
|
1836
1927
|
}
|
|
1837
1928
|
i++;
|
|
1838
1929
|
continue;
|
|
@@ -1910,7 +2001,12 @@ function parseNavFile(text) {
|
|
|
1910
2001
|
}
|
|
1911
2002
|
i++;
|
|
1912
2003
|
}
|
|
1913
|
-
return
|
|
2004
|
+
return {
|
|
2005
|
+
header,
|
|
2006
|
+
ephemerides,
|
|
2007
|
+
...cnav.length > 0 && { cnav },
|
|
2008
|
+
...bdsCnav.length > 0 && { bdsCnav }
|
|
2009
|
+
};
|
|
1914
2010
|
}
|
|
1915
2011
|
|
|
1916
2012
|
// src/rinex/nav-writer.ts
|
|
@@ -2106,6 +2202,30 @@ function cnavRecord(eph) {
|
|
|
2106
2202
|
orbitLine4([eph.tow, resolveWnOp(eph.week, eph.wnOp)])
|
|
2107
2203
|
].join("\n");
|
|
2108
2204
|
}
|
|
2205
|
+
function bdsCnavRecord(eph) {
|
|
2206
|
+
const lines = [
|
|
2207
|
+
epochLine4(eph.prn, eph.tocDate, [eph.af0, eph.af1, eph.af2]),
|
|
2208
|
+
orbitLine4([eph.aDot, eph.crs, eph.deltaN0, eph.m0]),
|
|
2209
|
+
orbitLine4([eph.cuc, eph.e, eph.cus, Math.sqrt(eph.a)]),
|
|
2210
|
+
orbitLine4([eph.toe, eph.cic, eph.omega0, eph.cis]),
|
|
2211
|
+
orbitLine4([eph.i0, eph.crc, eph.omega, eph.omegaDot]),
|
|
2212
|
+
orbitLine4([eph.i0Dot, eph.deltaN0Dot, eph.satType, eph.top]),
|
|
2213
|
+
orbitLine4([eph.sisaiOe, eph.sisaiOcb, eph.sisaiOc1, eph.sisaiOc2])
|
|
2214
|
+
];
|
|
2215
|
+
if (eph.message === "CNV3") {
|
|
2216
|
+
lines.push(
|
|
2217
|
+
orbitLine4([eph.sismai, eph.health, eph.integrityFlags, eph.tgdB2bI]),
|
|
2218
|
+
orbitLine4([eph.tow])
|
|
2219
|
+
);
|
|
2220
|
+
} else {
|
|
2221
|
+
lines.push(
|
|
2222
|
+
orbitLine4([eph.iscB1Cd, eph.iscB2ad, eph.tgdB1Cp, eph.tgdB2ap]),
|
|
2223
|
+
orbitLine4([eph.sismai, eph.health, eph.integrityFlags, eph.iodc]),
|
|
2224
|
+
orbitLine4([eph.tow, null, null, eph.iode])
|
|
2225
|
+
);
|
|
2226
|
+
}
|
|
2227
|
+
return lines.join("\n");
|
|
2228
|
+
}
|
|
2109
2229
|
var KLOBUCHAR_SOURCES = [
|
|
2110
2230
|
["GPSA", "GPSB", "G", "LNAV"],
|
|
2111
2231
|
["QZSA", "QZSB", "J", "LNAV"],
|
|
@@ -2183,6 +2303,15 @@ function writeRinexNav4(nav) {
|
|
|
2183
2303
|
` + cnavRecord(eph)
|
|
2184
2304
|
});
|
|
2185
2305
|
}
|
|
2306
|
+
for (const eph of nav.bdsCnav ?? []) {
|
|
2307
|
+
records.push({
|
|
2308
|
+
prn: eph.prn,
|
|
2309
|
+
time: eph.tocDate.getTime(),
|
|
2310
|
+
label: eph.message,
|
|
2311
|
+
body: `> EPH ${padL(eph.prn, 3)} ${eph.message}
|
|
2312
|
+
` + bdsCnavRecord(eph)
|
|
2313
|
+
});
|
|
2314
|
+
}
|
|
2186
2315
|
records.sort(
|
|
2187
2316
|
(a, b) => a.prn.localeCompare(b.prn) || a.time - b.time || a.label.localeCompare(b.label)
|
|
2188
2317
|
);
|
package/dist/rinex.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { R as RinexHeader } from './parser-JPjjFgeP.cjs';
|
|
2
2
|
export { E as EpochSummary, P as ParseOptions, a as RinexResult, b as RinexStats, S as SYSTEM_ORDER, c as SatObsCallback, p as parseRinexStream, s as systemCmp, d as systemName } from './parser-JPjjFgeP.cjs';
|
|
3
|
-
import {
|
|
4
|
-
export { G as GlonassEphemeris, K as KeplerEphemeris, p as parseNavFile } from './nav-
|
|
3
|
+
import { b as NavResult, N as NavHeader, E as Ephemeris, R as RinexCnavEphemeris, B as BdsCnavEphemeris } from './nav-COp0Vmlw.cjs';
|
|
4
|
+
export { a as BdsCnavMessage, G as GlonassEphemeris, K as KeplerEphemeris, p as parseNavFile } from './nav-COp0Vmlw.cjs';
|
|
5
5
|
export { C as ClkFile, I as IonexGrid, S as Sp3File, a as Sp3Sample, c as clkBias, p as parseClk, b as parseIonex, d as parseSp3, s as sp3Position } from './clk-DGVBGRzA.cjs';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -155,7 +155,8 @@ declare function writeRinexNav(nav: NavResult): string;
|
|
|
155
155
|
*
|
|
156
156
|
* Produces `> EPH` data records for the classic ephemeris types
|
|
157
157
|
* (GPS/QZSS/NavIC LNAV, Galileo INAV, BeiDou D1/D2, GLONASS FDMA,
|
|
158
|
-
* SBAS), `> EPH ... CNAV` records for GPS/QZSS CNAV ephemerides,
|
|
158
|
+
* SBAS), `> EPH ... CNAV` records for GPS/QZSS CNAV ephemerides, BeiDou-3
|
|
159
|
+
* `CNV1`/`CNV2`/`CNV3` records for B-CNAV ephemerides, and
|
|
159
160
|
* `> ION` records for the header's Klobuchar/NeQuick-G coefficients,
|
|
160
161
|
* per the RINEX 4.01 record tables (A9-A18, A21, A26, A32, A33).
|
|
161
162
|
*/
|
|
@@ -165,13 +166,15 @@ interface Nav4Input {
|
|
|
165
166
|
header: NavHeader;
|
|
166
167
|
ephemerides: Ephemeris[];
|
|
167
168
|
cnav?: RinexCnavEphemeris[];
|
|
169
|
+
bdsCnav?: BdsCnavEphemeris[];
|
|
168
170
|
}
|
|
169
171
|
/**
|
|
170
172
|
* Write a RINEX 4.01 mixed navigation file.
|
|
171
173
|
*
|
|
172
174
|
* Emits `> EPH` records for every classic ephemeris (message labels
|
|
173
|
-
* per constellation: LNAV, INAV, D1/D2, FDMA, SBAS)
|
|
174
|
-
* ephemeris (`CNAV`)
|
|
175
|
+
* per constellation: LNAV, INAV, D1/D2, FDMA, SBAS), every GPS/QZSS
|
|
176
|
+
* CNAV ephemeris (`CNAV`) and every BeiDou-3 B-CNAV ephemeris (`CNV1`/
|
|
177
|
+
* `CNV2`/`CNV3`), sorted by PRN, epoch, then label; followed by
|
|
175
178
|
* `> ION` records when the header carries Klobuchar (GPSA/GPSB,
|
|
176
179
|
* QZSA/QZSB, BDSA/BDSB, IRNA/IRNB) or NeQuick-G (GAL) coefficients.
|
|
177
180
|
* ION records need a transmit-time epoch, which RINEX 3-style headers
|
|
@@ -320,4 +323,4 @@ declare function createGzipLineSink(): {
|
|
|
320
323
|
*/
|
|
321
324
|
declare function stationHeaderLines(header: RinexHeader): string[];
|
|
322
325
|
|
|
323
|
-
export { type BiasRecord, type BiasSinex, type CompactEpoch, type CrxField, type DiffState, EMPTY_WARNINGS, Ephemeris, type Nav4Input, NavHeader, NavResult, RinexCnavEphemeris, RinexHeader, type RinexWarning, type RinexWarnings, WarningAccumulator, type WarningSeverity, type WriteCrxOptions, biasMetres, createGzipLineSink, crxDecompress, crxRepair, findSatBias, fmtD, fmtF, hdrLine, modalIntervalS, padL, padR, parseBiasSinex, parseCrxDataLine, stationHeaderLines, writeCrx, writeModernObsBlob, writeRinex2ObsBlob, writeRinex4ObsBlob, writeRinexNav, writeRinexNav4, writeRinexObsBlob };
|
|
326
|
+
export { BdsCnavEphemeris, type BiasRecord, type BiasSinex, type CompactEpoch, type CrxField, type DiffState, EMPTY_WARNINGS, Ephemeris, type Nav4Input, NavHeader, NavResult, RinexCnavEphemeris, RinexHeader, type RinexWarning, type RinexWarnings, WarningAccumulator, type WarningSeverity, type WriteCrxOptions, biasMetres, createGzipLineSink, crxDecompress, crxRepair, findSatBias, fmtD, fmtF, hdrLine, modalIntervalS, padL, padR, parseBiasSinex, parseCrxDataLine, stationHeaderLines, writeCrx, writeModernObsBlob, writeRinex2ObsBlob, writeRinex4ObsBlob, writeRinexNav, writeRinexNav4, writeRinexObsBlob };
|
package/dist/rinex.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { R as RinexHeader } from './parser-JPjjFgeP.js';
|
|
2
2
|
export { E as EpochSummary, P as ParseOptions, a as RinexResult, b as RinexStats, S as SYSTEM_ORDER, c as SatObsCallback, p as parseRinexStream, s as systemCmp, d as systemName } from './parser-JPjjFgeP.js';
|
|
3
|
-
import {
|
|
4
|
-
export { G as GlonassEphemeris, K as KeplerEphemeris, p as parseNavFile } from './nav-
|
|
3
|
+
import { b as NavResult, N as NavHeader, E as Ephemeris, R as RinexCnavEphemeris, B as BdsCnavEphemeris } from './nav-COp0Vmlw.js';
|
|
4
|
+
export { a as BdsCnavMessage, G as GlonassEphemeris, K as KeplerEphemeris, p as parseNavFile } from './nav-COp0Vmlw.js';
|
|
5
5
|
export { C as ClkFile, I as IonexGrid, S as Sp3File, a as Sp3Sample, c as clkBias, p as parseClk, b as parseIonex, d as parseSp3, s as sp3Position } from './clk-DGVBGRzA.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -155,7 +155,8 @@ declare function writeRinexNav(nav: NavResult): string;
|
|
|
155
155
|
*
|
|
156
156
|
* Produces `> EPH` data records for the classic ephemeris types
|
|
157
157
|
* (GPS/QZSS/NavIC LNAV, Galileo INAV, BeiDou D1/D2, GLONASS FDMA,
|
|
158
|
-
* SBAS), `> EPH ... CNAV` records for GPS/QZSS CNAV ephemerides,
|
|
158
|
+
* SBAS), `> EPH ... CNAV` records for GPS/QZSS CNAV ephemerides, BeiDou-3
|
|
159
|
+
* `CNV1`/`CNV2`/`CNV3` records for B-CNAV ephemerides, and
|
|
159
160
|
* `> ION` records for the header's Klobuchar/NeQuick-G coefficients,
|
|
160
161
|
* per the RINEX 4.01 record tables (A9-A18, A21, A26, A32, A33).
|
|
161
162
|
*/
|
|
@@ -165,13 +166,15 @@ interface Nav4Input {
|
|
|
165
166
|
header: NavHeader;
|
|
166
167
|
ephemerides: Ephemeris[];
|
|
167
168
|
cnav?: RinexCnavEphemeris[];
|
|
169
|
+
bdsCnav?: BdsCnavEphemeris[];
|
|
168
170
|
}
|
|
169
171
|
/**
|
|
170
172
|
* Write a RINEX 4.01 mixed navigation file.
|
|
171
173
|
*
|
|
172
174
|
* Emits `> EPH` records for every classic ephemeris (message labels
|
|
173
|
-
* per constellation: LNAV, INAV, D1/D2, FDMA, SBAS)
|
|
174
|
-
* ephemeris (`CNAV`)
|
|
175
|
+
* per constellation: LNAV, INAV, D1/D2, FDMA, SBAS), every GPS/QZSS
|
|
176
|
+
* CNAV ephemeris (`CNAV`) and every BeiDou-3 B-CNAV ephemeris (`CNV1`/
|
|
177
|
+
* `CNV2`/`CNV3`), sorted by PRN, epoch, then label; followed by
|
|
175
178
|
* `> ION` records when the header carries Klobuchar (GPSA/GPSB,
|
|
176
179
|
* QZSA/QZSB, BDSA/BDSB, IRNA/IRNB) or NeQuick-G (GAL) coefficients.
|
|
177
180
|
* ION records need a transmit-time epoch, which RINEX 3-style headers
|
|
@@ -320,4 +323,4 @@ declare function createGzipLineSink(): {
|
|
|
320
323
|
*/
|
|
321
324
|
declare function stationHeaderLines(header: RinexHeader): string[];
|
|
322
325
|
|
|
323
|
-
export { type BiasRecord, type BiasSinex, type CompactEpoch, type CrxField, type DiffState, EMPTY_WARNINGS, Ephemeris, type Nav4Input, NavHeader, NavResult, RinexCnavEphemeris, RinexHeader, type RinexWarning, type RinexWarnings, WarningAccumulator, type WarningSeverity, type WriteCrxOptions, biasMetres, createGzipLineSink, crxDecompress, crxRepair, findSatBias, fmtD, fmtF, hdrLine, modalIntervalS, padL, padR, parseBiasSinex, parseCrxDataLine, stationHeaderLines, writeCrx, writeModernObsBlob, writeRinex2ObsBlob, writeRinex4ObsBlob, writeRinexNav, writeRinexNav4, writeRinexObsBlob };
|
|
326
|
+
export { BdsCnavEphemeris, type BiasRecord, type BiasSinex, type CompactEpoch, type CrxField, type DiffState, EMPTY_WARNINGS, Ephemeris, type Nav4Input, NavHeader, NavResult, RinexCnavEphemeris, RinexHeader, type RinexWarning, type RinexWarnings, WarningAccumulator, type WarningSeverity, type WriteCrxOptions, biasMetres, createGzipLineSink, crxDecompress, crxRepair, findSatBias, fmtD, fmtF, hdrLine, modalIntervalS, padL, padR, parseBiasSinex, parseCrxDataLine, stationHeaderLines, writeCrx, writeModernObsBlob, writeRinex2ObsBlob, writeRinex4ObsBlob, writeRinexNav, writeRinexNav4, writeRinexObsBlob };
|
package/dist/rinex.js
CHANGED
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
writeRinexNav,
|
|
22
22
|
writeRinexNav4,
|
|
23
23
|
writeRinexObsBlob
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-MDO77CCC.js";
|
|
25
25
|
import {
|
|
26
26
|
SYSTEM_ORDER,
|
|
27
27
|
crxDecompress,
|
|
@@ -31,13 +31,14 @@ import {
|
|
|
31
31
|
systemCmp,
|
|
32
32
|
systemName
|
|
33
33
|
} from "./chunk-3U5AX7PY.js";
|
|
34
|
+
import "./chunk-NL2ORX75.js";
|
|
34
35
|
import {
|
|
35
36
|
clkBias,
|
|
36
37
|
parseClk,
|
|
37
38
|
parseSp3,
|
|
38
39
|
sp3Position
|
|
39
40
|
} from "./chunk-GPEP67TG.js";
|
|
40
|
-
import "./chunk-
|
|
41
|
+
import "./chunk-HUXQABJI.js";
|
|
41
42
|
import "./chunk-V2D5KUKH.js";
|
|
42
43
|
import "./chunk-FIEWO4J4.js";
|
|
43
44
|
export {
|
package/dist/rtcm3.cjs
CHANGED
|
@@ -2057,7 +2057,7 @@ function updateStreamStats(stats, frames, rawBytes) {
|
|
|
2057
2057
|
entry.count++;
|
|
2058
2058
|
entry.lastSeen = now;
|
|
2059
2059
|
entry.totalBytes += frame.length + 6;
|
|
2060
|
-
const obsEpoch = decodeObs(frame);
|
|
2060
|
+
const obsEpoch = decodeObs(frame, { compactMsm: true });
|
|
2061
2061
|
if (obsEpoch) {
|
|
2062
2062
|
for (const obs of obsEpoch.observations) {
|
|
2063
2063
|
const signals = [];
|
package/dist/rtcm3.js
CHANGED