1 Introduction

The IGS (International GNSS Service) has been providing GPS satellite orbit and clock products for more than 20 years (Dow et al. 2009; Johnston et al. 2017). Within the IGS processing, ambiguity parameters are fixed to integer values. The typical approach is to form double-difference between observations that are simultaneously acquired between two satellites and two receivers. Clock errors and biases on both satellite and receiver sides are eliminated, and the double-differenced ambiguity parameters can be consequently fixed to integer values (Teunissen et al. 2003). However, satellite clock products need to be estimated by a second run using zero-difference observations (Dach et al. 2009; Prange et al. 2017). In order to make use of the fixed ambiguity parameters in clock estimation, the GeoForschungsZentrum (GFZ) decomposes each integer double-difference ambiguity into a pseudo zero-difference observation, and then jointly uses them with the real code and phase observations by giving a very tight constraint (Ge et al. 2005; Uhlemann et al. 2015; Deng et al. 2016).

Different than fixing double-difference ambiguities, CNES/CLS (Centre National d’Etudes Spatiales/Collecte Localisation Satellites) estimates dedicated satellite orbit, clock and bias products when fixing zero-difference ambiguities to integer values (Loyer et al. 2012). The advantage is that users can also do ambiguity resolution at zero-difference level by making use of the publicly available CNES/CLS products. However, the clock estimates are slightly inconsistent with respect to the IGS products since they are relative to phase measurements (Montenbruck et al. 2018). To avoid such inconsistencies, GFZ and Wuhan University estimate epoch-wise satellite narrow-lane biases separately and provide such biases together with their satellite products to authorized users (Ge et al. 2008; Geng et al. 2012; Li et al. 2016). Instead of providing float clock and epoch-wise narrow-lane bias products, the Center for Orbit Determination in Europe (CODE) determines daily code and phase biases as observable-specific bias (OSB) terms on each signal and estimates ambiguity fixed clock products (Schaer et al. 2018; Villiger et al. 2019). The advantage is that ambiguity fixed satellite clock products show better consistency to the IGS final products. Furthermore, the correction of OSB products on each signal is more straight forward. In December 2019, CODE made their phase bias products publicly available as routine bias products at https://cddis.nasa.gov/.

From February 2019, the European Galileo constellation has reached a total of 24 satellites, providing positioning, navigation and timing (PNT) services independently. The Galileo signals are transmitted in four frequency bands: E1, E5a, E5b and E6. The current Galileo satellite orbit and clock products in the MGEX (Multi-GNSS Pilot Project) are based on E1 and E5a signals (Montenbruck et al. 2017; Steigenberger and Montenbruck 2017). Since 2018 CODE and CNES/CLS have extended their ambiguity fixed products to Galileo satellites as well (Schaer et al. 2018; Katsigianni et al. 2019a, b). The performance combining GPS and Galileo satellites together in the PPP-AR applications are analyzed by Paziewski and Wielgosz (2015), Li et al. (2018), Xiao et al. (2019). In fact, for the frequency L5, E5a and E5b, some receivers track only pilot signal Q while some track only pilot-data signal X. These two signals are not tracked concurrently by any common receiver. Therefore, the differences of code and phase biases between Q and X need to be considered in the satellite bias estimation.

The first new GPS III satellite was launched on 23 December 2018. The space vehicle number (SVN) and pseudo random noise (PRN) number are identified as SVN 74 and PRN 04, respectively. Same as GPS Block IIF and Galileo satellites, GPS III satellites provide signals on more than two frequencies. With such an advantage, we may develop a new approach for ambiguity resolution by making use of triple-frequency (Geng and Bock 2013; Li et al. 2019). However, satellite clock estimates are based on one type dual-frequency ionosphere-free linear combination. We need to make sure whether the employed clock products are suitable for the other dual-frequency observations that are not the same as in the clock estimation. As demonstrated by Montenbruck et al. (2012), an apparent inconsistency of the L1, L2 and L5 carrier phase measurements at the 10 cm level was identified for one GPS Block IIF satellite due to the thermally dependent inter-frequency bias. Therefore, inter-frequency clock bias (IFCB) need to be considered when applying the GPS L1/L2 satellite clock products into L1/L5 observations (Pan et al. 2017). For the first GPS III satellite, Thoelert et al. (2019) show that such thermally induced variations are no longer observed, but the IFCB values still cannot be ignored. Also, as introduced by the Galileo Interface Control Document (ICD), each Galileo satellite broadcasts both E1/E5a and E1/E5b dual frequency clock corrections.

Based on these, the main goal of this contribution is as follows. First, analyze the differences between Q and X signals for both GPS and Galileo satellites. Then, estimate ambiguity fixed satellite orbit, clock and daily bias products using GPS L1/L2 and L1/L5, Galileo E1/E5a and E1/E5b signals, respectively. Finally, introduce all the estimated products into ground station positioning and Sentinel-3A satellite orbit determination.

2 Ambiguity resolution with zero-difference observations

Pseudorange (P) and phase (L) observations between a receiver (subscript r) and a satellite (superscript s) on one frequency l are described as

$$\begin{aligned} P_{r,l}^s&=\rho _{r,l}^s+c(dt_r-dt^s)+c\left( d_{r,l}-d_l^s\right) +I_{r,l}^s+T_r^s+e_{r,l}^s \nonumber \\ L_{r,l}^s&=\rho _{r,l}^s+c(dt_r-dt^s)+c\left( b_{r,l}-b_l^s\right) -I_{r,l}^s+T_r^s+\nonumber \\&\quad \lambda _lN_{r,l}^s+\varepsilon _{r,l}^s \end{aligned}$$
(1)

where \(\rho \) denotes the geometric distance, c the speed of light, \(dt_r\) and \(dt^s\) the receiver and satellite clock offsets, I the ionospheric delay, T the tropospheric delay, \(\lambda \) the wavelength, N the phase ambiguity, \(e_{r,l}^s\) and \(\varepsilon _{r,l}^s\) the other error terms of pseudorange and phase observations, for instance the relativistic effect and phase wind-up correction. Furthermore, d and b represent the relevant signal-specific biases of pseudorange and phase observations.

Within zero-difference solutions, ionospheric delays can largely be eliminated by forming the ionosphere-free (\(IF\)) linear combination, but at the same time the noise is amplified by about a factor of 3. When neglecting higher order ionospheric terms, the \(IF\) linear combination of the first and second frequency can be expressed as

$$\begin{aligned} P_{r,IF}^s&=\rho _{r,IF}^s+c(dt_r-dt^s)+c\left( d_{r,IF}-d_{IF}^s\right) +T_r^s+e_{r,IF}^s \nonumber \\ L_{r,IF}^s&=\rho _{r,IF}^s+c(dt_r-dt^s)+c\left( b_{r,IF}-b_{IF}^s\right) +T_r^s\nonumber \\&\quad +IF\left( \lambda _1N_{r,1}^s,\lambda _2N_{r,2}^s\right) +\varepsilon _{r,IF}^s \end{aligned}$$
(2)

where \(IF\) denotes the ionosphere-free linear combination. It may be noted that there is one singularity in the \(IF\) phase equation between ambiguity and clock offset parameters for one receiver in one session. Therefore, the datum of clock offsets is determined by pseudorange observations. In the IGS convention, \(IF\) code biases of the employed code observations are assumed to be zero while defining the clock datum. For instance, GPS takes P1 (C1W) and P2 (C2W) observations. It may be also noted that the \(IF\) ambiguity cannot be expressed in the form \(\lambda _{IF}N_{IF}\) where \(N_{IF}\) is an integer ambiguity. If we want to resolve such ambiguity parameters we need to first introduce integer wide-lane ambiguities into the \(IF\) solution, and then try to fix the resulting so-called narrow-lane ambiguities.

To obtain integer wide-lane ambiguities, the Melbourne-Wuebbena (MelWub) linear combination is widely used (Melbourne 1985; Wubbena 1985).

$$\begin{aligned}&\hbox {MelWub}\left( P_{r,1}^s, P_{r,2}^s, L_{r,1}^s, L_{r,2}^s\right) \nonumber \\&\quad =\frac{f_{1}L_{1}-f_{2}L_{2}}{f_{1}-f_{2}}-\frac{f_{1}P_{1}+f_{2}P_{2}}{f_{1}+f_{2}}\nonumber \\&\quad =\lambda _{wl}N_{r,wl}^s+\lambda _{wl}\left( bd_{r,wl}-bd_{wl}^s\right) \nonumber \\&\qquad +\varepsilon _{r,wl}^s \end{aligned}$$
(3)

where \(N_{r,wl}^{s}\) denotes the wide-lane ambiguity, \(bd_{r,wl}\) and \(bd_{wl}^{s}\) the corresponding receiver and satellite biases. The MelWub combination is both geometry- and ionosphere-free, only ambiguity and bias terms remain in the equation. The wavelength \(\lambda _{wl}\) is relatively long (about 86 cm for GPS L1/L2 and 75 cm for Galileo E1/E5a) and it is therefore easy to fix the wide-lane ambiguities to integer values. We need to be aware that code observations contribute equally as phase observations in Eq. (3). \(bd_{r,wl}\) and \(bd_{wl}^{s}\) consist of both code and phase biases. This bias term is usually described as wide-lane bias, which actually could be confused with the wide-lane bias in the wide-lane phase linear combination. In this contribution, we name this bias term as MelWub bias to make it clear that the bias parameter is determined from the MelWub linear combination and should be used in the MelWub linear combination to resolve wide-lane ambiguities.

The integer wide-lane ambiguities are then introduced into the float IF solution to conduct the narrow-lane ambiguity \(N_{r,1}^s\).

$$\begin{aligned} L_{r,IF}^s&=\rho _{r,IF}^s+c(dt_r-dt^s)+c\left( b_{r,IF}-b_{IF}^s\right) +T_r^s\nonumber \\&\quad +\lambda _{nl}\left( N_{r,1}^s+\frac{\lambda _{wl}}{\lambda _{2}}N_{r,wl}^s\right) +\varepsilon _{r,IF}^s \end{aligned}$$
(4)

where \(\lambda _{nl}\) denotes the narrow-lane wavelength. Details about wide-lane and narrow-lane ambiguity resolutions are discussed in Sects. 3 and 4.

3 Satellite MelWub biases estimation

Biases in GNSS are caused by hardware delays in satellite and receiver for pseudorange and phase observations. Pseudorange users are affected by the code biases since observations are obtained by measuring the traveling time of the signal between emission and reception. Code biases of all the satellites for one receiver are not the same and cannot be absorbed by the receiver clock parameters. Biases of phase observations can be however absorbed by the ambiguity parameters and will not contaminate the positioning result. Nevertheless, when intending to fix ambiguity parameters to integer values the corresponding phase biases of satellite and receiver must be compensated.

Satellite MelWub biases contain code and phase biases of the same signals used in the MelWub linear combination. For GPS L1/L2 frequency we use C1W, C2W, L1W, L2W while for GPS L1/L5 frequency we use C1W, C5Q/C5X, L1W, L5Q/L5X signals. For Galileo E1/E5a frequency we use C1C/C1X, C5Q/C5X, L1C/L1X, L5Q/L5X while for Galileo E1/E5b frequency we use C1C/C1X, C7Q/C7X, L1C/L1X, L7Q/L7X signals. As presented by Sleewaegen and Clemente (2018), phase biases between different signals of the same frequency and constellation are nearly the same. It is thus possible to mix different phase signals of the same frequency in the MelWub linear combination. For instance, we assume that phase biases of L5Q and L5X are the same. However, the code bias behavior is quite different. Some receivers track C1C GPS signal instead of C1W and the DCB (differential code bias) values between these two signals can be up to several ns (Montenbruck et al. 2014; Guo et al. 2015; Wang et al. 2016; Håkansson et al. 2017). The C1W–C1C DCB values of GPS satellites can be computed by a station network as C1C and C1W can be tracked concurrently by a common receiver. Then, it is possible to correct all the C1C signals to C1W in advance to consistently use the C1W signal in the MelWub linear combination. However, for GPS L5, Galileo E5a and E5b frequencies, C5Q and C5X are not tracked by any common receiver. We cannot correct either C5Q to C5X or C5X to C5Q directly. To investigate whether Q and X code signals can be mixed in the MelWub linear combination, we compute the differences of the associated DCB values. For instance, the difference of DCB C1C–C5Q and C1X–C5X can partly reveal the difference between C5Q and C5X signals up to an unknown constant.

Fig. 1
figure 1

Ground tracking stations, blue dots denote 65 LEICA and SEPT receivers tracking GPS/Galileo Q signals, yellow dots represent 80 TRIMBLE and JAVAD receivers tracking GPS/Galileo X signals

Table 1 Signals tracked by different receiver types

3.1 Difference of DCB values between Q and X signals

Since the code bias parameter is one-to-one correlated with the receiver clock offset, only the DCB value between signals can be determined. DCB values of GPS frequency L1–L5 and Galileo frequency E1–E5a, E1–E5b can be directly determined by the geometry-free pseudorange linear combination (\(PI\))

$$\begin{aligned} PI=P_{1}-P_{5}=I\left( 1-\frac{f_{1}^2}{f_{5}^2}\right) +DCB_{r,15}-DCB_{15}^s \end{aligned}$$
(5)

In our estimation, CODE MGEX orbit and global ionosphere map products are used to eliminate the ionospheric delays. A zero mean condition of all the satellite DCBs is imposed to separate satellite DCBs from those of the receivers. We use a network of 145 IGS Multi-GNSS stations (Fig. 1) based on 1 month of data from day of year (doy) 43–73 2019. Signals tracked by each receiver type are shown in Table 1. The LEICA and SEPT network cluster is used to calculate DCB values of C1W–C5Q for GPS and C1C–C5Q, C1C–C7Q for Galileo while the TRIMBLE and JAVAD network cluster is used to calculate the same types of DCB values that relate to X signal. For GPS L1 frequency, CODE monthly DCB products are used in advance to correct the C1C signal to C1W.

Fig. 2
figure 2

Differences between DCB values of C1W–C5Q and C1W–C5X for GPS L1–L5 frequency, bias of G01 is removed from all the other satellites

Fig. 3
figure 3

Differences between DCB values of C1C–C5Q and C1X–C5X for Galileo E1–E5a frequency, bias of E01 is removed from all the other satellites

Fig. 4
figure 4

Differences between DCB values of C1C–C7Q and C1X–C7X for Galileo E1–E5b frequency, bias of E01 is removed from all the other satellites

Table 2 RMS values of differences between DCB values, (ns)

Figures 23 and 4 show individual differences of DCB values between Q and X for GPS L1–L5 and Galileo E1–E5a, E1–E5b frequencies. The daily reference is removed from all the other satellites by differencing with the first satellite (G01 for GPS and E01 for Galileo). The difference of GPS Block IIF satellites can be as large as 1.5 ns, which is about half of the wide-lane wavelength. Therefore, such differences cannot be ignored in the MelWub linear combination. The first GPS III satellite is not available everyday and cannot be tracked by all the stations. The daily DCB differences are close to zero, with a RMS value of 0.2 ns. Galileo E1–E5a and E1–E5b frequencies show smaller differences of DCB values between Q and X for all the satellites. It is also clearly displayed that Galileo In-Orbit Validation (IOV) satellites show 2–3 times larger difference values than the Full Operational Capability (FOC) satellites. RMS values of each type of satellite are given in Table 2. In general, differences of DCB values for Galileo signals will not cause large differences in satellite MelWub bias estimation.

3.2 MelWub biases

As shown in Eq. (3), satellite and receiver MelWub biases are one-to-one correlated, only the sum can be determined. To separate the estimates, we assume a zero mean condition of all the satellite MelWub biases. Since it is widely known that satellite MelWub biases vary very slow with time we estimate a daily MelWub bias for each satellite, but estimate an epoch-wise receiver bias to capture the potential variation caused by the receiver (Loyer et al. 2012). In addition, we select a reference ambiguity that has the longest observation time for one receiver in one session to cope with the singularity between ambiguity and receiver biases.

Fig. 5
figure 5

CNES/CLS (grg), TUM (tum) daily GPS L1/L2 satellite MelWub biases and the difference (grg-tum) of these two, the reference (G01) and integer-cycle differences are eliminated from grg-tum

The Bernese GNSS Software 5.3 (Dach et al. 2015) is modified to support the estimation of satellite MelWub and narrow-lane biases as well as the PPP-AR application. The ambiguity resolution estimator is based on the Bernese SIGMA method (Dach et al. 2015). Code observations are smoothed by the phase observations shifted by the mean difference of code minus phase per observation arc. Code biases are not affected by the smoothing. Ambiguities are first estimated as real values, then, integer values of the ambiguities are resolved according to the real-valued estimates and the corresponding variances and covariances. GPS and Galileo signals are processed independently except that GPS L1/L5 and Galileo E1/E5a observations are processed together to compute GPS L1/L5 related results. Because there are only 12 GPS Block IIF and one GPS III satellites broadcasting L1/L5 signals during the experimental time periods. The joint processing with Galileo E1/E5a observations can enhance the receiver clock estimates in the later narrow-lane ambiguity resolution. For the combined processing, if we take GPS as the reference, an additional daily inter-system bias (ISB) parameter for the Galileo system should be estimated for each receiver. However, if we do not consider such an ISB in the MelWub linear combination, the effect in one station is absorbed by the wide-lane ambiguities. By forming single differences (one station and two satellites) between real-valued ambiguities of the same constellation the station specific ISB effect can be eliminated. As a consequence, the single differenced ambiguities can be resolved to their integer values even without the consideration of the ISB effect.

Fig. 6
figure 6

GPS IIF and III satellite L1/L5 MelWub biases, left figure shows the estimation from Q signal, middle figure shows the estimation from X signal and the right figure displays the difference of these two by eliminating the reference satellite G01

Satellite MelWub biases are estimated by the same two network clusters of the same time periods to investigate the difference between Q and X signals. For GPS L1/L2 frequencies, the potential C1C signal of some stations is corrected to C1W in advance and signals in the two clusters are consistent. Therefore, normal equations of the two network clusters are combined to generate a final daily solution. However, we need to be careful that satellite MelWub biases determined by one network cluster might differ by integer wide-lane cycles from those computed by the other cluster. By making use of the stability of satellite MelWub bias, we constrain satellite MelWub biases in each cluster tightly to the estimates of the previous day. Therefore, we only need to make sure that satellite MelWub biases are correctly determined at the first day without any constraint. Since we use the same signals as CNES/CLS when estimating GPS L1/L2 MelWub biases we compare our estimates (TUM) to the CNES/CLS products. The left figure in Fig. 5 shows the CNES/CLS daily MelWub biases for all the GPS satellites, the middle figure shows our estimates and the right figure displays the difference of these two. The first GPS satellite G01 is eliminated from the comparison to remove the reference difference. The integer wide-lane cycles are removed as well from the difference since only the fractional parts are of interest. Both CNES/CLS and our products show small variations with time, the mean STD values of all the satellites over 1 month are both 0.009 wide-lane cycles. Of course, one reason is that both estimates are constrained tightly to the values from previous day. Also, these two products are consistent, the mean RMS value of differences is 0.018 wide-lane cycles.

Fig. 7
figure 7

Galileo satellite E1/E5a MelWub biases, left figure shows the estimation from Q signal, middle figure shows the estimation from X signal and the right figure displays the difference of these two by eliminating the reference satellite E01

Fig. 8
figure 8

Galileo satellite E1/E5b MelWub biases, left figure shows the estimation from Q signal, middle figure shows the estimation from X signal and the right figure displays the difference of these two by eliminating the reference satellite E01

For GPS L1/L5, Galileo E1/E5a and Galileo E1/E5b frequencies, performances and differences of satellite MelWub biases from the two network clusters are shown in Figs. 67 and 8. If we ignore the differences in the network satellite MelWub biases computed by the two network clusters should be identical. Then, the displayed differences can be attributed to the differences between signal Q and X. We find that the maximum difference of GPS Block IIF satellites is more than 0.5 wide-lane cycles. We cannot mix these two signals together in the MelWub bias estimation. The differences of the GPS III satellite are not significant, with a RMS value of 0.07 wide-lane cycles. All the Galileo satellite MelWub biases are more constant over time than those of GPS L1/L2 estimates. Both Galileo E1/E5a and E1/E5b frequencies show small differences of MelWub bias between signal Q and X. In particular, the mean RMS value of differences for Galileo FOC satellites is 0.01 wide-lane cycles. Considering the slightly larger differences in DCB values for Galileo IOV satellites, we observe larger differences in MelWub biases as well. Nevertheless, the mean RMS value for Galileo IOV satellites is smaller than 0.05 wide-lane cycles. As a result, we can stack normal equations of these two network clusters for Galileo E1/E5a and E1/E5b frequencies, respectively, to generate combined (Q and X) satellite MelWub bias products.

4 Satellite orbits, integer clocks and narrow-lane biases

Once the wide-lane ambiguity is known, Eq. (4) can be conducted by introducing the wide-lane ambiguity into Eq. (2). In this section, we introduce our procedures in computing satellite orbits, integer clock offsets and narrow-lane biases. To ensure a higher ambiguity fixing rate and to shorten the processing time, we use only phase measurements for ambiguity resolution and divide the whole station network into two network clusters.

4.1 Procedures

First, we use only the phase equation to determine satellite orbit and station related parameters (coordinates and tropospheric delays), as shown

$$\begin{aligned} L_{r,IF}^s&=\rho _{r,IF}^s+c({\widehat{dt}}_r-{\widehat{dt}}^s)+T_r^s\nonumber \\&\quad +\lambda _{nl}\left( N_{r,1}^s+\frac{\lambda _{wl}}{\lambda _{2}}N_{r,wl}^s\right) +\varepsilon _{r,IF}^s \end{aligned}$$
(6)

where \({\widehat{dt}}_r\) and \({\widehat{dt}}^s\) aggregate respective clock offset and phase bias (Loyer et al. 2012). The same two network clusters as shown in Fig. 1 are used to resolve ambiguities independently. The ambiguity that has the longest observation time in the session for each station is chosen as the reference ambiguity. All the reference ambiguities in the network are fixed to the closest integer values to cope with the singularity between ambiguities and clock offsets. As a result, clock offsets in this step are determined by phase ambiguities. We cannot combine the clock estimates from these two network clusters since they may differ by integer narrow-lane cycles. However, since phase clock offsets are pre-eliminated from the normal equation every epoch the combination of orbit parameters is not affected. Then, we stack the normal equations from these two clusters and generate daily ambiguity fixed satellite orbit products.

Second, we estimate real-valued satellite clock products while fixing satellite orbits and station related parameters to the estimates in step 1. Both code and phase measurements (as shown in Eq. (7)) are used to align satellite clock estimates to the IGS clocks. All the stations are processed in a single network since ambiguity resolution is not needed in this step.

$$\begin{aligned} P_{r,IF}^s&={\widehat{\rho }}_{r,IF}^s+c(dt_r-dt^s)+c\left( d_{r,IF}-d_{IF}^s\right) +e_{r,IF}^s\nonumber \\ L_{r,IF}^s&={\widehat{\rho }}_{r,IF}^s+c({\widehat{dt}}_r-dt^s)+{\widehat{IF}}\left( \lambda _1N_{r,1}^s,\lambda _2N_{r,2}^s\right) \nonumber \\&\quad +\varepsilon _{r,IF}^s \end{aligned}$$
(7)

where \({\widehat{\rho }}_{r,IF}^s\) represents the geometric distance computed by the known satellite orbits and station coordinates. The \(IF\) combined code biases (\(d_{r,IF}\) and \(d_{IF}^s\)) of all the dual-frequency types are assumed to be zero according to the IGS clock datum definition. \({\widehat{IF}}(\lambda _1N_{r,1}^s,\lambda _2N_{r,2}^s)\) contains satellite phase biases. It may be noted that the code receiver clock offset \(dt_r\) differs from the phase receiver clock offset \({\widehat{dt}}_{r}\). However, the difference is within a narrow-lane cycle and can be neglected except for time transfer applications. We can simply estimate one set of receiver clock offset for both code and phase measurements every epoch.

Third, we estimate daily constant satellite narrow-lane biases while fixing satellite orbit, clock and station related parameters to the known estimates in step 1 and 2. To ensure high narrow-lane fixing rate, we use only phase measurements in this step, as shown in Eq. (8) by eliminating all the known terms from Eq. (6).

$$\begin{aligned} L_{r,IF}^s-\lambda _{nl}\frac{\lambda _{wl}}{\lambda _{2}}N_{r,wl}^s&={\widehat{\rho }}_{r,IF}^s +c{\widehat{dt}}_{r} \nonumber \\&\quad +\lambda _{nl}\left( N_{r,1}^s-b_{nl}^{s}\right) +\varepsilon _{r,IF}^s \end{aligned}$$
(8)

where \(b_{nl}^{s}\) is the satellite narrow-lane bias consisting of \(b_{IF}^{s}\) and the bias introduced by the integer wide-lane ambiguity. A zero mean condition of all the satellite narrow-lane biases is imposed to cope with the singularity between satellite narrow-lane biases and receiver clock offsets. Ambiguities are resolved independently in the same two network clusters as in step 1. The potential integer narrow-lane cycles in satellite narrow-lane biases from different network clusters are aligned to their fractional parts before the stacking of normal equations. All the resolved ambiguities are saved consistently with respect to the final satellite narrow-lane biases. In this step, the saved ambiguities of one station can cause a constant shift in the receiver clock offsets.

Fig. 9
figure 9

Diagram of satellite orbit, integer clock and narrow-lane products estimation

Fourth, we estimate integer satellite clock products using both code and phase measurements of the whole station network. Satellite orbit, narrow-lane bias and station related parameters are fixed to the known values determined by step 1–3. The observation equation is shown in Eq. (9) where the code bias terms are not given since they are assumed to be zero.

$$\begin{aligned}&P_{r,IF}^s={\widehat{\rho }}_{r,IF}^s+c(dt_r-dt^s)+e_{r,IF}^s \nonumber \\&L_{r,IF}^s-\lambda _{nl}\frac{\lambda _{wl}}{\lambda _{2}}N_{r,wl}^s={\widehat{\rho }}_{r,IF}^s +c({\widehat{dt}}_{r}-dt^{s}) \nonumber \\&\quad +\lambda _{nl}N_{r,1}^s+\varepsilon _{r,IF}^s \end{aligned}$$
(9)

Satellite clock offsets determined by step 2 are taken as a priori values in this step. A zero mean condition of all the satellite clock offsets every epoch is imposed to separate satellite clock offsets from those of the receivers. All the resolved ambiguities in step 3 are taken as known in this step and phase equation in Eq. (9) is used to fix more ambiguities in the single combined network. After fixing all the ambiguities, code observations are introduced as well to estimate integer clock products. Finally, step 1 to step 4 can be iterated once to see whether more ambiguities can be fixed. The diagram describing the whole procedure is shown in Fig. 9.

4.2 Products assessment

We process the same 1 month of data as that in Sect. 3. Settings and orbit models are given in Table 3. The observation sampling is 5 min. We extract the middle day of the 3-day-arc orbit as the final daily solution. Earth rotation parameters (ERPs) are fixed to values in the Bulletin A file. The new Empirical CODE orbit model (ECOM2) is used for GPS satellites without any other a priori model while an a priori box-wing (BW) model is jointly used with the classical ECOM model for Galileo satellites (Beutler et al. 1994; Arnold et al. 2015; Duan et al. 2019). Phase center offset and variation (PCO and PCV) are fixed to the values in the standard IGS14 antex file. Stochastic pulses are considered for all the GPS satellites every 12 h while for Galileo satellites they are not applied. Station related parameters that are calculated from GPS L1/L2 observations are fixed as known in the following processing for GPS L1/L5, Galileo E1/E5a and Galileo E1/E5b observations.

Table 3 Settings and orbital models

We calculate orbit differences in radial, along-track and cross-track components at the day boundaries between consecutive arcs and define such differences as orbit misclosures. Table 4 shows the mean RMS values of orbit misclosures with and without ambiguity resolution for individual frequencies. It is clear that the ambiguity fixed solutions perform better than the float solutions for both GPS and Galileo satellites by using all frequencies. In particular, the improvement in along-track component is more than a factor of two. It is also noticed that orbit misclosures of the ambiguity fixed Galileo satellites are almost at the same level as those of GPS. We also compare our estimates to the external CODE MGEX orbits, as shown in Table 5. Same as in Table 4, ambiguity fixed solutions reduce the mean RMS values of 3D orbit differences by about a factor of two. In addition, we analyze satellite laser ranging (SLR) (Pearlman et al. 2002) residuals of both types of Galileo satellite orbits, as shown in Fig. 10. We find that the ambiguity fixed results show almost the same SLR residuals as the float solutions and there is no dependency of SLR residuals on the \(\beta \) angle (Sun elevation above the orbital plane).

Table 4 Mean RMS of orbit misclosures, R means radial component, A denotes along-track component, C means cross-track component (unit: cm)
Table 5 Mean RMS of orbit difference by comparing with CODE MGEX orbits, R means radial component, A denotes along-track component, C means cross-track component (unit: cm)

The IGS GPS and Galileo satellite clock products are based on L1/L2 and E1/E5a frequencies, respectively. We compare our clock estimates of the same frequency to the CODE MGEX satellite clock products since they provide ambiguity fixed clocks for the same time period. Figure 11 illustrates the daily mean STD value of clock differences. For both GPS and Galileo satellites, the mean STD values are reduced by about a factor of two when fixing ambiguity parameters to the integer values. It may be noted that the bottom figure of Fig. 11 exhibits a clear shift of STD values over time. This is because that \(\beta \) angles of satellites in one orbit plane are getting close to zero. The potential reason might be due to the different usage of solar radiation pressure (SRP) models.

Fig. 10
figure 10

SLR residuals of float (blue) and ambiguity fixed (red) Galileo satellite orbits

Fig. 11
figure 11

Mean std values of satellite clock difference between our estimates and CODE MGEX products, the top figure shows GPS L1/L2 clocks while the bottom figure shows Galileo E1/E5a clocks, blue color represents float solution, red color denotes ambiguity fixed solution

4.3 Differences between dual-frequency types

In the IGS14 antex file, PCO and PCV values of Galileo satellites are calibrated for all the frequencies while those of GPS L5 frequency are not yet given. Receiver PCO and PCV values are only available for GPS L1 and L2 frequencies. Thus, we assume that PCO and PCV values of GPS satellites on frequency L5 are the same as those on frequency L2. PCO and PCV values of receivers on GPS L1/L2 are copied for GPS L1/L5, Galileo E1/E5a and E1/E5b. To investigate the impact, we compare GPS and Galileo orbit products determined by different dual-frequency types. We find that the mean RMS of orbit differences between GPS L1/L2 and L1/L5 is 0.7, 1.1 and 0.8 cm in radial, along- and cross-track components. For Galileo satellites, orbit differences between E1/E5a and E1/E5b are smaller, with a mean RMS of 0.3, 0.8 and 0.6 cm in radial, along- and cross-track components. It is also mentioned that the station network of GPS L1/L2 and L1/L5, Galileo E1/E5a and E1/E5b is not identical since not all the stations track the frequency L5 or E5b. As a consequence, orbit differences between different dual-frequency types are not significant, especially for Galileo satellites.

Differences of GPS satellite clock offsets between frequency L1/L2 and L1/L5 are confirmed due to the inconsistency of carrier phase measurements (Montenbruck et al. 2012). Similarly, we perform an additional experiment with Galileo E1/E5a and E1/E5b measurements. Figure 12 shows clock differences of 1 day between L1/L2 and L1/L5 estimates for GPS satellites (top) and between E1/E5a and E1/E5b estimates for Galileo satellites (bottom). The mean offset of clock differences is eliminated from each satellite. It is clear that clock differences between GPS L1/L2 and L1/L5 vary periodically within 1 day, which just repeats the results in the citation. The peak-to-peak amplitudes start from \(-0.3\) to 0.4 ns, and the mean RMS of clock difference over 1 month is 0.1 ns. For Galileo satellites, the clock differences between the two types of dual-frequencies are very close to zero. All the differences are smaller than 0.04 ns and the mean RMS over 1 month is 0.015 ns, which is at the same level as the noise of carrier phase measurement in the ionosphere-free linear combination. Therefore, phase users can apply Galileo E1/E5a (same as in MGEX products) satellite clock products for the E1/E5b measurements. This is also very helpful for the triple frequency applications. However, for the pseudorange-only users, the mean difference of each satellite cannot be absorbed by ambiguity parameters and therefore needs to be considered.

Fig. 12
figure 12

Clock difference of 1 day between L1/L2 and L1/L5 estimates for GPS satellites (top) and between E1/E5a and E1/E5b estimates for Galileo satellites (bottom), the mean difference of each satellite is removed

5 Applications

We have estimated satellite orbit, clock, daily MelWub bias and daily narrow-lane bias products for GPS L1/L2, L1/L5 and Galileo E1/E5a, E1/E5b frequencies, respectively. 30-second sampling satellite clock products are generated based on the 5-min clock products using an efficient approach (Bock et al. 2009). To assess these products, we first introduce them into ground-station PPP application. The observation sampling is 30 s. Since there are not many GPS satellites broadcasting L1/L5 signals the corresponding applications are not investigated in this contribution. We use five stations that are not employed in the product estimation, as shown in Table 6. Data time interval is the same 1 month as in Sects. 3 and 4. Satellite products determined by different frequencies (L1/L2, E1/E5a and E1/E5b) are applied in the PPP-AR application, respectively. Table 7 shows the ambiguity fixing rates and the mean daily repeatability of PPP solutions. The fixing rates of Galileo satellites are in general slightly higher than that for GPS satellites. For all the three types of frequencies, the ambiguity fixed PPP solutions improve the repeatability of station coordinates by about 10% in north and up directions while about 30% in the east direction. Galileo satellites show similar performance as GPS satellites in the PPP-AR application.

Table 6 Station information in PPP test
Table 7 Wide-lane (WL) and narrow-lane (NL) ambiguity fixing rates and mean daily repeatability of all the stations over 1 month, Q means stations tracking signal Q, X denotes stations tracking signal X (unit: mm)

Then, we apply GPS L1/L2 products for Sentinel-3A (Peter et al. 2017; Montenbruck et al. 2018; Duan and Hugentobler 2019) satellite orbit determination. Sampling of GPS observations is 30 s. We assess both reduced-dynamic and kinematic orbit solutions. Figure 13 shows the SLR residuals of reduced-dynamic orbit solutions. The STD value is reduced by about 10% by comparing ambiguity fixed solutions to float valued solutions. Figure 14 shows the performance of kinematic orbits with respect to the reduced-dynamic solutions. The 3D (\(3D=\sqrt{\varDelta {x^2}+\varDelta {y^2}+\varDelta {z^2}}\)) RMS of orbit differences reduces by about a factor of two when fixing ambiguities to integer values. Both ground station PPP application and Sentinel satellite orbit determination demonstrate that our GPS and Galileo satellite products perform fairly well in the zero-difference ambiguity resolution.

Fig. 13
figure 13

SLR residuals of Sentine-3A reduced-dynamic satellite orbits by using our GPS products, red color represents float solution, blue color denotes ambiguity fixed solution

Fig. 14
figure 14

3D daily RMS of orbit difference between kinematic and reduced-dynamic Sentinel-3A satellite orbit, red color denotes the float solution while blue color denotes the ambiguity fixed solution

6 Summary and conclusions

Different than fixing double-difference ambiguities, ambiguity resolution of a single receiver needs dedicated satellite clock and bias products. In this contribution we present efficient procedures to estimate ambiguity fixed satellite orbit, integer clock, daily MelWub and narrow-lane bias products for both GPS and Galileo satellites.

First, we focus on the code bias differences between pilot-only signal Q and pilot-data signal X since satellite MelWub biases aggregate various code and phase biases. To investigate the detail, we set up two network clusters tracking Q and X signal, respectively. Results demonstrate that unlike phase measurements, GPS C5Q and C5X signals cannot be mixed in a network to estimate common satellite MelWub biases due to the large differences of code biases. Whereas, the mixing of C5Q and C5X is possible for Galileo satellites. The RMS of MelWub bias differences determined by Q and X network is 0.01 wide-lane cycles, which is negligible. So, we do not need to consider the difference between Q and X signals in Galileo satellite MelWub bias estimation.

Then, we estimate satellite orbit, integer clock and narrow-lane bias products. Orbit misclosures and orbit differences with respect to the CODE Final orbits show that ambiguity resolution improves the precision of GPS and Galileo satellite orbits by about a factor of two, especially in the along-track direction. The integer satellite clock products are confirmed to be more consistent with the CODE clock products. In addition, we compare orbit and clock solutions based on individual dual-frequency types for GPS and Galileo satellites, respectively. Clock differences between GPS L1/L2 and L1/L5 estimates show clear periodical variations, with a peak-to-peak amplitude of 0.7 ns after removing the daily mean difference of each satellite. However, the maximum clock difference between Galileo E1/E5a and E1/E5b estimates after removing the mean value is 0.04 ns and the mean RMS of differences is 0.015 ns, which is at the same level as the noise of carrier phase measurement in the ionosphere-free linear combination. So, phase measurement users can apply MGEX Galileo satellite clock products (determined by E1/E5a) in the applications using E1/E5b phase measurements.

Finally, we introduce our GPS and Galileo products into precise applications. We take five stations that are not used in the product estimation and assess performances of PPP-AR. The mean repeatability of station coordinates improves by about 10% in north and up directions while by about 30% in the east direction by fixing ambiguities to integer values. We also introduce our GPS L1/L2 products into Sentinel-3A satellite orbit determination. The STD value of SLR residuals is reduced by about 10% for the reduced-dynamic orbits by fixing ambiguity parameters to integer values. Moreover, the ambiguity fixed kinematic orbit solutions are two times more consistent with the reduced-dynamic solutions.