gnss-js 1.61.0 → 1.62.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.
@@ -1251,6 +1251,23 @@ var VAR_ICORR = [
1251
1251
  187.0826
1252
1252
  ];
1253
1253
  var varicorr = (give) => give > 0 && give <= 15 ? VAR_ICORR[give - 1] : 0;
1254
+ var GIVE_METERS = [
1255
+ 0.3,
1256
+ 0.6,
1257
+ 0.9,
1258
+ 1.2,
1259
+ 1.5,
1260
+ 1.8,
1261
+ 2.1,
1262
+ 2.4,
1263
+ 2.7,
1264
+ 3,
1265
+ 3.6,
1266
+ 4.5,
1267
+ 6,
1268
+ 15,
1269
+ 45
1270
+ ];
1254
1271
  var DEGF = [
1255
1272
  0,
1256
1273
  5e-5,
@@ -1687,6 +1704,35 @@ var SbasProcessor = class {
1687
1704
  }
1688
1705
  return n;
1689
1706
  }
1707
+ /**
1708
+ * The current ionospheric grid — every IGP that carries a valid broadcast
1709
+ * vertical delay (MT18 mask populated by MT26 delays), across all bands, with
1710
+ * its GIVE (DO-229D Table A-17). For visualising the SBAS ionosphere; the
1711
+ * count matches {@link ionoGridPoints}. `week`/`tow` set the reference epoch
1712
+ * for each point's `ageSec` (the same argument the solver passes).
1713
+ */
1714
+ ionoGrid(week, tow) {
1715
+ const now = gpsSeconds(week, tow);
1716
+ const out = [];
1717
+ for (let band = 0; band < this.ion.length; band++) {
1718
+ const b = this.ion[band];
1719
+ if (!b) continue;
1720
+ for (const g of b.igp) {
1721
+ if (g.give <= 0) continue;
1722
+ const givei = g.give - 1;
1723
+ out.push({
1724
+ latDeg: g.lat,
1725
+ lonDeg: g.lon,
1726
+ band,
1727
+ delayM: g.delay,
1728
+ givei,
1729
+ giveMeters: GIVE_METERS[givei] ?? NaN,
1730
+ ageSec: g.t0s ? now - g.t0s : NaN
1731
+ });
1732
+ }
1733
+ }
1734
+ return out;
1735
+ }
1690
1736
  /**
1691
1737
  * Correction-coverage census at a GPS week/time — a diagnostic funnel over
1692
1738
  * the current state, explaining how many masked satellites are actually
package/dist/index.cjs CHANGED
@@ -13461,6 +13461,23 @@ var VAR_ICORR = [
13461
13461
  187.0826
13462
13462
  ];
13463
13463
  var varicorr = (give) => give > 0 && give <= 15 ? VAR_ICORR[give - 1] : 0;
13464
+ var GIVE_METERS = [
13465
+ 0.3,
13466
+ 0.6,
13467
+ 0.9,
13468
+ 1.2,
13469
+ 1.5,
13470
+ 1.8,
13471
+ 2.1,
13472
+ 2.4,
13473
+ 2.7,
13474
+ 3,
13475
+ 3.6,
13476
+ 4.5,
13477
+ 6,
13478
+ 15,
13479
+ 45
13480
+ ];
13464
13481
  var DEGF = [
13465
13482
  0,
13466
13483
  5e-5,
@@ -13897,6 +13914,35 @@ var SbasProcessor = class {
13897
13914
  }
13898
13915
  return n;
13899
13916
  }
13917
+ /**
13918
+ * The current ionospheric grid — every IGP that carries a valid broadcast
13919
+ * vertical delay (MT18 mask populated by MT26 delays), across all bands, with
13920
+ * its GIVE (DO-229D Table A-17). For visualising the SBAS ionosphere; the
13921
+ * count matches {@link ionoGridPoints}. `week`/`tow` set the reference epoch
13922
+ * for each point's `ageSec` (the same argument the solver passes).
13923
+ */
13924
+ ionoGrid(week, tow) {
13925
+ const now = gpsSeconds(week, tow);
13926
+ const out = [];
13927
+ for (let band = 0; band < this.ion.length; band++) {
13928
+ const b = this.ion[band];
13929
+ if (!b) continue;
13930
+ for (const g of b.igp) {
13931
+ if (g.give <= 0) continue;
13932
+ const givei = g.give - 1;
13933
+ out.push({
13934
+ latDeg: g.lat,
13935
+ lonDeg: g.lon,
13936
+ band,
13937
+ delayM: g.delay,
13938
+ givei,
13939
+ giveMeters: GIVE_METERS[givei] ?? NaN,
13940
+ ageSec: g.t0s ? now - g.t0s : NaN
13941
+ });
13942
+ }
13943
+ }
13944
+ return out;
13945
+ }
13900
13946
  /**
13901
13947
  * Correction-coverage census at a GPS week/time — a diagnostic funnel over
13902
13948
  * the current state, explaining how many masked satellites are actually
package/dist/index.d.cts CHANGED
@@ -18,7 +18,7 @@ export { TrimbleEpoch, TrimbleFrame, TrimbleMeasurement, TrimbleNavResult, Trimb
18
18
  export { BinexEpoch, BinexMeasurement, BinexParseResult, BinexRecord, binexCrc16, binexCrc32, binexCsum8, binexRecords, decodeBinexEph, getBnxi, parseBinex } from './binex.cjs';
19
19
  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';
20
20
  export { Helmert14, REFERENCE_FRAMES, ReferenceFrame, applyHelmert, dateToEpoch, transformFrame } from './frames.cjs';
21
- export { AntennaOffset, ArFixedSat, ArOptions, ArResult, ArSat, CorrectionResult, Degradation, DgnssOptions, DgnssSolution, EphemerisSource, FixedPositionResult, IONO_L1_M_PER_TECU, KlobucharCoeffs, LambdaResult, NetworkFcbResult, NetworkFcbSummary, NlArc, NlFcbResult, PppAntennaModel, PppArc, PppCorrectionConfig, PppCorrections, PppEpoch, PppEpochContext, PppEpochResult, PppFixState, PppOptions, PppSatObs, PppSolution, RawObservation, RtkEpochMeasurements, RtkFloatEngine, RtkFloatOptions, RtkFloatSolution, RtkMeasurement, RtkObsEpoch, RtkObsInput, RtkPostProcessOptions, RtkPostProcessResult, RtkTrackPoint, SatGeom, SbasCorrectionSource, SbasIonoDelay, SbasProcessor, SbasSatCorrection, SppOptions, SppSolution, TropoMapping, WlArc, WlFcbOptions, WlFcbResult, WlObs, buildPppAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength } from './positioning.cjs';
21
+ export { AntennaOffset, ArFixedSat, ArOptions, ArResult, ArSat, CorrectionResult, Degradation, DgnssOptions, DgnssSolution, EphemerisSource, FixedPositionResult, IONO_L1_M_PER_TECU, KlobucharCoeffs, LambdaResult, NetworkFcbResult, NetworkFcbSummary, NlArc, NlFcbResult, PppAntennaModel, PppArc, PppCorrectionConfig, PppCorrections, PppEpoch, PppEpochContext, PppEpochResult, PppFixState, PppOptions, PppSatObs, PppSolution, RawObservation, RtkEpochMeasurements, RtkFloatEngine, RtkFloatOptions, RtkFloatSolution, RtkMeasurement, RtkObsEpoch, RtkObsInput, RtkPostProcessOptions, RtkPostProcessResult, RtkTrackPoint, SatGeom, SbasCorrectionSource, SbasIgp, SbasIonoDelay, SbasProcessor, SbasSatCorrection, SppOptions, SppSolution, TropoMapping, WlArc, WlFcbOptions, WlFcbResult, WlObs, buildPppAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength } from './positioning.cjs';
22
22
  export { NtripCaster, NtripConnectionInfo, NtripNetwork, NtripStream, NtripStreamConnection, NtripVersion, Sourcetable, SourcetableEntry, connectToMountpoint, fetchSourcetable, parseSourcetable } from './ntrip.cjs';
23
23
  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';
24
24
  export { AntennaEntry, AntexFile, FrequencyData, frequencyLabel, parseAntex } from './antex.cjs';
package/dist/index.d.ts CHANGED
@@ -18,7 +18,7 @@ export { TrimbleEpoch, TrimbleFrame, TrimbleMeasurement, TrimbleNavResult, Trimb
18
18
  export { BinexEpoch, BinexMeasurement, BinexParseResult, BinexRecord, binexCrc16, binexCrc32, binexCsum8, binexRecords, decodeBinexEph, getBnxi, parseBinex } from './binex.js';
19
19
  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';
20
20
  export { Helmert14, REFERENCE_FRAMES, ReferenceFrame, applyHelmert, dateToEpoch, transformFrame } from './frames.js';
21
- export { AntennaOffset, ArFixedSat, ArOptions, ArResult, ArSat, CorrectionResult, Degradation, DgnssOptions, DgnssSolution, EphemerisSource, FixedPositionResult, IONO_L1_M_PER_TECU, KlobucharCoeffs, LambdaResult, NetworkFcbResult, NetworkFcbSummary, NlArc, NlFcbResult, PppAntennaModel, PppArc, PppCorrectionConfig, PppCorrections, PppEpoch, PppEpochContext, PppEpochResult, PppFixState, PppOptions, PppSatObs, PppSolution, RawObservation, RtkEpochMeasurements, RtkFloatEngine, RtkFloatOptions, RtkFloatSolution, RtkMeasurement, RtkObsEpoch, RtkObsInput, RtkPostProcessOptions, RtkPostProcessResult, RtkTrackPoint, SatGeom, SbasCorrectionSource, SbasIonoDelay, SbasProcessor, SbasSatCorrection, SppOptions, SppSolution, TropoMapping, WlArc, WlFcbOptions, WlFcbResult, WlObs, buildPppAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength } from './positioning.js';
21
+ export { AntennaOffset, ArFixedSat, ArOptions, ArResult, ArSat, CorrectionResult, Degradation, DgnssOptions, DgnssSolution, EphemerisSource, FixedPositionResult, IONO_L1_M_PER_TECU, KlobucharCoeffs, LambdaResult, NetworkFcbResult, NetworkFcbSummary, NlArc, NlFcbResult, PppAntennaModel, PppArc, PppCorrectionConfig, PppCorrections, PppEpoch, PppEpochContext, PppEpochResult, PppFixState, PppOptions, PppSatObs, PppSolution, RawObservation, RtkEpochMeasurements, RtkFloatEngine, RtkFloatOptions, RtkFloatSolution, RtkMeasurement, RtkObsEpoch, RtkObsInput, RtkPostProcessOptions, RtkPostProcessResult, RtkTrackPoint, SatGeom, SbasCorrectionSource, SbasIgp, SbasIonoDelay, SbasProcessor, SbasSatCorrection, SppOptions, SppSolution, TropoMapping, WlArc, WlFcbOptions, WlFcbResult, WlObs, buildPppAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength } from './positioning.js';
22
22
  export { NtripCaster, NtripConnectionInfo, NtripNetwork, NtripStream, NtripStreamConnection, NtripVersion, Sourcetable, SourcetableEntry, connectToMountpoint, fetchSourcetable, parseSourcetable } from './ntrip.js';
23
23
  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';
24
24
  export { AntennaEntry, AntexFile, FrequencyData, frequencyLabel, parseAntex } from './antex.js';
package/dist/index.js CHANGED
@@ -178,7 +178,7 @@ import {
178
178
  sunEcef,
179
179
  toRtkEpoch,
180
180
  wlWavelength
181
- } from "./chunk-GWN2F3PQ.js";
181
+ } from "./chunk-TWAC2BZF.js";
182
182
  import "./chunk-WQX354KD.js";
183
183
  import {
184
184
  almanacEpochMs,
@@ -1727,6 +1727,23 @@ var VAR_ICORR = [
1727
1727
  187.0826
1728
1728
  ];
1729
1729
  var varicorr = (give) => give > 0 && give <= 15 ? VAR_ICORR[give - 1] : 0;
1730
+ var GIVE_METERS = [
1731
+ 0.3,
1732
+ 0.6,
1733
+ 0.9,
1734
+ 1.2,
1735
+ 1.5,
1736
+ 1.8,
1737
+ 2.1,
1738
+ 2.4,
1739
+ 2.7,
1740
+ 3,
1741
+ 3.6,
1742
+ 4.5,
1743
+ 6,
1744
+ 15,
1745
+ 45
1746
+ ];
1730
1747
  var DEGF = [
1731
1748
  0,
1732
1749
  5e-5,
@@ -2163,6 +2180,35 @@ var SbasProcessor = class {
2163
2180
  }
2164
2181
  return n;
2165
2182
  }
2183
+ /**
2184
+ * The current ionospheric grid — every IGP that carries a valid broadcast
2185
+ * vertical delay (MT18 mask populated by MT26 delays), across all bands, with
2186
+ * its GIVE (DO-229D Table A-17). For visualising the SBAS ionosphere; the
2187
+ * count matches {@link ionoGridPoints}. `week`/`tow` set the reference epoch
2188
+ * for each point's `ageSec` (the same argument the solver passes).
2189
+ */
2190
+ ionoGrid(week, tow) {
2191
+ const now = gpsSeconds(week, tow);
2192
+ const out = [];
2193
+ for (let band = 0; band < this.ion.length; band++) {
2194
+ const b = this.ion[band];
2195
+ if (!b) continue;
2196
+ for (const g of b.igp) {
2197
+ if (g.give <= 0) continue;
2198
+ const givei = g.give - 1;
2199
+ out.push({
2200
+ latDeg: g.lat,
2201
+ lonDeg: g.lon,
2202
+ band,
2203
+ delayM: g.delay,
2204
+ givei,
2205
+ giveMeters: GIVE_METERS[givei] ?? NaN,
2206
+ ageSec: g.t0s ? now - g.t0s : NaN
2207
+ });
2208
+ }
2209
+ }
2210
+ return out;
2211
+ }
2166
2212
  /**
2167
2213
  * Correction-coverage census at a GPS week/time — a diagnostic funnel over
2168
2214
  * the current state, explaining how many masked satellites are actually
@@ -599,6 +599,25 @@ interface SbasIonoDelay {
599
599
  /** Variance (m²). */
600
600
  varM2: number;
601
601
  }
602
+ /** One ionospheric grid point (IGP) of the SBAS grid — its location, the
603
+ * broadcast vertical delay and its GIVE (grid ionospheric vertical error).
604
+ * For visualising the SBAS ionosphere (MT18 mask + MT26 delays). */
605
+ interface SbasIgp {
606
+ /** IGP geodetic latitude (deg). */
607
+ latDeg: number;
608
+ /** IGP geodetic longitude (deg, −180..180). */
609
+ lonDeg: number;
610
+ /** SBAS band index (0..10) the point belongs to. */
611
+ band: number;
612
+ /** Broadcast vertical L1 ionospheric delay (m). */
613
+ delayM: number;
614
+ /** GIVEI (0..14) — the broadcast grid-ionospheric-vertical-error indicator. */
615
+ givei: number;
616
+ /** GIVE — the 99.9% vertical-error bound (m), DO-229D Table A-17. */
617
+ giveMeters: number;
618
+ /** Age of the delay estimate (s) at the query epoch. */
619
+ ageSec: number;
620
+ }
602
621
  declare class SbasProcessor {
603
622
  private sats;
604
623
  private satIdx;
@@ -640,6 +659,14 @@ declare class SbasProcessor {
640
659
  activeSats(): string[];
641
660
  /** Number of ionospheric grid points with a valid delay across all bands. */
642
661
  ionoGridPoints(): number;
662
+ /**
663
+ * The current ionospheric grid — every IGP that carries a valid broadcast
664
+ * vertical delay (MT18 mask populated by MT26 delays), across all bands, with
665
+ * its GIVE (DO-229D Table A-17). For visualising the SBAS ionosphere; the
666
+ * count matches {@link ionoGridPoints}. `week`/`tow` set the reference epoch
667
+ * for each point's `ageSec` (the same argument the solver passes).
668
+ */
669
+ ionoGrid(week: number, tow: number): SbasIgp[];
643
670
  /**
644
671
  * Correction-coverage census at a GPS week/time — a diagnostic funnel over
645
672
  * the current state, explaining how many masked satellites are actually
@@ -1381,4 +1408,4 @@ declare function sbasProtectionLevels(sats: readonly {
1381
1408
  */
1382
1409
  declare function solveSpp(pseudoranges: Map<string, number>, ephemerides: Map<string, Ephemeris>, timeMs: number, opts?: SppOptions): SppSolution | null;
1383
1410
 
1384
- export { type AntennaOffset, 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 PppAntennaModel, type PppArc, type PppCorrectionConfig, type PppCorrections, type PppEpoch, type PppEpochContext, type PppEpochResult, type PppFixState, type PppOptions, type PppSatObs, type PppSolution, type RawObservation, type RtkEpochMeasurements, RtkFloatEngine, type RtkFloatOptions, type RtkFloatSolution, type RtkMeasurement, type RtkObsEpoch, type RtkObsInput, type RtkPostProcessOptions, type RtkPostProcessResult, type RtkTrackPoint, type SatGeom, type SbasCorrectionSource, type SbasIonoDelay, SbasProcessor, type SbasSatCorrection, type SppOptions, type SppSolution, type TropoMapping, type WlArc, type WlFcbOptions, type WlFcbResult, type WlObs, buildPppAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength };
1411
+ export { type AntennaOffset, 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 PppAntennaModel, type PppArc, type PppCorrectionConfig, type PppCorrections, type PppEpoch, type PppEpochContext, type PppEpochResult, type PppFixState, type PppOptions, type PppSatObs, type PppSolution, type RawObservation, type RtkEpochMeasurements, RtkFloatEngine, type RtkFloatOptions, type RtkFloatSolution, type RtkMeasurement, type RtkObsEpoch, type RtkObsInput, type RtkPostProcessOptions, type RtkPostProcessResult, type RtkTrackPoint, type SatGeom, type SbasCorrectionSource, type SbasIgp, type SbasIonoDelay, SbasProcessor, type SbasSatCorrection, type SppOptions, type SppSolution, type TropoMapping, type WlArc, type WlFcbOptions, type WlFcbResult, type WlObs, buildPppAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength };
@@ -599,6 +599,25 @@ interface SbasIonoDelay {
599
599
  /** Variance (m²). */
600
600
  varM2: number;
601
601
  }
602
+ /** One ionospheric grid point (IGP) of the SBAS grid — its location, the
603
+ * broadcast vertical delay and its GIVE (grid ionospheric vertical error).
604
+ * For visualising the SBAS ionosphere (MT18 mask + MT26 delays). */
605
+ interface SbasIgp {
606
+ /** IGP geodetic latitude (deg). */
607
+ latDeg: number;
608
+ /** IGP geodetic longitude (deg, −180..180). */
609
+ lonDeg: number;
610
+ /** SBAS band index (0..10) the point belongs to. */
611
+ band: number;
612
+ /** Broadcast vertical L1 ionospheric delay (m). */
613
+ delayM: number;
614
+ /** GIVEI (0..14) — the broadcast grid-ionospheric-vertical-error indicator. */
615
+ givei: number;
616
+ /** GIVE — the 99.9% vertical-error bound (m), DO-229D Table A-17. */
617
+ giveMeters: number;
618
+ /** Age of the delay estimate (s) at the query epoch. */
619
+ ageSec: number;
620
+ }
602
621
  declare class SbasProcessor {
603
622
  private sats;
604
623
  private satIdx;
@@ -640,6 +659,14 @@ declare class SbasProcessor {
640
659
  activeSats(): string[];
641
660
  /** Number of ionospheric grid points with a valid delay across all bands. */
642
661
  ionoGridPoints(): number;
662
+ /**
663
+ * The current ionospheric grid — every IGP that carries a valid broadcast
664
+ * vertical delay (MT18 mask populated by MT26 delays), across all bands, with
665
+ * its GIVE (DO-229D Table A-17). For visualising the SBAS ionosphere; the
666
+ * count matches {@link ionoGridPoints}. `week`/`tow` set the reference epoch
667
+ * for each point's `ageSec` (the same argument the solver passes).
668
+ */
669
+ ionoGrid(week: number, tow: number): SbasIgp[];
643
670
  /**
644
671
  * Correction-coverage census at a GPS week/time — a diagnostic funnel over
645
672
  * the current state, explaining how many masked satellites are actually
@@ -1381,4 +1408,4 @@ declare function sbasProtectionLevels(sats: readonly {
1381
1408
  */
1382
1409
  declare function solveSpp(pseudoranges: Map<string, number>, ephemerides: Map<string, Ephemeris>, timeMs: number, opts?: SppOptions): SppSolution | null;
1383
1410
 
1384
- export { type AntennaOffset, 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 PppAntennaModel, type PppArc, type PppCorrectionConfig, type PppCorrections, type PppEpoch, type PppEpochContext, type PppEpochResult, type PppFixState, type PppOptions, type PppSatObs, type PppSolution, type RawObservation, type RtkEpochMeasurements, RtkFloatEngine, type RtkFloatOptions, type RtkFloatSolution, type RtkMeasurement, type RtkObsEpoch, type RtkObsInput, type RtkPostProcessOptions, type RtkPostProcessResult, type RtkTrackPoint, type SatGeom, type SbasCorrectionSource, type SbasIonoDelay, SbasProcessor, type SbasSatCorrection, type SppOptions, type SppSolution, type TropoMapping, type WlArc, type WlFcbOptions, type WlFcbResult, type WlObs, buildPppAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength };
1411
+ export { type AntennaOffset, 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 PppAntennaModel, type PppArc, type PppCorrectionConfig, type PppCorrections, type PppEpoch, type PppEpochContext, type PppEpochResult, type PppFixState, type PppOptions, type PppSatObs, type PppSolution, type RawObservation, type RtkEpochMeasurements, RtkFloatEngine, type RtkFloatOptions, type RtkFloatSolution, type RtkMeasurement, type RtkObsEpoch, type RtkObsInput, type RtkPostProcessOptions, type RtkPostProcessResult, type RtkTrackPoint, type SatGeom, type SbasCorrectionSource, type SbasIgp, type SbasIonoDelay, SbasProcessor, type SbasSatCorrection, type SppOptions, type SppSolution, type TropoMapping, type WlArc, type WlFcbOptions, type WlFcbResult, type WlObs, buildPppAntenna, createPppCorrections, estimateNarrowlaneFcb, estimateNetworkFcbs, estimateWidelaneFcb, extractWidelaneArcs, fixPppPosition, gimSlantIonoDelayL1, gimVerticalTec, gmst, ionoFree, klobucharDelay, lambdaReduction, lambdaSearch, moonEcef, niellMapping, nlWavelength, postProcessRtk, resolvePppAmbiguities, satClockCorrection, sbasIonoDeg, sbasLongTermDeg, sbasProtectionLevels, solidEarthTide, solveDgnss, solvePpp, solveSpp, sunEcef, toRtkEpoch, wlWavelength };
@@ -32,7 +32,7 @@ import {
32
32
  sunEcef,
33
33
  toRtkEpoch,
34
34
  wlWavelength
35
- } from "./chunk-GWN2F3PQ.js";
35
+ } from "./chunk-TWAC2BZF.js";
36
36
  import "./chunk-WQX354KD.js";
37
37
  import "./chunk-MHGNKSSH.js";
38
38
  import "./chunk-MIIM4LDY.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gnss-js",
3
- "version": "1.61.0",
3
+ "version": "1.62.0",
4
4
  "description": "Comprehensive GNSS library for JavaScript — time scales, coordinates, RINEX parsing, RTCM3 decoding, orbit computation, and signal analysis",
5
5
  "type": "module",
6
6
  "sideEffects": false,