Introduction

Since the advent of real-time (RT) service launched by the International GNSS Service (IGS) in 2013, the RT Precise Point Positioning (PPP) technique (https://igs.org/rts/) has been demonstrated as a promising tool for various real-time applications, for example, precise positioning of smartphones (Laurichesse et al. 2017; Li et al. 2022), self-driving cars (Elsheikh et al. 2019; Knoop et al. 2017), and unmanned aerial vehicle (Ragauskas et al. 2017). Precise orbits and clocks are essential for RT-PPP applications. For most of IGS real-time analysis centers (ACs), satellite orbits are usually estimated in a batch solution and predicted for a few hours (Chen et al. 2021; Lutz et al. 2014; Springer and Hugentobler 2001), and satellite clocks are estimated via a filter (Laurichesse et al. 2013; Zuo et al. 2021) and updated every five seconds (https://igs.bkg.bund.de/ntrip/). The high-rate update, e.g., five seconds of RT clocks stems from the fact that the satellite clocks can hardly be predicted accurately over a long arc (Griggs et al. 2015; Senior et al. 2008). It thus, on the one hand, guarantees the high precision of clocks, and on the other hand, causes heavy burden for both data analysis and communicating. The availability of real-time clocks is thus critical for users, and any disruption of the real-time streaming data would degrade the robustness and reliability of real-time services. (Collins et al. 2005).

Both caster malfunctioning and network connection loss can cause correction data outages in a short or long time. Douša et al. (2018) indicate that the mean availability of IGS corrections at the user provided by IGS01, IGS02, and IGS03 is barely over 90% during 2013–2017. For the situation suffering poor signal coverage or the temporary offline, the stable correction transformation is not available. If no further action is taken, the users would have no choice but to switch to precision point positioning based on the GNSS broadcast ephemeris, which will result in a significant decrease in positioning accuracy even though the orbit and clock errors are compensated by functional models.

One possible solution to mitigate the dropout of real-time products is to use predicted clocks based on the previously received products, for example, using short-term clock predictions (Nie et al. 2017; Zhao et al. 2019). Based on the different clock prediction models, the one-hour prediction accuracy for GPS is better than 0.35 ns, while for Galileo is better than 0.1 ns (Ge et al. 2021; Huang et al. 2013; Wang et al. 2020; Wu et al. 2018). The corresponding kinematic PPP accuracy in each component is better than 0.2 m, without significant accuracy degradation (Lv et al. 2017; Peng et al. 2019; Yang et al. 2017).

Currently, the predicted clock mainly serves as supplementary information for PPP clients in the case of short-term interruption of RT correction streams. The positioning accuracy with predicted clocks is practically limited by (a) the stability of satellite clocks; (b) the batch processing time for predicted orbits, costing more than one hour (https://igs.org/mgex/data-products). Many studies have confirmed that the quality of predicted clocks is highly related with characteristics of onboard atomic clocks, even though they are equipped with the same type of clock (Ai et al. 2021; Senior et al. 2008; Wu et al. 2018). With newly deployed Galileo and BDS constellations, as well as the modernized GPS constellation, many more satellites with stable clocks are available, for example, the modified Allan deviation for Galileo satellites at 50 s is one order of magnitude better than legacy GPS and GLONASS, as a passive hydrogen maser (PHM) usually shows low frequency drift of onboard atomic clocks (Griggs et al. 2015). Some studies pointed out that assigning the proper observation weighting schemes for different types of satellite clocks, especially for situation with multi-GNSS could improve the positioning quality (Hadas et al. 2019; Kazmierski et al. 2018). Supported by these works, the broadcast-based PPP models are demonstrated to be feasible with an explicit parameter to compensate for the remaining errors of signal-in-space range error (SISRE) for each satellite (Carlin et al. 2021; Chen et al. 2022).

Thus, together with the proposed epoch-parallel processing strategy, which shortens the orbit update interval to 30 min (Tang et al. 2023), we investigate the feasibility of RT-PPP with predicted orbits and clocks derived from batch processing products and focus on the weighting of different types of satellites without setting up additional parameters. In the following, the strategies of generating predicted orbits and clocks are first described. According to the analysis of signal-in-space range error (SISRE) of multi-GNSS to characterize the quality of predicted orbits and clocks, different weighting strategies are then presented. Subsequently, practical tests with 62 IGS stations are presented to assess the accuracy of PPP using predicted orbits and clocks.

Methodology

This section presents the basic GNSS observation equations and the weighting strategy in a general case. As this work focuses on RT-PPP using predicted orbits and clocks, we introduce the orbit and clock prediction strategies after the introduction of GNSS observation equations. We then briefly discuss the method to estimate biases in predicted orbits and clocks to overcome their impact in PPP (Carlin et al. 2021; Gunning et al. 2019). At last, we present a new strategy to weight observations in real-time PPP according to the quality of the predicted orbits and clocks for each individual satellite type.

GNSS observation equations

In PPP, the functional models of pseudorange and carrier phase observations rely on precise calibrations or models to eliminate unknown terms in the equation. Considering the standard models for code and phase measurements (Kouba et al. 2017), dual-frequency ionosphere-free observables from satellite to receiver are described by

$$\begin{array}{*{20}l} {P = \left| {{\mathbf{X}}^{{{\text{sat}}}} - {\mathbf{X}}_{{{\text{rec}}}} } \right| + c\left( {\tau_{{{\text{rec}}}} - \tau^{{{\text{sat}}}} } \right) + t_{{{\text{trop}}}} + \varepsilon_{P} } \hfill \\ {L = \left| {{\mathbf{X}}^{{{\text{sat}}}} - {\mathbf{X}}_{{{\text{rec}}}} } \right| + c\left( {\tau_{{{\text{rec}}}} - \tau^{{{\text{sat}}}} } \right) + t_{{{\text{trop}}}} + N_{{{\text{rec}}}}^{{{\text{sat}}}} + \varepsilon_{L} } \hfill \\ \end{array}$$
(1)

where \(P\) and \(L\) denote code and phase observations, in meters, respectively; \({\mathbf{X}}^{{{\text{sat}}}}\) and \({\mathbf{X}}_{{{\text{rec}}}}\) are the satellite and receiver position vector at the signal transmitting and receiving time, respectively, both in terrestrial reference system (TRS); \(c\) is the speed of light in vacuum; \(\tau_{{{\text{rec}}}}\) is the receiver clock offset; \(\tau^{{{\text{sat}}}}\) is the satellite clock offset; \(t_{{{\text{trop}}}}\) is the tropospheric delay; \(N_{{{\text{rec}}}}^{{{\text{sat}}}}\) is the phase ambiguity; \(\varepsilon_{p}\) and \(\varepsilon_{l}\) are the combined measurement noise and other unmodeled errors for the code and phase observations, respectively. The inter-system/frequency-dependent code biases relative to the GPS biases at the receiver are also considered in multi-GNSS solutions. In our study, the satellite position \({\mathbf{X}}^{{{\text{sat}}}}\) and clock offset \(\tau^{{{\text{sat}}}}\) come from predicted orbits and clocks, respectively, while other parameters, including the receiver position, receiver clock offset, tropospheric delay and ambiguity, are estimated. After considering all errors related to the satellite, propagation path, and ground station, the following stochastic model is applied (Takasu 2013)

$$\sigma^{2} = \frac{{\sigma_{{{\text{obs}}}}^{2} }}{{{\text{sin}}^{2} \left( {{\text{elev}}} \right)}} + \sigma_{{{\text{orb}}}}^{{2}} + \sigma_{{{\text{clk}}}}^{{2}}$$
(2)

where \(\sigma_{{{\text{obs}}}}\) denotes the constant observation noise, 1 m for pseudorange and 1 cm for phase observations, respectively. \({\text{elev}}\) is the elevation angle and the term \({\text{sin}}^{2} \left( {{\text{elev}}} \right)\) considers the mismodeling effects and multi-path for observation at low elevation angle. To further consider the impact of satellite orbits and clocks, we include the terms of \(\sigma_{{{\text{orb}}}}\) and \(\sigma_{{{\text{clk}}}}\). Note that the last two terms can be ignored in most post- or real-time processing where the precise satellite orbits and clocks are available. It would not cause any problem as long as the quality of orbits and clocks of each satellite is comparable. However, if the performance of different satellites differs with each other significantly, for example, in a multi-GNSS solution where a certain type of satellite yields poorer quality, it is necessary to properly downweight them to avoid any degradation to the solution (Kazmierski et al. 2018; Kiliszek et al. 2022).

Satellite orbit prediction

In the batch-processed rapid POD solution, one batch product contains an estimated arc and a predicted arc, and each batch solution is updated, for example, every three hours (Deng and Schuh 2018). The update scheme is shown in Fig. 1. As the quality of predicted orbits decreases with a longer prediction arc, it is necessary to shorten the POD computation time, that is, the users can access the arc closer to the estimated orbit with better quality. The epoch-parallel processing strategy for multi-GNSS POD processing proposed by Tang et al. (2023) enables an update rate of 30 min, meaning that users can access the orbit with a 30–60 min prediction arc. In POD, the satellite coordinates can be expressed as

$${\varvec{X}}^{{{\text{sat}}}} = {{\varvec{\Phi}}}{\varvec{X}}_{{0}}^{{{\text{sat}}}}$$
(3)

where \({\varvec{X}}_{{0}}^{{{\text{sat}}}}\) is the satellite initial conditions, including initial positions, velocities and force parameters, \({{\varvec{\Phi}}}\) is the state transition matrix, which gives the satellite condition at any specific time. The initial conditions of all satellites at a reference epoch are estimated using a globally distributed ground network. Once the initial conditions are obtained, the satellite coordinates are available at any epoch, including the estimated and predicted arcs. The corresponding formal error of orbits can thus be expressed as follows.

$${\mathbf{D}}_{{{\varvec{X}}^{{{\text{sat}}}} }} = {\mathbf{\Phi D}}_{{{\varvec{X}}_{0}^{{{\text{sat}}}} }} {{\varvec{\Phi}}}^{{\text{T}}}$$
(4)

where \({\mathbf{D}}_{{{\varvec{X}}_{{0}}^{{{\text{sat}}}} }}\) is the covariance matrix of initial conditions.

Fig. 1
figure 1

Update scheme of batch-processed rapid precise orbit determination solutions. The processing period includes the computation time for one POD batch solution

In this study, we investigate the real-time PPP performance using both 30-min- and 60-min-updated orbits and clocks, corresponding to a prediction arc of 30–60 and 60–120 min, respectively.

Satellite clock prediction

Most GNSS satellites are equipped with high-stable clocks, such as hydrogen maser clocks, especially the newly launched Galileo, BDS-3, and GPS BLOCK III satellites. Various clock prediction models have been proposed for the prediction of short-term and long-term periods (El-Mowafy et al. 2016; Huang et al. 2013; Nie et al. 2017; Senior et al. 2008; Zheng et al. 2008). Despite several studies with sophisticated clock prediction methods, the polynomial model plus periodic terms is widely used and has been demonstrated with good performance (Ge et al. 2021; Nie et al. 2017). Therefore, the following function is adopted to describe the clock at epoch \(i\) (time \(t_{i}\))

$$\tau^{{{\text{sat}}}} \left( {t_{i} } \right) = a_{0} + a_{1} t_{i} + a_{s} \sin \left( {\frac{2\pi }{T}t_{i} } \right) + a_{c} \cos \left( {\frac{2\pi }{T}t_{i} } \right)$$
(5)

where \(a_{0}\) denotes clock offset at the reference time; \(a_{1}\) is frequency, \(a_{s}\) and \(a_{c}\) are the coefficients of periodic terms. To avoid the impact of potential jumps, the initial value can be eliminated by differencing between two adjacent epochs, for example, \(t_{i}\) and \(t_{i + 1}\). The above function is rewritten as follows.

$$\begin{aligned} \tau^{{{\text{sat}}}} \left( {t_{i + 1} } \right) - \tau^{{{\text{sat}}}} \left( {t_{i} } \right) = & a_{1} \left( {t_{i + 1} - t_{i} } \right) + a_{s} \left[ {{\text{sin}}\left( {\frac{2\pi }{T}t_{i + 1} } \right) - {\text{sin}}\left( {\frac{2\pi }{T}t_{i} } \right)} \right] \\ & + a_{c} \left[ {{\text{cos}}\left( {\frac{2\pi }{T}t_{i + 1} } \right) - {\text{cos}}\left( {\frac{2\pi }{T}t_{i} } \right)} \right] \\ \end{aligned}$$
(6)

Given a series of clocks with n epochs, the n−1 epoch-differenced clocks are fitted via the least-square adjustment to estimate the unknown parameters in (6). Then, the predicted clock at a given time \(t\) after epoch n is represented as follows

$$\begin{aligned} \tau^{{{\text{sat}}}} \left( t \right) = & \tau^{{{\text{sat}}}} \left( {t_{n} } \right) + a_{1} \left( {t - t_{n} } \right) + a_{s} \left[ {{\text{sin}}\left( {\frac{2\pi }{T}t} \right) - {\text{sin}}\left( {\frac{2\pi }{T}t_{n} } \right)} \right] \\ & + a_{c} \left[ {{\text{cos}}\left( {\frac{2\pi }{T}t} \right) - {\text{cos}}\left( {\frac{2\pi }{T}t_{n} } \right)} \right] \\ \end{aligned}$$
(7)

where \(t_{n}\) is the last epoch of the fitting arc, \(\tau^{{{\text{sat}}}} \left( {t_{n} } \right)\) is the clock offset at epoch \(n\). According to (7), the corresponding formal error of predicted clocks is represented as

$$\begin{aligned} \sigma_{{\tau^{{{\text{sat}}}} \left( t \right)}}^{2} = & \sigma_{{\tau^{{{\text{sat}}}} \left( {t_{n} } \right)}}^{2} + \sigma_{{a_{1} }}^{2} \left( {t - t_{n} } \right) + \sigma_{{a_{s} }}^{2} \left[ {{\text{sin}}\left( {\frac{2\pi }{T}t} \right) - {\text{sin}}\left( {\frac{2\pi }{T}t_{n} } \right)} \right]^{{2}} \\& + \sigma_{{a_{c} }}^{2} \left[ {{\text{cos}}\left( {\frac{2\pi }{T}t} \right) - {\text{cos}}\left( {\frac{2\pi }{T}t_{n} } \right)} \right]^{2} \\ \end{aligned}$$
(8)

where \(\sigma_{a1}\), \(\sigma_{{a_{s} }}\) and \(\sigma_{{a_{c} }}\) are the formal errors of \(a_{1}\), \(a_{s}\) and \(a_{c}\) respectively, \(\sigma_{{\tau^{{{\text{sat}}}} \left( {t_{n} } \right)}}^{2}\) is the precision of the clock offset at epoch \(n\). Following Ge et al. (2021), the optimal length of fitting arc for the polynomial model is 24 h. To avoid the impact of large clock discontinuities and outliers in the clock time series, quality control must be carried out before calculating clock coefficients and obtaining predicted clocks using (6)–(8). The clock time series are converted to the frequency, which is defined as

$${\text{d}}\tau_{i} = \frac{{\tau_{i} - \tau_{i - 1} }}{{t_{i} - t_{i - 1} }}$$
(9)

In addition, we detect anomalies in frequency data based on five times of the median absolute deviation. As satellite clocks are estimated simultaneously with orbits, the update rate is the same as orbits. In this work, we investigate both 30-min- and 60-min-updated clocks, predicted in the 30–60 min and 60–120 min, respectively.

Mitigating the orbit and clock error via estimating SISRE

To consider the uncertainty of the predicted orbit and clock products, for example, when using the broadcast ephemeris, one possible solution is to introduce a new parameter \(s\).to absorb their effect (Gunning et al. 2019),

$$\left\{ {\begin{array}{*{20}l} {P = \left| {{\mathbf{X}}^{{{\text{sat}}}} - {\mathbf{X}}_{{{\text{rec}}}} } \right| + c\left( {{\text{d}}t_{{{\text{rec}}}} - {\text{d}}t^{{{\text{sat}}}} } \right) + t_{{{\text{trop}}}} + s + \varepsilon_{P} } \hfill \\ {L = \left| {{\mathbf{X}}^{{{\text{sat}}}} - {\mathbf{X}}_{{{\text{rec}}}} } \right| + c\left( {{\text{d}}t_{{{\text{rec}}}} - {\text{d}}t^{{{\text{sat}}}} } \right) + t_{{{\text{trop}}}} + s + \lambda N_{{{\text{rec}}}}^{{{\text{sat}}}} + \varepsilon_{L} } \hfill \\ \end{array} } \right.$$
(10)

where \(s\) is estimated epoch wisely and one per satellite as a random-walk process. Therefore, it is very important to properly constrain this parameter, including both the a priori constraint \(\sigma_{0}\) which considers the systematic error of orbit and clock, and t stochastic constraint which is applied for parameters between consecutive epochs. In the work of using broadcast based in PPP (Chen et al. 2022), the \(\sigma_{0}\) of parameter s is set to 50 cm for GPS, 20 cm for Galileo, and 33 cm for BDS, while the corresponding stochastic constraint \(\sigma_{P}\) is 1.1 cm, 0.3 cm, and 0.7 cm, respectively. In this work, we also investigated the performance of this method. Since our analysis is based on the 30-min-updated multi-GNSS rapid products, the predicted orbits and clocks are much better than the broadcast ephemeris. Therefore, we determine the constraints based on statistics of the SISRE values.

To investigate the performance of SISRE for each type of satellite, Fig. 2 shows SISRE values for 30-min and 60-min update interval. To be consistent with the observation sampling interval of POD, which is set to 300 s, a session of 30-min and 60-min clock contains six epochs and twelve epochs, respectively. One thing to note is that the reference orbits and clocks are calculated based on the post estimated POD solutions (Tang et al. 2023). Obviously, the SISRE increases rapidly with time for all types of satellites. In terms of the 30-min orbits and clocks, the mean SISRE value for GPS BLOCK IIIA, Galileo, and BDS-3 MEO satellites is 0.15, 0.15, and 0.22 ns, respectively. Compared with BDS-2 MEO satellites, the relatively bad performance of BDS-2 GEO and IGSO satellites are attributed to the poor orbit and clock accuracy due to the limited observation geometry (stations in the Asia–Pacific area) and imperfect orbit modeling (Guo et al. 2016). When the clock update interval increases from 30 to 60 min, the SISRE also increases by less than 0.1 ns for GPS BLOCK IIIA, Galileo and BDS-3 MEO satellites, while for other satellites, the SISRE increases significantly, for example, more than 1 ns for the BDS-2 GEO satellites. For both 30-min- and 60-min-updated clocks, the newly launched satellites, including GPS BLOCK IIIA, Galileo, and BDS-3, all show the best performance.

Fig. 2
figure 2

SISRE for different types of satellite with an update latency of 30 min (upper) and 60 min (lower), based on the statistics of data in December 2021. Note the different vertical scale of different subplots. One epoch is 300 s. IIR, IIF, and IIIA for GPS BLOCK IIR, IIF, and IIIA satellites, respectively; R for GLONASS; E for Galileo; 2G, 2I, and 2 M for BDS-2 GEO, IGSO, and MEO, respectively; 3I and 3 M for BDS3-IGSO and MEO, respectively. The acronym is also used in the following parts

The initial standard deviation \(\sigma_{0}\) for different satellite types corresponds to the RMS value from the SISRE assessment of Fig. 2, while the stochastic noise is determined by RMS value of SISRE variations, that is, the RMS of SISRE differences between consecutive epochs, as shown in Table 1. Note that the epoch of SISRE is 300 s in this study. Galileo achieves the smallest process noise of 0.6 cm, which can be explained by the smallest SISRE in Fig. 2. On the contrary, the GLONASS shows the biggest process noise of 5.8 cm, larger than BDS GEO or IGSO satellites. It is expected as the cesium (Cs) atomic clock onboard GLONASS satellites is inferior to the rubidium (Rb) atomic clock onboard BDS GEO and IGSO satellites. The results indicate that the stochastic noise of SISRE is dependent on the different satellites. Those with more stable clocks, such as the GPS BLOCK IIIA (Rb clocks) and the Galileo (hydrogen maser clock), show a smaller stochastic noise. Thus, the corresponding stochastic constraint applied on the SISRE parameter, that is, the parameter in (10), is smaller. Satellites with less stable clocks, such as the GPS BLOCK IIR (Rb clock) and GPS BLOCK IIF (Cs clock), need a larger process noise to account for these large variations.

Table 1 A priori constraint and the stochastic noise for the SISRE parameter applied in PPP. The stochastic noise is based on 300-s sampling rate and the corresponding unit is cm

Although estimating an additional SISRE parameter to account for the orbit and clock error can effectively improve the PPP solutions using broadcast ephemeris, it strongly relies on the proper constraints of this parameter, which varies significantly between different types of satellites and can hardly be determined in real-time. In addition, this also requires that the users modify their software and thus causes extra burden to them. Therefore, we propose a method by properly weighting the observations instead of introducing new parameters to account for the orbit and clock error, as presented in the following section.

Optimized weighting strategy based on orbit and clock predicting accuracy

In this section, we introduce an optimized weighting strategy of the observations to account for the orbit and clock prediction error. For a comprehensive assessment of orbit and clock errors, SISRE is the first choice (Kazmierski et al. 2018). By considering the contribution of orbit and clock errors to observation equation, equation (2) is represented as

$$\sigma^{2} = \frac{{\sigma_{{{\text{obs}}}}^{2} }}{{{\text{sin}}^{2} \left( {{\text{elev}}} \right)}} + \sigma_{{{\text{sis}}}}^{{2}}$$
(11)

where \(\sigma_{{{\text{sis}}}}\) is SISRE. The typical SISRE, which is calculated by comparing the real-time orbits and clocks to a reference product, cannot be achieved due to the lack of reliable reference products in real-time. However, we notice that in most cases the accuracy of estimated and predicted orbits and clocks of consecutive sessions is comparable, and thus the SISRE is also expected to show a similar pattern. Therefore, the real-time SISRE of the epoch (epoch \({\text{iepo}}\)) at the current session (session \({\text{ises}}\)) can be predicted by previous sessions and an approximation of \(S_{{{\text{sis}}}}\) is proposed

$$\sigma_{{{\text{sis}}}}^{2} \left( {{\text{ises}}, {\text{iepo}}} \right) = \left( {\frac{{S_{{{\text{sis}}}} \left( {{\text{ises}} - n,\;{\text{iepo}}} \right) + \ldots + S_{{{\text{sis}}}} \left( {{\text{ises}} - 1,\;{\text{iepo}}} \right)}}{n}} \right)^{2}$$
(12)

where \({\text{ises}}\) is the session number, \({\text{iepo}}\) is the epoch number of a session, \({\text{nses}}\) is the number of sessions. \(S_{{{\text{sis}}}} \left( \cdot \right)\) is the function of SISRE calculation, detailed description of SISRE is made by Montenbruck et al. (2014). Different from the statistic description of SISRE, the SISRE value \(\sigma_{{{\text{sis}}}} \left( {{\text{ises,}}\;{\text{iepo}}} \right)\) is derived from the several epochs of previous sessions, one epoch per session. In our study, we take three sessions, that is, \({\text{nses}}\) is set to 3.

The SISRE is mainly dependent on the error of the radial component of orbits and clocks, especially the latter one (Cheng et al. 2018). Consequently, the time variation of the clocks differs not only between constellations but also between satellites (Carlin et al. 2021; Kazmierski et al. 2020). Therefore, the precision of predicted clocks is assessed in Fig. 3. Similarly, the Galileo, GPS, BLOCK IIIA, and BDS-3 MEO satellites have better performance than other satellites, in which Galileo performs the best, with an average RMS of less than 0.1 ns (30-min-updated clocks). For GLONASS, BDS GEO and IGSO satellites, the clock accuracy is as large as 0.5 ns. The performance of different types of satellites is similar for the 60-min-updated clocks, and the magnitude is much larger than the 30-min-updated clocks. Compared with the clock precision presented in Fig. 3, we confirm that the clock error still dominates the SISRE value for most satellites. Therefore, equation (2) can be simplified as

$$\sigma^{2} = \frac{{\sigma_{{{\text{obs}}}}^{2} }}{{{\text{sin}}^{2} \left( {{\text{elev}}} \right)}} + \sigma_{{{\text{clk}}}}^{2}$$
(13)
Fig. 3
figure 3

Satellite clock prediction precisions for different types of satellites with 30-min and 60-min update rate


In this case, only the clock accuracy information is required for PPP users.

Although the clock formal error in (8) can serve as an indicator to reflect the performance of predicted product, it can be overoptimistic. Therefore, the above formal error should be scaled to represent the real precision with:

$$\sigma_{\text{clk}}=f*{\sigma_{\text{clk\_formal}}}$$
(14)

where \(\sigma_{\text{clk\_formal}}\) is the formal error. The factor is calculated based on the satellite-specific empirical value from several previous sessions:

$$f = \frac{{\text{MEAN}}_{\text{std}}}{{\text{MEAN}}_{\text{clk\_formal}}}$$
(15)

where \({\text{MEAN}}_{{{\text{std}}}}\) is the mean STD of clock precision for a certain satellite group, \({\text{MEAN}}_{\text{clk\_formal}}\) is the corresponding mean formal error. Through (15), the rough scaling law between the precision of the satellite clock and its formal error is established.

Table 2 lists the scaling factors for satellites used in this study. These values are determined empirically using one month of data, but could be updated using different periods in real-time applications.

Table 2 Scaling factors between the accuracy and formal errors of predicted clocks for different types of satellites

PPP validation

According to the proposed orbit and clock prediction strategy, one month of 100 multi-GNSS stations is processed to generate predicted orbits and clocks with 30- and 60-min update rate. The 30-s sampling observations from additional 62 stations (Fig. 4) are then processed in static and kinematic PPP mode to validate our method. In total, five cases are designed to evaluate our proposed methods, as shown in Table 3.

Fig. 4
figure 4

IGS stations for PPP validation

Table 3 Cases of weighting the observations and handling the SISRE in PPP solutions

We investigate three single-constellation solutions, including GPS, Galileo, and BDS. GLONASS-only solution is not included due to the poor clock prediction accuracy (around 0.6 ns for 30-min update interval) and thus the expected poor positioning performance. We then investigate multi-GNSS solutions, including Galileo + BDS (GE), Galileo + GPS + BDS (GEC), and the quad-constellation solution where the contribution of GLONASS is considered (GREC). Apart from the different weighting methods, the same processing strategies are adopted by the five cases, as shown in Table 4. To evaluate the accuracy, we use the coordinates from the IGS weekly combined solution as a reference, and calculate the 3-dimensional (3D) error, that is, \(3D = \sqrt {N^{2} + E^{2} + U^{2} }\) where \(\left( {N,E,U} \right)\) are the coordinate bias in the north, east, and up components, respectively.

Table 4 Processing strategies of static and simulated PPP solutions

Static positioning

Figure 5 presents the statistics of positioning accuracy for different cases. When no special consideration of the orbit and clock errors is applied, that is, solution ORIG, the positioning accuracy using the 30-min-updated products is within 5 cm for the Galileo-only and multi-GNSS solutions, meanwhile for the GPS-only and BDS-only solutions, the accuracy is around 7–11 cm. A significant improvement is introduced in all solutions if the predicted clock accuracy is considered, especially in the CLK_F case where the clock formal error is scaled properly (see Table 2). The proposed strategy (SISPRE) achieves a comparable accuracy with solution CLK_F for both single-GNSS and multi-GNSS solutions, which is slightly better than the solution where the SISRE is estimated as unknown parameters in the GPS-only and multi-GNSS solutions. It is also obvious that the accuracy of predicted clocks instead of orbits has a larger impact on positioning, as expected. Regarding the contribution of different constellations, the Galileo-only solutions are much better than the GPS-only and BDS-only solutions, and both have comparable accuracy with respect to its combination with other constellations, mainly thanks to the highly stable clocks onboard the Galileo satellites. Note that in ORIG where no special handling of the observation weighting is applied, the Galileo-only solutions are better than the multi-GNSS solutions. The reason is that the clock prediction accuracy of BDS and GPS is much worse (see Fig. 3), and without downweighing these satellites properly, they will degrade the accuracy in multi-GNSS solutions.

Fig. 5
figure 5

Accuracy of different cases in static PPP in terms of 3D RMS position error. The upper and lower panel is the positioning results based on 30-min- and 60-min-predicted orbits and clocks, respectively

For the 60-min predicted solutions, the positioning accuracy is worse than the 30-min solutions by a factor of up to two (the BDS-only case), due to the poorer clock prediction accuracy in the 60–120 min arc than in the 30–60 min arc (see Fig. 3). The quad-constellation solution achieves an accuracy of 9 cm in the ORIG case, and is improved to 5 cm if the proper weighing is adopted (CLK_F and SISPRE) or additional parameter is estimated (SISES). It is also confirmed that the Galileo constellation contributes larger than GPS and BDS constellations in the multi-GNSS solutions, and proper weighting of different systems is necessary, otherwise the positioning accuracy would be deteriorated.

To investigate the difference between CLK_F and SISEST cases, a further comparison of each station is shown in Figs. 6 and 7. For the Galileo-only solution, the SISEST case performs better than the CLK_F on most stations, except for the horizontal component of a few stations. In contrast, the horizontal components for the SISEST case with quad-constellation are worse than those for the CLK_F case. By comparing the Galileo-only solution and quad-constellation solution, we found that the contribution of multi-GNSS in the CLK_F case is larger than that in the SISEST case in the horizontal components. The possible reason for the different behaviors is that CLK_F approach gives a deterministic relationship between different satellite types, which needs to be estimated in the SISEST approach.

Fig. 6
figure 6

Horizontal position accuracy of each station with 30-min-updated orbits and clocks for Galileo-only (upper) and GREC (lower) solutions

Fig. 7
figure 7

Vertical position accuracy for each station with 30-min-updated orbits and clocks for Galileo-only (upper) and GREC (lower) solutions

In addition to the average 3D RMS results, we also give the horizontal and vertical RMS for Galileo-only and quad-constellation solution in Table 5. We only present the Galileo-only and GREC solutions as they have optimal performances compared to other solutions. For the 30-min solutions, the horizontal accuracy of Galileo-only solutions is 2.2 cm, and the vertical one varies between 2.5 and 3.2 cm. The quad-system GREC solutions on the other hand, are more sensitive to handling weights. In the ORIG case, the accuracy is worse than the Galileo-only solutions in horizontal and vertical components, whereas in the CLK_F and SISPRE cases, the accuracy is much better. The 60-min solutions are worse than the 30-min ones, indicating the necessity to further reduce the update rate when using predicted products in real-time PPP. In any case, horizontal and vertical accuracy within 5 cm and 7 cm can be achieved for the 30-min and 60-min solutions, respectively.

Table 5 Average static position error for Galileo-only and GREC solutions using 30- and 60-min-updated orbits and clocks. The unit is cm

Kinematic positioning

Kinematic PPP results of five cases with different constellation combinations are also performed using the same set of observations. Figure 8 depicts the positioning accuracy of kinematic PPP results based on 30-min orbits and clocks. For the first 30-min, the cases of CLK-F and SISPRE both have better performance than the SISEST, especially for the GEC and GREC solution, even though a jump is observed at the 30-min epochs in some solutions, for example, the Galileo-only and EC solutions in the CLK and CLK_F case. This could be attributed to the orbit quality change when switching the different products. In general, our proposed solution (CLK_F and SISPRE) can reach a higher accuracy quickly than the SISEST case, and after 30-min, the performances are similar. After 1-h convergence, single constellation can converge to 40.0 cm, while GEC and GREC converge to 30 cm. All the kinematic solutions with Galileo included can converge to 30.0 cm at the end of a 300 min session.

Fig. 8
figure 8

3D positioning accuracy using 30-min-updated orbits and clocks. The average RMS of 62 stations over one month is presented. Note that each dot denotes the RMS of all epochs within 5 min and the observation sampling rate is 30 s

As an example, Fig. 9 shows the 24-h coordinates time series with the quad-constellation observations at station XMIS on DOY 340, 2021. One hour after the first epoch, the north and east components reach within 10 cm, whereas the up one fluctuates within 20 cm. The CLK_F and SISEST cases are more stable than other solutions, even though the SISEST case converges faster than the SISPRE one.

Fig. 9
figure 9

Positioning errors in the East, North, and Up components on DOY 340 of 2021 for station XMIS in kinematic mode

The kinematic PPP accuracy based on 30-min-updated orbits and clocks over all stations in one month is summarized in Fig. 10, where we include both the single-system and multi-GNSS solutions. Similar to the static PPP results, Galileo-only solution performs the best because of the superior quality of satellite clocks, while BDS-only still performs the worst. The horizontal accuracy of multi-GNSS solutions is around 5 cm, and the vertical one is within 10 cm, as long as the proper weighing strategy is adopted (CLK_F) or the SISRE is estimated (SISEST), which is much better than the ORIG and CLK cases. It is also interesting to observe that the SISEST case has the best accuracy for the Galileo-only solution compared to the other cases in both horizontal and vertical components.

Fig. 10
figure 10

Average 3D positioning error with 30-min-updated orbits and clocks for horizontal (upper) and vertical (lower) components

We further give the statistics of using both 30-min- and 60-min-updated products in Table 6, including both Galileo-only and GREC solutions. For 30-min solutions, the GREC solution shows a position accuracy of 6.9 cm and 8.9 cm for the horizontal and vertical component, respectively. The CLK_F in the GREC solution is better than the ORIG case by a factor of two, reaching 6.2 cm horizontally and 9.6 cm vertically. The 60-min solutions have less optimal performance, as expected, and the best accuracy is achieved by the GREC solution in the SISEST case, with a horizontal and vertical RMS of 9.8 and 12.5 cm, respectively. For the Galileo-only solution, the SISPRE case is worse than the CLK_F resuts in both horizontal and vertical components, which is also observed in all single-constellation solutions (not shown here). Compared with the SISPRE case, the CLK_F considers not only empirical behaviors for each satellite type by the scaling factor in (14) but also the real clock performance of the current session by the formal error in (14). When there are more observations involved (the GREC situation) or the prediction time becomes shorter (30 min), the discrepancy between the two cases becomes smaller.

Table 6 Averaged position error for the Galileo-only and GREC solutions with 30- and 60-min-updated orbits and clocks (cm)

Summary and conclusions

The high-rate clock update requires stable real-time data communication, which can hardly be guaranteed in practice for regions without a communication infrastructure of high performance. Thanks to the high stability of onboard satellite clocks, the SISRE of newly launched satellites with predicted orbits and clocks, for example, Galileo, BDS-3, and GPS BLOCK IIIA satellites is less than 8 cm within 30- to 60-min prediction arc. The satellites with stable clocks and achievable half-hourly update interval indicate the possibility of performing real-time PPP with predicted orbits and clocks. Our study first introduces the generation of predicted orbits and clocks. In addition to adding a SISRE parameter in the observation equations (SISEST), we propose three ways of handling the orbit and clock errors, including (a) using predicted SISRE with several previous sessions (SISPRE), (b) using clock formal error (CLK) and (c) using clock formal error plus empirical factor (CLK_F).

Static and simulated kinematic PPP experiments show that the cases considering orbit and clock errors (SISEST, SISPRE, and CLK_F) perform better than the case not considering it (ORIG), with an improvement ranging from 15 to 60%. This significant improvement confirms that the orbit and clock errors need to be considered carefully, while the comparable accuracy between CLK_F and SISPRE cases indicates that clock errors contribute more to the positioning error. The contribution of proposed SISPRE and CLK_F is similar to or even better than the SISEST case in static mode, while they become slightly worse in simulated kinematic mode, especially for the SISPRE case.

Overall, the 3D positioning accuracy is within 4.0 cm and 25.0 cm in static and kinematic mode, respectively. As expected, the Galileo-only solution shows the best accuracy among all single-constellation solutions. In static mode with 30-min-updated orbits and clocks, the horizontal and vertical accuracy of CLK_F is 2.2 cm and 2.8 cm, respectively. The introduction of multi-GNSS brings an improvement of 0.5 cm for the horizontal and vertical components. In simulated kinematic mode, the horizontal accuracy of 13.3 cm and vertical one of 21.0 cm are obtained for the CLK_F case with Galileo-only solution. Similarly, multi-GNSS improves the performance of CLK_F case by up to 6.2 cm in the horizontal component and 9.6 cm in the vertical component. The accuracy of the solutions with 60-min-updated orbits and clocks is degraded by more than 30% compared with those with 30-min-updated orbits and clocks.

Our study demonstrates that applying predicted orbits and clocks to a PPP model is achievable if the orbit and clock errors are properly considered. Although it is still less accurate than PPP solutions based on a direct source of high-fidelity real-time orbit and clock information, it provides an alternative opportunity for applications with an unstable communication environment.