GuidesAPI Reference
Guides

How to correct ionospheric information

Ionospheric corrections are delivered as combinations of three different LPP message types:

  • GNSS-SSR-CorrectionPoints, which defines the grid layout for a single grid
  • GNSS-SSR-STEC-Correction, which provides polynomials of STEC delays for each satellite
  • GNSS-SSR-GriddedCorrection, which provides residuals of the polynomial with respect to the actual STEC values at grid points inside a grid.

See chapter LPP 18.3.0 ASN.1 Schema for LPP schema and specification and a more detailed description of contents of each message type.

You can download QZSS ICD from this link: QZSS ICD.

Details of the ionospheric correction elements in LPP ASN.1 schema

To avoid confusion and misunderstandings, some details and clarifications of each ionospheric correction LPP message are provided below.

GNSS-SSR-CorrectionPoints

The GNSS-SSR-CorrectionPoints element is used to provide grid definitions. Grids are defined as a set of grid points, which cover an area, where corresponding correction data can be used. Grids are defined in GNSS-SSR-ArrayOfCorrectionPoints-r16-format: nxm-point rectangles, where either some or all the points can be used. Each grid is marked with a unique grid ID, which can be used to associate the correction data with a grid.

GNSS-SSR-STEC-Correction

The GNSS-SSR-STEC-Correction element is used by HERE GNSS Service to provide a polynomial model of STEC corrections for each satellite. Values of the polynomial are calculated with respect to the reference point, given in the grid definition in GNSS-SSR-CorrectionPoints. The grid ID in the message must match the one in GNSS-SSR-CorrectionPoints.

GNSS-SSR-GriddedCorrection

The GNSS-SSR-GriddedCorrection element is used by HERE GNSS Service to provide residuals between the polynomial in GNSS-SSR-STEC-Correction and the actual STEC value for each satellite in the points defined in GNSS-SSR-CorrectionPoints. The grid ID in the message must match the ones in GNSS-SSR-CorrectionPoints and GNSS-SSR-STEC-Correction. Some satellites may be visible only from some of the grid points, meaning that STEC values are not available at each point of the grid. This can be indicated with a special value of the residual. The special value depends on which field is present in the stecResidualCorrection-r16-element. For fields b7-r16 and b16-r16, special values are -64 and -32768, respectively.

If a residual has one of these values, the STEC value for corresponding satellite at the corresponding point is not available.

Grid layout

The global grid layout consists of multiple grids, each associated with a unique grid ID delivered as part of the GNSS-SSR-CorrectionPoints message. The grids overlap at their edge points.

In the current grid layout of HERE GNSS Service, all grid definitions are rectangular, with the vast majority of grids consisting of 16 points, delivered in the GNSS-SSR-ArrayOfCorrectionPoints-r16 format as a 4x4 grid. Figure 1 contains an example of two such grids laid out adjacent to each other, with overlapping grid edge points. The grid layout is not fixed and is subject to change.

Grid example

Because the grid layout is not fixed, user may have to change grid ID(s) they have subscribed to. Changes in grid layout can be detected from the received data: If grid definition is no longer the same as the previous one, users may have to determine new grid ID(s) for their subscription by requesting all grid definitions and determine the relevant ones from there. It should be noted that changes in grid layout happen infrequently, but client software has to be prepared for them.

How to calculate corrections

The LPP specification (Section 6.5.2.2) and QZSS ICD (Sections 5.5.4 and 5.5.7) explain how to calculate the STEC delays at user location using the message contents and utilizing them as correction data. There, however, might be ambiguities in the explanation, so below is a particular example that explains the procedure in detail. You can always apply the following method with the current grid layout used by HERE GNSS Service (unless on polar areas, where values from simply the nearest grid point should be used).

To calculate STEC corrections at any location, you should first calculate STEC values from four closest surrounding points that form a rectangle around you. When you're at the border of two (or more) rectangles, meaning that you're standing exactly between two points, either rectangle can be used for interpolation. The four surrounding points can be from a single grid, or from multiple grids.

After choosing the points, the STEC value for each satellite is calculated for each point according to the LPP specification. The data in GNSS-SSR-STEC-Correction and GNSS-SSR-GriddedCorrection-elements associated with the grid, in which the point is, can be used to calculate these values.

The STEC value for each satellite at the user location is then calculated by interpolating the calculated STEC values. The recommended interpolation method is the bi-linear method, where the value is calculated as a weighted sum of the four calculated STEC values.

Therefore, the STEC delay for the satellite can be calculated as follows:

Sample equation

where (phi), (lambda) denote the latitude and the longitude of the user location and (phi_1), (phi_2), (lambda_1), (lambda_2) denote the latitudes and the longitudes at the surrounding points. Similarly, I is the STEC delay for the satellite at user location, whereas (I_1), (I_2), (I_1), (I_2) are STEC delays at surrounding points. Figure 2 illustrates the different points and their relation to one another.

Points example

Users should subscribe to correction data so that they can always interpolate using the four surrounding grid points.