Introduction

As a prominent technique for achieving high-precision positioning with a single Global Navigation Satellite System (GNSS) receiver, precise point positioning (PPP) has been widely used in various fields (Malys and Jensen 1990; Zumberge et al. 1997; Kouba and Héroux 2001). However, it usually takes at least 30 min for float PPP solution to achieve centimeter-level positioning accuracy, which limits its wide application in time-critical applications. To shorten the initialization time and improve the positioning accuracy of the traditional PPP, the ambiguity resolution (AR) technique has been developed in recent years (Ge et al. 2008; Collins et al. 2008; Laurichesse et al. 2009).

For PPP AR, the key issue is to remove the uncalibrated phase delays (UPDs) from undifferenced ambiguities and recover the integer property of these ambiguities. Ge et al. (2008) developed an approach to estimate single-difference UPD by averaging the fractional parts of the float wide-lane (WL) and narrow-lane (NL) ambiguities. Afterward, Li and Zhang (2012) proposed a zero-difference UPD estimation model to estimate UPDs with float zero-difference ambiguities derived from a reference network. Studies concerning UPD estimation and PPP AR have been conducted for several years and results demonstrate the significant contribution of ambiguity resolution to PPP; however, only a few research institutions have exploited this technique for scientific research. One possible reason may be that few open-source software packages have been developed for UPD estimation and PPP AR.

Nowadays, GNSS is undergoing significant changes with the rapid development of BeiDou navigation satellite system (BDS) and Galileo as well as the modernization of GPS and GLONASS (Montenbruck et al. 2017). As of December 2020, 121 satellites from GPS, GLONASS, Galileo and BDS are available to provide navigation service for global users. Moreover, the new-generation GNSS satellites such as GPS Block IIF/III, GLONASS-K, BDS-2/BDS-3 and Galileo satellites all operate on 3 or more frequencies. With the availability of multi-GNSS and multi-frequency observations, the performance of PPP AR is expected to be further improved. It has been demonstrated that the multi-GNSS PPP AR enables better performance in terms of the time to first fix (TTFF) and positioning accuracy compared to a single or dual system (Geng et al. 2016; Li et al. 2017, 2018). At the same time, research on multi-frequency PPP AR has been extensively conducted and has shown better performance than dual-frequency (Gu et al. 2015; Li et al. 2019, 2020a).

To achieve multi-GNSS and multi-frequency PPP AR, the multi-frequency UPD products for all GNSS satellites are required to recover the integer nature of PPP ambiguities. Some research institutions such as Centre National d’Etudes Spatiales (CNES), Center for Orbit Determination in Europe (CODE), and the School of Geodesy and Geomatics (SGG) at Wuhan University have released UPD products or integer-recovered-clock (IRC) products to users for PPP AR (Loyer et al. 2012; Hu et al. 2020; Banville et al. 2020). However, the above UPD products can only be used with the corresponding precise orbit and clock products in dual-frequency mode, and GLONASS UPD products are still not available. To meet the needs of users who want to flexibly implement multi-GNSS and multi-frequency PPP AR, we developed the open-sourced GREAT-UPD software for UPD estimation. It is capable of estimating extra-wide-lane (EWL), wide-lane, and narrow-lane UPDs for GPS (G), GLONASS (R), Galileo (E) and BDS (C) satellites using multi-frequency observations. As open-source software, the GREAT-UPD first version was released in July 2020 under the GNU General Public License (version 3).

Design and implementation of GREAT-UPD software

The GREAT (GNSS + Research, Application and Teaching) software is a scientific, high-precision, multi-GNSS data processing software developed at the School of Geodesy and Geomatics of Wuhan University. As an important module, GREAT-UPD is released according to the terms of GNU General Public License (version 3). The software is written in the C + + 11 language, following the principles of high cohesion, low coupling, and strong extensibility. The cross-platform compilation tool CMake is adopted to build and package the software on different operating systems (Windows, Linux, and Macintosh).

The source code and executable programs of GREAT-UPD are packaged and released on the website https://geodesy.noaa.gov/gps-toolbox. To facilitate the use of GREAT-UPD, batch processing scripts, some auxiliary tools, example data, and a user manual are also included in the software package. Instructions on installing, compiling, and running the GREAT-UPD software can be found in the user manual.

Structure of GREAT-UPD

GREAT-UPD is mainly composed of 3 libraries named libUPD, libMat and libGnut. The libUPD library is mainly in charge of estimating UPD, including the encoding, decoding, and storage of auxiliary data involved in the UPD estimation, as well as the implementation of UPD algorithm. As for LibMat and libGnut, they are auxiliary libraries for the software. LibMat is an open-source C + + matrix library named newmat, which offers standard matrix operations. LibGnut library comes from the open-source GNSS software G-Nut (Vaclavovic et al. 2013), including the decoding and storage of GNSS data as well as the basic parameter configuration module. It is worth noting that GREAT-UPD uses XML format as software external parameter configuration, and users can configure parameters related to UPD estimation through XML files.

Implementation of UPD algorithm

The specific UPD estimation method adopted by the software is introduced in the user manual. Figure 1 shows the flowchart of UPD estimation. As can be seen, the procedure for UPD estimation can be divided into 4 steps:

Fig. 1
figure 1

Flowchart of UPD estimation using GREAT-UPD software

Firstly, data preparation and preprocessing: For EWL and WL UPD estimation, observation files, navigation files, differential code bias (DCB) files and cycle slip files are required. It is worth noting that inter-frequency clock bias (IFCB) files are also required for GPS EWL UPD estimation. For NL UPD estimation, navigation files, WL UPD file and AMBUPD files are required. AMBUPD files are text files containing float WL ambiguities and the estimated ionospheric-free (IF) ambiguities. Details and descriptions of the input GNSS files can be found in the user manual.

Secondly, the calculation of the float ambiguities: For EWL/WL UPD estimation, the float EWL/WL ambiguities can be formed from Hatch-Melbourne-Wübbena (HMW) (Hatch 1982; Melbourne 1985; Wübbena 1985) combination with DCB (and IFCB) correction. For NL UPD estimation, the float NL ambiguities can be calculated based on the restored integer WL ambiguities and the estimated IF ambiguities.

Thirdly, based on the float ambiguities, the initial UPD values can be obtained. Firstly, set the receiver UPD of one station with the largest number of visible satellites to zero, and calculate the UPD of each satellite observed by this station. For the next station with common satellites, its UPD can be calculated by averaging the fractional parts of ambiguities from which the satellite UPDs are removed. If this station can observe the other satellites, the corresponding satellite UPDs can be calculated based on the receiver UPD. After obtaining UPDs of all stations, we recalculate the satellite UPDs by averaging the fractional parts of ambiguities from which the receiver UPDs are removed. After iterating the above steps 3 times, the initial UPD values of all stations and satellites are obtained.

Finally, selecting a reference satellite to eliminate the rank deficiency and then the least-squares estimation is conducted iteratively to generate UPDs of all stations and satellites. After each iteration, the number of ambiguities that can be fixed will be counted. If the number of the fixable ambiguities decreases or the number of iterations is greater than 10, the iteration is stopped. The condition for judging whether the ambiguity can be fixed is: after removing satellite and station UPDs, the ambiguity is considered fixed when its fraction is less than the threshold (e.g., 0.25 cycles).

Auxiliary tools

In order to facilitate users to use the software and perform batch processing, some auxiliary tools for data download, cycle slip detection, and result analysis are provided, which are introduced as follows:

Data download

To help users prepare the data for UPD estimation, some Python scripts are provided for batch downloading GNSS data. The scripts support downloading GNSS observation and navigation files, as well as CODE DCB products.

Cycle slip detection

Cycle slip files are required for EWL/WL UPD estimation in GREAT-UPD, and thus an executable application program named GREAT-PreEdit is provided for generating cycle slip files. GREAT-PreEdit is designed based on the improved TurboEdit algorithm and supports cycle slip detection for multi-frequency and multi-GNSS observations (Blewitt 1990). Executable programs that can run in Linux, Windows and Macintosh environments are provided, respectively, as well as the script for running GREAT-PreEdit.

Results analysis

Some MATLAB scripts are provided to users for result analysis. The scripts can be run in the Windows and Linux environments. Scripts for plotting UPD time series, calculating the averaged standard deviation (STD) of UPD and plotting UPD residual distribution are provided with the software.

Performance of GREAT-UPD

In this section, the multi-GNSS and multi-frequency UPDs generated by the GREAT-UPD software are presented and the quality of UPD products is assessed. To further evaluate the estimated UPD results, the performance of multi-GNSS and multi-frequency PPP AR is also shown.

Data and processing strategies

The WL, NL UPDs for GREC satellites and the EWL UPDs for GEC satellites are estimated and analyzed based on observations from day of year (DOY) 091 to 120 of 2019. In the process of UPD estimation and PPP AR, CODE final products are used, including precise orbit, clock and DCB products.

The distribution of the global reference network for UPD estimation is shown in Fig. 2. The 222 stations denoted by blue dots from the International GNSS Service (IGS) and Multi-GNSS Experiment (MGEX) networks are employed for GPS, Galileo and BDS UPD estimation. For GLONASS, the UPD estimation is performed for receiver TRIMBLE NETR9, and observations of 124 stations denoted by red dots from the IGS and MGEX networks are used. In addition, the BDS in this article refers to BDS-2. The PPP AR experiment is performed using one-month data from 20 user stations, the distribution of which is shown in Fig. 3.

Fig. 2
figure 2

Distribution of the GPS/Galileo/BDS and GLONASS reference stations for UPD estimation. The blue dots denote the stations for GPS/Galileo/BDS UPD estimation, and the red dots denote the stations for GLONASS UPD estimation

Fig. 3
figure 3

Distribution of the user stations

UPD estimation results

The GEC EWL and GREC WL UPD series from DOY 091 to 120 of 2019 are shown in Fig. 4 and Fig. 5, respectively. Several satellites of each system are selected to display the results. Here G06, R05, E01 and C09 are chosen as the reference satellites for GPS, GLONASS, Galileo and BDS, respectively. It can be found that the EWL UPDs of Galileo satellites are all close to zero, which may due to the high correlation of link characteristics of the alternative binary offset carrier (Alt-BOC) signals on E5a and E5b frequencies (Yao et al. 2016; Li et al. 2019, 2020b). Compared to Galileo and BDS, the GPS EWL UPD series are less stable, which may be affected by the residual IFCB errors. As can be seen from Fig. 5, the GPS and Galileo WL UPDs show better stability than GLONASS and BDS, which may benefit from the high-quality observations of GPS and Galileo. In addition, some jumps are seen in the GPS and BDS WL UPD time series, which may be caused by clock datum offsets (Liu et al. 2017).

Fig. 4
figure 4

EWL UPDs of GEC satellites from DOY 091 to 120 of 2019

Fig. 5
figure 5

WL UPDs of GREC satellites from DOY 091 to 120 of 2019

Figure 6 shows the NL UPD series of GREC satellites on DOY 094 of 2019. Overall, the NL UPDs are relatively stable throughout the day, and GLONASS shows the worst stability among those 4 systems. The averaged STDs of NL UPDs are within 0.05 cycles for most GPS, Galileo and BDS satellites. As for GLONASS, most satellites’ averaged STDs are within 0.15 cycles, and the largest value can reach 0.28 cycles for R24. More analysis on the quality of the UPDs generated by the GREAT-UPD software can be found in the manual.

Fig. 6
figure 6

NL UPDs of GREC satellites on DOY 094 of 2019

Result analysis of PPP AR

Figure 7 shows the positioning errors of dual- and triple-frequency PPP solutions of GPS-only and GREC at station KZN2 on DOY 094 of 2019. The green, blue and red dots in Fig. 7 indicate the triple-frequency float (TF-float), dual-frequency fixed (DF-fixed) and triple-frequency fixed (TF-fixed) solutions, respectively. Compared to the float PPP solutions, the PPP AR solutions perform much better in terms of convergence time and position accuracy due to the success of ambiguity resolution. Also, the GREC PPP solutions show faster convergence and higher positioning accuracy than GPS-only solutions.

Fig. 7
figure 7

Positioning errors of multi-frequency PPP solutions of GPS-only (left) and GREC (right) at station KZN2 on DOY 094 of 2019

Moreover, the averaged convergence time and TTFF of multi-frequency GPS-only, GREC PPP are calculated, respectively. Here the convergence time is defined as the time required to attain a horizontal positioning accuracy less than 5 cm for 10 epochs, and the TTFF is defined as the time taken for the ambiguity to be fixed successfully for 5 epochs. In comparison with triple-frequency float PPP solutions, the averaged convergence time of triple-frequency PPP AR is shortened by 47.2% for GPS-only solution and 38.0% for GREC solution. However, compared with dual-frequency PPP AR, the averaged convergence time of triple-frequency PPP AR is only shortened by 4.4% and 3.8% for GPS-only and GREC, respectively. The averaged TTFF of GREC dual- and triple-frequency PPP AR can reach 9.5 min and 9.0 min, which is a slight improvement compared to GPS-only solutions with 10.7 min and 10.4 min, respectively.

Conclusion and outlook

The open-source software GREAT-UPD can be used to estimate the multi-frequency UPDs for GPS, GLONASS, Galileo and BDS satellites based on the ionospheric-free combination model. Results show that GREAT-UPD is capable of generating stable EWL, WL and NL UPDs for multi-GNSS satellites. To further evaluate the quality of the estimated UPDs, multi-frequency GPS-only and GREC PPP AR performance is also discussed. Moreover, the main modules of the software are introduced in detail. The source code of GREAT-UPD is available at the website: https://geodesy.noaa.gov/gps-toolbox, as well as some auxiliary tools, batch processing scripts, and a user manual. Future development for GREAT-UPD will aim to support multi-GNSS and multi-frequency UPD estimation based on the undifferenced and uncombined observations. Readers and users are welcome to report software bugs or give suggestions to the authors.