Introduction

The international GNSS service (IGS) has been providing an open-access real-time service (RTS) since 2013. The advent of IGS RTS products allows users to carry out real-time precise point positioning (RT-PPP) anywhere in the world. Currently, this service consists of the following three data streams: (1) IGS01/IGC01 stream, which is a single epoch GPS combination solution, (2) IGS02 stream, which is based on a Kalman filter GPS combination solution and (3) IGS03 stream, which is a Kalman filter combination solution with corrections for GPS and GLONASS (http://www.igs.org/rts/products). In addition to IGS combination orbits and clocks, some analysis centers (ACs), such as BKG, ESOC, CNES, NRCan, WUH, and GFZ, also provide individual RTS products which can be acquired from the RTS distribution centers (https://igs.bkg.bund.de/ntrip/orbits). The accuracy of RTS orbit is about 5 cm, and the real-time estimated clock has a standard deviation of 0.1–0.15 ns (http://www.igs.org/rts/monitor), which allows RT-PPP users to achieve high positioning performance.

Obviously, the availability of RTS products is vital for RT-PPP (Collins et al. 2005; Dixon 2006), potential correction data outages caused by caster malfunctioning or loss of network connection are a concern. During the outages of RTS correction streams, if no action is taken, the users would have no choice but to switch to single-point code-based positioning based on the GNSS broadcast ephemeris, which will result in a significant decrease in positioning accuracy.

It is worth to mention that most of the ACs presently adopt the IGS Ultra-rapid (IGU) orbits to generate the RTS orbit correction, while the satellite clock offsets are estimated by fixing the orbits (https://igs.bkg.bund.de/ntrip/orbits). This means that the IGU orbits are numerically compatible with RTS orbits provided by these ACs. In fact, the orbits of IGS RTS combination solutions, such as IGS01/IGC01, IGS02, and IGS03, have also been verified to have the same level of accuracy with IGU orbits (Hadas and Bosy 2015; Elsobeiey and Al-Harbi 2016; El-Mowafy et al. 2017). Thus, IGU orbits can be used as an alternative of RTS orbits during outages of RTS streams.

Regarding clocks, however, the IGU predicted clock offsets cannot work well due to their poor precision. The root mean square error (RMSE) of 24-h IGU predicted clock offsets is about 3 ns which amounts to 0.9 m when multiplied by the speed of light. Although the satellite clock biases can be absorbed by the ambiguity parameters in the PPP applications and the standard deviation (STD) may be more appropriate than RMSE for evaluating the precision of the clock products, the magnitude of the STD value is still as large as 1.5 ns (Griffiths and Ray 2009; Choi et al. 2013). Therefore, it is necessary to search for more precise clock prediction methods. Hadas and Bosy (2015) investigated extending short-time prediction of clock correction using polynomials of different orders to fit the recorded RTS clock correction data directly. El-Mowafy et al. (2017) adopted a model with polynomial and sinusoidal terms to fit the satellite RTS clock offsets and then predicted clock offsets from a few minutes to hours. But these methods do not work well if the discontinuity of RTS streams occurs shortly after the start of the RT-PPP processing because of lack of recorded RTS clock data to fit the proposed model or to predict clock offsets at a high precision. Even with a sufficient number of RTS corrections available, saving a large amount of received RTS clock data would also take up processor memory.

We focus on the short-time prediction of precise GPS satellite clock to support real-time PPP during the outages of RTS stream. An approach for GPS clock prediction is developed, where the prediction model is based on a linear polynomial and sinusoidal terms. Considering the high short-term stability of the onboard atomic frequency standard and similar periodically operational environment of GPS satellites, the coefficients of the linear and sinusoidal terms of the prediction model are estimated in advanced using epoch-differenced clock offsets from the IGU observed part, while the constant coefficient is computed with the latest RTS clock corrections. The proposed method has no requirement to save the received RTS data since clock prediction can be carried out even with only one epoch of RTS data available. The precision of clock predictions will not be related to the number of received RTS clock data, and a similar positioning performance can be achieved no matter when the discontinuity of RTS streams occurs. In the following, the prediction model is presented, and the process of parameter determination is discussed in detail. Then, the precision of clock predictions and positioning performance are evaluated and analyzed. Finally, summaries and conclusions are provided in the last section.

Methodology

We first present the clock prediction model used in our proposed method. Then, the detailed parameter determination process is given, including estimation of the linear and sinusoidal terms, as well as the calculation of the constant coefficient. As the constant coefficient is to be computed with the latest RTS clock correction, which might be an outlier, an outlier detection method for RTS clock data is also discussed.

Clock prediction model

The stability of an atomic clock is typically represented as frequency deviation and frequency drift. By applying integration with respect to time, the time offset/clock offset of GNSS satellite clock can be given as (Heo et al. 2010; Huang et al. 2014)

$$C\left( t \right) = a_{0} + a_{1} t + \frac{1}{2}a_{2} t^{2} + \varepsilon \left( t \right)$$
(1)

where \(a_{0}\) is the clock offset at the initial time, \(a_{1}\) and \(a_{2}\) represent the frequency deviation and drift, \(t\) is the time interval from the initial time, and \(\varepsilon \left( t \right)\) is a generic random noise process. Such a quadratic polynomial model is applied to predict clock offsets in the original GPS broadcast ephemeris (GPS-Directorate 2012). However, in fact, the quadratic clock terms are always zero, so the effective representation is linear (Senior et al. 2008; Hackman 2012). It is also suggested that the quadratic terms of the current major operational GPS satellites, including Block IIR and IIR-M satellites, could be ignored in the IGU clock prediction (http://acc.igs.org/mail_IGUclkpredicts_220502.txt). In addition to the linear term, the periodic variations, which may be caused by temperature change, should also be considered (Senior et al. 2008). A cyclic term is usually introduced to absorb possible periodic variations (Senior et al. 2008; Heo et al. 2010). So that, the following prediction model is adopted

$$C\left( t \right) = a_{ 0} + a_{ 1} t + Asin\left( {\frac{2\pi }{T}t + \varphi_{0} } \right) + \varepsilon \left( t \right)$$
(2)

in which \(A\) represents the amplitude, \(T\) is the period of the sinusoid, which equals to orbital period (http://acc.igs.org/mail_IGUclkpredicts_220502.txt), and \(\varphi_{0}\) is the initial phase of the sinusoid. The initial phase within the sinusoid term might make the fitting equations, formed by (2) at different epochs, difficult to estimate. By applying the formula \(\sin \left( {\frac{2\pi }{T} + \varphi_{0} } \right) = \sin \left( {\frac{2\pi }{T}} \right)\cos \varphi_{0} + \sin \varphi_{0} \cos \left( {\frac{2\pi }{T}} \right)\) Eq. (2) can be rewritten as

$$C\left( t \right) = \, a_{ 0} + a_{ 1} t + a_{\text{s}} sin\left( {\frac{2\pi }{T}t} \right) + a_{\text{c}} { \cos }\left( {\frac{2\pi }{T}t} \right) + \varepsilon \left( t \right)$$
(3)

where \(a_{\text{s}} = A\cos \varphi_{0}\) and \(a_{\text{c}} = A\sin \varphi_{0}\).

Parameter determination

By differencing two clock offsets over consecutive epochs \(t_{i}\) and \(t_{i + 1}\), we can obtain

$$\begin{aligned} C\left( {t_{i + 1} } \right) - C\left( {t_{i} } \right) = & a_{ 1} \left( {t_{i + 1} - t_{i} } \right) + a_{\text{s}} \left[ {sin\left( {\frac{2\pi }{T}t_{i + 1} } \right) - sin\left( {\frac{2\pi }{T}t_{i} } \right)} \right] \\ & + \;a_{\text{c}} \left[ {{ \cos }\left( {\frac{2\pi }{T}t_{i + 1} } \right) - \cos \left( {\frac{2\pi }{T}t_{i} } \right)} \right] + \varepsilon \left( {t_{i + 1} } \right) - \varepsilon \left( {t_{i} } \right) \\ \end{aligned}$$
(4)

Given high short-term stability of onboard satellite atomic frequency standard and similar periodic operational environment of GPS satellites, the linear and sinusoid terms \(a_{1}\), \(a_{\text{s}}\) and \(a_{c}\), are stable within a short period of time (Hesselbarth and Wanninger 2008; Heo et al. 2010; Hauschild et al. 2013); hence, it is reasonable to estimate these parameters in advance using the clock offsets obtained from the IGU observed part and extend RTS clocks using the estimated linear and sinusoid terms during RTS outages. The following equations can be formed with a series of epoch-differenced IGU clock offsets

$$\varvec{l} = \varvec{Bx} +\varvec{\varepsilon},\quad \varvec{Q}$$
(5)

where

$$\varvec{B} = \left[ {\begin{array}{*{20}l} {t_{2} - t_{1 } } \hfill & {{ \sin }\left( {\frac{2\pi }{T}t_{2} } \right) - \sin \left( {\frac{2\pi }{T}t_{1} } \right)} \hfill & {{ \cos }\left( {\frac{2\pi }{T}t_{2} } \right) - \cos \left( {\frac{2\pi }{T}t_{1} } \right)} \hfill \\ {t_{3} - t_{2} } \hfill & {\sin \left( {\frac{2\pi }{T}t_{3} } \right) - \sin \left( {\frac{2\pi }{T}t_{2} } \right)} \hfill & {{ \cos }\left( {\frac{2\pi }{T}t_{3} } \right) - \cos \left( {\frac{2\pi }{T}t_{2} } \right)} \hfill \\ \vdots \hfill & \vdots \hfill & \vdots \hfill \\ {t_{n} - t_{n - 1} } \hfill & {\sin \left( {\frac{2\pi }{T}t_{n} } \right) - \sin \left( {\frac{2\pi }{T}t_{n - 1} } \right)} \hfill & {\cos \left( {\frac{2\pi }{T}t_{n} } \right) - \cos \left( {\frac{2\pi }{T}t_{n - 1} } \right)} \hfill \\ \end{array} } \right],\quad \varvec{x} = \left[ {\begin{array}{*{20}l} {a_{1} } \hfill \\ {a_{s} } \hfill \\ {a_{c} } \hfill \\ \end{array} } \right]$$

represent the design matrix and the unknown parameter vector, respectively, and \(n\) is the number of IGU clock epochs. Further,

$$\varvec{l} = \left[ {\begin{array}{*{20}l} {C\left( {t_{2} } \right) - C\left( {t_{1} } \right)} \hfill \\ {C\left( {t_{3} } \right) - C\left( {t_{2} } \right)} \hfill \\ \vdots \hfill \\ {C\left( {t_{n} } \right) - C\left( {t_{n - 1} } \right)} \hfill \\ \end{array} } \right]\text{,}\;\varvec{\varepsilon}= \left[ {\begin{array}{*{20}l} {\varepsilon \left( {t_{2} } \right) - \varepsilon \left( {t_{1} } \right)} \hfill \\ {\varepsilon \left( {t_{3} } \right) - \varepsilon \left( {t_{2} } \right)} \hfill \\ \vdots \hfill \\ {\varepsilon \left( {t_{n} } \right) - \varepsilon \left( {t_{n - 1} } \right)} \hfill \\ \end{array} } \right]$$

are the epoch-differenced clock offset vector and the epoch-differenced error vector. \(\varvec{Q}\) is the variance–covariance matrix, where a tridiagonal matrix will be obtained. By applying the least-square method, the unknown parameters can be estimated as

$$\hat{\varvec{x}} = \left( {\varvec{B}^{\text{T}} \varvec{Q}^{ - 1} \varvec{B}} \right)^{ - 1} \varvec{B}^{\text{T}} \varvec{Q}^{ - 1} \varvec{l}$$
(6)

The residual vector is given as

$$\varvec{v} = \varvec{B\hat{x}} - \varvec{l}$$
(7)

The standard deviation of unit weight can be computed by

$$\hat{\sigma }_{ 0} = \sqrt {\frac{{\varvec{v}^{\text{T}} \varvec{Q}^{ - 1} \varvec{v}^{\text{T}} }}{n - 4}}$$
(8)

and the posterior variance–covariance matrix of unknown parameters can be expressed as

$$\varvec{D} = \hat{\sigma }_{ 0}^{ 2} \left( {\varvec{B}^{\text{T}} \varvec{Q}^{ - 1} \varvec{B}} \right)^{ - 1}$$
(9)

Similarly, differencing clock offsets at the origin of prediction \(t_{\text{op}}\) and at a clock prediction time \(t_{\text{op}} + \Delta t\), where \(\Delta t\) represents the time interval from the origin of prediction, we can obtain

$$C\left( {t_{\text{op}} + \Delta t} \right) - C\left( {t_{\text{op}} } \right) = a_{ 1} \Delta t + a_{\text{s}} f_{\text{s}} \left( {t_{\text{op}} + \Delta t} \right) + a_{\text{c}} f_{\text{c}} \left( {t_{\text{op}} + \Delta t} \right)$$
(10)

\(C\left( {t_{\text{op}} } \right), C\left( {t_{\text{op}} + \Delta t} \right)\) are clock offsets at the origin of prediction and the clock prediction time, and

$$\left\{ {\begin{array}{*{20}c} {f_{\text{s}} \left( {t_{\text{op}} + \Delta t} \right) = \sin \left( {\frac{2\pi }{T}t_{\text{op}} + \frac{2\pi }{T}\Delta t} \right) - \sin \left( {\frac{2\pi }{T}t_{\text{op}} } \right)} \\ {f_{\text{c}} \left( {t_{\text{op}} + \Delta t} \right) = { \cos }\left( {\frac{2\pi }{T}t_{\text{op}} + \frac{2\pi }{T}\Delta t} \right) - \cos \left( {\frac{2\pi }{T}t_{\text{op}} } \right)} \\ \end{array} } \right.$$
(11)

Notice that clock offset error is ignored in (10).

If we choose one epoch of received RTS clock data as the origin of clock prediction, along with the estimated linear and sinusoid terms, we can predict satellite clock offsets. The predicted clock offset is given as

$$C\left( {t_{\text{op}} + \Delta t} \right) = C\left( {t_{\text{op}} } \right) + \hat{a}_{ 1} \Delta t + \hat{a}_{\text{s}} f_{\text{s}} \left( {t_{\text{op}} + \Delta t} \right) + \hat{a}_{\text{c}} f_{\text{c}} \left( {t_{\text{op}} + \Delta t} \right)$$
(12)

Denoting \(a_{0} \left( {t_{\text{op}} } \right) = C\left( {t_{\text{op}} } \right) - \hat{a}_{\text{s}} \sin \left( {\frac{2\pi }{T}t_{\text{op}} } \right) - \hat{a}_{c} \cos \left( {\frac{2\pi }{T}t_{\text{op}} } \right)\) Eq. (12) can be rewritten as

$$C\left( {t_{\text{op}} + \Delta t} \right) =\, a_{ 0} \left( {t_{\text{op}} } \right) + \hat{a}_{ 1} \Delta t + \hat{a}_{\text{s}} sin\left[ {\frac{2\pi }{T}\left( {t_{\text{op}} + \Delta t} \right)} \right] + \hat{a}_{\text{c}} { \cos }\left[ {\frac{2\pi }{T}\left( {t_{\text{op}} + \Delta t} \right)} \right]$$
(13)

which is similar to (3) in the form of expression. From (12), we can see that the precision of the predicted clock offset is mainly determined by the following factors:

  1. a.

    The precision of RTS clock offset at the origin of prediction. The continuous history of the performance of the IGS RTS product shows that it has been very stable with clock standard deviations of 0.1–0.15 ns since the spring of 2011 (http://www.igs.org/rts/monitor).

  2. b.

    The precision of the estimates \(\hat{a}_{1}\), \(\hat{a}_{s}\), \(\hat{a}_{c}\) and the applicability of the estimation during the prediction period. The precision of the estimates can be calculated from (9), the high stability of onboard satellite atomic frequency standard and similar periodic operational environment of GPS satellites can also guarantee the short-term consistency of these estimates (Hesselbarth and Wanninger 2008; Heo et al. 2010; Hauschild et al. 2013).

  3. c.

    The time interval from the origin of prediction. To shorten this time interval, we better choose the latest RTS clock correction.

The precision of the predicted clock offset can be approximately computed using the following equation:

$$\hat{\sigma }_{{C\left( {t_{\text{op}} + \Delta t} \right)}} = \sqrt {\sigma_{{C\left( {t_{\text{op}} } \right)}}^{ 2} + \varvec{KDK}^{\text{T}} }$$
(14)

where \(\sigma_{{ C\left( {t_{\text{op}} } \right)}}\) represents the precision of initial phase deviation at the origin of prediction, and \(\varvec{K} = \left[ {\begin{array}{*{20}c} {\Delta t } & {f_{\text{s}} \left( {t_{\text{op}} + \Delta t } \right)} & {f_{\text{c}} \left( {t_{\text{op}} + \Delta t } \right)} \\ \end{array} } \right]\).

Figure 1 shows the detailed flowchart of parameter determination. Given that the IGU products are released four times per day, at about 03:00, 09:00, 15:00, and 21:00 UTC related to the prediction origins at 00:00, 06:00, 12:00 and 18:00 UTC (http://acc.igs.org), the estimation of the linear and sinusoid terms is only implemented for each IGU update, and there are only four times needed in a whole day. Clock prediction can be carried out with the saved estimates in case that the discontinuity in receiving RTS products occurs.

Fig. 1
figure 1

Detailed flowchart of parameter determination

Compared with the IGU clock prediction method, the proposed method can predict clock offset with a much better precision, although the same prediction model is adopted. The reason is that the errors of predicted clock offsets accumulate from the last observed epoch, which is at least 3 h away for the IGU product, while the errors accumulate from the latest epoch of RTS clock correction using our proposed method. Compared with those existing methods which fit the prediction model with received RTS clock data, the proposed method has no requirement to save received RTS data. This is because the coefficients of linear and sinusoidal terms are estimated in advance with the epoch-differenced clock offsets from the IGU observed part, and the clock prediction can be carried out with only one epoch of RTS clock correction.

Outlier detection of RTS clock data

RTS clock correction provided by a single AC suffers from outliers, which is an abrupt jump in an individual epoch (Chen et al. 2017). Therefore, outlier detection is needed before using the epoch of RTS clock to perform clock prediction. Otherwise, it would decrease the quality of the predicted clock.

Unlike clock offsets in the observed part of IGU product, in the IGS rapid and final clock products, which are estimated in the post-processing mode with the undifferenced pseudorange and phase observations, the estimation method of most RTS clock offsets provided by individual AC is based on epoch-differenced observations (Weber et al. 2007; Mervart et al. 2008; Ge et al. 2009). Given that the epoch-differenced clock offset is involved, an initial clock must be introduced to recover the undifferenced clock offset. The initial clock is usually estimated with pseudorange observations at the initialization time. Due to the limited accuracy of the pseudorange observations, there is a systematic bias, called initial clock bias, between the estimated initial clock and the precise value (Zhang et al. 2011; Ge et al. 2012). However, if one satellite is reinitialized, the initial clock should be recalculated, and this would lead to an initial clock bias jump (Mervart and Weber 2011; Chen et al. 2017). In addition, for a specific epoch, all satellite clock offsets should be estimated relative to a time reference. There also exists a divergence between the time reference introduced in RTS clock and the precise time reference. This divergence is known as time reference offset, and it varies from one epoch to another (Mervart and Weber 2011; Chen et al. 2017). So that, RTS clock can be modeled as

$$Clk^{\text{s}} = C^{\text{s}} + B^{\text{s}} + O$$
(15)

where the superscript \({\text{s}}\) represents the satellite, \(CLK^{\text{s}}\) is the RTS clock time offset, \(C^{\text{s}}\) represents the phase deviation, \(B^{\text{s}}\) is the satellite-specific initial clock bias, and \(O\) is the time reference offset.

The time reference offset can be removed by making a differencing between two satellites \(i\) and \(j\), such as

$$Clk^{i,j} = C^{i,j} + B^{i,j}$$
(16)

Furthermore, differencing between epochs can also be carried out

$$\Delta Clk^{i,j} = \Delta C^{i,j} + \Delta B^{i,j}$$
(17)

where \(\Delta\) represents the epoch-differencing operator. Usually, the initial clock biases of a series of continuous epochs are same or nearly same, which means \(\Delta B^{i,j} = 0\), except when there exists an initial clock bias jump (Mervart and Weber 2011; Chen et al. 2017). As to epoch-differenced phase deviations, the variations are dominated by the atomic clock frequency, which is stable within a short period of time (Hesselbarth and Wanninger 2008; Hauschild et al. 2013). The average and standard deviation of epoch-differenced inter-satellite RTS clock offsets can be calculated in a recursive way

$$\mu^{i,j} \left( {t_{n} } \right) = \mu^{i,j} \left( {t_{n - 1} } \right) + \frac{1}{n}\left[ {\Delta Clk^{i,j} \left( {t_{n} } \right) - \mu^{i,j} \left( {t_{n - 1} } \right)} \right]$$
(18)

and

$$\left\{ {\begin{array}{*{20}l} {\gamma^{i,j} \left( {t_{n} } \right) = \gamma^{i,j} \left( {t_{n - 1} } \right) + \frac{1}{n}\left[ {\Delta Clk^{i,j} \left( {t_{n} } \right) \cdot \Delta Clk^{i,j} \left( {t_{n} } \right) - \gamma^{i,j} \left( {t_{n - 1} } \right)} \right]} \hfill \\ {\sigma^{i,j} \left( {t_{n} } \right) = \sqrt {\gamma^{i,j} \left( {t_{n} } \right) - \mu^{i,j} \left( {t_{n} } \right) \cdot \mu^{i,j} \left( {t_{n} } \right)} } \hfill \\ \end{array} } \right.$$
(19)

where \(\mu^{i,j} \left( {t_{n} } \right)\) is the average of epoch-differenced inter-satellite RTS clock offsets, \(\gamma^{i,j} \left( {t_{n} } \right) = \frac{1}{n}\mathop \sum \nolimits_{k = 1}^{n} \left[ {\Delta CLK^{i,j} \left( {t_{k} } \right) \cdot \Delta CLK^{i,j} \left( {t_{k} } \right)} \right]\) is the averaged square value of epoch-differenced inter-satellite RTS clock offsets, and \(\sigma^{i,j} \left( {t_{n} } \right)\) represents the standard deviation of epoch-differenced inter-satellite RTS clock offsets. We recommend performing average calculation with a sliding window. Once the epoch number is larger than the predefined width of the sliding window, denoted as \(len\), the following formulas should be used instead of (18) and (19),

$$\mu^{i,j} \left( {t_{n} } \right) = \mu^{i,j} \left( {t_{n - 1} } \right) + \frac{1}{len}\left[ {\Delta Clk^{i,j} \left( {t_{n} } \right) - \mu^{i,j} \left( {t_{n - 1} } \right)} \right]$$
(20)

and

$$\gamma^{i,j} \left( {t_{n} } \right) = \gamma^{i,j} \left( {t_{n - 1} } \right) + \frac{1}{len}\left[ {\Delta Clk^{i,j} \left( {t_{n} } \right) \cdot \Delta Clk^{i,j} \left( {t_{n} } \right) - \gamma^{i,j} \left( {t_{n - 1} } \right)} \right]$$
(21)

If the epoch-differenced inter-satellite RTS clock offset \(\Delta CLK^{i,j} \left( {t_{n} } \right)\) satisfies the following formula:

$$\left| {\Delta Clk^{i,j} \left( {t_{n} } \right) - \mu^{i,j} \left( {t_{n - 1} } \right)} \right| > f \cdot \sigma^{i,j} \left( {t_{n - 1} } \right)$$
(22)

the inter-satellite RTS clock offset \(Clk_{\text{AC}}^{i,j}\) could be considered as an anomaly, where \(f\) is the scalar threshold. We recommend setting the threshold as 3, which means 0.3% significance level if characterizing the statistic \(\left( {\Delta CLK^{i,j} - \mu^{i,j} } \right)/\sigma^{i,j}\) as a normal distribution. To further verify that which satellite’s RTS clock offset is an anomaly, the inter-satellite RTS clock offset \(\Delta CLK^{i,k}\) and \(\Delta CLK^{j,k}\), where \(k\) is another satellite, should also be examined. If \(\Delta CLK^{i,k}\) is recognized as an anomaly, then \(CLK^{i}\) is an anomaly clock offset value. If \(\Delta CLK^{j,k}\) is recognized as an anomaly, the same conclusion can be drawn for the clock offset \(CLK^{j}\). There are two cases which might result in such an anomaly, one is that the inter-satellite RTS clock offset is an outlier, and the other is an initial clock bias jump arises in the RTS clock offset of the satellite. Suppose the clock offsets of PRN \(i\) from \(t_{n - T}\) to \(t_{n}\) are all suspicious, it should be considered that the initial clock bias jump occurs at \(t_{n - T}\), the average and standard deviation of epoch-differenced inter-satellite RTS clock offsets need to be reinitialized starting at \(t_{n - T}\), where \(T\) is the waiting time. The latter is recommended to be set as 120 s (Chen et al. 2017). Otherwise, the RTS clock offset is an outlier and it should not be used to predict clock offsets.

Results and analysis

IGS03 RTS stream data had been collected from February 4–10, 2017 (day of year 035–041). The internet network had almost remained in connection status during the whole period of 7 days. The availability of the received IGS03 stream is given in Table 1. It shows that the availability is as high as 99.97% and the sum of the outage times is merely 3 min and 10 s.

Table 1 Availability summary of the collected IGS03 RTS data

In order to assess the performance of the proposed clock prediction method, outages are simulated with four different schemes, where the IGS03 real-time corrections are assumed to be received at a fixed time interval. The first epoch of RTS data for each scheme is assumed to be 00:00:00 every day, and the simulated RTS data gaps of the four schemes are 1 h, 30, 15 and 5 min, respectively. Thus, the number of outage arcs per day is 24, 48, 96 and 288 for the four schemes. During the simulated outages, the clock offsets are predicted with the proposed method. The four predicted clock schemes are denoted as Predicted Clock Scheme 1, 2, 3, 4 with respect to RTS data gaps of 1 h, 30, 15 and 5 min, respectively. Finally, the precision of the different predicted clock offsets and positioning performance of real-time PPP are investigated and analyzed.

Quality analysis of predicted clock offsets

To evaluate the quality of predicted clock offsets, the differences between the predicted clock offsets and the IGS03 RTS clock offsets are calculated. Figure 2 shows the differences between the four kinds of predicted clock offsets and the RTS clock offsets. In all four predicted clock schemes, the differences are typically within 0.5 ns. Obviously, these differences increase with the increase in predicted time. Figure 3 presents the statistics of clock differences. In the four different predicted clock schemes, the mean values of all satellites are within ± 0.08 ns and STDs for all satellites, except for G08 and G24, are less than 0.40 ns. Larger STDs of clock differences for G08 and G24 may be attributed to the worse stability of the Cs atomic clock. The averaged mean values of clock differences are − 0.0069, − 0.0034, − 0.0015 and − 0.0005 ns, and the averaged STD values are 0.224, 0.174, 0.146 and 0.109 ns for the Predicted Clock Scheme 1, 2, 3 and 4, respectively.

Fig. 2
figure 2

Clock differences of four predicted clock schemes with respect to IGS03 RTS clocks

Fig. 3
figure 3

Mean values and standard deviations of clock differences calculated with four kinds of predicted clock offsets with respect to IGS03 RTS clock offsets for each GPS satellite

Considering that the precision of RTS clock offsets is not very high, in order to further evaluate the precision of the predicted clock offsets, we calculate the differences between the predicted clock offsets and the precise values obtained from the 5 s CODE final clock products. These differences are typically larger than the inherent precision of the clock predictions, due to the different underlying realization of the specific time scales or time references. However, the time reference offsets affect all GPS satellites in the same manner and vary from epoch to epoch. To eliminate this systematic bias, the averaged predicted-minus-precise clock offset value of all common GPS satellites is computed, and the individual clock offset differences are corrected with this average at each epoch (Montenbruck et al. 2015). For comparison, similar procedures are also implemented for IGU predicted clock offsets and IGS03 RTS clock offsets.

Figure 4 shows the clock differences calculated with IGU predicted clock offsets, predicted clock offsets in the four simulated schemes mentioned above, and IGS03 RTS clock offsets, with respect to 5 s CODE final clock products, on February 10, 2017. It should be noticed that a different scale range is used when plotting IGU-minus-CODE clock differences. The clock differences of most satellites for the IGU predicted clock scheme are less than 3 ns, but the clock differences of G08 and G24 are much worse than those of others. In addition, significant jumps can be seen at the time of each IGU product update. The precision of clock offsets in the four predicted clock schemes is apparently better than that of IGU predicted clock offsets. As the RTS data gap decreases, the clock differences become significantly smaller. But large clock differences can still be seen in the clock predictions of G08 and G24, especially the latter. The clock differences in the RTS clock scheme are smallest in all schemes, and no significant precision difference can be seen even for G08 and G24.

Fig. 4
figure 4

Clock differences calculated with different clock schemes with respect to CODE 5 s clock products

As mentioned in the introduction, the satellite clock biases can be absorbed by the ambiguity parameters in PPP applications, and thus, the STD is more appropriate for evaluating the precision of clock offsets. The STDs of clock differences from February 4 to 10 for each GPS satellites are calculated and shown in Fig. 5. The STD values are typical within 1.5 ns for IGU predicted clock offsets, except for G08, G24, and G28. However, apart from G08 and G24, the STD values of the predicted clock offsets in the four predicted clock schemes are about 0.15–0.2 ns. The precision of the predicted clock offsets is slightly worse than that of RTS clock offsets, especially in the fourth predicted clock scheme.

Fig. 5
figure 5

Standard deviations of clock differences calculated with different clock schemes with respect to CODE 5 s clock products for each satellite

The averaged STDs of clock differences over the whole constellation for each day are calculated. Given the precision of clock offsets of G08 and G24 in the IGU predicted clock and four predicted clock schemes are much worse than others, these two satellites are excluded. The detailed statistics are shown in Table 2. The mean of STDs of IGU predicted clock offsets is 0.535 ns, while the corresponding values in Predicted Clock Scheme 1, 2, 3, 4 and RTS clock scheme are 0.206, 0.180, 0.168, 0.146 and 0.103 ns, which are all smaller than half of the mean of STDs of clock differences in the IGU predicted clock scheme.

Table 2 Averaged standard deviations of clock differences calculated with different clock schemes with respect to CODE 5 s clock products over the remaining satellites after excluding G08 and G24

Positioning results and analysis

Observations were collected from 40 globally distributed IGS stations (Fig. 6). Based on the IGU predicted orbit and the predicted clock offsets, real-time PPP was carried out using Kalman filter to evaluate the positioning accuracy during RTS stream outages. Notice that real-time PPP was simulated by processing the collected data in the post mode. The positions are estimated independently epoch-by-epoch, which is similar to the estimation of the position in the kinematic PPP mode. Table 3 shows the data processing details.

Fig. 6
figure 6

Distribution of selected 40 stations

Table 3 Strategies for simulated real-time PPP

The sampling interval of observations is 30 s and the observing time is from 00:00:00 of February 4 to 23:29:30 of February 10 in GPS time. Similarly, a total of six clock schemes, including IGU predicted clock offsets, the four kinds of predicted clock offsets mentioned in the preceding section, and IGS03 RTS clock offsets are adopted to implement simulated real-time PPP. The IGU predicted orbits are used in the first five schemes, and IGS03 RTS orbits are directly adopted in the RTS clock scheme.

The ionospheric-free (IF) combinations of GPS L1 and L2 observations are used, and the cutoff elevation is set to 10°. All errors related to the satellite, propagation path and ground station are carefully considered. The following stochastic model (Takasu 2013) is applied

$$\sigma^{ 2} = \frac{{a^{ 2} }}{{{ \sin }^{ 2} \left( {el} \right)}} + b^{ 2} + c^{ 2}$$
(23)

where \(a\) is the measurement noise in zenith direction, the values of 1 m and 0.01 m are used for the undifferenced IF code and phase combination, respectively \(. el\) denotes the elevation, \(b\) represents the equivalent User Ranging Error (URE) of orbit error, and \(b\) is set to 0.02 m for all schemes in this study. \(c\) is the equivalent URE of clock error; the values of 0.15 and 0.03 m are used in the IGU predicted clock scheme and IGS03 RTS clock scheme, while the equivalent UREs for four predicted clock schemes are computed with (14). The estimated parameters contain coordinates, receiver clock bias, zenith wet tropospheric delay, and ambiguities. At the beginning of each day, all parameters would be reinitialized. The precise coordinates from the CODE SINEX solutions are used as references for performance analysis.

Figure  7 shows the positioning errors of simulated real-time PPP with the observations of station ARTU (56.43°, 58.56°E) on February 10, 2017. The reason we choose this station is that it is listed as the first among the selected 40 IGS stations as sorted by name in the order of A–Z. The results indicate that, after a convergence of about 1 h, the positioning accuracy in East, North, and Up are generally within 0.5, 0.4, 0.3 and 0.2 m for the four predicted clock schemes. The positioning accuracy of the fourth predicted clock scheme, which is assumed to receive RTS data at a time interval of 5 min, is just slightly worse than the positioning accuracy directly with IGS03 RTS data. However, positioning errors larger than 1 m can still be seen in the IGU predicted clock scheme even after more than 1-h convergence time.

Fig. 7
figure 7

Positioning errors of simulated real-time PPP for six clock schemes, with the observations of ARTU on February 10, 2017. Here IGU and RTS represent IGU predicted clock and RTS clock schemes; 1 h, 30, 15 and 5 min denote four predicted clock schemes, where the RTS data gaps are 1 h, 30, 15 and 5 min

To further demonstrate the positioning performance of six clock schemes at station ARTU, the horizontal and vertical positioning errors of the whole 7 days are presented. Figure 8 shows the horizontal positioning errors, noticing that the positioning results within a convergence time of 1 h are removed each day. The RMSEs of positioning errors are 0.102, 0.091, 0.076, 0.064 m in East direction and 0.116, 0.102, 0.085, 0.056 m in North direction for four predicted clock schemes, respectively. In the IGU predicted clock scheme, the RMSEs of positioning errors are 0.269 m in East direction and 0.246 m in North direction. These values are about twice as large as the corresponding RMSEs in the Predicted Clock Scheme 1; the differences are much larger while compared with other predicted clock schemes. RMSEs of 0.041 m in East direction and 0.045 m in North direction are obtained by using IGS03 RTS data. It is obvious that the horizontal positioning errors obtained with IGS03 RTS data are only slightly better than those achieved by using the Predicted Clock Scheme 3 and 4. Figure 9 presents the distribution of vertical positioning errors of the whole 7 days at station ARTU; similarly, the results of the first hour each day are also removed. The averaged positioning biases in Up direction are all within 0.015 m for four predicted clock schemes and the RTS clock scheme, the STDs are 0.227, 0.187, 0.155, 0.114 and 0.098 m, respectively, while an average positioning bias of − 0.079 m and a STD of 0.643 m in Up direction are achieved in the IGU predicted clock scheme.

Fig. 8
figure 8

Horizontal positioning errors of simulated real-time PPP for six orbit and clock schemes with the observations of ARTU from February 4–7, 2017. The positioning results within a convergence time of 1 h are excluded each day

Fig. 9
figure 9

Vertical positioning errors of simulated real-time PPP for six orbit and clock schemes with the observations of ARTU from February 4–10, 2017. The results within the beginning of 1 h are also excluded each day

Figure 10 shows RMSEs of positioning errors in East, North and Up directions using six different clock schemes at 40 stations. It can be seen that the RMSEs in the four predicted clock schemes are significantly less than those in the IGU predicted clock scheme. The RMSEs in the predicted clock schemes with a short period of outage time, e.g., 5 min, are slightly larger than those in the RTS clock scheme. When the time of outage increases, the positioning accuracy also becomes significantly worse. However, even as the RTS data gap reaches up to 1 h, the positioning errors in North, East and Up direction are less than half that of the IGU predicted clock offsets.

Fig. 10
figure 10

RMSEs of positioning errors in East, North and Up for six orbit and clock schemes at all selected 40 IGS stations from February 4–10, 2017. The station number is sorted by name in the order of A–Z. Notice that RT-PPP results within a convergence time of 1 h are excluded each day

Table 4 presents the averaged RMSEs of positioning errors over 40 stations for six clock schemes. An averaged three-dimensional (2D) RMSE of 0.167, 0.141, 0.121 and 0.099 m, and an averaged three-dimensional (3D) RMSE of 0.298, 0.257, 0.218 and 0.171 m are achieved for four predicted clock schemes, respectively, while the averaged 2D-RMSE is 0.353 m and the averaged 3D-RMSE is 0.615 m for the IGU predicted clock scheme. These results reveal that the short-term (< 1 h) predicted clock offsets using the proposed method are significantly superior to the IGU predicted clock offsets. In addition, the average 2D and 3D RMSE are 0.078 and 0.136 m in the RTS clock scheme, which is slightly better than the results in the fourth predicted clock scheme.

Table 4 Averaged RMSEs of positioning errors over 40 stations for six clock schemes, respectively

Summary and conclusions

An approach for GPS clock prediction is proposed, where the prediction model is based on linear polynomial and sinusoidal terms. The coefficients of the linear and sinusoidal terms are determined by using the epoch-differenced clock offsets from the IGU observed part, while the constant coefficients are computed with the latest RTS clock corrections. In the proposed method, there is no need to save the received RTS data, and the clock prediction can be carried out even with only one epoch of RTS data available.

The numerical results show that the precision of the short-term (1 h) predicted clock offsets by using the proposed method is 0.1–0.25 ns and the precision decreases with increasing prediction time. When the prediction time is within 5 min, the precision of the predicted clock offsets is only slightly worse than that of the IGS03 RTS clock offsets. When the predicted time reaches up to 1 h, the precision is about 0.2–0.25 ns, which is still higher than the precision of the IGU predicted clock offsets by about 50%. The results of simulated real-time PPP implemented in 40 globally distributed stations over 7 days verified the above conclusions. The averaged positioning accuracy when the prediction time is within 5 min is a little worse than what is achieved with RTS clock data. Even with the predicted clock offsets when the prediction time reaches up to 1 h, the averaged positioning errors in North, East and Up direction are still less than half of those obtained with IGU predicted clock offsets.