Skip to main content
  • Original article
  • Open access
  • Published:

A new approach for cycle slip detection and fix using single GPS receiver’s single satellite dual frequency data containing arbitrarily large pseudorange errors

Abstract

This paper presents a new cycle slip detection and repair method using Total Electron Content Rate (TECR) information derived from individual satellite dual-frequency data of a single Global Positioning System (GPS) receiver while pseudorange measurements are subject to arbitrarily large range errors. Sudden Increase of Pseudorange Error (SIPE), similar to cycle slips in nature, is quite common in various data acquisition scenarios. The basic principle of this method is to take advantage of the fact that the ionospheric TECR does not exceed certain threshold, which is set as 0.35 TECU/s in this study. Analytic expressions to evaluate the effect of SIPE on cycle slip detections have been developed. The search spaces for cycle slip candidate pairs are defined, given a predefined (sufficiently large) SIPE value. Two cycle slip validation rules are proposed to validate the cycle slip candidates. Over 99.9% of candidates can be rejected with the application of two validation rules. The theoretically maximal number of remaining cycle slip candidate pairs (NRCP) can be exactly calculated based on the magnitude of SIPE, TECR threshold, and the data sampling interval. After applying validation rules, the correct cycle slip pairs can be identified using a modified low-order polynomial fitting method. This method is tested on 13 high rate (1-Hz) dual-frequency datasets recorded by both ground-based static and satellite-borne high dynamic GPS receivers under various levels of ionospheric activities. Simulated cycle slips in 12 different possible cases and varying SIPE magnitudes are introduced into the data sets. In each test scheme, averagely 600–750 pairs of cycle slips are simulated. The SIPE magnitudes are set to vary from 50.0 m to 1000.0 m. Test results show that all the cycle slips in all the test schemes and all the datasets have been successfully detected and fixed even with a maximum SIPE of 1000.0 m in pseudoranges. A distinct advantage of this method is that it works in real-time with individual satellite’s data from a single dual-frequency receiver, even if the carrier phases have virtually any size of cycle slips and the pseudoranges have virtually arbitrarily large errors.

Introduction

Global Positioning System (GPS) or Global Navigation Satellite System (GNSS) carrier phase measurements are the major observables in high-precision geodetic applications. Under high carrier to noise ratio (C/N0) scenario, the accuracy of GNSS receiver carrier phase observations is usually less than 2 mm (Hofman-Wellenhof et al. 1994). With high quality GNSS receivers and International GNSS Service (IGS) products (Dow et al. 2009), it is possible to obtain very accurate (1 mm/year) GNSS solutions that are useful for many scientific research purposes (Larson 2009). However, one issue constantly encountered in achieving such a high precision is the occurrence of cycle slips in carrier phase measurements. Even if the slip is only 1 cycle, the resultant range error is of ~ 20 cm (e.g. for on GPS L1 signal). Thus the proper handling of cycle slips has long been a critical procedure in high precision GNSS data processing.

To detect and fix cycle slips, many methods that are suitable for either double differencing or undifferencing algorithms (e.g. Precise Point Positioning, PPP) have been proposed. These include polynomial fitting (Beutler et al. 1984), Kalman filtering based on first-order differential equations of the carrier phase observations (Landau 1989), an integration of Melbourne–Wübbena Wide Lane (MWWL) combination and a polynomial fitting to the geometry-free combination (Blewitt 1990), using inertial navigation data to assist GPS cycle slip detection (Colombo et al. 1999; Lee et al. 2003), an integration of geometry-free phase observation and the widelane phase minus narrowlane pseudorange (Bisnath 2000), triple differencing of carrier phase observations (Kim and Langley 2001), Bayesian approach working with polynomial fitting (de Lacy et al. 2008), estimating the cycle slips through the Least-Squares Ambiguity Decorrelation Adjustment (LAMBDA) method (Banville and Langley 2010; Zhang and Li 2011). A more detailed summary of those methods can refer to Xu (2007) and Liu (2011). However these methods have their own limitations and their performances under severe conditions still need to be improved. For instance, the polynomial fitting method indeed can be used regardless of the pseudorange errors. However this fitting method often fails to detect small cycle slips (e.g. 1 or 2 cycles). Moreover, the fitting usually needs multiple epochs of carrier phase data. Thus it cannot be used for the early epochs of one satellite’s data series. That may be why many other cycle slip detection and fix methods, with the use of pseudorange measurements, have been developed over the past many years, e.g. the ones presented in (Blewitt 1990; Bisnath 2000; Banville and Langley 2010; Zhang and Li 2011). With the use of pseudorange measurements, the quality of pseudorange data is of great concern. When cycle slips in carrier phase data and large errors in pseudorange data occur at the same time in an epoch, how to detect and fix the cycle slips in real-time mode has not been completely addressed.

It has been shown earlier that virtually any cycle slips associated with high-rate GNSS observations can be successfully detected and fixed, even using one single dual-frequency GNSS receiver (Liu 2011). The test results show that it is technically feasible to apply that method for real-time cycle slip detection and fix in high-rate GNSS applications. Nevertheless, the correctness of the cycle slips calculated using that method largely depends on the quality of the pseudorange measurements, as shown in the MWWL linear combination. The method given in Liu (2011) requires pseudoranges at L1 and L2 frequencies have a reasonably good accuracy. It has been analyzed that at normal level of pseudorange noise of 0.5 m, the introduced noise in the cycle slip detection is approximately 0.6 widelane cycle. In de Lacy et al. (2011), the required accuracy of pseudorange measurements is 10–15 cm, much higher than the half meter requirement. In real-world circumstances, such a stringent requirement on the pseudorange data quality is difficult to be satisfied. Hwang et al. (2010) showed that the multipath effects on P1 and P2 pseudoranges of the Constellation Observing System for Meteorology, Ionosphere, and Climate (COSMIC) spaceborne GPS receivers are as high as 0.78 m and 1.03 m, respectively. It also suggested that the high level of multipath was one of the factors resulting in high rate of cycle slip of 3.45% (Hwang et al. 2010).

In practical data acquisition, it is very likely that pseudorange errors at particular epochs suddenly have significantly larger values than the expected ones. This might be due to the presence of diffraction and multipath or to the variations of the instrumental delays possibly due to temperature variations which can occur at different sections: antenna, cables, amplifiers, splitters, receivers, such as anomaly inside the GNSS receivers (Parkinson and Spilker 1996; Defraigne and Bruyninx 2007). Without loss of generality, all these kinds of errors can be categorized as Sudden Increase of Pseudorange Errors (SIPE). Some ground-based experiments showed that the multipath on pseudorange can even exceed a magnitude of 6.0 m (Liu et al. 2009). Similar to cycle slips in carrier phase data, the pseudorange can have anomalous range errors unexpectedly anytime. For instance, an SIPE of 8.6 m was identified in the cycle slip analysis, resulting in erroneous cycle slip fix outcome (Liu 2011). New algorithms should be developed to address the cycle slip detection and fix issue under challenging situations when SIPE is present.

Liu (2011) illustrates the successful integration of Melbourne-Wübbena Wide Lane linear combination (Melbourne 1985; Wübbena 1985) and the TECR information to uniquely detect and fix cycle slips epoch by epoch in real-time. In that work, the SIPE problem however was not addressed. Under the circumstance of arbitrarily large pseudorange errors, no literature has addressed the problem of cycle slip detection and repair using a single dual-frequency receiver. This paper aims to develop an innovative approach to completely eliminating the impact of SIPE on cycle slip detection and fix. The reliability of cycle slip detection and fix can be enhanced particularly under degraded GNSS observation conditions such as large multipath errors or unexpected pseudorange anomalies.

This paper can be considered as a continuation to our previous effort. There are several reasons for this. First, development of algorithms for processing GNSS data from a single station is increasingly important as the PPP technique has increasingly attracted attentions over the past a few years (Zumberge et al. 1997; Le and Tiberius 2007; Teferle et al. 2007; Ge et al. 2008; Geng et al. 2009; Bertiger et al. 2010; Leandro et al. 2011). Second, there is an increasing trend worldwide to deploy high-rate (1 Hz or even higher) GNSS receivers globally. In the EUREF Permanent Network (EPN), there are nearly 250 high rate stations in operation (Bruyninx et al. 2011). In the worldwide, thousands of GNSS receivers have been deployed to routinely collect GNSS data at 1-Hz rate (Larson 2009). Within the IGS network, over 110 receivers are configured to record GNSS data at 1-Hz rate and thousands more GNSS receivers used by individual geodetic agencies in Canada, Europe, Japan, the US and other countries are also logging real-time high rate data (Larson 2009). With such a large number of high-rate GNSS reference stations recording data for real-time applications, it is highly desirable from a cost-effective point of view to detect and fix cycle slips on a real-time, single-station basis.

This paper is organized as below. In Section Methodology for cycle slip detection and fix, the basic principle of cycle slip detection and fix is presented; the formulas evaluating the impact of SIPE on cycle slip fix are derived; the impact of SIPE on cycle slip detection is analyzed; the basic idea of this new method is introduced; and the cycle slip search spaces are defined. In Section Cycle slip search rules and estimation of remaining candidate pairs, 2 cycle slip search algorithms are proposed and their formulas for cycle slip validation are derived; the method of estimating the remaining number of cycle slip candidate pairs is developed; a low-order polynomial fitting method is used in a new fashion to identify the correct cycle slips from the small number of remaining cycle slip candidates. Section Test and data analysis presents the extensive data analysis results. The discussion of the use of this method is given in Section Discussion. The conclusion is given in Section Conclusion.

Methods

Basic principle

In this study, the cycle slip detection and fix are primarily based on two formulas. One is the Melbourne–Wübbena Wide Lane linear combination given in Eq. (1) and the other is the ionospheric TECR measurement given in Eq. (2) (Liu 2011).

$$ {\displaystyle \begin{array}{l}\left[\Delta {\mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-\Delta {\mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]={\mathrm{N}}_{\mathrm{WL}}^{\mathrm{p}}\left(\mathrm{k}-1\right)-{\mathrm{N}}_{\mathrm{WL}}^{\mathrm{p}}\left(\mathrm{k}\right)=\left[{\Phi}_1^{\mathrm{p}}\left(\mathrm{k}-1\right)-{\Phi}_2^{\mathrm{p}}\left(\mathrm{k}-1\right)-\frac{{\mathrm{f}}_1\cdot {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}-1\right)+{\mathrm{f}}_2\cdot {\mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}-1\right)}{\uplambda_{\mathrm{WL}}\left({\mathrm{f}}_1+{\mathrm{f}}_2\right)}\right]-\\ {}\left[{\Phi}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Phi}_2^{\mathrm{p}}\left(\mathrm{k}\right)-\frac{{\mathrm{f}}_1\cdot {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right)+{\mathrm{f}}_2\cdot {\mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}{\uplambda_{\mathrm{WL}}\left({\mathrm{f}}_1+{\mathrm{f}}_2\right)}\right]\end{array}} $$
(1)
$$ \left[{\uplambda}_1\Delta {\mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\uplambda}_2\Delta {\mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]=\frac{40.3\times {10}^{16}\left(\upgamma -1\right)\Delta \mathrm{t}\cdot {\mathrm{TECR}}_{\Phi}\left(\mathrm{k}\right)}{{\mathrm{f}}_1^2}-{\uplambda}_1\left[{\Phi}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Phi}_1^{\mathrm{p}}\left(\mathrm{k}-1\right)\right]+{\uplambda}_2\left[{\Phi}_2^{\mathrm{p}}\left(\mathrm{k}\right)-{\Phi}_2^{\mathrm{p}}\left(\mathrm{k}-1\right)\right] $$
(2)

where

f1 and f2 are two frequencies in unit of Hz, e.g. GPS L1 and L2 frequencies;

λ1 and λ2 are wavelengths in unit of m/cycle corresponding to the f1 and f2 frequencies, respectively;

γ is defined as \( \upgamma ={f}_1^2/{f}_2^2 \);

p is the satellite identification;

λWL = c/(f1 − f2) is the wavelength of the widelane combination observation and c is the speed of light in vacuum;

TECRΦ(k) is the ionospheric TEC rate in unit of TECU/s at epoch (k);

∆t is the data observation interval in unit of second between epochs (k-1) and (k);

\( {\Phi}_1^{\mathrm{p}}\left(\mathrm{k}-1\right) \) and \( {\Phi}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) are carrier phase measurements in unit of cycle at epochs (k-1) and (k), respectively;

\( {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}-1\right) \) and \( {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) are pseudorange measurements in unit of m at epochs (k-1) and (k), respectively;

\( {\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) and \( {\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \) are detected cycle slips in unit of cycle at the f1 and f2 frequencies, respectively.

The MWWL linear combination has been widely used for cycle slip detection and fix because it removes the effects from the atmosphere (including both ionosphere and troposphere), the geometry, and satellite and receiver clocks (Blewitt 1990). Similar to the MWWL linear combination, the ionospheric TECR measurement is also free from the effects of atmosphere (except the rate of ionospheric TEC), the geometry, and satellite and receiver clocks. A unique characteristic of the TECR measurement is that in most cases it is very sensitive to cycle slips, particularly when the GNSS data rate is high (e.g. 1 Hz). Normally a small cycle slip will result in a large TECR. Therefore the integration of Eqs. (1) and (2) can uniquely detect and fix cycle slips for single receiver regardless of the GNSS receiver dynamics. The examples given in Liu (2011) showed that cycle slips in GPS data recorded under high dynamics (spaceborne GPS receiver on COSMIC satellite) could be successfully detected and fixed.

Analysis of the effect of SIPE on cycle slip detection

The evaluation of the exact effect of the pseudorange error on cycle slip detection and fix is analytically demonstrated below. It can be seen in Eq. (1) that at epoch (k), the pseudorange measurements on both frequencies (P1 and P2 for the case of GPS) are required. If the pseudorange measurements \( {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) and \( {\mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \) have SIPE, it may affect the cycle slip term in the left-hand side of Eq. (1). It is possible that at epoch (k-1), the \( {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}-1\right) \) and \( {\mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}-2\right) \) may also have a SIPE relative to its previous epoch. It is not difficult to analyze from Eq. (1) that when both epochs (k) and (k-1) have pseudorange SIPE of the same size, their impact on the left-hand term of Eq. (1) is actually cancelled. Therefore, it might be more precise to define the SIPE as the sudden increase of pseudorange error relative to its previous epoch.

For brevity, we define:

$$ \mathrm{A}=\left[{\Phi}_1^{\mathrm{p}}\left(\mathrm{k}-1\right)-{\Phi}_2^{\mathrm{p}}\left(\mathrm{k}-1\right)-\frac{{\mathrm{f}}_1\bullet {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}-1\right)+{\mathrm{f}}_2\bullet {\mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}-1\right)}{\uplambda_{\mathrm{WL}}\left({\mathrm{f}}_1+{\mathrm{f}}_2\right)}\right]-\left[{\Phi}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Phi}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right] $$
$$ \mathrm{B}=\frac{40.3\times {10}^{16}\left(\upgamma -1\right)\Delta \mathrm{t}\bullet {\mathrm{TECR}}_{\Phi}\left(\mathrm{k}\right)}{{\mathrm{f}}_1^2}-{\uplambda}_1\left[{\Phi}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Phi}_1^{\mathrm{p}}\left(\mathrm{k}-1\right)\right]+{\uplambda}_2\left[{\Phi}_2^{\mathrm{p}}\left(\mathrm{k}\right)-{\Phi}_2^{\mathrm{p}}\left(\mathrm{k}-1\right)\right] $$

Thus the Eqs. (1) and (2) can be simplified as:

$$ \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]=\mathrm{A}+\frac{{\mathrm{f}}_1\bullet {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right)+{\mathrm{f}}_2\bullet {\mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}{\uplambda_{\mathrm{WL}}\left({\mathrm{f}}_1+{\mathrm{f}}_2\right)} $$
(3)
$$ \left[{\uplambda}_1{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\uplambda}_2{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]=\mathrm{B} $$
(4)

The SIPE in \( {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) and \( {\mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \) can be denoted as \( \delta {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) and \( \delta {\mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \), respectively. The maximum SIPE can be defined as:

$$ {\mathrm{SIPE}}_{\mathrm{max}}=\max \left\{\left|\delta {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right)\right|,\left|\delta {\mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right|\right\},\delta {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right),\delta {\mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\in \left(-\infty, \infty \right) $$

Considering the \( \delta {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) and \( \delta {\mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \), it can be easily evaluated from Eq. (3) that the contribution of the pseudorange errors to the widelane cycle slip term \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right] \) is:

$$ \updelta \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]=\operatorname{int}\left[\frac{{\mathrm{f}}_1\bullet \updelta {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right)+{\mathrm{f}}_2\bullet \updelta {\mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}{\uplambda_{\mathrm{WL}}\left({\mathrm{f}}_1+{\mathrm{f}}_2\right)}\right]=\operatorname{int}\left[0.652\bullet \updelta {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right)+0.508\bullet \updelta {\mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]-\operatorname{int}\left[1.16\bullet {\mathrm{SIPE}}_{\mathrm{max}}\right]\le \updelta \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]\le \operatorname{int}\left[1.16\bullet {\mathrm{SIPE}}_{\mathrm{max}}\right] $$
(5)

In Eq. (5), int[x] is the function rounding the value of x to the nearest integer greater than or equal to x. Eq. (5) shows that the impact of pseudorange errors \( \delta {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) and \( \delta {\mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \) on widelane cycle slip is \( \updelta \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right] \). When \( \delta {\mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) or \( \delta {\mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \) is large enough, it is almost guaranteed that wrong cycle slips will be obtained from Eq. (3) and (4). The following Fig. 1 illustrates the effect of the pseudorange errors on the widelane cycle slip calculation. When both P1 (or represented by C1 in the figure) and P2 pseudoranges have a 10-m error, the resultant widelane cycle slip error can be as large as 12 cycles. Taking the multipath errors estimated from the COSMIC spaceborne GPS receivers as an example (Hwang et al. 2010), the 0.78 m error on P1 and 1.03 m on P2 can result in 1 cycle error on the widelane cycle slip.

Fig. 1
figure 1

The effect of pseudorange errors on widelane cycle slip detection

In fact, it should be realized that the cycle slips on GPS L1 and L2 frequencies are determined by jointly resolving the Eqs. (3) and (4). What Fig. 1 exhibits is the effect of SIPE on the widelane cycle slip term \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right] \) given in Eq. (3). We can denote the effects of SIPE on the cycle slips \( {\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) and \( {\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \) as \( {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) and \( {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \), respectively. From Eqs. (3) and (4), \( {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) and \( {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \) can be evaluated as:

$$ {\displaystyle \begin{array}{l}\updelta \Delta {\mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)=\operatorname{int}\left[\frac{-{\uplambda}_2}{\left({\uplambda}_1-{\uplambda}_2\right)}\frac{{\mathrm{f}}_1\cdot {\updelta \mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right)+{\mathrm{f}}_2\cdot {\updelta \mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}{\uplambda_{\mathrm{WL}}\left({\mathrm{f}}_1+{\mathrm{f}}_2\right)}\right]=\operatorname{int}\left[2.954\cdot {\updelta \mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right)+2.301\cdot {\updelta \mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]\\ {}-\operatorname{int}\left[5.255\cdot {\mathrm{SIPE}}_{\mathrm{max}}\right]\le \updelta \Delta {\mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\le \operatorname{int}\left[5.255\cdot {\mathrm{SIPE}}_{\mathrm{max}}\right]\end{array}} $$
(6)
$$ {\displaystyle \begin{array}{l}\updelta \Delta {\mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)=\operatorname{int}\left[\frac{-{\uplambda}_1}{\left({\uplambda}_1-{\uplambda}_2\right)}\frac{{\mathrm{f}}_1\cdot {\updelta \mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right)+{\mathrm{f}}_2\cdot {\updelta \mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}{\uplambda_{\mathrm{WL}}\left({\mathrm{f}}_1+{\mathrm{f}}_2\right)}\right]=\operatorname{int}\left[2.301\cdot {\updelta \mathrm{P}}_1^{\mathrm{p}}\left(\mathrm{k}\right)+1.793\cdot {\updelta \mathrm{P}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]\\ {}-\operatorname{int}\left[4.094\cdot {\mathrm{SIPE}}_{\mathrm{max}}\right]\le \updelta \Delta {\mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\le \operatorname{int}\left[4.094\cdot {\mathrm{SIPE}}_{\mathrm{max}}\right]\end{array}} $$
(7)

The following Figs. 2 and 3 illustrate the effects of the pseudorange errors on L1 cycle slip \( {\mathbf{\Delta N}}_{\mathbf{1}}^{\mathbf{p}}\left(\mathbf{k}\right) \) detection and L2 cycle slip \( {\mathbf{\Delta N}}_{\mathbf{2}}^{\mathbf{p}}\left(\mathbf{k}\right) \) detection, respectively.

Fig. 2
figure 2

The effect of pseudorange errors on GPS L1 cycle slip detection

Fig. 3
figure 3

The effect of pseudorange errors on GPS L2 cycle slip detection

When both P1 (or represented by C1 in the figures) and P2 pseudoranges have 10 m errors, the resultant cycle slip errors on L1 and L2 frequencies can be as large as 53 cycles and 41 cycles, respectively. This can be instantly calculated from Eqs. (6) and (7) and be seen in Figs. 2 and 3. Taking the above COSMIC spaceborne GPS data as an example (Hwang et al. 2010), the resultant cycle slip errors can be as large as 4.7 cycles and 3.6 cycles on GPS L1 and L2 frequencies, respectively. It can be seen that the pseudorange errors appear to have a relatively small effect on the widelane cycle slip detection as shown in Eq. (5). However its effect on the cycle slip of individual frequency is significantly larger. This is because in the widelane cycle slip of Eq. (3), the effects on L1 and L2 frequencies are largely cancelled by each other after the subtraction. Analysis of Eqs. (5), (6) and (7) reveals that the impacts of SIPE on L1 and L2 are about 4.5 times and 3.5 times of that on widelane cycle slip, respectively. The results in Figs. 2 and 3 remind us that it is necessary to guard against the severe effects of pseudorange errors in order to ensure the reliability of cycle slip detection.

Basic idea of the new method

The above section analytically and numerically shows the effect of pseudorange errors on the determination of cycle slips. To completely eliminate the large pseudorange errors, one normally adopted approach might be the pseudorange smoothing using carrier phase measurements, such as the Hatch filter as well as the revised Hatch filter (Hatch 1982; Hatch 1986; Lachapelle et al. 1986). However, there is one issue associated with the application of smoothing algorithms. These smoothing algorithms require the use of carrier phase measurements at epoch (k) in order to smooth the pseudoranges at the same epoch (k). When there are cycle slips in carrier phase data, these smoothing algorithms normally reinitialize the smoothing process. As a matter of fact, our purpose here is to detect and fix cycle slips in carrier phase measurements at epoch (k). Thus it is technically risky to employ the carrier phase data to smooth pseudoranges prior to cycle slip detection. In practice, it is very likely that both cycle slip and SIPE occur simultaneously. In this scenario, the smoothing method cannot be used and other methods have to be developed. The basic idea of a new approach is described below.

Assuming that the maximum SIPE in GNSS pseudoranges (e.g. GPS P1 or P2) is SIPEmax and that this predefined SIPEmax is sufficiently large to bound all the possible SIPE values under a given GNSS application circumstance (e.g. spaceborne GPS under high dynamics), two integer search spaces corresponding to two frequencies (e.g. GPS L1 and L2) for all the possible cycle slip candidate pairs can be calculated and defined. The goal is to search for and determine the only one pair of correct cycle slips from the two search spaces, 1 cycle slip from each space. To validate each candidate pair in the search spaces, each cycle slip candidate pair is used to correct the original carrier phase data. Subsequently the corrected dual-frequency carrier phase data can be employed to derive TECR. It should be noted that all the calculated TECR should obey a physical rule – not exceeding a physically meaningful TECR threshold. The threshold is defined as 0.35 TECU/s in this study. Our extensive data analysis suggested that TECR threshold of 0.35 TECU/s be an appropriate empirical value for cycle slip detection and fix for both ground-based and space-based GPS data. Thus the validity of each cycle slip candidate pair in the search spaces can be easily determined by judging whether it satisfies the physical rule. Those cycle slip candidate pairs with TECR exceeding the threshold are considered incorrect ones and they are rejected in the cycle slip determination process.

To ensure the correct cycle slip detection under the impact of SIPE, a new method adopting search strategy is proposed. The search strategy can be illustrated in a flowchart shown in Fig. 4. First the cycle slips \( {\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) and \( {\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \) are computed as usual using Eqs. (1) and (2). These cycle slips are not the correct ones because of the large pseudorange errors in both P1 and P2. To facility the following search process, the variation scope of \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right] \), \( {\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) and \( {\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \), are estimated using Eqs. (5), (6) and (7), respectively. Thus search spaces for the 2 cycle slips can be formed, as to be discussed in the following section. In order to define the maximum search space, the maximum magnitude of sudden increase of pseudorange errors, denoted as SIPEmax, has to be defined by the users. This SIPEmax can be determined based on the performance of GNSS receiver under a given observation condition. After that, two search rules are defined and users can implement them to search for the correct cycle slips. The two rules can efficiently reject more than 99.9% cycle slip candidate pairs in the search spaces. The small number of remaining cycle slip pairs can be further verified using a polynomial fitting method. In the implementation of second search rule, a parameter called maximum ionospheric TECR, denoted as \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \), has to be defined. In order to ensure the correct cycle slips are detected and fixed, the \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \) and SIPEmax parameters should be appropriately set to a large enough value.

Fig. 4
figure 4

The flowchart of the cycle slip search strategy

Defining cycle slip search spaces

The initial cycle slips \( {\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) and \( {\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \) usually are not the correct ones due to the existence of SIPE, particularly when SIPE is large. However, they provide a very good start point to perform the search for the correct cycle slips. With the knowledge of SIPEmax, the maximum cycle slip error for \( {\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \), denoted as \( {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} \), can be easily obtained as \( {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}=\operatorname{int}\left[5.255\bullet {\mathrm{SIPE}}_{\mathrm{max}}\right] \) as shown in Eq. (6). Similarly maximum cycle slip error for \( {\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \), denoted as \( {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} \), is \( {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}=\operatorname{int}\left[4.094\bullet {\mathrm{SIPE}}_{\mathrm{max}}\right] \) from Eq. (7). It is not difficult to infer that the correct cycle slip for L1 frequency, denoted as \( {\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}} \), should be located within the scope \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}},{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)+{\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}\right] \). Similarly the correct cycle slip for L2 frequency, denoted as \( {\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}} \), should be located within the scope \( \left[{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)-{\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}},{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)+{\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}\right] \). Thus the search spaces for the correct cycle slip pair \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}},\kern0.5em {\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right] \) can be defined below as \( {\mathrm{SS}}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)} \) and \( {\mathrm{SS}}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)} \):

$$ {\mathrm{SS}}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)}:{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}\le {\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\le {\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)+{\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} $$
(8)
$$ {\mathrm{SS}}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}:{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)-{\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}\le {\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\le {\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)+{\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} $$
(9)

The numbers of candidates in the two search spaces are \( \left[2\bullet {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right] \) and \( \left[2\bullet {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right] \), respectively. Taking the Figs. 2 and 3 as an example, when the SIPEmax = 10.0 m, the \( {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}=53 \) cycles and \( {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}=41 \) cycles. The search space \( {\mathrm{SS}}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)} \) includes 107 candidates and the \( {\mathrm{SS}}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)} \) contains 83 candidates. To ensure the correct cycle slips to be included in the search spaces \( {\mathrm{SS}}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)} \) and \( {\mathrm{SS}}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)} \), the SIPEmax should be appropriately chosen to an adequately large value.

As a matter of fact, the cycle slip search process is not performed separately on \( {\mathrm{SS}}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)} \) or \( {\mathrm{SS}}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)} \). Instead, the search process is performed simultaneously on both search spaces. In the search, 1 cycle slip candidate is selected from each of the two search spaces and the two candidates form a cycle slip candidate pair. Thus the total number of cycle slip candidate pairs (TNCP) can be formed and are to be jointly searched is \( \left[2\bullet {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right]\bullet \left[2\bullet {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right] \), namely {2 ∙ int[5.255 ∙ SIPEmax] + 1}{2 ∙ int[4.094 ∙ SIPEmax] + 1}. It is clear that the TNCP depends solely on the value of SIPEmax. It has nothing to do with the GPS/GNSS observation data. Given a predefined SIPEmax, the TNCP can be instantly calculated. When SIPEmax = 10 m, the total number of cycle slip candidate pairs is 8881. Fig. 5 shows the relationship between the TNCP in the search spaces with SIPEmax. The large number of candidate pairs suggests that efficient cycle slip search method has to be developed in order to select the one and only one correct pair of cycle slips from the candidates. Thus 2 cycle slip search rules are proposed in order to quickly reject the unsuitable candidate pairs.

Fig. 5
figure 5

Rule one: relationship between SIPEmax and the numbers of cycle slip candidate pairs

Cycle slip search rules and estimation of remaining candidate pairs

In this paper, two search rules are implemented. The first one is the so-called “widelane cycle slip variation” rule and the second is the “TECR threshold” rule.

Cycle slip search rule one: Widelane cycle slip variation

From Eq. (5), the variation of the widelane cycle slip can be calculated using the SIPEmax value. The difference between the widelane cycle slip calculated from the pseudorange contaminated by SIPEmax, i.e. \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right] \), and the one calculated from normal pseudorange without SIPE, i.e. \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right] \), should be bounded by \( \updelta {\left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]}_{\mathrm{max}} \), which is defined as \( \updelta {\left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]}_{\mathrm{max}}=\operatorname{int}\left[1.16\bullet {\mathrm{SIPE}}_{\mathrm{max}}\right] \), as shown in Eq. (5). Mathematically it reads:

$$ \left|\left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right]-\left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]\right|=\left|\left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)\right]-\left[{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]\right|\le \updelta {\left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]}_{\mathrm{max}} $$
(10)

Taking SIPEmax = 10 m as an example, the corresponding \( \updelta {\left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]}_{\mathrm{max}}=12 \) cycles and it yields:

$$ \left|\left[\Delta {\mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-\Delta {\mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right]-\left[\Delta {\mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-\Delta {\mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]\right|\le 12 $$

It suggests that the correct cycle slip candidate pair \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}},\kern0.5em {\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right] \) must satisfy the condition given in Eq. (10). The \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right] \) is obtained from Eq. (3); \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}},\kern0.5em {\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right] \) is one of the candidate pairs from the search spaces defined in Eqs. (8) and (9); the \( {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} \) and \( {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} \) shown in Eqs. (8) and (9) and the term \( \updelta {\left[{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]}_{\mathrm{max}} \) can be readily calculated with the predefined SIPEmax. A program looping over all the candidate pairs \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}},\kern0.5em {\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right] \) in the search spaces can be executed and candidate pairs that do not satisfy Eq. (10) are rejected. The following section will show how efficient this “rule one” is by determining the number of remaining cycle slip candidate pairs after implementing this search rule.

Estimating the NRCP of rule one

Eqs. (8) and (9) are rearranged and it yields:

$$ -{\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}\le {\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)\le {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} $$
(11)
$$ -{\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}\le {\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\le {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} $$
(12)

The \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)\right] \) in Eq. (11) can be treated as one whole term, so is \( \left[{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right] \) in Eq. (12). The benefit of doing so is that there is no need to know \( {\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) or \( {\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \). This implies no knowledge of the GNSS carrier phase or pseudorange observations is needed. As indicated, the number of searched candidates for \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)\right] \) and \( \left[{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right] \) is \( \left[2\bullet {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right] \) and \( \left[2\bullet {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right] \), respectively. The TNCP is thus \( \left[2\bullet {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right]\bullet \left[2\bullet {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right] \).

By integrating Eqs. (11) and (12) with Eq. (10) and treating \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)\right] \) and \( \left[{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right] \) as whole terms, the number of remaining cycle slip candidate pairs \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right] \) can be uniquely determined as long as \( {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} \) and \( {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} \) are determined. Unlike the total number of candidate pairs, there is no analytic formula to calculate the exact value of NRCP. However, for any given SIPEmax, the NRCP can be uniquely determined by Eqs. (10), (11) and (12). The NRCP for different SIPEmax values are shown in Fig. 5.

Figure 5 illustrates the relationship between the SIPEmax and the NRCP. It can be seen that the application of this rule one can considerably reject many candidate pairs that do not satisfy Eq. (10). The NRCP is much smaller than the TNCP. In Fig. 5, the SIPEmaxvaries from − 100 m to 100 m. When SIPEmax = 10 m, the TNCP is 8881, the NRCP is 2075. This is equivalent to 23.36% of the total number, meaning 76.64% candidate pairs being rejected. When SIPEmax = 100 m, the TNCP is as large as 864,513. After implementing the rule one, the NRCP is only 192,933 pairs, equivalent to 22.32% of the total number. The rejection rate is 77.68%. It can be seen that the TNCP increases rapidly with the size of SIPEmax. But Fig. 5 also shows the “rule one” given in Eq. (10) can effectively reject over 75% of cycle slip candidate pairs.

It should be stressed that the calculation of the TNCP and NRCP can be achieved even without the knowledge of GNSS carrier phase or pseudorange data. The only factor determining the two numbers is the value of SIPEmax. It should be noted that the NRCP is still large and further reduction algorithm has to be used to reduce the NRCP.

Cycle slip search rule two: TECR threshold

The second rule used here to reduce the NRCP is called “TECR threshold” rule. For each pair of candidates \( {\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}} \) and \( {\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}} \), they can be used to correct the carrier phase measurements at epoch (k):

$$ \widehat{\Phi_1^{\mathrm{p}}}\left(\mathrm{k}\right)={\Phi}_1^{\mathrm{p}}\left(\mathrm{k}\right)+{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}} $$
(13)
$$ \widehat{\Phi_2^{\mathrm{p}}}\left(\mathrm{k}\right)={\Phi}_2^{\mathrm{p}}\left(\mathrm{k}\right)+{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}} $$
(14)

The TECR between epochs (k) and (k-1) can be readily written as (Liu 2011):

$$ {\mathrm{TECR}}_{\Phi}\left(\mathrm{k}\right)=\mathrm{H}\bullet \left\{{\uplambda}_1\left[{\Phi}_1^{\mathrm{p}}\left(\mathrm{k}\right)-{\Phi}_1^{\mathrm{p}}\left(\mathrm{k}-1\right)\right]+{\uplambda}_2\left[{\Phi}_2^{\mathrm{p}}\left(\mathrm{k}-1\right)-{\Phi}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right]+\left[{\uplambda}_1{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\uplambda}_2{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right]\right\} $$
(15)

where \( \mathrm{H}=\frac{{\mathrm{f}}_1^2}{40.3\times {10}^{16}\left(\upgamma -1\right)\Delta \mathrm{t}} \).

One TECRΦ(k) can be estimated using Eq. (15) for each pair of cycle slip candidates. After the implementing the above “widelane cycle slip variation” rule, the remaining number of candidate pairs is NRCP. Consequently the number of TECRΦ(k) will be NRCP too. Which TECRΦ(k) is valid among so many TECRΦ(k)? It should be noted that the TEC rate is a physical parameter describing the ionosphere variation and its value should be bounded by a given threshold. The TECR values observed by GNSS data at the low-latitude equatorial region showed that the ionospheric TECRΦ(k) is bounded by 0.03 TECU/s in ionosphere disturbance periods (Liu and Chen 2009). In this study, a threshold value for the maximum valid TECRΦ(k) value is defined as \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \). Taking advantage of this physical property about TECR, only cycle slip candidates whose TECRΦ(k) meet the following condition are considered valid:

$$ \left|{\mathrm{TECR}}_{\Phi}\left(\mathrm{k}\right)\right|\le \left|{\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)\right| $$
(16)

To be safe enough not to reject the correct cycle slip candidates, the \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \) should be chosen to be a large enough value. In this study, \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)=0.35\ \mathrm{TECU}/\mathrm{second} \) is adopted. As shown in Liu (2011), even small cycle slips e.g. (1, 1) in L1 and L2 carrier phase measurements can result in a TECR significantly larger than the normal one, thus they can be easily detected. After applying the “TECR threshold” rule given in Eq. (16), many cycle slip candidate pairs are rejected and only a very small number of them are left. The estimation of the NRCP will be addressed in the next section. The following paragraphs explain why many cycle slip candidate pairs are rejected through the “TECR threshold” rule.

Among all the cycle slip candidates \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right] \), there is at least one pair of cycle slips, denoted as \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \), which produces the minimum TECRΦ(k), denoted as \( {\mathrm{TECR}}_{\Phi}^{\mathrm{min}}\left(\mathrm{k}\right) \), among all the TECRΦ(k) computed using Eq. (15). Normally the \( {\mathrm{TECR}}_{\Phi}^{\mathrm{min}}\left(\mathrm{k}\right) \) is at the level of 0.01 TECU/s during ionosphere quiet period and 0.03 TECU/s during disturbed period (Liu and Chen 2009). It should be noted that \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) produces the minimum TECRΦ(k), but this pair is not necessarily the correct cycle slip pair for which we are seeking. Compared to other candidates, this pair of cycle slip candidates \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) indeed has a higher likelihood to be the correct one. This is because the TECRΦ(k) corresponding to the correct cycle slip pair should be a reasonably small value but not necessarily the smallest. When cycle slips are present in carrier phase measurements, the cycle slips can cause an artificial ionospheric TECR. It is possible the artificial TECR has similar magnitude but opposite sign to the natural TECR, eventually rendering the computed TECR (a combination of both natural and artificial TECR) to become a very small value or even 0.0 TECU/s. Thus cycle slip candidates corresponding to the smallest TECR (i.e. \( {\mathrm{TECR}}_{\Phi}^{\mathrm{min}}\left(\mathrm{k}\right) \)) are not necessarily the correct ones.

Each cycle slip pair \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right] \) can be numerically decomposed into the summation of two parts: \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) and \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \). If the candidate pair is inserted into Eq. (15), the obtained TECRΦ(k) can also be decomposed into two parts: the first part TECR (i.e. \( {\mathrm{TECR}}_{\Phi}^{\mathrm{min}}\left(\mathrm{k}\right) \)) that is corresponding to \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) and the second part TECR that is contributed by \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},\kern0.5em {\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \). The latter part TECR can be denoted as \( {\mathrm{TECR}}_{\Phi}^{\mathrm{part}2}\left(\mathrm{k}\right) \). According to Eq. (15), the \( {\mathrm{TECR}}_{\Phi}^{\mathrm{part}2}\left(\mathrm{k}\right) \) can be calculated as:

$$ {\mathrm{TECR}}_{\Phi}^{\mathrm{p}\mathrm{art}2}\left(\mathrm{k}\right)=\mathrm{H}\bullet \left\{{\uplambda}_1\left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right]-{\uplambda}_2\left[{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right]\right\} $$
(17)

Thus the Eq. (16) can be written as:

$$ \left|{\mathrm{TECR}}_{\Phi}^{\mathrm{min}}\left(\mathrm{k}\right)+{\mathrm{TECR}}_{\Phi}^{\mathrm{part}2}\left(\mathrm{k}\right)\right|\le \left|{\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)\right| $$
(18)

Because \( \left|{\mathrm{TECR}}_{\Phi}^{\mathrm{min}}\left(\mathrm{k}\right)+{\mathrm{TECR}}_{\Phi}^{\mathrm{part}2}\left(\mathrm{k}\right)\right|\le \left|{\mathrm{TECR}}_{\Phi}^{\mathrm{min}}\left(\mathrm{k}\right)\right|+\left|{\mathrm{TECR}}_{\Phi}^{\mathrm{part}2}\left(\mathrm{k}\right)\right| \). If the condition in the following Eq. (19) is met, Eq. (18) will be satisfied.

$$ \left|{\mathrm{TECR}}_{\Phi}^{\mathrm{min}}\left(\mathrm{k}\right)\right|+\left|{\mathrm{TECR}}_{\Phi}^{\mathrm{part}2}\left(\mathrm{k}\right)\right|\le \left|{\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)\right| $$
(19)

Compared to \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \), \( {\mathrm{TECR}}_{\Phi}^{\mathrm{min}}\left(\mathrm{k}\right) \) has a rather small but usually non-zero value, approximately 0.01~ 0.03 TECU/s according to the observations from GNSS data. Thus Eq. (19) can be simplified as:

$$ \left|{\mathrm{TECR}}_{\Phi}^{\mathrm{p}\mathrm{art}2}\left(\mathrm{k}\right)\right|=\left|\mathrm{H}\bullet \left\{{\uplambda}_1\left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right]-{\uplambda}_2\left[{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right]\right\}\right|<\left|{\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)\right| $$
(20)

Using Eq. (20), all the candidate pairs that satisfy the above condition can be found. Please note that Eq. (20) is not identical but only an approximation to Eq. (18), although the contribution of \( {\mathrm{TECR}}_{\Phi}^{\mathrm{min}}\left(\mathrm{k}\right) \) is small but it is usually non-zero. It is possible that \( {\mathrm{TECR}}_{\Phi}^{\mathrm{min}}\left(\mathrm{k}\right) \) and \( {\mathrm{TECR}}_{\Phi}^{\mathrm{part}2}\left(\mathrm{k}\right) \) have opposite signs. Thus it is theoretically possible that the cycle slip candidate pairs (including one correct cycle slip pair) that satisfy the Eq. (18) might not satisfy the Eq. (20). If Eq. (20) is used to search for the correct cycle slip candidate pair, it is possible that the correct cycle slip pair might not satisfy the Eq. (20) and thus is rejected. To avoid this and compensate the small contribution of \( \left|{\mathrm{TECR}}_{\Phi}^{\mathrm{min}}\left(\mathrm{k}\right)\right| \), the value of \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \) can be properly selected to a relatively large one by considering the magnitude of the \( {\mathrm{TECR}}_{\Phi}^{\mathrm{min}}\left(\mathrm{k}\right) \). In this study, \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)=0.35\ \mathrm{TECU}/\mathrm{second} \) is selected, which is considered to be a large enough threshold.

Table 1 lists all the “special” cycle slip pairs whose artificial TECR is smaller than 0.15 TECU/second when \( \left|{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)\right|\le 77 \) and \( \left|{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)\right|\le 60 \). When \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) is by chance one of the “special cycle slip pairs”, \( {\mathrm{TECR}}_{\Phi}^{\mathrm{part}2}\left(\mathrm{k}\right) \) will yield a very small value. When the \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) is not one of such special cycle slip pairs, generally the corresponding \( {\mathrm{TECR}}_{\Phi}^{\mathrm{part}2}\left(\mathrm{k}\right) \) is quite large, compared to the predefined threshold \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \). Thus the corresponding \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right] \) should be rejected because it violates the condition given in Eq. (20). For instance, when \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) equals to (1, 1), which is not a special cycle slip pair (thus not listed in Table 1), the resulting \( {\mathrm{TECR}}_{\Phi}^{\mathrm{part}2}\left(\mathrm{k}\right) \) is − 0.514 TECU/s. This value is significantly larger than the predefined threshold \( \left|{\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)\right|\ \left(\mathrm{i}.\mathrm{e}.0.35\ \mathrm{TECU}/\mathrm{second}\right) \). In this case, the pair \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right] \) is rejected. This explains why the NRCP is small after applying the search rule “TECR threshold”. The above also explains that all the remaining cycle slip candidate pairs that satisfy the condition in Eq. (20) are actually those with \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) as “special” cycle slip pairs. Otherwise the artificial TECR generated by \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) will be significantly large and exceed the \( \left|{\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)\right| \). It can be seen in Table 1 that between any two special cycle slips, the minimum distance is 5 cycles on L1 frequency and 4 cycles on L2 frequency, i.e.. \( \left|{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\mathrm{i}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\mathrm{j}}\right|\ge 5\ \mathrm{cycles},\mathrm{i}\ne \mathrm{j} \) and \( \left|{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\mathrm{i}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\mathrm{j}}\right|\ge 4\ \mathrm{cycles},\mathrm{i}\ne \mathrm{j} \). The minimum distances occur with the special cycle slip pairs [41, 32] and [36, 28], as well as pairs [− 41, − 32] and [− 36, − 28].

Table 1 The Effect of special cycle slip pairs on TECR (assuming the data interval ∆t = 1.0 second)

Estimating the NRCP of rule two

The above section explains why many cycle slip candidates are rejected. But the exact value of NRCP is still unknown. In the rule one, the NRCP is a function of SIPEmax only and has nothing to do with the values of initially detected cycle slips \( {\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right) \) or \( {\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right) \). In this “TECR threshold” rule, the determination of the exact NRCP is more complex. A quick look of Eq. (20) appears that the NRCP depends on the predefined value \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \), GNSS data interval ∆t, \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right] \) and \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \). The following analysis will reveal that the NRCP in rule two actually only depends on SIPEmax, \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \), and GNSS data interval ∆t. It has nothing to do with the \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right] \) or \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \). Both SIPEmax and \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \) are predefined thresholds and they can be specified before cycle slip detection and fix. The data interval ∆t is a fixed value that is known once the GNSS data are recorded. Clearly all the three parameters are irrelevant of the GNSS observations. This implies the NRCP after implementing the “rule two” can be determined even without having to know the actual GNSS data.

Although \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \)is unknown, however it is for sure this is one candidate pair in the search spaces\( {\mathrm{SS}}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)} \) and \( {\mathrm{SS}}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)} \). It is just a special pair among all the candidate pairs that produces the minimum artificial ionospheric TECR, i.e. \( {\mathrm{TECR}}_{\Phi}^{\mathrm{min}}\left(\mathrm{k}\right) \). Considering Eqs. (8) and (9), the search scopes of \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) and \( \left[{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) can be determined as:

$$ -2\bullet {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}\le \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right]\le 2\bullet {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} $$
(21)
$$ -2\bullet {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}\le \left[{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right]\le 2\bullet {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} $$
(22)

The numbers of searched candidates for \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) and \( \left[{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) are \( \left[4\bullet {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right] \) and \( \left[4\bullet {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right] \), respectively. Thus the TNCP is \( \left[4\bullet {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right]\bullet \left[4\bullet {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right] \). It should be noted that the total number of candidates to be searched here is different from the total number calculated for the search rule one. In the rule one, the TNCP is \( \left[2\bullet {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right]\bullet \left[2\bullet {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right] \). They are different because the search spaces given in Eqs. (21) and (22) are different from the ones given in Eqs. (11) and (12). Without actual GNSS data, \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) and \( \left[{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) have to take the maximum values, i.e. \( \pm 2\bullet {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} \) and \( \pm 2\bullet {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} \), respectively. Thus the theoretically maximal TNCP for a given SIPEmax is \( \left[4\bullet {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right]\bullet \left[4\bullet {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}+1\right] \). In practical implementation with actual GNSS data, the actual GNSS carrier phase and pseudorange observations are available. The Eq. (16) therefore can be directly used in the “TECR threshold” rule. The actual TNCP can be smaller than the theoretical TNCP.

Integrating Eqs. (20), (21) and (22) will reveal that NRCP is a function of only three parameters: \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \), GPS data interval ∆t (embedded in H), and SIPEmax. Apparently, the larger value of \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \) or ∆t, the larger NRCP. Eqs. (6) and (7) show that the larger SIPEmax, the larger \( {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} \) and \( {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}} \), consequently larger NRCP as suggested by Eqs. (21) and (22). This analysis reveals that the theoretically maximal NRCP after implementing the “TECR threshold” rule is completely irrelevant of the original carrier phase or pseudorange measurements. The NRCP can be pre-determined even before GNSS observation starts as long as \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \), ∆t and SIPEmax are specified. Usually the GNSS data interval ∆t is a fixed value (e.g. 1 s) set by the GNSS observer. \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \) and SIPEmax can be defined by the GNSS analyst before the analysis. A large \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \) value is conservatively chosen to ensure all cycle slips can be successfully detected and fixed. Our data analysis shows that when \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \) is chosen as 0.30 TECU/second, all the cycle slips except a small number of cycle slips for the spaceborne GPS receivers (COSMIC data in this study) can be correctly detected and fixed. When the \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)=0.35\ \mathrm{TECU}/\mathrm{second} \) is used in the cycle slip detection and fix, all the simulated cycle slips can be successfully detected and fixed. Therefore \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)=0.35\ \mathrm{TECU}/\mathrm{second} \) is used in this study. SIPEmax can be defined according to the analyst’s experience with the GNSS pseudorange quality. The pseudorange quality is affected by a number of factors such as GNSS receiver/antenna quality, observation conditions (e.g. multipath), signal obstructions, GNSS receiver dynamics, among others. SIPEmax should be chosen to a sufficiently large value to accommodate the largest pseudorange error that potentially occur.

Figure 6 illustrates the relationship between SIPEmax, \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \), NRCP, and the TNCP, assuming ∆t = 1.0 second. Two cases of \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \) are shown in Fig. 6: \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)=0.15\ \mathrm{and}\ 0.35\ \mathrm{TECU}/\mathrm{second} \). As analyzed earlier, the theoretically maximal TNCP is irrelevant of the value of \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \) or ∆t. Thus the two TNCP curves actually overlap each other for the \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)=0.15\ \mathrm{and}\ 0.35\ \mathrm{TECU}/\mathrm{second} \) cases. The TNCP in the rule two also increases with SIPEmax in an approximately linear pattern. In terms of the NRCP, The NRCP is a function of all the three parameters. Fig. 6 shows that the NRCP increases linearly with SIPEmaxand is approximately proportional to the value of \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \). The NRCP corresponding to \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)=0.35\ \mathrm{TECU}/\mathrm{second} \) is approximately 2.5 times of that for \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)=0.15\ \mathrm{TECU}/\mathrm{second} \).

Fig. 6
figure 6

Rule two: relationship between the size of SIPE and the numbers of cycle slip candidate pairs (assuming ∆t = 1.0 second)

Taking SIPEmax = 10 m,\( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)=0.15 \) TECU/s and ∆t = 1.0 second as an example, the search spaces for \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) and \( \left[{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) can be determined as:

$$ -106=-2\bullet \operatorname{int}\left[5.255\bullet {\mathrm{SIPE}}_{\mathrm{max}}\right]=-2\bullet {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}\le \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right]\le 2\bullet {\updelta \Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}=2\bullet \operatorname{int}\left[5.255\bullet {\mathrm{SIPE}}_{\mathrm{max}}\right]=106 $$
(23)
$$ -82=-2\bullet \operatorname{int}\left[4.094\bullet {\mathrm{SIPE}}_{\mathrm{max}}\right]=-2\bullet {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}\le \left[{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right]\le 2\bullet {\updelta \Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{max}}=2\bullet \operatorname{int}\left[4.094\bullet {\mathrm{SIPE}}_{\mathrm{max}}\right]=82 $$
(24)

In the search spaces defined above, there are totally 35,145 cycle slip candidate pairs. Applying the “TECR threshold” specified in Eq. (20), most of the candidate pairs defined as \( \left\{\left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right],\kern0.5em \left[{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right]\right\} \) will be rejected because their corresponding \( {\mathrm{TECR}}_{\Phi}^{\mathrm{part}2}\left(\mathrm{k}\right) \) calculated from Eq. (17) is larger than \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \). As a result, only 25 cycle slip candidate pairs remain and they are listed in Table 2. The rejection rate is as high as 99.9289%. This clearly shows the high efficiency of the “TECR threshold” rule in rejecting unsuitable cycle slip candidates.

Table 2 The remaining cycle slip candidate pairs \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right] \)

In Table 2 [*] represents \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) and it is unknown yet. Once the \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) is known, the absolute values for the cycle slip pairs in the last column of Table 2 can be determined. In practical implementation, the exact value of \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) can be determined easily as long as the GNSS data are available. From Table 2 it can be seen that there is a difference of a few cycles in size between \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) and other cycle slip pairs. As shown in row 13 of Table 2, the cycle slip candidate pair with the smallest \( {\mathrm{TECR}}_{\Phi}^{\mathrm{part}2}\left(\mathrm{k}\right) \) is [] + (0, 0), i.e. \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right]=\left[\ast \right] \). The cycle slip candidate pair with the 2nd smallest \( {\mathrm{TECR}}_{\Phi}^{\mathrm{part}2}\left(\mathrm{k}\right) \) is [] ± (9, 7), as shown in rows 12 and 14. It can be seen in Table 2 the smallest difference between the cycle slip candidate pairs is (±9, ±7), namely 9 cycles on L1 frequency and 7 cycles on L2 frequency. Such a magnitude of difference is large and can be detected using other methods such as low-order polynomial fitting. Thus the identification of the correct cycle slip pair from the remaining pairs in Table 2 will be relatively easy. To clearly illustrate the large difference between different cycle slip candidate pairs, another example for SIPEmax = 100 m, \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)=0.15\ \mathrm{TECU}/\mathrm{second} \) and ∆t = 1.0 second is shown in Fig. 7. The NRCP is 247. The NRCP is considerably larger than 25 shown in Table 2 because SIPEmax here is 10 times larger. All the remaining 247 cycle slip candidate pairs are shown in Fig. 7. Only three pairs, represented by red stars in Fig. 7, have a distance to the \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) not larger than 10 cycles, i.e. \( \left|{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right|\le 10 \) and \( \left|{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right|\le 10 \). Only two pairs, denoted as black squares, have a distance to the \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) not larger than 20 cycles, i.e. \( 10<\left|{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right|\le 20 \) and \( 10<\left|{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right|\le 20 \). All the other 242 pairs have a large distance to \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \), i.e. \( \left|{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right|>20 \) and \( \left|{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right|>20 \). The large distances from each pair of candidate cycle slips to \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) can be translated into large geometrical distances by multiplying their corresponding wavelengths. Thus the identification of the correct cycle slip candidate pair is not a difficult task since all the candidate pairs are separated by large geometrical distances.

Cycle slip further validation

The examples given in Table 2 and Fig. 7 clearly show that only a small number of candidate pairs remain to be validated. The validation process is relatively easy since the number of remaining pairs is relatively small and the separation between different pairs is significant. When \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)=0.35\ \mathrm{TECU}/\mathrm{second} \), the minimum separation between two candidate pairs is 4 cycles on GPS L1 frequency and 3 cycles on GPS L2 frequency, i.e. \( \left|{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\mathrm{i}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\mathrm{j}}\right|\ge 4\ \mathrm{cycles},\mathrm{i}\ne \mathrm{j} \) and \( \left|{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\mathrm{i}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\mathrm{j}}\right|\ge 3\ \mathrm{cycles},\mathrm{i}\ne \mathrm{j} \). This feature of large separation is advantageous for further identification of the correct cycle slips.

Fig. 7
figure 7

The distribution of remaining cycle slip pairs after applying rule two with SIPEmax = 100 m, \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)=0.15\ \mathrm{TECU}/\mathrm{second} \) and ∆t = 1.0 second

In the real implementation of cycle slip detection, the dual-frequency GPS observation data are available. Thus the \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{min}}\right] \) and the column 5 in Table 2 can be numerically determined. The following question is how to validate the 25 remaining candidate pairs in Table 2 and eventually identify one correct cycle slip pair. In this study, the polynomial fitting method is used to validate the cycle slip candidate pairs and eventually identify the correct pair.

Polynomial fitting validation method

The polynomial fitting method for cycle slip detection/validation is not new. This method has been used by many researchers and its formula is given below (Beutler et al. 1984).

$$ \widehat{\Phi_{\mathrm{j}}^{\mathrm{p}}}\left(\mathrm{k}\right)=\sum \limits_{\mathrm{i}=0}^{\mathrm{q}}{\mathrm{C}}_{\mathrm{i}}\bullet {\left({\Delta \mathrm{t}}_{\mathrm{k}}\right)}^{\mathrm{i}},\mathrm{j}=1,2 $$
(25)

where \( \widehat{\Phi_{\mathrm{j}}^{\mathrm{p}}}\left(\mathrm{k}\right),\mathrm{j}=1,2 \) is the fitted carrier phase data for epoch (k); ∆tk is a time interval, in unit of second, defined as time of epoch (k) minus a reference time that is normally chosen as the mid-point of a time series; Ci are the fitting coefficients that are estimated from the least-squares using the carrier phase data series prior to epoch (k). The length of data series used for Ci is chosen as 25 in this study. Normally the order q is chosen between 4 to 6 in the fitting (Beutler et al. 1984). In this study q = 5 is used. This low-order polynomial fitting method can be used to analyze the carrier phase data of both L1 and L2 frequencies. The fitted carrier phase data \( \widehat{\Phi_{\mathrm{j}}^{\mathrm{p}}}\left(\mathrm{k}\right),\mathrm{j}=1,2 \) are compared to the actually observed \( {\Phi}_{\mathrm{j}}^{\mathrm{p}}\left(\mathrm{k}\right) \). Their differences can be considered as cycle slips, which are denoted as \( {\Delta \mathrm{N}}_{\mathrm{j}}^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}},\mathrm{j}=1,2 \):

$$ {\Delta \mathrm{N}}_{\mathrm{j}}^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}}=\widehat{\Phi_{\mathrm{j}}^{\mathrm{p}}}\left(\mathrm{k}\right)-{\Phi}_{\mathrm{j}}^{\mathrm{p}}\left(\mathrm{k}\right),\mathrm{j}=1,2 $$
(26)

It should be noted that the cycle slip \( {\Delta \mathrm{N}}_{\mathrm{j}}^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}} \) estimated from polynomial fitting, due to the fitting error, might not be identical to anyone of the remaining cycle slip candidate pairs \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right] \). But this does not affect the validation process as along as certain conditions are satisfied, which are to be discussed later. The validation of the correct candidate cycle slip pair among all the remaining ones can be performed according to the following equations:

$$ {\displaystyle \begin{array}{c}\mathrm{d}{\left(\mathrm{i}\right)}_{\Delta {\mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)}=\left|\Delta {\mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}}-\Delta {\mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\mathrm{i}}\right|\\ {}\mathrm{d}{\left(\mathrm{i}\right)}_{\Delta {\mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}=\left|\Delta {\mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}}-\Delta {\mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\mathrm{i}}\right|\\ {}\mathrm{d}{\left(\mathrm{i}\right)}_{\Delta {\mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right),\Delta {\mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}=\sqrt{\mathrm{d}{\left(\mathrm{i}\right)}_{\Delta {\mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)}^2+\mathrm{d}{\left(\mathrm{i}\right)}_{\Delta {\mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}^2}\\ {}\mathrm{i}=1,2,\cdots \mathrm{NRCP}\end{array}} $$
(27)

\( \mathrm{d}{\left(\mathrm{i}\right)}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)} \) and \( \mathrm{d}{\left(\mathrm{i}\right)}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)} \) are the distances between the fitted cycle slip and the i-th cycle slip candidates for L1 and L2 frequencies, respectively. \( \mathrm{d}{\left(\mathrm{i}\right)}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right),{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)} \) is the distance between the fitted cycle slip pair \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}}\right] \) and the i-th candidate pair \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\kern0.5em \mathrm{i}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\kern0.5em \mathrm{i}}\right] \). For each pair of candidates \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\kern0.5em \mathrm{i}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\kern0.5em \mathrm{i}}\right] \), a set of distances \( \mathrm{d}{\left(\mathrm{i}\right)}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)} \), \( \mathrm{d}{\left(\mathrm{i}\right)}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)} \) and \( \mathrm{d}{\left(\mathrm{i}\right)}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right),{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)} \) can be calculated using Eq. (27). In the ideal situation, the polynomial fitting result \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}}\right] \) is perfect without any fitting error. Thus the \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}}\right] \) should be identical to the correct cycle slip candidate pair. As a result, one set of distances with \( \mathrm{d}{\left(\mathrm{i}\right)}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)}=\mathrm{d}{\left(\mathrm{i}\right)}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}=\mathrm{d}{\left(\mathrm{i}\right)}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right),{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}=0 \) can be identified and the corresponding \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\kern0.5em \mathrm{i}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\kern0.5em \mathrm{i}}\right] \) is regarded as the correct candidate pair. Nevertheless in practical data processing, the fitting result \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}}\right] \) might not be perfect. The polynomial fitting errors can be denoted as \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)} \) and \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)} \) for L1 and L2 frequencies, respectively. \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)} \) and \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)} \) can be defined as the differences between the fitted cycle slips and the true cycle slips, as shown in Eq. (28).

$$ {\displaystyle \begin{array}{l}{\upvarepsilon}_{\Delta {\mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)}=\left|\Delta {\mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}}-\Delta {\mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{truth}}\right|\\ {}{\upvarepsilon}_{\Delta {\mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}=\left|\Delta {\mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}}-\Delta {\mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{truth}}\right|\end{array}} $$
(28)

Although it will fail to find one set of distances with \( \mathrm{d}{\left(\mathrm{i}\right)}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)}=\mathrm{d}{\left(\mathrm{i}\right)}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}=\mathrm{d}{\left(\mathrm{i}\right)}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right),{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}=0 \) due to polynomial fitting errors, one set of distances with the smallest magnitudes can be identified among all the NRCP sets of distances. The cycle slip candidate pair with the smallest distances is considered to the correct one.

As shown in Table 2, there are two special candidate pairs [*] + [41, 32] and [*] + [36, 28] (symmetrically also [*] + [− 41, − 32] and [*] + [− 36, − 28]). The distances between these two pairs are 5 cycles on L1 frequency and 4 cycles on L2 frequency. Compared to the distances between any other pairs, the 5 cycle and 4 cycle distances are the shortest (i.e. \( \left|{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\mathrm{i}}-{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\mathrm{j}}\right|\ge 5\ \mathrm{cycles} \) and \( \left|{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\mathrm{i}}-{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\mathrm{j}}\right|\ge 4\ \mathrm{cycles},\mathrm{i}\ne \mathrm{j} \)). In the possible cases where the correct cycle slip pair is [*] + [41, 32] or [*] + [36, 28], the fitting error \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{p}\mathrm{oly}}\right] \) should be small enough in order to distinguish the two pairs using the judgment criteria given in Eq. (27). More specifically, the fitting error \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)} \) and \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)} \) should be no more than half of the minimum distances, i.e. \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)}\le 2\ \mathrm{cycles} \) and \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}\le 2\ \mathrm{cycles} \). Otherwise it will be difficult to distinguish the two pairs: [*] + [41, 32] or [*] + [36, 28].

It should be noted that in Eq. (28), the cycle slip truths \( {\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{truth}} \) and \( {\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{truth}} \) at epoch (k) are actually unknown yet, because we are still in the process of validating the cycle slip candidates at this epoch. Thus \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)} \) and \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)} \) at epoch (k) are in fact unknown. Considering that the GNSS carrier phase quality (except the potential integer cycle slip at epoch (k)) is consistent and stable within a short period of time, it is reasonable to assume that the polynomial fitting errors \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{s}\right)} \) and \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{s}\right)}\ \left(\mathrm{s}=\mathrm{k}-\mathrm{m},\mathrm{k}-\mathrm{m}+1,\cdots \mathrm{k}-1\right) \) at the past m epochs ahead of the epoch (k) have behavior similar to that at epoch (k). If \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{s}\right)}\le 2\ \mathrm{cycles} \) and \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{s}\right)}\le 2\ \mathrm{cycles}\ \left(\mathrm{s}=\mathrm{k}-\mathrm{m},\mathrm{k}-\mathrm{m}+1,\cdots \mathrm{k}-1\right) \) and m is not a large number, it is reasonable to assume that the statement \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)}\le 2\ \mathrm{cycles} \) and \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}\le 2\ \mathrm{cycles} \) is also valid at epoch (k). In this study, the value of m is chosen as 5.

In order to estimate the \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{s}\right)} \) and \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{s}\right)}\ \left(\mathrm{s}=\mathrm{k}-\mathrm{m},\mathrm{k}-\mathrm{m}+1,\cdots \mathrm{k}-1\right) \), the polynomial fitting using Eqs. (25) and (26) is actually performed for each epoch (s). The cycle slip obtained from the polynomial fitting is denoted as \( {\Delta \mathrm{N}}_{\mathrm{j}}^{\mathrm{p}}{\left(\mathrm{s}\right)}_{\mathrm{p}\mathrm{oly}}\ \left(\mathrm{j}=1,2\right) \) at the epoch (s). It should be noted that the epochs ahead of epoch (k) are assumed to be cycle slip free. If cycle slips indeed occur at those epochs, they should have been detected and corrected using the methods presented in this paper and Liu (2011). Since epoch (s) has no cycle slip, the truth value of cycle slip \( {\Delta \mathrm{N}}_{\mathrm{j}}^{\mathrm{p}}{\left(\mathrm{s}\right)}_{\mathrm{truth}} \) at epoch (s) should be 0. Following Eq. (28), the \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{s}\right)} \) and \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{s}\right)} \) can be easily calculated as \( {\Delta \mathrm{N}}_{\mathrm{j}}^{\mathrm{p}}{\left(\mathrm{s}\right)}_{\mathrm{p}\mathrm{oly}}\ \left(\mathrm{j}=1,2\right) \). When \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{s}\right)} \) and \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{s}\right)} \) satisfy the condition: \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{s}\right)}\le 2\ \mathrm{cycles} \) and \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{s}\right)}\le 2\ \mathrm{cycles} \), it is reasonably safe to assume that \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)}\le 2\ \mathrm{cycles} \) and \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)}\le 2\ \mathrm{cycles} \).

The implementation of polynomial fitting method is straightforward and it is effective in most cases. However it is possible that at some epochs (s) (s = k − m, k − m + 1, k − 1), the fitting error \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{s}\right)} \) or \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{s}\right)} \) might be larger than 2 cycles at some epochs or at one of the two frequencies. However it should be noted that even if there is only one frequency with the fitting error satisfying the required condition, it is still valid to judge the correct cycle slip candidate pair \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\kern0.5em \mathrm{i}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand},\kern0.5em \mathrm{i}}\right] \) because the cycle slip candidates are always used in pairs. Also it is not necessary for all the m epochs to have fitting errors \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{s}\right)} \) and/or \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{s}\right)} \) smaller than the specified requirement. Our extensive data analyses show that it is sufficient if a majority of the m epochs have their fitting errors \( {\upvarepsilon}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{s}\right)} \) and/or \( {\upvarepsilon}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{s}\right)} \) meeting the requirement.

Result

Data description

The proposed method is extensively tested by 13 datasets that are recorded for 24 h each by ground-based or space-based dual-frequency GPS receivers. All the GPS data were originally recorded at a rate of 1 Hz except that three receivers operated at a 5 Hz rate in Antarctic by University Navstar Consortium (UNAVCO). The 5 Hz data are re-sampled to 1 Hz. The details of the datasets are summarized in Table 3. The datasets have a number of unique features. First, the ground-based GPS receivers used in this study are distributed globally, with 8 GPS stations from the north hemisphere and 4 receivers from the south hemisphere. Second, different latitude regions such as equatorial, mid-latitude and high-latitude are well represented by these datasets. The ionospheric behaviors are generally considered to vary significantly in different latitude regions. One station is even located at the south pole of Antarctic. Third, both stationary and kinematic datasets are tested. Twelve ground-based GPS receivers record stationary data. The COSMIC Spaceborne Integrated GPS and Occultation Receiver (IGOR) records GPS data at high dynamics (Wu et al. 2005). Fourth, the manufacturers and models of GPS receivers have a good representation, ranging from AOA, Trimble, Javad to IGOS. Fifth, the ionospheric activity level varies significantly. It varies from very quiet with Kp = 2.1 to medium active with Kp = 4.7~ 4.9, to highly active Kp = 7.6. Especially the dataset from CHUR station was recorded on 31 March 2001 and experienced high level of ionospheric disturbance during the occurrence of a significant geomagnetic storm. The ionospheric TEC increase to 100 TECU was observed during the storm event (Foster et al. 2002). The daily average Kp index for 31 March 2001 was 7.6, which was the highest one in the past 20 years (1992–2011) and the 6th highest in the past 80 years (1932–2011).

Table 3 Description of all the test datasets

In summary, the 13 datasets demonstrate a great number of diversities in terms of characteristics. The datasets studied here have a good representation of all kinds of observation conditions that can be encountered in practical GPS applications.

Test configuration

The developed algorithms have been successfully implemented in a computer program that is used in this study. As shown in Table 4, an SIPE of 50 m is added to both P1 and P2 pseudoranges in the first test case. In the second case, an SIPE of 750 m is added to P1 and an SIPE of 1000 m is added to P2 pseudorange. To test the effectiveness of this algorithm under the existence of large pseudorange errors, artificial cycle slips are also added to carrier phase measurements L1 and L2 at the same epoch. That is to say that at the same single epoch all the 4 types of measurements (P1, P2, L1 and L2) contain artificial errors. In this test, a total of 6 pairs of cycle slip are simulated in a sequential order. They are [− 77, − 60], [− 9, − 7], [− 5, − 4], [− 4, − 3], [− 1, − 1], and (− 125, + 11), as shown in Table 4. As discussed in Liu (2011), the first 5 pairs are special cycle slips that produce only very small amount of artificial TECR. For GPS L1 and L2 frequencies, the [− 9, − 7] cycle slip pair is the one producing the smallest non-zero artificial TECR in any possible cycle slip pairs, its artificial TECR being only 0.0302 TECU/s. The [− 77, − 60] pair is another special one and the artificial TECR caused by this pair of cycle slip is 0.0 TECU/s. The [− 1, − 1], [− 4, − 3] and [− 5, − 4] are included in this test because they are relatively small in size and also because their artificial TECR are relatively small. In summary, these special cycle slips are selected in the test because they represent the most challenging cases in GPS dual-frequency carrier phase cycle slip detection and fix using this method. The pair (− 125, + 11) is randomly selected and it represents the test of this method on non-special cycle slip pairs.

Table 4 The simulated cycle slip pairs and their impact on artificial TECR (assuming the data interval ∆t = 1.0 second)

During a 24-h observation period, basically each dataset can track more than 25 different satellites. Figure 8 shows that 30 GPS satellites are tracked during a 24-h period by the spaceborne IGOR receiver on a COSMIC satellite. As indicated in Liu (2011), this algorithm works satellite-by-satellite. The cycle slip detection or fix for one satellite does not require any data from other satellites. For each satellite test, the number of epochs involving cycle slip simulations is 50. Before the simulation is performed, 50 cycle slip free epochs are selected first for each satellite in each dataset. The screening of cycle slip is first conducted by the computer program. Figure 8 displays the start epoch of SIPE and cycle slip simulation for each satellite tracked by the COSMIC spaceborne GPS receiver.

Fig. 8
figure 8

The SIPE and cycle slip simulation start epoch for each satellite of the COSMIC spaceborne IGOR receiver

Figure 8 shows that the simulation start time for each satellite is different. The start epoch for each satellite is essentially randomly selected as long as there are at least 50 cycle slip free epochs after a given epoch. It is worth pointing out that the start time for each satellite does not have to be different. One of the advantageous features of this cycle slip detection and fix method is that it works on a satellite-by-satellite basis. Each satellite utilizes its own data only and it does not use any other satellites’ data. This satellite-wise cycle slip detection and fix method thus can still work effectively even if all the tracked satellites of a single epoch experience cycle slips at the same moment.

For each satellite in a dataset, the simulated SIPEmax and one pair of special cycle slips are added to 25 epochs evenly over a period of 50 consecutive epochs. Namely, one simulation is added at an interval of every 2 epochs. This simulation scheme represents a very high frequency of cycle slip occurrence in GPS data (50% in time, 25 out of 50 epochs). All the simulation test schemes are summarized in Table 5. Figure 9 shows the special cycle slip [− 77, − 60] is added to 25 epochs of PRN 10 for the COSMIC spaceborne GPS dataset.

Table 5 The simulation test schemes
Fig. 9
figure 9

The distribution of simulated cycle slips on L1 and L2 signals of PRN 10 of COSMIC spaceborne IGOR receiver

Test results of 13 GPS datasets

The test results of the proposed method using 13 GPS datasets are presented in Table 6. It clearly shows that this method works successfully for all the test schemes in Table 5, regardless of the dynamics of the GPS receivers or the ionospheric activity conditions or the geographical locations of the GPS stations. The column A is the total number of epochs with simulated SIPE and cycle slips for each dataset in each test scheme. The column B is the number of epochs with incorrectly detected or incorrectly repaired cycle slips. It clearly illustrates that this new algorithm is very effective and all the cycle slips are correctly detected and fixed. The number of undetected or detected but unfixed epochs is 0, as shown in column B. The test results clearly suggest that virtually any cycle slips can be effectively corrected and fixed, even with arbitrarily large errors in the pseudorange measurements.

Table 6 Results of cycle slip detection and fix

Discussion

The proposed method has demonstrated its robust performance through extensive tests using 12 test schemes with 13 datasets of various characteristics. It has shown that the method works reliably to detect very small cycle slips (−1, −1) and other cycle slip pairs even under very challenging test scenarios – with high level of ionospheric activities, high level of dynamics of a spaceborne GPS receiver, and very large value of SIPE. The 5 special cycle slip pairs are considered special because they are more difficult to be detected than others. They produce minimum amount of artificial TECR, which represents a weak signal for cycle slip detection and fix using this TECR-based method. The occurrence frequency of simulated cycle slips is intentionally set high, 50% in time domain. This test setting is essentially more challenging than most real-world data collection situations.

It is worth noting that in the cycle slip detection and fix, the magnitude of SIPEmax needs to be known in advance. This paper simulates two cases: SIPEmax = 50 m and SIPEmax = 1000 m. This value must be predefined in the computer program before the implementation of this method. This is a disadvantage of this method because it is usually unknown how much the SIPE is. The specification of the SIPEmax value in computer program is not an optimal solution. When there is no SIPE or actual size of SIPE is less than SIPEmax, the use of SIPEmax simply increases volumes of the search spaces \( {\mathrm{SS}}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)} \) and \( {\mathrm{SS}}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)} \), as shown in Eqs. (8) and (9). Subsequently more cycle slip candidates \( \left[{\Delta \mathrm{N}}_1^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}},{\Delta \mathrm{N}}_2^{\mathrm{p}}{\left(\mathrm{k}\right)}_{\mathrm{cand}}\right] \) need to be searched and validated. The computational burden is unnecessarily increased, although it is normally not a problem for today’s GNSS receiver or personal computer. When the actual SIPE is larger than the SIPEmax specified in computer program, it is very possible that incorrect cycle slip detection and fix results will be produced. Thus it is advised to predefine a sufficiently large SIPEmax in practical implementation, by considering the specific GNSS receiver/antenna quality, observation conditions as well as empirical knowledge about the pseudorange quality. How to determine the magnitude of SIPEmax is not in the scope of this study but will be studied in the future.

One might be thinking of determining the search spaces \( {\mathrm{SS}}_{{\Delta \mathrm{N}}_1^{\mathrm{p}}\left(\mathrm{k}\right)} \) and \( {\mathrm{SS}}_{{\Delta \mathrm{N}}_2^{\mathrm{p}}\left(\mathrm{k}\right)} \) without the use of pseudorange data. The approach is to use polynomial fitting method or high-order epoch-wise differencing method to predict the cycle slips at epoch (k), then the search spaces can be defined. The risk is that it might not get a close enough estimate of the cycle slips when the receiver clock has large variations. It is true that the search spaces can be appropriately expanded to handle the situation. However, how much expansion is appropriate is difficult to calculate.

In this study, the TECR threshold is defined as \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right)=0.35\ \mathrm{TECU}/\mathrm{second} \). This parameter is considered to be extremely large already. The TECR value observed using ground-based static GPS receiver in Hong Kong (an equatorial region) during the 31 March 2001 when a severe geomagnetic storm occurred was just 0.03 TECU/s (Liu and Chen, 2009). The specified \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \) is more than 10 times larger than the TECR values observed at equatorial region during very active ionosphere. Our test results show that it is more than sufficient even for spaceborne high dynamics receivers.

In order to have more rigor test on the method, actually another test is done with the COSMIC satellite-borne GNSS dataset and one static dataset (at CHUR station). In this test, no cycle slip is simulated to the carrier phase data but SIPE are simulated to the pseudoranges. This is equivalent to adding cycle slips (0, 0) to the carrier phase measurements. The P1 and P2 pseudoranges are added an error of 1000 m and 2000 m, respectively, every two epochs during the 50-epoch period. All the tracked satellites are simulated with SIPE errors. The results show that no single cycle slip is detected. This consistently indicates the robustness of this method.

It should be pointed out the proposed cycle slip detection and repair method is primarily for high rate (1 Hz or higher) dual-frequency GNSS applications. In principle, this method is valid for lower rate GNSS data, e.g. 30.0 s but it has not been tested. The TECR threshold for the lower rate GNSS data needs to be carefully recalculated and redefined. The detection and validation of small cycle slips might be more challenging because of the larger interval between two neighboring epochs. Nowadays high rate (1.0 Hz or higher) GNSS data are increasingly used in many regional, national and international GNSS networks. More and more applications and users rely on the provision of real-time positioning, navigation and monitoring services. The innovative method addressed in this paper is particularly useful for these real-time scenarios.

This new method is particularly useful for those GNSS applications under degraded observation conditions such as multipath rich environments, for both undifferencing such as Precise Point Positioning (PPP) and the traditional double-differencing purposes. Typical scenarios include the GNSS RTK in canopy, under foliage or near buildings, as well as aircraft navigation in airports. The reception of GNSS signals under these situations is usually less optimal compared to the open-sky environments. Both carrier phase and pseudorange measurements are prone to anomalies under those degraded observation conditions. The method proposed in this study provides a complete solution to eliminate the impact of arbitrarily large pseudorange errors on cycle slip detection and fix. The extensive tests demonstrate that this method is effective for detecting and fixing cycle slips even with arbitrarily large pseudorange errors. Currently multiple GNSS systems are still under development and it is understandable the measurements at the early development stages might not be as good as others. This method is particularly useful to correct the cycle slips for those measurements with compromised stabilities and accuracies.

In order to reduce the sizes of the search spaces, appropriate methods should be developed to determine the value SIPEmax as accurate as possible. The number of searches can be accordingly reduced and the computation efficiency can be increased. With the GNSS modernization, the users may employ carrier phase and pseudorange measurements from three or even more frequencies. The method can be applied to the multiple frequency circumstance. The cycle slip detection and repair on multiple frequencies in principle is same as the dual frequency. As a matter of fact, the availability of multiple frequency observations offers more opportunities to validate the cycle slip detection and repair results.

Conclusion

This paper describes an innovative method for carrier phase cycle slip detection and fix using one single GNSS receiver, even with arbitrarily large errors in pseudoranges. This method requires one single dual-frequency GNSS receiver only, ideally with high rate (e.g. 1 Hz) observations. With a predefined maximum value of sudden increase of pseudorange errors SIPEmax, the search spaces for dual-frequency cycle slip candidates can be determined. The TNCP can be precisely calculated with the knowledge of SIPEmax. To search for the correct cycle slip candidate, two rules are proposed to validate the cycle slip candidate pairs. One rule is called “widelane cycle slip variation” and the other is the “TECR threshold” rule. The use of rule one can effectively reject over 75% candidates while the rule two is more effective and it can reject over 99.9% candidates. The number of remaining cycle slip candidate pairs after implementing the first rule can be determined as long as SIPEmax is defined. The NRCP after implementing the second rule can also be exactly determined with the knowledge of SIPEmax, TECR threshold \( {\mathrm{TECR}}_{\Phi}^{\mathrm{max}}\left(\mathrm{k}\right) \), and the GNSS data interval ∆t. This implies that no GNSS measurement is required for NRCP determination and that the NRCPs can be determined in advance even before making any actual GNSS observation.

The new method is extensively tested by 13 different datasets of various characteristics, including COSMIC spaceborne GPS receiver and ground-based receivers, GPS data under high level of ionospheric activity, various GPS receiver manufacturers and models. The results show that this method can effectively detect and fix virtually any cycle slips even with a SIPEmax = 1000 m.

This method detects and fixes cycle slip on a satellite-wise, real-time basis. The cycle slip detection and fix for each satellite is completely independent and does not rely on the information of any other satellites. The success of this method heavily relies on the use of the ionospheric physical property: TECR not exceeding the specified TECR threshold. Taking advantage of this property, cycle slip detection and fix is still successful even if all the GNSS satellites of a given epoch simultaneously experience arbitrarily large SIPE and any kind of cycle slips in the carrier phase data. The only disadvantage of the current method is that the parameter SIPEmax needs to be specified in advance before actual cycle slip detection and fix. Thus a sufficiently large value has to be defined to prepare for the worst situation. This might unnecessarily increase computational burden.

Abbreviations

COSMIC:

Constellation observing system for meteorology ionosphere and climate

EPN:

EUREF permanent network

GNSS:

Global navigation satellite system

GPS:

Global positioning system

IGOR:

Integrated GPS and occultation receiver

IGS:

International GNSS service

LAMBDA:

Least-squares ambiguity decorrelation adjustment

MWWL:

Melbourne–wübbena wide lane

NRCP:

Number of Remaining cycle slip candidate pairs

PPP:

Precise point positioning

SIPE:

Sudden increase of pseudorange error

TECR:

Total electron content rate

TNCP:

Total number of cycle slip candidate pairs

UNAVCO:

University Navstar Consortium

References

  • Banville S, Langley RB (2010) Instantaneous cycle-slip correction for real-time PPP applications. Navig. J Inst of Navig 57(4):325–334

    Article  Google Scholar 

  • Bertiger W, Desai SD, Haines B, Harvey N, Moore AW (2010) Single receiver phase ambiguity resolution with GPS data. J Geod 84(5):327–337

    Article  Google Scholar 

  • Beutler G, Davidson DA, Langley RB, Santerre R, Vaníček P, Wells DE (1984) Some theoretical and practical aspects of geodetic positioning using carrier phase difference observations of GPS satellites. Department of Surveying Engineering Technical Report 109. University of New Brunswick, Fredericton, N.B, Canada, p 85

    Google Scholar 

  • Bisnath SB (2000) Efficient automated cycle-slip correction of dual-frequency kinematic GPS data. Proceedings of the Institute of Navigation GPS 2000, Salt Lake City, pp 145–154

    Google Scholar 

  • Blewitt G (1990) An automatic editing algorithm for GPS data. Geophys Res Lett 17(3):199–202

    Article  Google Scholar 

  • Bruyninx C, Baire Q, Legrand J, Roosbeek F (2011) The EUREF permanent network (EPN): recent developments and key issues. Symposium of the IAG Subcommission for Europe (EUREF), Chisinau, pp 25–28

    Google Scholar 

  • Colombo OL, Bhapkar UV, Evans AG (1999) Inertial-aided cycle-slip detection/correction for precise, long-baseline kinematic GPS. Proceedings of the 12th International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GPS 1999), Nashville, pp 1915–1922

    Google Scholar 

  • de Lacy MC, Reguzzoni M, Sansò F (2011) Real-time cycle slip detection in triple-frequency GNSS. GPS Solut 15. https://doi.org/10.1007/s10291-011-0237-5

  • de Lacy MC, Reguzzoni M, Sansò F, Venuti G (2008) The Bayesian detection of discontinuities in a polynomial regression and its application to the cycle-slip problem. J Geod 82:527–542. https://doi.org/10.1007/s00190-007-0203-8

    Article  Google Scholar 

  • Defraigne P, Bruyninx C (2007) On the link between GPS pseudorange noise and day-boundary discontinuities in geodetic time transfer solutions. GPS Solutions 11(4):239–249

    Article  Google Scholar 

  • Dow JM, Neilan RE, Rizos C (2009) The international GNSS service in a changing landscape of global navigation satellite systems. J Geod 83(3–4):191–198

    Article  Google Scholar 

  • Foster JC, Erickson PJ, Coster AJ, Goldstein J, Rich FJ (2002) Ionospheric signatures of plasmaspheric tails. Geophys Res Lett 29(13):1623. https://doi.org/10.1029/2002GL015067

    Article  Google Scholar 

  • Ge M, Gendt G, Rothacher M, Shi C, Liu J (2008) Resolution of GPS carrier-phase ambiguities in precise point positioning (PPP) with daily observations. J Geod 82:389–399. https://doi.org/10.1007/s00190-007-0187-4

    Article  Google Scholar 

  • Geng J, Teferle FN, Shi C, Meng X, Dodson AH, Liu J (2009) Ambiguity resolution in precise point positioning with hourly data. GPS Solut 13(4):263–270

    Article  Google Scholar 

  • Hatch R (1982) Synergism of GPS code and carrier measurements. Proceedings of the 3rd International Geodetic Symposium on Satellite Doppler Positioning, Las Cruces, pp 1213–1231

  • Hatch R (1986) Dynamic differential GPS at the centimeter level. Proceedings of the 4th International Geodetic Symposium on Satellite Positioning, Austin, pp 1287–1298

    Google Scholar 

  • Hofman-Wellenhof B, Lichtenegger H, Collins J (1994) Global positioning system: theory and practice, 3rd edn. Springer-Verlag, New York

    Book  Google Scholar 

  • Hwang C, Tseng TP, Lin TJ, Švehla D, Hugentobler U, Chao BF (2010) Quality assessment of FORMOSAT-3/COSMIC and GRACE GPS observables: analysis of multipath, ionospheric delay and phase residual in orbit determination. GPS Solut 14:121–131. https://doi.org/10.1007/s10291-009-0145-0

    Article  Google Scholar 

  • Kim D, Langley RB (2001) Instantaneous real-time cycle-slip correction of dual frequency GPS data, vol 2011. Proceedings of the International Symposium on Kinematic Systems in Geodesy, Geomatics and Navigation, Banff, pp 255–264

    Google Scholar 

  • Lachapelle G, Hagglund J, Falkenberg W, Bellemare P, Casey M, Eaton M (1986) GPS land kinematic positioning experiments. Proceedings of the 4th International Geodetic Symposium on Satellite Positioning, Austin, pp 1327–1344

    Google Scholar 

  • Landau H (1989) Precise kinematic GPS positioning experiences on a land vehicle using TI 4100 receivers and software. Bulletin Géodésique 63(1):85–96

    Article  Google Scholar 

  • Larson KM (2009) GPS seismology. J Geod 83(3–4):227–233

    Article  Google Scholar 

  • Le AQ, Tiberius C (2007) Single-frequency precise point positioning with optimal filtering. GPS Solut 11(1):61–69

    Article  Google Scholar 

  • Leandro RF, Santos MC, Langley RB (2011) Analyzing GNSS data in precise point positioning software. GPS Solut 15(1):1–13

    Article  Google Scholar 

  • Lee HK, Wang J, Rizos C (2003) Effective cycle slip detection and identification for high precision GPS/INS integrated systems. The J of Navig 56(3):475–486. https://doi.org/10.1017/S0373463303002443

    Article  Google Scholar 

  • Liu H, Li X, Ge L, Rizos C, Wang F (2009) Variable length LMS adaptive filter for pseudorange multipath mitigation based on SydNET stations. J Appl Geod 3(1):35–46. https://doi.org/10.1515/JAG.2009.004

    Google Scholar 

  • Liu ZZ (2011) A new automated cycle slip detection and repair method for a single dual-frequency GPS receiver. J Geod 85(3):171–183. https://doi.org/10.1007/s00190-010-0426-y

    Article  Google Scholar 

  • Liu ZZ, Chen W (2009) Study of the ionospheric TEC rate in Hong Kong region and its GPS/GNSS application. Proceedings of International Technical Meeting on GNSS Global Navigation Satellite System - Innovation and Application, Beijing, pp 7–9

    Google Scholar 

  • Melbourne WG (1985) The case for ranging in GPS based geodetic systems. In: Clyde Goad, US (ed) Proceedings of the first international symposium on precise positioning with the global positioning system. Department of Commerce, Rockville, pp 373–386

    Google Scholar 

  • Parkinson BW, Spilker JJ (1996) Global positioning system: theory & applications. Progress in astronautics and aeronautics, vol 163. American Institute of Aeronautics and Astronautics, Washington

    Google Scholar 

  • Teferle FN, Orliac EJ, Bingley RM (2007) An assessment of Bernese GPS software precise point positioning using IGS final products for global site velocities. GPS Solut 11(3):205–213

    Article  Google Scholar 

  • Wu B-H, Chu V, Chen P, Ting T (2005) FORMOSAT-3/COSMIC science mission update GPS. Solut 9:111–121. https://doi.org/10.1007/s10291-005-0140-z

    Article  Google Scholar 

  • Wübbena G (1985) Software developments for geodetic positioning with GPS using TI 4100 code and carrier measurements. In: Clyde Goad, US (ed) Proceedings of the first international symposium on precise positioning with the global positioning system. Department of Commerce, Rockville, pp 403–412

    Google Scholar 

  • Xu G (2007) GPS: theory, algorithms and applications, 2nd edn. Springer-Verlag Berlin Heidelberg, p. 340. https://doi.org/10.1007/978-3-540-72715-6

  • Zhang X, Li X (2011) Instantaneous re-initialization in real-time kinematic PPP with cycle slip fixing. GPS Solut 15. https://doi.org/10.1007/s10291-011-0233-9

  • Zumberge J, Heflin MB, Jefferson DC, Watkins MM, Webb FH (1997) Precise point positioning for the efficient and robust analysis of GPS data from large networks. J Geophys Res 102(B3):5005–5017

    Article  Google Scholar 

Download references

Acknowledgements

Dr. Simon Banville at Natural Resources of Canada, Canada and Dr. Xiaohong Zhang at Wuhan University, China were thanked for helping analyze two datasets using their own methods/programs for performance comparison purpose.

Funding

The support from the Hong Kong Polytechnic University (Projects No. G-YBDA PolyU 152103/14E, G-YBM3 PolyU 152168/15E, 4-BCBT and 1-BBYH) are acknowledged. The support from the Key Program of the National Natural Science Foundation of China (project No.: 41730109) is acknowledged.

Author’s contributions

This manuscript does not report on or involve the use of any animal or human data or tissue. This manuscript does not contain any individual persons data. Data may be available upon request. Please contact author for data access. This paper is the sole contribution from the author Zhizhao Liu. The author read and approved the final manuscript.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Zhizhao Liu.

Ethics declarations

Competing interests

The author declares that he has no competing interests.

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Liu, Z. A new approach for cycle slip detection and fix using single GPS receiver’s single satellite dual frequency data containing arbitrarily large pseudorange errors. J. Glob. Position. Syst. 16, 5 (2018). https://doi.org/10.1186/s41445-018-0013-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1186/s41445-018-0013-8

Keywords