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/{chunk-WW3DKCDN.js → chunk-74IVYOQV.js} +187 -6
- package/dist/{chunk-XPQ4BU6W.js → chunk-7GNRNKBR.js} +66 -0
- package/dist/{chunk-B2XWO4RP.js → chunk-BWLLHLLS.js} +158 -0
- package/dist/index.cjs +455 -48
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +11 -3
- package/dist/positioning.cjs +180 -0
- package/dist/positioning.d.cts +56 -1
- package/dist/positioning.d.ts +56 -1
- package/dist/positioning.js +3 -1
- package/dist/rtcm3.cjs +66 -0
- package/dist/rtcm3.js +1 -1
- package/dist/sbf.cjs +206 -23
- package/dist/sbf.d.cts +62 -1
- package/dist/sbf.d.ts +62 -1
- package/dist/sbf.js +7 -1
- package/package.json +1 -1
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-
|
|
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-
|
|
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-
|
|
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,
|
package/dist/positioning.cjs
CHANGED
|
@@ -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,
|
package/dist/positioning.d.cts
CHANGED
|
@@ -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 };
|
package/dist/positioning.d.ts
CHANGED
|
@@ -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 };
|
package/dist/positioning.js
CHANGED
|
@@ -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-
|
|
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