gnss-js 2.4.0 → 2.6.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.d.cts CHANGED
@@ -13,13 +13,13 @@ export { RTCM2_MESSAGE_NAMES, Rtcm2Correction, Rtcm2Decoder, Rtcm2Frame, Rtcm2Ob
13
13
  export { B as BitReader, E as EphemerisInfo, R as Rtcm3DebugHandler, a as Rtcm3Decoder, b as Rtcm3Frame, d as decodeEphemeris, r as readString, c as reportDecodeError, s as setRtcm3DebugHandler } from './ephemeris-BAnBLLB9.cjs';
14
14
  export { IgsSsrIonoLayer, IgsSsrMessage, MessageTypeStats, ObsEpoch, ObsSatObs, ObsSignal, RTCM3_MESSAGE_NAMES, SatCn0, SignalCn0, SsrCodeBias, SsrKind, SsrMessage, SsrPhaseBias, SsrSatCorrection, StationMeta, StreamStats, SystemParams, SystemParamsMessage, createStationMeta, createStreamStats, decodeIgsSsr, decodeLegacyObs, decodeMsmFull, decodeObs, decodeSsr, decodeSystemParams, isSsrMessage, obsEpochToDate, resetGloFreqCache, rtcm3Constellation, setGloFreqNumber, updateStationMeta, updateStreamStats } from './rtcm3.cjs';
15
15
  export { UbxCnavResult, UbxFrame, UbxIonoUtcResult, UbxMeasurement, UbxNavOptions, UbxNavResult, UbxParseResult, UbxPvtResult, UbxRawNavOptions, UbxRawNavResult, UbxRawxEpoch, parseUbxCnav, parseUbxIonoUtc, parseUbxNav, parseUbxPvt, parseUbxRawNav, parseUbxRawx, ubxFrames } from './ubx.cjs';
16
- export { DfmcCensus, DfmcMessageCb, GeoL5Result, SBAS_L5_MT_NAMES, SBAS_L5_PREAMBLE_UW, SbasMessageCb, SbfBdsNavResult, SbfCnavEphemeris, SbfCnavResult, SbfGalEphemeris, SbfGalNavResult, SbfGeoL5Result, SbfGeoNavResult, SbfGloNavResult, SbfGpsNavResult, SbfHasMessage, SbfHasResult, SbfIonoUtcResult, SbfMeasEpoch, SbfMeasurement, SbfNavCounts, SbfNavigation, SbfParseResult, SbfPvt, SbfPvtResult, SbfReceiverSetup, decodeSbfNavigation, feedGeoBlock, feedGeoL5Block, isSbasL1Preamble, isSbasL5Correction, parseSbfBdsNav, parseSbfCnav, parseSbfGalNav, parseSbfGeoL5, parseSbfGeoNav, parseSbfGloNav, parseSbfGpsNav, parseSbfHas, parseSbfIonoUtc, parseSbfMeas, parseSbfPvt, parseSbfReceiverSetup, sbasL5MessageName, sbasL5MessageType, sbfCrc16, scanSbfFrames } from './sbf.cjs';
16
+ export { DfmcCensus, DfmcMessageCb, GeoL5Result, SBAS_L5_MT_NAMES, SBAS_L5_PREAMBLE_UW, SbasMessageCb, SbfBdsNavResult, SbfCnavEphemeris, SbfCnavResult, SbfGalEphemeris, SbfGalNavResult, SbfGeoL5Result, SbfGeoNavResult, SbfGloNavResult, SbfGpsNavResult, SbfHasMessage, SbfHasResult, SbfIonoUtcResult, SbfMeasEpoch, SbfMeasurement, SbfNavCounts, SbfNavicResult, SbfNavigation, SbfParseResult, SbfPvt, SbfPvtResult, SbfReceiverSetup, decodeSbfNavigation, extractSbfNavicSubframe, feedGeoBlock, feedGeoL5Block, feedNavicBlock, isSbasL1Preamble, isSbasL5Correction, parseSbfBdsNav, parseSbfCnav, parseSbfGalNav, parseSbfGeoL5, parseSbfGeoNav, parseSbfGloNav, parseSbfGpsNav, parseSbfHas, parseSbfIonoUtc, parseSbfMeas, parseSbfNavic, parseSbfPvt, parseSbfReceiverSetup, sbasL5MessageName, sbasL5MessageType, sbfCrc16, scanSbfFrames } from './sbf.cjs';
17
17
  export { NovatelEpoch, NovatelMeasurement, NovatelNavResult, NovatelParseResult, NovatelPvtResult, OEM4_HLEN, Oem4Frame, crc32, oem4Frames, parseNovatelNav, parseNovatelPvt, parseNovatelRange } from './novatel.cjs';
18
18
  export { TrimbleEpoch, TrimbleFrame, TrimbleMeasurement, TrimbleNavResult, TrimbleParseResult, parseTrimble, parseTrimbleNav, trimbleFrames } from './trimble.cjs';
19
19
  export { BinexEpoch, BinexMeasurement, BinexParseResult, BinexRecord, binexCrc16, binexCrc32, binexCsum8, binexRecords, decodeBinexEph, getBnxi, parseBinex } from './binex.cjs';
20
20
  export { AllPositionsData, AlmanacPosition, DopValues, EpochSkyData, SatAzEl, SatPoint, SatPosition, VisibilityPass, VisibilityResult, almanacEpochMs, almanacSatPosition, computeAllPositions, computeDop, computeLiveSkyPositions, computeSatPosition, computeVisibility, computeVisibilityFromPositions, dopplerHz, ecefToAzEl, ephInfoToEphemeris, glonassAlmanacEpochMs, glonassAlmanacPosition, glonassPosition, keplerPosition, maskRadForAzimuth, navTimesFromEph, rangeRate, selectEphemeris } from './orbit.cjs';
21
21
  export { Helmert14, REFERENCE_FRAMES, ReferenceFrame, applyHelmert, dateToEpoch, transformFrame } from './frames.cjs';
22
- export { AntennaOffset, AppliedOrbitClock, ArFixedSat, ArOptions, ArResult, ArSat, CorrectionResult, Degradation, DgnssOptions, DgnssSolution, EphemerisSource, FixedPositionResult, IONO_L1_M_PER_TECU, KlobucharCoeffs, LambdaResult, NetworkFcbResult, NetworkFcbSummary, NlArc, NlFcbResult, OrbitClockCorrection, PppAntennaModel, PppArc, PppCorrectionConfig, PppCorrections, PppEngine, PppEphemerisSource, PppEpoch, PppEpochContext, PppEpochResult, PppFixState, PppOptions, PppSatObs, PppSolution, RawObservation, RtkAntennaConfig, RtkAntennaModel, RtkAntennaOffset, RtkEpochMeasurements, RtkFloatEngine, RtkFloatOptions, RtkFloatSolution, RtkMeasurement, RtkObsEpoch, RtkObsInput, RtkPostProcessOptions, RtkPostProcessResult, RtkReceiverAntenna, RtkTrackPoint, SatGeom, SatSample, SbasCorrectionSource, SbasIgp, SbasIonoDelay, SbasProcessor, SbasSatCorrection, Sp3EphemerisSource, SppOptions, SppSolution, TropoMapping, WlArc, WlFcbOptions, WlFcbResult, WlObs, antexFreqOfGroup, applyOrbitClock, buildPppAntenna, buildRtkAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, hasToOrbitClock, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, rcvAntennaRangeM, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength } from './positioning.cjs';
22
+ export { AntennaOffset, AppliedOrbitClock, ArFixedSat, ArOptions, ArResult, ArSat, CorrectionResult, Degradation, DgnssOptions, DgnssSolution, EphemerisSource, FixedPositionResult, IONO_L1_M_PER_TECU, KlobucharCoeffs, LambdaResult, NetworkFcbResult, NetworkFcbSummary, NlArc, NlFcbResult, OrbitClockCorrection, PppAntennaModel, PppArc, PppCorrectionConfig, PppCorrections, PppEngine, PppEphemerisSource, PppEpoch, PppEpochContext, PppEpochResult, PppFixState, PppOptions, PppSatObs, PppSolution, RawObservation, ReceiverBias, ReceiverClockSample, RtkAntennaConfig, RtkAntennaModel, RtkAntennaOffset, RtkEpochMeasurements, RtkFloatEngine, RtkFloatOptions, RtkFloatSolution, RtkMeasurement, RtkObsEpoch, RtkObsInput, RtkPostProcessOptions, RtkPostProcessResult, RtkReceiverAntenna, RtkTrackPoint, SatGeom, SatSample, SbasCorrectionSource, SbasIgp, SbasIonoDelay, SbasProcessor, SbasSatCorrection, Sp3EphemerisSource, SppOptions, SppSolution, TropoMapping, WlArc, WlFcbOptions, WlFcbResult, WlObs, ZeroBaselineEngine, ZeroBaselineOptions, antexFreqOfGroup, applyOrbitClock, buildPppAntenna, buildRtkAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, hasToOrbitClock, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, rcvAntennaRangeM, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength } from './positioning.cjs';
23
23
  export { NtripCaster, NtripConnectionInfo, NtripNetwork, NtripStream, NtripStreamConnection, NtripVersion, Sourcetable, SourcetableEntry, connectToMountpoint, fetchSourcetable, parseSourcetable } from './ntrip.cjs';
24
24
  export { CompleteSatSignal, CompleteSignalStats, CompletenessAccumulator, CompletenessResult, CycleSlipAccumulator, CycleSlipEvent, CycleSlipResult, CycleSlipSignalStats, IonoAccumulator, IonoDcbResult, IonoPoint, IonoRatePoint, IonoRateSeries, IonoResult, IonoSeries, MultipathAccumulator, MultipathPoint, MultipathResult, MultipathSeries, MultipathSignalStat, QualityResult, SatDcbMap, analyzeQuality, applyIonoDcb, computeIonoRate, detrendIonoArcs, parseSinexBiasDcb } from './analysis.cjs';
25
25
  export { AntennaEntry, AntexFile, FrequencyData, frequencyLabel, parseAntex } from './antex.cjs';
package/dist/index.d.ts CHANGED
@@ -13,13 +13,13 @@ export { RTCM2_MESSAGE_NAMES, Rtcm2Correction, Rtcm2Decoder, Rtcm2Frame, Rtcm2Ob
13
13
  export { B as BitReader, E as EphemerisInfo, R as Rtcm3DebugHandler, a as Rtcm3Decoder, b as Rtcm3Frame, d as decodeEphemeris, r as readString, c as reportDecodeError, s as setRtcm3DebugHandler } from './ephemeris-BAnBLLB9.js';
14
14
  export { IgsSsrIonoLayer, IgsSsrMessage, MessageTypeStats, ObsEpoch, ObsSatObs, ObsSignal, RTCM3_MESSAGE_NAMES, SatCn0, SignalCn0, SsrCodeBias, SsrKind, SsrMessage, SsrPhaseBias, SsrSatCorrection, StationMeta, StreamStats, SystemParams, SystemParamsMessage, createStationMeta, createStreamStats, decodeIgsSsr, decodeLegacyObs, decodeMsmFull, decodeObs, decodeSsr, decodeSystemParams, isSsrMessage, obsEpochToDate, resetGloFreqCache, rtcm3Constellation, setGloFreqNumber, updateStationMeta, updateStreamStats } from './rtcm3.js';
15
15
  export { UbxCnavResult, UbxFrame, UbxIonoUtcResult, UbxMeasurement, UbxNavOptions, UbxNavResult, UbxParseResult, UbxPvtResult, UbxRawNavOptions, UbxRawNavResult, UbxRawxEpoch, parseUbxCnav, parseUbxIonoUtc, parseUbxNav, parseUbxPvt, parseUbxRawNav, parseUbxRawx, ubxFrames } from './ubx.js';
16
- export { DfmcCensus, DfmcMessageCb, GeoL5Result, SBAS_L5_MT_NAMES, SBAS_L5_PREAMBLE_UW, SbasMessageCb, SbfBdsNavResult, SbfCnavEphemeris, SbfCnavResult, SbfGalEphemeris, SbfGalNavResult, SbfGeoL5Result, SbfGeoNavResult, SbfGloNavResult, SbfGpsNavResult, SbfHasMessage, SbfHasResult, SbfIonoUtcResult, SbfMeasEpoch, SbfMeasurement, SbfNavCounts, SbfNavigation, SbfParseResult, SbfPvt, SbfPvtResult, SbfReceiverSetup, decodeSbfNavigation, feedGeoBlock, feedGeoL5Block, isSbasL1Preamble, isSbasL5Correction, parseSbfBdsNav, parseSbfCnav, parseSbfGalNav, parseSbfGeoL5, parseSbfGeoNav, parseSbfGloNav, parseSbfGpsNav, parseSbfHas, parseSbfIonoUtc, parseSbfMeas, parseSbfPvt, parseSbfReceiverSetup, sbasL5MessageName, sbasL5MessageType, sbfCrc16, scanSbfFrames } from './sbf.js';
16
+ export { DfmcCensus, DfmcMessageCb, GeoL5Result, SBAS_L5_MT_NAMES, SBAS_L5_PREAMBLE_UW, SbasMessageCb, SbfBdsNavResult, SbfCnavEphemeris, SbfCnavResult, SbfGalEphemeris, SbfGalNavResult, SbfGeoL5Result, SbfGeoNavResult, SbfGloNavResult, SbfGpsNavResult, SbfHasMessage, SbfHasResult, SbfIonoUtcResult, SbfMeasEpoch, SbfMeasurement, SbfNavCounts, SbfNavicResult, SbfNavigation, SbfParseResult, SbfPvt, SbfPvtResult, SbfReceiverSetup, decodeSbfNavigation, extractSbfNavicSubframe, feedGeoBlock, feedGeoL5Block, feedNavicBlock, isSbasL1Preamble, isSbasL5Correction, parseSbfBdsNav, parseSbfCnav, parseSbfGalNav, parseSbfGeoL5, parseSbfGeoNav, parseSbfGloNav, parseSbfGpsNav, parseSbfHas, parseSbfIonoUtc, parseSbfMeas, parseSbfNavic, parseSbfPvt, parseSbfReceiverSetup, sbasL5MessageName, sbasL5MessageType, sbfCrc16, scanSbfFrames } from './sbf.js';
17
17
  export { NovatelEpoch, NovatelMeasurement, NovatelNavResult, NovatelParseResult, NovatelPvtResult, OEM4_HLEN, Oem4Frame, crc32, oem4Frames, parseNovatelNav, parseNovatelPvt, parseNovatelRange } from './novatel.js';
18
18
  export { TrimbleEpoch, TrimbleFrame, TrimbleMeasurement, TrimbleNavResult, TrimbleParseResult, parseTrimble, parseTrimbleNav, trimbleFrames } from './trimble.js';
19
19
  export { BinexEpoch, BinexMeasurement, BinexParseResult, BinexRecord, binexCrc16, binexCrc32, binexCsum8, binexRecords, decodeBinexEph, getBnxi, parseBinex } from './binex.js';
20
20
  export { AllPositionsData, AlmanacPosition, DopValues, EpochSkyData, SatAzEl, SatPoint, SatPosition, VisibilityPass, VisibilityResult, almanacEpochMs, almanacSatPosition, computeAllPositions, computeDop, computeLiveSkyPositions, computeSatPosition, computeVisibility, computeVisibilityFromPositions, dopplerHz, ecefToAzEl, ephInfoToEphemeris, glonassAlmanacEpochMs, glonassAlmanacPosition, glonassPosition, keplerPosition, maskRadForAzimuth, navTimesFromEph, rangeRate, selectEphemeris } from './orbit.js';
21
21
  export { Helmert14, REFERENCE_FRAMES, ReferenceFrame, applyHelmert, dateToEpoch, transformFrame } from './frames.js';
22
- export { AntennaOffset, AppliedOrbitClock, ArFixedSat, ArOptions, ArResult, ArSat, CorrectionResult, Degradation, DgnssOptions, DgnssSolution, EphemerisSource, FixedPositionResult, IONO_L1_M_PER_TECU, KlobucharCoeffs, LambdaResult, NetworkFcbResult, NetworkFcbSummary, NlArc, NlFcbResult, OrbitClockCorrection, PppAntennaModel, PppArc, PppCorrectionConfig, PppCorrections, PppEngine, PppEphemerisSource, PppEpoch, PppEpochContext, PppEpochResult, PppFixState, PppOptions, PppSatObs, PppSolution, RawObservation, RtkAntennaConfig, RtkAntennaModel, RtkAntennaOffset, RtkEpochMeasurements, RtkFloatEngine, RtkFloatOptions, RtkFloatSolution, RtkMeasurement, RtkObsEpoch, RtkObsInput, RtkPostProcessOptions, RtkPostProcessResult, RtkReceiverAntenna, RtkTrackPoint, SatGeom, SatSample, SbasCorrectionSource, SbasIgp, SbasIonoDelay, SbasProcessor, SbasSatCorrection, Sp3EphemerisSource, SppOptions, SppSolution, TropoMapping, WlArc, WlFcbOptions, WlFcbResult, WlObs, antexFreqOfGroup, applyOrbitClock, buildPppAntenna, buildRtkAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, hasToOrbitClock, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, rcvAntennaRangeM, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength } from './positioning.js';
22
+ export { AntennaOffset, AppliedOrbitClock, ArFixedSat, ArOptions, ArResult, ArSat, CorrectionResult, Degradation, DgnssOptions, DgnssSolution, EphemerisSource, FixedPositionResult, IONO_L1_M_PER_TECU, KlobucharCoeffs, LambdaResult, NetworkFcbResult, NetworkFcbSummary, NlArc, NlFcbResult, OrbitClockCorrection, PppAntennaModel, PppArc, PppCorrectionConfig, PppCorrections, PppEngine, PppEphemerisSource, PppEpoch, PppEpochContext, PppEpochResult, PppFixState, PppOptions, PppSatObs, PppSolution, RawObservation, ReceiverBias, ReceiverClockSample, RtkAntennaConfig, RtkAntennaModel, RtkAntennaOffset, RtkEpochMeasurements, RtkFloatEngine, RtkFloatOptions, RtkFloatSolution, RtkMeasurement, RtkObsEpoch, RtkObsInput, RtkPostProcessOptions, RtkPostProcessResult, RtkReceiverAntenna, RtkTrackPoint, SatGeom, SatSample, SbasCorrectionSource, SbasIgp, SbasIonoDelay, SbasProcessor, SbasSatCorrection, Sp3EphemerisSource, SppOptions, SppSolution, TropoMapping, WlArc, WlFcbOptions, WlFcbResult, WlObs, ZeroBaselineEngine, ZeroBaselineOptions, antexFreqOfGroup, applyOrbitClock, buildPppAntenna, buildRtkAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, hasToOrbitClock, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, rcvAntennaRangeM, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength } from './positioning.js';
23
23
  export { NtripCaster, NtripConnectionInfo, NtripNetwork, NtripStream, NtripStreamConnection, NtripVersion, Sourcetable, SourcetableEntry, connectToMountpoint, fetchSourcetable, parseSourcetable } from './ntrip.js';
24
24
  export { CompleteSatSignal, CompleteSignalStats, CompletenessAccumulator, CompletenessResult, CycleSlipAccumulator, CycleSlipEvent, CycleSlipResult, CycleSlipSignalStats, IonoAccumulator, IonoDcbResult, IonoPoint, IonoRatePoint, IonoRateSeries, IonoResult, IonoSeries, MultipathAccumulator, MultipathPoint, MultipathResult, MultipathSeries, MultipathSignalStat, QualityResult, SatDcbMap, analyzeQuality, applyIonoDcb, computeIonoRate, detrendIonoArcs, parseSinexBiasDcb } from './analysis.js';
25
25
  export { AntennaEntry, AntexFile, FrequencyData, frequencyLabel, parseAntex } from './antex.js';
package/dist/index.js CHANGED
@@ -77,7 +77,7 @@ import {
77
77
  setRtcm3DebugHandler,
78
78
  updateStationMeta,
79
79
  updateStreamStats
80
- } from "./chunk-XPQ4BU6W.js";
80
+ } from "./chunk-7GNRNKBR.js";
81
81
  import {
82
82
  parseUbxCnav,
83
83
  parseUbxIonoUtc,
@@ -92,8 +92,10 @@ import {
92
92
  SBAS_L5_PREAMBLE_UW,
93
93
  crc16,
94
94
  decodeSbfNavigation,
95
+ extractSbfNavicSubframe,
95
96
  feedGeoBlock,
96
97
  feedGeoL5Block,
98
+ feedNavicBlock,
97
99
  isSbasL1Preamble,
98
100
  isSbasL5Correction,
99
101
  parseSbfAlmanac,
@@ -108,12 +110,13 @@ import {
108
110
  parseSbfIonoUtc,
109
111
  parseSbfMeas,
110
112
  parseSbfNav,
113
+ parseSbfNavic,
111
114
  parseSbfPvt,
112
115
  parseSbfReceiverSetup,
113
116
  sbasL5MessageName,
114
117
  sbasL5MessageType,
115
118
  scanSbfFrames
116
- } from "./chunk-WW3DKCDN.js";
119
+ } from "./chunk-74IVYOQV.js";
117
120
  import "./chunk-3KSDL3CO.js";
118
121
  import {
119
122
  OEM4_HLEN,
@@ -174,6 +177,7 @@ import {
174
177
  RtkFloatEngine,
175
178
  SbasProcessor,
176
179
  Sp3EphemerisSource,
180
+ ZeroBaselineEngine,
177
181
  antexFreqOfGroup,
178
182
  applyOrbitClock,
179
183
  buildPppAntenna,
@@ -209,7 +213,7 @@ import {
209
213
  sunEcef,
210
214
  toRtkEpoch,
211
215
  wlWavelength
212
- } from "./chunk-B2XWO4RP.js";
216
+ } from "./chunk-BWLLHLLS.js";
213
217
  import "./chunk-WQX354KD.js";
214
218
  import {
215
219
  almanacEpochMs,
@@ -486,6 +490,7 @@ export {
486
490
  WGS84_SEMI_MAJOR_AXIS,
487
491
  WGS84_SEMI_MINOR_AXIS,
488
492
  WarningAccumulator,
493
+ ZeroBaselineEngine,
489
494
  almanacEpochMs,
490
495
  almanacSatPosition,
491
496
  analyzeQuality,
@@ -542,9 +547,11 @@ export {
542
547
  estimateNetworkFcbs,
543
548
  estimateWidelaneFcb,
544
549
  euclidean3D,
550
+ extractSbfNavicSubframe,
545
551
  extractWidelaneArcs,
546
552
  feedGeoBlock,
547
553
  feedGeoL5Block,
554
+ feedNavicBlock,
548
555
  fetchSourcetable,
549
556
  findSatBias,
550
557
  fixPppPosition,
@@ -664,6 +671,7 @@ export {
664
671
  parseSbfIonoUtc,
665
672
  parseSbfMeas,
666
673
  parseSbfNav,
674
+ parseSbfNavic,
667
675
  parseSbfPvt,
668
676
  parseSbfReceiverSetup,
669
677
  parseSinexBiasDcb,
@@ -25,6 +25,7 @@ __export(positioning_exports, {
25
25
  RtkFloatEngine: () => RtkFloatEngine,
26
26
  SbasProcessor: () => SbasProcessor,
27
27
  Sp3EphemerisSource: () => Sp3EphemerisSource,
28
+ ZeroBaselineEngine: () => ZeroBaselineEngine,
28
29
  antexFreqOfGroup: () => antexFreqOfGroup,
29
30
  applyOrbitClock: () => applyOrbitClock,
30
31
  buildPppAntenna: () => buildPppAntenna,
@@ -124,6 +125,28 @@ var START_NTP_TIME = /* @__PURE__ */ new Date("1900-01-01T00:00:00Z");
124
125
  // src/constants/gnss.ts
125
126
  var C_LIGHT = 299792458;
126
127
  var OMEGA_E = 72921151467e-15;
128
+ var FREQ = {
129
+ G: { "1": 157542e4, "2": 12276e5, "5": 117645e4 },
130
+ // R bands 4/6 are the CDMA L1OC/L2OC center frequencies
131
+ R: { "3": 1202025e3, "4": 1600995e3, "6": 124806e4 },
132
+ E: {
133
+ "1": 157542e4,
134
+ "5": 117645e4,
135
+ "6": 127875e4,
136
+ "7": 120714e4,
137
+ "8": 1191795e3
138
+ },
139
+ C: {
140
+ "1": 157542e4,
141
+ "2": 1561098e3,
142
+ "5": 117645e4,
143
+ "6": 126852e4,
144
+ "7": 120714e4
145
+ },
146
+ J: { "1": 157542e4, "2": 12276e5, "5": 117645e4, "6": 127875e4 },
147
+ I: { "5": 117645e4, "9": 2492028e3 },
148
+ S: { "1": 157542e4, "5": 117645e4 }
149
+ };
127
150
 
128
151
  // src/time/gnss.ts
129
152
  function getTaiDate(date) {
@@ -1923,6 +1946,162 @@ function postProcessRtk(base, rover, ephemerides, baseEcef, opts = {}) {
1923
1946
  return { track, solved, unmatched, fixRate: solved ? fixed / solved : 0 };
1924
1947
  }
1925
1948
 
1949
+ // src/positioning/zero-baseline.ts
1950
+ function carrierFreqHz2(sys, band, gloChannel) {
1951
+ if (sys === "R") {
1952
+ if (band === "1") return 1602e6 + (gloChannel ?? 0) * 562500;
1953
+ if (band === "2") return 1246e6 + (gloChannel ?? 0) * 437500;
1954
+ return FREQ.R?.[band] ?? 0;
1955
+ }
1956
+ return FREQ[sys]?.[band] ?? 0;
1957
+ }
1958
+ function median(a) {
1959
+ if (a.length === 0) return 0;
1960
+ const s = [...a].sort((x, y) => x - y);
1961
+ const m = s.length >> 1;
1962
+ return s.length % 2 ? s[m] : (s[m - 1] + s[m]) / 2;
1963
+ }
1964
+ var ZeroBaselineEngine = class {
1965
+ ref;
1966
+ refSys;
1967
+ slip;
1968
+ /** Per (receiver|prn|code) continuous phase-SD arc. */
1969
+ arcs = /* @__PURE__ */ new Map();
1970
+ /** Per receiver: integrated phase-smoothed clock (m). */
1971
+ phaseClock = /* @__PURE__ */ new Map();
1972
+ /** Per (receiver|system): accumulated ISB (m) + count. */
1973
+ isb = /* @__PURE__ */ new Map();
1974
+ constructor(opts) {
1975
+ this.ref = opts.reference;
1976
+ this.refSys = opts.referenceSystem ?? "G";
1977
+ this.slip = opts.slipThreshM ?? 0.05;
1978
+ }
1979
+ reset() {
1980
+ this.arcs.clear();
1981
+ this.phaseClock.clear();
1982
+ this.isb.clear();
1983
+ }
1984
+ /** ISB/IFB estimates accumulated so far, per receiver × system. */
1985
+ biases() {
1986
+ const out = [];
1987
+ for (const [key, { sum, n }] of this.isb) {
1988
+ const [receiver, system] = key.split("|");
1989
+ out.push({ receiver, system, biasM: sum / n, n });
1990
+ }
1991
+ return out;
1992
+ }
1993
+ /**
1994
+ * Ingest one time-aligned instant: observations per receiver id. Returns one
1995
+ * {@link ReceiverClockSample} per non-reference receiver present this epoch.
1996
+ */
1997
+ process(epoch) {
1998
+ const refObs = epoch.obs[this.ref];
1999
+ if (!refObs) return [];
2000
+ const refByKey = /* @__PURE__ */ new Map();
2001
+ for (const o of refObs)
2002
+ if (o.pr != null && Number.isFinite(o.pr))
2003
+ refByKey.set(`${o.prn}|${o.code}`, o);
2004
+ const out = [];
2005
+ for (const rx of Object.keys(epoch.obs)) {
2006
+ if (rx === this.ref) continue;
2007
+ out.push(
2008
+ this.processReceiver(rx, epoch.obs[rx], refByKey, epoch.timeMs)
2009
+ );
2010
+ }
2011
+ return out;
2012
+ }
2013
+ processReceiver(rx, obs, refByKey, t) {
2014
+ const codeBySys = /* @__PURE__ */ new Map();
2015
+ const phase = [];
2016
+ for (const o of obs) {
2017
+ if (o.pr == null || !Number.isFinite(o.pr)) continue;
2018
+ const r = refByKey.get(`${o.prn}|${o.code}`);
2019
+ if (!r || r.pr == null) continue;
2020
+ const sys = o.prn[0];
2021
+ (codeBySys.get(sys) ?? codeBySys.set(sys, []).get(sys)).push(
2022
+ o.pr - r.pr
2023
+ );
2024
+ if (o.cp != null && r.cp != null) {
2025
+ const f = carrierFreqHz2(
2026
+ sys,
2027
+ o.code[0],
2028
+ o.gloChannel ?? r.gloChannel ?? null
2029
+ );
2030
+ if (f > 0)
2031
+ phase.push({
2032
+ key: `${rx}|${o.prn}|${o.code}`,
2033
+ sdM: (o.cp - r.cp) * (C_LIGHT / f),
2034
+ lock: o.lockTimeS
2035
+ });
2036
+ }
2037
+ }
2038
+ if (codeBySys.size === 0)
2039
+ return {
2040
+ t,
2041
+ receiver: rx,
2042
+ clockOffsetM: null,
2043
+ clockOffsetPhaseM: this.phaseClock.get(rx) ?? null,
2044
+ used: 0,
2045
+ rejected: 0,
2046
+ residualRmsM: 0
2047
+ };
2048
+ const sysMedian = /* @__PURE__ */ new Map();
2049
+ for (const [sys, v] of codeBySys) sysMedian.set(sys, median(v));
2050
+ const allSd = [];
2051
+ for (const v of codeBySys.values()) allSd.push(...v);
2052
+ const clk = sysMedian.get(this.refSys) ?? median(allSd);
2053
+ for (const [sys, med] of sysMedian) {
2054
+ if (sys === this.refSys) continue;
2055
+ const cur = this.isb.get(`${rx}|${sys}`) ?? { sum: 0, n: 0 };
2056
+ cur.sum += med - clk;
2057
+ cur.n += 1;
2058
+ this.isb.set(`${rx}|${sys}`, cur);
2059
+ }
2060
+ let ss = 0, used = 0, rejected = 0;
2061
+ for (const [sys, v] of codeBySys) {
2062
+ const isb = sys === this.refSys ? 0 : sysMedian.get(sys) - clk;
2063
+ for (const sd of v) {
2064
+ const res = sd - clk - isb;
2065
+ if (Math.abs(res) > 5) {
2066
+ rejected++;
2067
+ continue;
2068
+ }
2069
+ ss += res * res;
2070
+ used++;
2071
+ }
2072
+ }
2073
+ const residualRmsM = used ? Math.sqrt(ss / used) : 0;
2074
+ const deltas = [];
2075
+ for (const p of phase) {
2076
+ const arc = this.arcs.get(p.key);
2077
+ this.arcs.set(p.key, { lastPhaseSdM: p.sdM, lastLock: p.lock });
2078
+ if (!arc) continue;
2079
+ const lockReset = p.lock != null && arc.lastLock != null && p.lock < arc.lastLock;
2080
+ if (lockReset) continue;
2081
+ deltas.push(p.sdM - arc.lastPhaseSdM);
2082
+ }
2083
+ let phaseClockM = this.phaseClock.get(rx) ?? null;
2084
+ if (phaseClockM == null) {
2085
+ phaseClockM = clk;
2086
+ } else if (deltas.length) {
2087
+ const md = median(deltas);
2088
+ const good = deltas.filter((d) => Math.abs(d - md) < this.slip);
2089
+ const step = good.length ? good.reduce((a, b) => a + b, 0) / good.length : md;
2090
+ phaseClockM += step;
2091
+ }
2092
+ this.phaseClock.set(rx, phaseClockM);
2093
+ return {
2094
+ t,
2095
+ receiver: rx,
2096
+ clockOffsetM: clk,
2097
+ clockOffsetPhaseM: phaseClockM,
2098
+ used,
2099
+ rejected,
2100
+ residualRmsM
2101
+ };
2102
+ }
2103
+ };
2104
+
1926
2105
  // src/navbits/index.ts
1927
2106
  var GPS_EPOCH_MS2 = Date.UTC(1980, 0, 6);
1928
2107
  var SEC_PER_WEEK = 7 * 86400;
@@ -4420,6 +4599,7 @@ function solveSpp(pseudoranges, ephemerides, timeMs, opts = {}) {
4420
4599
  RtkFloatEngine,
4421
4600
  SbasProcessor,
4422
4601
  Sp3EphemerisSource,
4602
+ ZeroBaselineEngine,
4423
4603
  antexFreqOfGroup,
4424
4604
  applyOrbitClock,
4425
4605
  buildPppAntenna,
@@ -558,6 +558,61 @@ interface RtkPostProcessResult {
558
558
  */
559
559
  declare function postProcessRtk(base: RtkObsInput, rover: RtkObsInput, ephemerides: EphemerisSource, baseEcef: readonly [number, number, number], opts?: RtkPostProcessOptions): RtkPostProcessResult;
560
560
 
561
+ interface ZeroBaselineOptions {
562
+ /** Reference receiver id (every other receiver is differenced against it). */
563
+ reference: string;
564
+ /** ISB datum system letter (biases are reported relative to it). Default 'G'. */
565
+ referenceSystem?: string;
566
+ /** Phase-SD inter-epoch jump gate (m) for cycle-slip rejection. Default 0.05. */
567
+ slipThreshM?: number;
568
+ }
569
+ /** One receiver's relative-clock estimate at one epoch. */
570
+ interface ReceiverClockSample {
571
+ t: number;
572
+ receiver: string;
573
+ /** Code relative clock (m); divide by c for seconds. Null with no data. */
574
+ clockOffsetM: number | null;
575
+ /** Phase-smoothed relative clock (m) — precise; anchored to the code clock. */
576
+ clockOffsetPhaseM: number | null;
577
+ /** Signals used / rejected in the code solution this epoch. */
578
+ used: number;
579
+ rejected: number;
580
+ /** RMS of the code-SD residuals about the clock+ISB fit (m). */
581
+ residualRmsM: number;
582
+ }
583
+ /** A receiver's inter-system bias relative to the datum system (m). */
584
+ interface ReceiverBias {
585
+ receiver: string;
586
+ system: string;
587
+ biasM: number;
588
+ /** Epochs the estimate averages over. */
589
+ n: number;
590
+ }
591
+ declare class ZeroBaselineEngine {
592
+ private readonly ref;
593
+ private readonly refSys;
594
+ private readonly slip;
595
+ /** Per (receiver|prn|code) continuous phase-SD arc. */
596
+ private readonly arcs;
597
+ /** Per receiver: integrated phase-smoothed clock (m). */
598
+ private readonly phaseClock;
599
+ /** Per (receiver|system): accumulated ISB (m) + count. */
600
+ private readonly isb;
601
+ constructor(opts: ZeroBaselineOptions);
602
+ reset(): void;
603
+ /** ISB/IFB estimates accumulated so far, per receiver × system. */
604
+ biases(): ReceiverBias[];
605
+ /**
606
+ * Ingest one time-aligned instant: observations per receiver id. Returns one
607
+ * {@link ReceiverClockSample} per non-reference receiver present this epoch.
608
+ */
609
+ process(epoch: {
610
+ timeMs: number;
611
+ obs: Record<string, readonly RawObservation[]>;
612
+ }): ReceiverClockSample[];
613
+ private processReceiver;
614
+ }
615
+
561
616
  /**
562
617
  * Integer ambiguity resolution: LAMBDA decorrelation + MLAMBDA
563
618
  * integer least-squares search.
@@ -1659,4 +1714,4 @@ declare function sbasProtectionLevels(sats: readonly {
1659
1714
  */
1660
1715
  declare function solveSpp(pseudoranges: Map<string, number>, ephemerides: Map<string, Ephemeris>, timeMs: number, opts?: SppOptions): SppSolution | null;
1661
1716
 
1662
- export { type AntennaOffset, type AppliedOrbitClock, type ArFixedSat, type ArOptions, type ArResult, type ArSat, type CorrectionResult, type Degradation, type DgnssOptions, type DgnssSolution, type EphemerisSource, type FixedPositionResult, IONO_L1_M_PER_TECU, type KlobucharCoeffs, type LambdaResult, type NetworkFcbResult, type NetworkFcbSummary, type NlArc, type NlFcbResult, type OrbitClockCorrection, type PppAntennaModel, type PppArc, type PppCorrectionConfig, type PppCorrections, PppEngine, type PppEphemerisSource, type PppEpoch, type PppEpochContext, type PppEpochResult, type PppFixState, type PppOptions, type PppSatObs, type PppSolution, type RawObservation, type RtkAntennaConfig, type RtkAntennaModel, type RtkAntennaOffset, type RtkEpochMeasurements, RtkFloatEngine, type RtkFloatOptions, type RtkFloatSolution, type RtkMeasurement, type RtkObsEpoch, type RtkObsInput, type RtkPostProcessOptions, type RtkPostProcessResult, type RtkReceiverAntenna, type RtkTrackPoint, type SatGeom, type SatSample, type SbasCorrectionSource, type SbasIgp, type SbasIonoDelay, SbasProcessor, type SbasSatCorrection, Sp3EphemerisSource, type SppOptions, type SppSolution, type TropoMapping, type WlArc, type WlFcbOptions, type WlFcbResult, type WlObs, antexFreqOfGroup, applyOrbitClock, buildPppAntenna, buildRtkAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, hasToOrbitClock, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, rcvAntennaRangeM, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength };
1717
+ export { type AntennaOffset, type AppliedOrbitClock, type ArFixedSat, type ArOptions, type ArResult, type ArSat, type CorrectionResult, type Degradation, type DgnssOptions, type DgnssSolution, type EphemerisSource, type FixedPositionResult, IONO_L1_M_PER_TECU, type KlobucharCoeffs, type LambdaResult, type NetworkFcbResult, type NetworkFcbSummary, type NlArc, type NlFcbResult, type OrbitClockCorrection, type PppAntennaModel, type PppArc, type PppCorrectionConfig, type PppCorrections, PppEngine, type PppEphemerisSource, type PppEpoch, type PppEpochContext, type PppEpochResult, type PppFixState, type PppOptions, type PppSatObs, type PppSolution, type RawObservation, type ReceiverBias, type ReceiverClockSample, type RtkAntennaConfig, type RtkAntennaModel, type RtkAntennaOffset, type RtkEpochMeasurements, RtkFloatEngine, type RtkFloatOptions, type RtkFloatSolution, type RtkMeasurement, type RtkObsEpoch, type RtkObsInput, type RtkPostProcessOptions, type RtkPostProcessResult, type RtkReceiverAntenna, type RtkTrackPoint, type SatGeom, type SatSample, type SbasCorrectionSource, type SbasIgp, type SbasIonoDelay, SbasProcessor, type SbasSatCorrection, Sp3EphemerisSource, type SppOptions, type SppSolution, type TropoMapping, type WlArc, type WlFcbOptions, type WlFcbResult, type WlObs, ZeroBaselineEngine, type ZeroBaselineOptions, antexFreqOfGroup, applyOrbitClock, buildPppAntenna, buildRtkAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, hasToOrbitClock, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, rcvAntennaRangeM, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength };
@@ -558,6 +558,61 @@ interface RtkPostProcessResult {
558
558
  */
559
559
  declare function postProcessRtk(base: RtkObsInput, rover: RtkObsInput, ephemerides: EphemerisSource, baseEcef: readonly [number, number, number], opts?: RtkPostProcessOptions): RtkPostProcessResult;
560
560
 
561
+ interface ZeroBaselineOptions {
562
+ /** Reference receiver id (every other receiver is differenced against it). */
563
+ reference: string;
564
+ /** ISB datum system letter (biases are reported relative to it). Default 'G'. */
565
+ referenceSystem?: string;
566
+ /** Phase-SD inter-epoch jump gate (m) for cycle-slip rejection. Default 0.05. */
567
+ slipThreshM?: number;
568
+ }
569
+ /** One receiver's relative-clock estimate at one epoch. */
570
+ interface ReceiverClockSample {
571
+ t: number;
572
+ receiver: string;
573
+ /** Code relative clock (m); divide by c for seconds. Null with no data. */
574
+ clockOffsetM: number | null;
575
+ /** Phase-smoothed relative clock (m) — precise; anchored to the code clock. */
576
+ clockOffsetPhaseM: number | null;
577
+ /** Signals used / rejected in the code solution this epoch. */
578
+ used: number;
579
+ rejected: number;
580
+ /** RMS of the code-SD residuals about the clock+ISB fit (m). */
581
+ residualRmsM: number;
582
+ }
583
+ /** A receiver's inter-system bias relative to the datum system (m). */
584
+ interface ReceiverBias {
585
+ receiver: string;
586
+ system: string;
587
+ biasM: number;
588
+ /** Epochs the estimate averages over. */
589
+ n: number;
590
+ }
591
+ declare class ZeroBaselineEngine {
592
+ private readonly ref;
593
+ private readonly refSys;
594
+ private readonly slip;
595
+ /** Per (receiver|prn|code) continuous phase-SD arc. */
596
+ private readonly arcs;
597
+ /** Per receiver: integrated phase-smoothed clock (m). */
598
+ private readonly phaseClock;
599
+ /** Per (receiver|system): accumulated ISB (m) + count. */
600
+ private readonly isb;
601
+ constructor(opts: ZeroBaselineOptions);
602
+ reset(): void;
603
+ /** ISB/IFB estimates accumulated so far, per receiver × system. */
604
+ biases(): ReceiverBias[];
605
+ /**
606
+ * Ingest one time-aligned instant: observations per receiver id. Returns one
607
+ * {@link ReceiverClockSample} per non-reference receiver present this epoch.
608
+ */
609
+ process(epoch: {
610
+ timeMs: number;
611
+ obs: Record<string, readonly RawObservation[]>;
612
+ }): ReceiverClockSample[];
613
+ private processReceiver;
614
+ }
615
+
561
616
  /**
562
617
  * Integer ambiguity resolution: LAMBDA decorrelation + MLAMBDA
563
618
  * integer least-squares search.
@@ -1659,4 +1714,4 @@ declare function sbasProtectionLevels(sats: readonly {
1659
1714
  */
1660
1715
  declare function solveSpp(pseudoranges: Map<string, number>, ephemerides: Map<string, Ephemeris>, timeMs: number, opts?: SppOptions): SppSolution | null;
1661
1716
 
1662
- export { type AntennaOffset, type AppliedOrbitClock, type ArFixedSat, type ArOptions, type ArResult, type ArSat, type CorrectionResult, type Degradation, type DgnssOptions, type DgnssSolution, type EphemerisSource, type FixedPositionResult, IONO_L1_M_PER_TECU, type KlobucharCoeffs, type LambdaResult, type NetworkFcbResult, type NetworkFcbSummary, type NlArc, type NlFcbResult, type OrbitClockCorrection, type PppAntennaModel, type PppArc, type PppCorrectionConfig, type PppCorrections, PppEngine, type PppEphemerisSource, type PppEpoch, type PppEpochContext, type PppEpochResult, type PppFixState, type PppOptions, type PppSatObs, type PppSolution, type RawObservation, type RtkAntennaConfig, type RtkAntennaModel, type RtkAntennaOffset, type RtkEpochMeasurements, RtkFloatEngine, type RtkFloatOptions, type RtkFloatSolution, type RtkMeasurement, type RtkObsEpoch, type RtkObsInput, type RtkPostProcessOptions, type RtkPostProcessResult, type RtkReceiverAntenna, type RtkTrackPoint, type SatGeom, type SatSample, type SbasCorrectionSource, type SbasIgp, type SbasIonoDelay, SbasProcessor, type SbasSatCorrection, Sp3EphemerisSource, type SppOptions, type SppSolution, type TropoMapping, type WlArc, type WlFcbOptions, type WlFcbResult, type WlObs, antexFreqOfGroup, applyOrbitClock, buildPppAntenna, buildRtkAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, hasToOrbitClock, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, rcvAntennaRangeM, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength };
1717
+ export { type AntennaOffset, type AppliedOrbitClock, type ArFixedSat, type ArOptions, type ArResult, type ArSat, type CorrectionResult, type Degradation, type DgnssOptions, type DgnssSolution, type EphemerisSource, type FixedPositionResult, IONO_L1_M_PER_TECU, type KlobucharCoeffs, type LambdaResult, type NetworkFcbResult, type NetworkFcbSummary, type NlArc, type NlFcbResult, type OrbitClockCorrection, type PppAntennaModel, type PppArc, type PppCorrectionConfig, type PppCorrections, PppEngine, type PppEphemerisSource, type PppEpoch, type PppEpochContext, type PppEpochResult, type PppFixState, type PppOptions, type PppSatObs, type PppSolution, type RawObservation, type ReceiverBias, type ReceiverClockSample, type RtkAntennaConfig, type RtkAntennaModel, type RtkAntennaOffset, type RtkEpochMeasurements, RtkFloatEngine, type RtkFloatOptions, type RtkFloatSolution, type RtkMeasurement, type RtkObsEpoch, type RtkObsInput, type RtkPostProcessOptions, type RtkPostProcessResult, type RtkReceiverAntenna, type RtkTrackPoint, type SatGeom, type SatSample, type SbasCorrectionSource, type SbasIgp, type SbasIonoDelay, SbasProcessor, type SbasSatCorrection, Sp3EphemerisSource, type SppOptions, type SppSolution, type TropoMapping, type WlArc, type WlFcbOptions, type WlFcbResult, type WlObs, ZeroBaselineEngine, type ZeroBaselineOptions, antexFreqOfGroup, applyOrbitClock, buildPppAntenna, buildRtkAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, hasToOrbitClock, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, rcvAntennaRangeM, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength };
@@ -4,6 +4,7 @@ import {
4
4
  RtkFloatEngine,
5
5
  SbasProcessor,
6
6
  Sp3EphemerisSource,
7
+ ZeroBaselineEngine,
7
8
  antexFreqOfGroup,
8
9
  applyOrbitClock,
9
10
  buildPppAntenna,
@@ -39,7 +40,7 @@ import {
39
40
  sunEcef,
40
41
  toRtkEpoch,
41
42
  wlWavelength
42
- } from "./chunk-B2XWO4RP.js";
43
+ } from "./chunk-BWLLHLLS.js";
43
44
  import "./chunk-WQX354KD.js";
44
45
  import "./chunk-JYWYQ7DW.js";
45
46
  import "./chunk-HVXYFUCB.js";
@@ -57,6 +58,7 @@ export {
57
58
  RtkFloatEngine,
58
59
  SbasProcessor,
59
60
  Sp3EphemerisSource,
61
+ ZeroBaselineEngine,
60
62
  antexFreqOfGroup,
61
63
  applyOrbitClock,
62
64
  buildPppAntenna,
package/dist/rtcm3.cjs CHANGED
@@ -564,6 +564,70 @@ function decodeQzssEphemeris(payload) {
564
564
  fitInterval
565
565
  };
566
566
  }
567
+ function decodeNavicEphemeris(payload) {
568
+ if (payload.length < 60) return null;
569
+ const r = new BitReader(payload);
570
+ r.skip(12);
571
+ const svId = r.readU(6);
572
+ const week = r.readU(10);
573
+ const af0 = r.readS(22) * 2 ** -31;
574
+ const af1 = r.readS(16) * 2 ** -43;
575
+ const af2 = r.readS(8) * 2 ** -55;
576
+ const ura = r.readU(4);
577
+ const toc = r.readU(16) * 16;
578
+ const tgd = r.readS(8) * 2 ** -31;
579
+ const deltaN = r.readS(22) * 2 ** -41 * PI;
580
+ const iode = r.readU(8);
581
+ r.skip(10);
582
+ const l5Health = r.readU(1);
583
+ const sHealth = r.readU(1);
584
+ const cuc = r.readS(15) * 2 ** -28;
585
+ const cus = r.readS(15) * 2 ** -28;
586
+ const cic = r.readS(15) * 2 ** -28;
587
+ const cis = r.readS(15) * 2 ** -28;
588
+ const crc = r.readS(15) * 2 ** -4;
589
+ const crs = r.readS(15) * 2 ** -4;
590
+ const idot = r.readS(14) * 2 ** -43 * PI;
591
+ const m0 = r.readS(32) * 2 ** -31 * PI;
592
+ const toe = r.readU(16) * 16;
593
+ const e = r.readU(32) * 2 ** -33;
594
+ const sqrtA = r.readU(32) * 2 ** -19;
595
+ const omega0 = r.readS(32) * 2 ** -31 * PI;
596
+ const argPerigee = r.readS(32) * 2 ** -31 * PI;
597
+ const omegaDot = r.readS(22) * 2 ** -41 * PI;
598
+ const i0 = r.readS(32) * 2 ** -31 * PI;
599
+ return {
600
+ prn: `I${String(svId).padStart(2, "0")}`,
601
+ constellation: "NavIC",
602
+ health: l5Health << 1 | sHealth,
603
+ lastReceived: Date.now(),
604
+ messageType: 1041,
605
+ week,
606
+ ura,
607
+ toc,
608
+ toe,
609
+ sqrtA,
610
+ eccentricity: e,
611
+ inclination: i0,
612
+ omega0,
613
+ omegaDot,
614
+ argPerigee,
615
+ meanAnomaly: m0,
616
+ deltaN,
617
+ idot,
618
+ crs,
619
+ crc,
620
+ cuc,
621
+ cus,
622
+ cic,
623
+ cis,
624
+ af0,
625
+ af1,
626
+ af2,
627
+ iode,
628
+ tgd
629
+ };
630
+ }
567
631
  function decodeEphemeris(frame) {
568
632
  try {
569
633
  switch (frame.messageType) {
@@ -571,6 +635,8 @@ function decodeEphemeris(frame) {
571
635
  return decodeGpsEphemeris(frame.payload);
572
636
  case 1020:
573
637
  return decodeGlonassEphemeris(frame.payload);
638
+ case 1041:
639
+ return decodeNavicEphemeris(frame.payload);
574
640
  case 1042:
575
641
  return decodeBdsEphemeris(frame.payload);
576
642
  case 1043:
package/dist/rtcm3.js CHANGED
@@ -21,7 +21,7 @@ import {
21
21
  setRtcm3DebugHandler,
22
22
  updateStationMeta,
23
23
  updateStreamStats
24
- } from "./chunk-XPQ4BU6W.js";
24
+ } from "./chunk-7GNRNKBR.js";
25
25
  import "./chunk-HVXYFUCB.js";
26
26
  import "./chunk-LEEU5OIO.js";
27
27
  import "./chunk-FIEWO4J4.js";