# Improved Multi-GNSS PPP Software for Upgrading the DEMETRA Project Time Monitoring Service
## 2 Updated Atomium PPP Algorithms
### Atomium Integer PPP  
To fix the integer ambiguities of the carrier phase measurements for improved PPP frequency transfer, the GRG satellite products [26] are used in the Atomium integer PPP software instead of the IGS/MGEX products. The GRG products are generated at the CNES (Centre National d'Etudes Spatiales) and CLS (Collecte Localisation Satellites) IGS analysis center. These products include the satellite clock, satellite orbit, earth rotation parameters (ERP), and satellite wide-lane biases (wsb). Since the wsb files for Galileo are not regularly available yet, only GPS signals are included in the current integer PPP software. The computation takes place in three main steps: 1. Resolve the wide-lane (WL) integer ambiguity; 2. Resolve the narrow-lane (NL) integer ambiguity; 3. Compute the final solution. 1. In the first step, the Melbourne-Wubbena (MW) combination is built at each epoch using phase and code measurements for each GPS satellite:  
\[\mathrm{MW}=(\alpha_{\mathit{WL}}L1-\beta_{\mathit{WL}}L2)-(\alpha_{\mathit{ NL}}P1+\beta_{\mathit{NL}}P2), \tag{6}\]  
where (L1, L2) and (P1, P2) represent the carrier phase measurements and code measurements on the L1 and L2 band separately, (\(\alpha_{\mathit{WL}}\), \(\beta_{\mathit{WL}}\)) and (\(\alpha_{\mathit{NL}}\), \(\beta_{\mathit{NL}}\)) are the coefficients in front of the related measurements for the MW combination. Equation (6) can be further expressed as  
\[\frac{\mathrm{MW}}{\lambda_{\mathit{WL}}}=\ N_{\mathit{WL}}+\mathit{WRB}- \mathit{WSB}, \tag{7}\]  
where \(\lambda_{\mathit{WL}}\) is the WL wavelength (in meter), \(N_{\mathit{WL}}\) is the integer ambiguity of WL combination (in cycle), WRB is the WL receiver bias, and WSB is the WL satellite bias provided by GRG products. With the least square method, the real-valued \(N_{\mathit{WL}}\) and WRB are estimated by each satellite track and each epoch separately. To avoid the singularity of WRB estimation, an absolute constraint on WRB is set for the first day estimation. Then the GNSS bootstrapping method [32] is adopted to fix the \(N_{\mathit{WL}}\) to a closest integer cycle per track, and WRBs are the remaining fractional cycles in the MW combination at each epoch. In this step, the \(N_{\mathit{WL}}\) is fixed only when its success rate of fixing [32] is over 90% and its real-valued ambiguity is not too far from an integer value (smaller than 0.25 WL cycle), only the track with fixed \(N_{WL}\) is used for the computation in the next step. To obtain coherent clock solutions for multiple days, the mean of the solved WRB in the previous day is chosen as the constraint on the WRB estimation of the next day. So, the estimated WRBs do not have to be always a fractional cycle of WL as it is evolving, but it has to be continuous to avoid the receiver clock misalignment at different days caused by the integer cycle estimation error of WRB. 2. In step 2, the GPS ionosphere free (IF) code and carrier phase combination can be first expressed as  
\[P_{IF}=\ \rho+\ T^{R}+\mathrm{zpd}+\mathrm{e}+\ \varepsilon_{P}, \tag{8}\]  
\[L_{IF}=\rho+\ T^{R}+\mathrm{zpd}+\lambda_{NL}(N_{1}+(\lambda_{WL}/\lambda_{2}) N_{WL})+\mathrm{W}+\mathrm{e}+\varepsilon_{L}, \tag{9}\]  
where \(P_{IF}\) and \(L_{IF}\) are the code and carrier phase ionosphere free combination, respectively, \(\rho\) is the distance between satellite and receiver phase center, \(T^{R}\) is the receiver clock error, zpd is the troposphere zenith wet delay, W is the wind-up effect to be corrected, e is the other common errors between code and phase measurements (e.g., troposphere dry component delay, relativistic effect, satellite clock error), \(\varepsilon_{P}\) and \(\varepsilon_{L}\) are the code and phase noises, respectively, \(\lambda_{NL}\) is the NL wavelength, \(N_{1}\) is the integer ambiguity to be resolved, and integer \(N_{WL}\) has already been fixed in step 1. Since \(\lambda_{NL}=17\lambda_{IF}=10.7\) cm, it is much easier to resolve the integer ambiguity.