Keywords

1 Introduction

For GNSS (Global Navigation Satellite System) positioning, the ionosphere will significantly affect the propagation delay of satellite signals, thus affecting the positioning accuracy [1]. Accurate ionospheric delay estimation can effectively improve the accuracy of single point positioning, and for high-precision positioning applications, it can also reduce the convergence time of carrier phase ambiguity resolution [3].

Dual frequency receivers can eliminate the influence of ionospheric delay by using ionosphere-free combination, but for the single frequency receivers, additional information is needed to correct the ionospheric delay. The first method is to model TEC distribution through mathematical function model, and there are different model choices according to different spatial-temporal scales [4]. For global ionospheric TEC, spherical harmonics can be used as its mathematical model, while for the regional ionospheric TEC, polynomial functions [13], low-degree spherical harmonic functions [7], spherical cap harmonics functions [8] can be used. Due to the obvious diurnal variation characteristics of local Ionospheric TEC, the polynomial function can be combined with the periodic trigonometric series function to obtain the generalized trigonometric series function model for estimation [9]. The disadvantage of the above estimation method based on the mathematical function model is that it cannot effectively reflect the high-frequency variation components of the local ionosphere. Especially when the ionosphere is active, the difficulty of modeling is that the physical characteristics do not conform to the conventional model assumption. Some widely used models, such as Klobuchar model broadcast by GPS, can only correct 50% of the ionospheric delay [5]. The second method is to get accurate TEC estimation from the observations of the existing base station network, and then reconstruct the TEC of the whole region through interpolation. The common methods include inverse distance weighted method [2], planar fitting method [6], and Kriging interpolation method [10, 11], which is widely studied and used in the current wide area augmentation system (WAAS). This kind of interpolation based method can make more effective use of the spatial correlation between stations, and has a more accurate estimation of the local ionospheric information.

With the continuous in-depth study of machine learning and other big data processing methods in recent years, some interpolation regression related algorithms are becoming more mature, and have been widely used in various fields. Gaussian process regression is one of the most widely used methods. Gaussian process is actually a set of non-parametric model based on Bayesian, and with the increase of the amount of data, the interpretation ability of the model is more powerful [12]. However, at present, there are few researches on ionospheric delay interpolation using Gaussian process regression, and many new algorithms proposed are also based on traditional Kriging method. Therefore, the research on ionospheric delay interpolation based on Gaussian process regression is very meaningful.

In this paper, the DD ionospheric interpolation algorithm based on Gaussian process regression is studied, which aims to solve the problem of DD ionospheric estimation in local base station network. In practical applications, users often do not need the overall trend of the global ionosphere, but only need the precise ionospheric variation of a specific location, so the observation of local base station network can meet the requirements. In addition, due to the few number of stations in the local base station network, the number of observations in a single epoch is small, so it is difficult to get satisfactory results. It is necessary to process the data of multiple epochs for interpolation, so as to solve the problem of data sparsity.

2 Problem of Double-Difference Ionospheric Interpolation for Local Base Station Networks

This section describes the problem of DD ionospheric interpolation in local base station network.

Figure 1 is a diagram of the base station network, including multiple base stations and a rover station, and the base station nearest to the rover station can be selected as the master base station. The DD ionospheric delay of each base station relative to the main base station can be calculated by GNSS dual frequency observation.

For rover stations, if we don’t use high-quality and long-time observation, it is impossible to directly calculate the DD ionospheric delay relative to the main base station, which can only be obtained by interpolating the DD ionospheric delay of the surrounding base stations according to the longitude and latitude coordinates of the base station. After the estimated DD ionospheric delay is obtained by interpolation, the corrected DD observation can be obtained by subtracting the estimated DD ionospheric delay directly from the DD observation of the rover station relative to the main base station, and then it can be used in the subsequent positioning algorithm.

Fig. 1.
figure 1

Diagram of base station network

3 Gaussian Process Regression

Gaussian process regression is a kind of supervised learning regression method. It is a non-parametric model that uses the prior of Gaussian process for regression analysis of data. In this section, we will elaborate the basic concepts and principles of Gaussian process, and how to determine the hyperparameters of kernel.

Let’s assume that we have training data input satisfying Gaussian process \(S = \left\{ {{\mathbf{x}}_{i} ,y_{i} \,|\,i = 1,2, \ldots ,n} \right\}\), where \({\mathbf{x}}\) is the input vector of \(D\) dimension, \(y\) represents the corresponding observation output. Then the input matrix \({\text{X}}\) and the target output observation \({\mathbf{y}}\) can be obtained by combining all \(n\) data. A Gaussian process can be uniquely expressed as

$$ f\left( {\mathbf{x}} \right) \sim GP\left( {m\left( {\mathbf{x}} \right),k\left( {{\mathbf{x}},{\mathbf{x^{\prime}}}} \right)} \right) $$
(1)

where \(m\left( {\mathbf{x}} \right)\) is the mean function of the Gaussian process and \(k\left( {{\mathbf{x}},{\mathbf{x^{\prime}}}} \right)\) is the covariance function of the Gaussian process, which is often called kernel. If there is additive white Gaussian noise \(\varepsilon\) in the observation, we have

$$ y = f\left( x \right) + \varepsilon $$
(2)

where the variance of noise is \(\sigma_{n}^{2}\).

Suppose \(X\) and \(X_{*}\) represent the input matrix of training data and test data respectively, \({\mathbf{y}}\) represents the observation vector of training data and \({\mathbf{f}}_{*}\) represents the target output of test data, then their joint distribution can be expressed as

$$ \left[ {\begin{array}{*{20}l} {\begin{array}{*{20}l} {\mathbf{y}} \hfill \\ {{\mathbf{f}}_{*} } \hfill \\ \end{array} } \hfill \\ \end{array} } \right] \sim N\left( {0,\left[ {\begin{array}{*{20}c} {K\left( {X,X} \right) + \sigma_{n}^{2} I} & {K\left( {X,X_{*} } \right)} \\ {K\left( {X_{*} ,X} \right)} & {K\left( {X_{*} ,X_{*} } \right)} \\ \end{array} } \right]} \right) $$
(3)

where \(N\left( {m,C} \right)\) is a Gaussian distribution with mean \(m\) and covariance matrix \(C\). \(K\) is the covariance matrix calculated by kernel function. Then the conditional distribution can be calculated

$$ {\mathbf{f}}_{*} \,|\,X_{*} ,X,{\mathbf{y}} \sim N\left( {{\overline{\mathbf{f}}}_{*} ,\,{\text{cov}} \left( {{\mathbf{f}}_{*} } \right)} \right) $$
(4)

where

$$ {\overline{\mathbf{f}}}_{*} = K\left( {X_{*} ,X} \right)\left[ {K\left( {X,X} \right) + \sigma_{n}^{2} I} \right]^{ - 1} {\mathbf{y}} $$
(5)
$$ {\text{cov}} \left( {{\mathbf{f}}_{*} } \right) = K\left( {X_{*} ,X_{*} } \right) - K\left( {X_{*} ,X} \right)\left[ {K\left( {X,X} \right) + \sigma_{n}^{2} I} \right]^{ - 1} K\left( {X,X_{*} } \right) $$
(6)

Then \({\overline{\mathbf{f}}}_{*}\) is the regression prediction result calculated at the test data point according to the training data, and \({\text{cov}} \left( {{\text{f}}_{*} } \right)\) is the corresponding variance, which can be used to estimate the confidence of the prediction result.

Here we can introduce the marginal probability density, which can be expressed as

$$ p\left( {{\mathbf{y}}\,|\,X,{\varvec{\theta}}} \right) = \int {p\left( {{\mathbf{y}}\,|\,{\mathbf{f}},X} \right)p\left( {{\mathbf{f}}\,|\,,X} \right)d{\mathbf{f}}} $$
(7)

where the prior \(p\left( {{\mathbf{f}}\,|\,,X} \right)\) satisfies Gaussian distribution, and \({\varvec{\theta}}\) is the hyperparameters, then

$$ \log p\left( {{\mathbf{f}}\,|\,X,{\varvec{\theta}}} \right) = - \frac{1}{2}{\mathbf{f}}^{{\text{T}}} K^{ - 1} {\mathbf{f}} - \frac{1}{2}\log \left| K \right| - \frac{n}{2}\log \left( {2\pi } \right) $$
(8)

By calculating the integral of Eq. (7), we can get

$$ \log p\left( {{\mathbf{y}}\,|\,X,{\varvec{\theta}}} \right) = - \frac{1}{2}{\mathbf{y}}^{{\text{T}}} \left( {K + \sigma_{n}^{2} I} \right)^{ - 1} {\mathbf{y}} - \frac{1}{2}\log \left| {K + \sigma_{n}^{2} I} \right| - \frac{n}{2}\log \left( {2\pi } \right) $$
(9)

The gradient descent method can be used to optimize the marginal probability density and get the appropriate hyperparameters.

4 Selection of the Kernel of Double-Difference Ionospheric Delay

Our ultimate goal is to construct a reasonable kernel of DD ionospheric delay. However, due to the complex statistical characteristics of the ionospheric delay after DD operation, it is difficult to be directly determined. Therefore, we need to first assume a reasonable kernel of zenith ionospheric delay, and then derive the kernel of DD ionospheric delay based on it.

4.1 Kernel of Zenith Ionospheric Delay

In the traditional linear ionospheric interpolation and Kriging interpolation algorithm, the input as the interpolation independent variable is two-dimensional geographic coordinates. This kind of method only interpolates the data on a single epoch according to the correlation between geographical coordinates, but does not consider the relationship between epochs, thus weakening the effect of interpolation. Therefore, this paper proposes an algorithm that can take multiple epoch data as input, and through subsequent analysis, we can know that its physical meaning represents the correlation of solar activity.

The simplest way to deal with multi-epoch data interpolation is to directly add time dimensional, so the input can be formed as

$$ {\varvec{x}}_{0} = \left[ {\lambda ,\varphi ,t} \right]^{T} $$
(10)

where \(\lambda\) is the longitude, \(\varphi\) is the latitude, \(t\) is the UTC time in hour.

The method above is an improvement to the original two-dimensional interpolation, but there is still room for improvement. We take the difference between the longitude of the ionospheric pierce point and the geographical longitude of the subsolar point as the third dimension, we can get

$$ {\varvec{x}} = \left[ {\lambda ,\varphi ,\varphi - \varphi_{s} } \right]^{T} $$
(11)

where \(\varphi_{s} = - \frac{360}{{24}}t + 180\) is the longitude of the subsolar point. It can be found that this method actually adds time epoch \(t\) to the third dimension of the input too. However, this method has more advantages under the actual observation conditions of the sun moving from east to west with the epoch variation. Geographical longitude and latitude can reflect the influence of the geomagnetic field on the ionosphere, that is, the smaller the difference between the geographical coordinates, the higher the correlation of the ionosphere delay due to the similarity of the geomagnetic field. On the other hand, taking the difference between the longitude of ionospheric pierce point and subsolar point as the input can also reflect the influence of solar radiation on the ionosphere.

So far, we have determined the input of interpolation, from the traditional two-dimensional interpolation to three-dimensional interpolation, making full use of the correlation of data between epochs, and reasonably introduced the influence of subsolar point. In order to quantify the relationship between input data and output correlation, it is necessary to determine the kernel \(k\left( {{\varvec{x}},\user2{x^{\prime}}} \right)\). Here we can assume that the kernel is expressed as

$$ k\left( {{\varvec{x}},\user2{x^{\prime}}} \right) = {\text{cov}} \left( {y,y^{\prime}} \right) = \sigma^{2} \exp \left[ { - \frac{1}{2}\left( {{\varvec{x}},\user2{x^{\prime}}} \right)^{T} D\left( {{\varvec{x}},\user2{x^{\prime}}} \right)} \right] $$
(12)

where \(\sigma\) is a scalar value and \(D\) is a \(3 \times 3\) diagonal matrix, both of which are hyperparameters to be optimized by maximizing the marginal probability density.

4.2 Kernel of Double-Difference Ionospheric Delay

In the previous section, the zenith ionospheric kernel function was determined. In this section, we will derive the DD ionospheric kernel based on it.

Suppose that the top view of the distribution of ionospheric pierce point is shown in Fig. 2, which contains eight pierce point corresponding to two different DD ionospheric delays. \({\varvec{x}}\) is the three-dimensional input designed in Sect. 4.1, and \(y\) is the zenith ionospheric delay. The superscript is used to distinguish the DD observations of two different epochs. The subscripts 1, 2, 3 and 4 represent the ionospheric pierce point between rover station and rover satellite, reference station and rover satellite, rover station and reference satellite, reference station and reference satellite, respectively.

We can get two DD observations

$$ \nabla \Delta y = F_{1} y_{1} - F_{2} y_{2} - \left( {F_{3} y_{3} - F_{4} y_{4} } \right) $$
(13)
$$ \nabla \Delta y^{\prime} = F_{1}^{\prime } y_{1}^{\prime } - F_{2}^{\prime } y_{2}^{\prime } - \left( {F_{3}^{\prime } y_{3}^{\prime } - F^{\prime}_{4} y_{4}^{\prime } } \right) $$
(14)
Fig. 2.
figure 2

Schematic diagram of the DD ionosphere pierce point distribution

where \(F_{1} ,F_{2} ,F_{3} ,F_{4}\) are the corresponding trigonometric projection functions, which are related to the elevation angle of the satellite relative to the receiver, and are used to convert the STEC in the line of sight direction to VTEC in the vertical direction, which is

$$ F\left( E \right) = \frac{STEC}{{VTEC}} = \frac{1}{{\sqrt {1 - \left( {\frac{{R_{e} }}{{R_{e} + H}}\cos \left( E \right)} \right)^{2} } }} $$
(15)

where, \(E\) is the elevation angle, \(R_{e}\) is the radius of the earth, \(H\) is the height of the ionosphere. Because the ionospheric delay is proportional to TEC, the zenith ionospheric delay can be transformed into oblique ionospheric delay by using this projection function.

Due to the introduction of the trigonometric projection function, the corresponding input should also include the value, and include the three-dimensional input of four pierce points, namely

$$ x_{\Delta \nabla } = \left( {x_{1}^{T} ,x_{2}^{T} ,x_{3}^{T} ,x_{4}^{T} ,F_{1} ,F_{2} ,F_{3} ,F_{4} } \right)^{T} $$
(16)
$$ x_{\Delta \nabla }^{^{\prime}} = \left( {x_{1}^{^{\prime}T} ,x_{2}^{^{\prime}T} ,x_{3}^{^{\prime}T} ,x_{4}^{^{\prime}T} ,F_{1}^{^{\prime}} ,F_{2}^{^{\prime}} ,F_{3}^{^{\prime}} ,F_{4}^{^{\prime}} } \right)^{T} $$
(17)

According to the definition, the kernel of DD ionosphere can be expressed as

$$ k_{\nabla \Delta } \left( {x_{\nabla \Delta } ,x^{\prime}_{\nabla \Delta } } \right) = {\text{cov}}\left( {\nabla \Delta {\varvec{y}},\nabla \Delta \user2{y^{\prime}}} \right) $$
(18)

Because

$$ {\text{cov}} \left( {\sum\limits_{i} {A_{i} } ,\sum\limits_{j} {B_{j} } } \right) = \sum\limits_{i} {\sum\limits_{j} {{\text{cov}} \left( {A_{i} ,B_{j} } \right)} } $$
(19)

we can substitute (13), (14) into (18) and using (19) to get

$$ k_{\nabla \Delta } \left( {{\varvec{x}}_{\nabla \Delta } ,\user2{x^{\prime}}_{\nabla \Delta } } \right) = \sum\limits_{i = 1}^{4} {\sum\limits_{j = 1}^{4} {a_{ij} F_{i} F^{\prime}_{j} k\left( {{\varvec{x}}_{i} ,\user2{x^{\prime}}_{j} } \right)} } $$
(20)

where \(a_{ij}\) is selected as 1 or 1.

If we only consider local base station network conditions, the correlation of ionospheric delay between different stations (same satellite) is relatively large, while the correlation of ionospheric delay between different satellites (same station) is relatively small, which can be ignored, so we have

$$ k\left( {{\varvec{x}}_{i} ,{\varvec{x}}_{j}^{^{\prime}} } \right) = 0,k\left( {{\varvec{x}}_{j} ,{\varvec{x}}_{i}^{^{\prime}} } \right) = 0,\forall i = 1,2\,j = 3,4 $$
(21)

In addition, the elevation angles of different base stations to the same satellite can be regarded as approximately equal, that is

$$ F_{1} \approx F_{2} ,F_{3} \approx F_{4} ,F_{1}^{^{\prime}} \approx F_{2}^{^{\prime}} ,F_{3}^{^{\prime}} \approx F_{4}^{^{\prime}} $$
(22)

Using (21) and (22), (20) can be transformed into

$$ \begin{aligned} & k_{\nabla \Delta } \left( {{\varvec{x}}_{\nabla \Delta } ,\user2{x^{\prime}}_{\nabla \Delta } } \right) = F_{1} F_{1}^{^{\prime}} \left[ {k\left( {{\varvec{x}}_{1} ,\user2{x^{\prime}}_{1} } \right) + k\left( {{\varvec{x}}_{2} ,\user2{x^{\prime}}_{2} } \right) - k\left( {{\varvec{x}}_{1} ,\user2{x^{\prime}}_{2} } \right) - k\left( {{\varvec{x}}_{2} ,\user2{x^{\prime}}_{1} } \right)} \right] \\ & + F_{3} F_{3}^{^{\prime}} \left[ {k\left( {{\varvec{x}}_{3} ,\user2{x^{\prime}}_{3} } \right) + k\left( {{\varvec{x}}_{4} ,\user2{x^{\prime}}_{4} } \right) - k\left( {{\varvec{x}}_{3} ,\user2{x^{\prime}}_{4} } \right) - k\left( {{\varvec{x}}_{4} ,\user2{x^{\prime}}_{3} } \right)} \right] \\ \end{aligned} $$
(23)

which is the DD ionospheric kernel function, where \(k\left( {{\varvec{x}},\user2{x^{\prime}}} \right)\) is the kernel of zenith ionospheric delay determined by (12).

After determining the kernel and the form of input and output, the DD ionosphere delay can be interpolated directly by the Gaussian process regression described in Sect. 3.

5 Experimental Results

5.1 Experimental Data

In this paper, the proposed algorithm is verified by the real measured base station network data. The base station network is located at the junction of Jiangxi, Guangdong and Hunan provinces in China, which is in the low latitude region. Compared with the high latitude region, the ionospheric variation is more intense, which is hard to estimate and has more research value. As shown in Fig. 3, the network consists of six base stations and one rover station. The master station is JXDY and the rover station is GDNX. Note that the rover station used here can obtain high quality observation to calculate accurate DD ionospheric delay, but it is only used as reference of the interpolation result. Ten groups of the DD ionospheric delay of base station network are obtained from the observation data of 6 GPS and 6 Beidou satellites on August 3, 2019. Each group corresponds to the DD ionospheric delay of a satellite pair. Because the proposed kernel function needs to ensure that the reference satellite of training input is the same, in order to ensure that the reference satellite does not change in the interpolation process, the observation time of each group of satellites is generally 1–3 h. The GPS reference satellite is PRN 5 and the Beidou reference satellite is PRN 10. For each group of data, we use the base station’s DD ionospheric delay to interpolate at the rover station, and compare with the rover station’s DD ionospheric reference value calculated by its high quality observation.

Fig. 3.
figure 3

Base station network distribution

5.2 Comparison of Three Interpolation Algorithms

Figures 4 and 5 show the DD ionospheric interpolation results of GPS satellites and Beidou satellites under the three methods, and compare them with the reference values calculated based on rover observations. Table 1 lists the RMS errors of the DD ionospheric interpolation of different satellites under the three methods.

By comparing the data in Table 1, we can see that the RMS error of the results obtained by Gaussian process regression interpolation is significantly better than the results obtained by Kriging and linear interpolation methods, and the errors are mostly within 1 cm. In most cases, The Kriging interpolation method is slightly better than the linear interpolation result. This is because the Kriging interpolation considers the correlation between the DD ionospheric delays of the base station. The kernel of Gaussian process regression proposed in this paper makes further use of multiple epoch observations to link the correlation of double difference ionospheric delay between different epochs relative to the position of subsolar point. This result also proves that the DD ionospheric kernel proposed in this paper can significantly improve the accuracy of the interpolation algorithm.

Fig. 4.
figure 4

Comparison of interpolation methods of GPS satellite DD ionospheric

Fig. 5.
figure 5

Comparison of interpolation methods of BEIDOU satellite DD ionospheric

In addition, by comparing the interpolation error of GPS and Beidou, it can be found that the interpolation error of Beidou is generally less than that of GPS. Considering that the value of double difference ionospheric delay has nothing to do with the type of satellite constellation itself, it is mainly related to the azimuth and orbit of the satellite. Here, Beidou satellites all choose geosynchronous orbit satellites (Beidou 01–04) and inclined geosynchronous orbit satellites. Therefore, it can be reasonably inferred that the interpolation accuracy of geosynchronous orbit and inclined geosynchronous orbit is better than that of medium orbit earth satellite.

Table 1. RMS Interpolation error of DD ionosphere for different satellites under three methods

6 Conclusion

This paper mainly studies the DD ionospheric delay interpolation algorithm based on Gaussian process regression. As the kernel is an important factor affecting the Gaussian process regression, a special kind of kernel is constructed according to the physical characteristics of the ionosphere and the mathematical form of the DD ionospheric delay. In addition to the geographic longitude and latitude coordinates of the target point, the input of this kernel also includes the difference between the longitude of the ionospheric pierce point and the longitude of the subsolar point. Compared with the traditional Kriging interpolation and linear interpolation algorithm which only uses single epoch data, it makes full use of the correlation between epochs. Based on the assumption of a simple kernel of zenith ionospheric delay, this paper derives the kernel of DD ionospheric delay according to its mathematical form. The experimental results show that the effect of Gaussian process regression interpolation using the kernel proposed in this paper is significantly better than that of the traditional Kriging and linear interpolation algorithm, and its accuracy is generally less than 1 cm. In addition, for all three methods, interpolation results of Beidou geosynchronous orbit satellite and inclined geosynchronous orbit satellite are better than that of GPS medium orbit satellite.