1 Introduction

A geodetic Global Navigation Satellite Systems (GNSS) station placed at the coast has been emerging as an alternative coastal sea-level observing system over the past decade. It uses satellite signals reflected off the nearby water surface that are delayed with respect to the direct satellite signals for water level monitoring (Larson et al. 2013a). These reflected signals cause measurable interference in the form of an oscillation of the recorded GNSS signal-to-noise ratio (SNR) data at low elevation angles. This technique is usually referred to as GNSS interferometric reflectometry (GNSS-IR) in geodesy and remote sensing literature (e.g., Martín et al. 2020; Peng et al. 2019; Roesler and Larson 2018; Wang et al. 2022). GNSS-IR has been successfully applied to detect sea-level changes at various time scales, including sub-daily storm surges (Kim and Park 2021; Peng et al. 2019; Vu et al. 2019), tsunamis (Larson et al. 2020), sea state (Roussel et al. 2015; Wang et al. 2022), astronomical tides (Larson et al. 2017; Löfgren and Haas 2014; Peng et al. 2023; Tabibi et al. 2020; Zeiger et al. 2021), and seasonal and long-term changes (Peng et al. 2021). However, all those studies used data from GNSS stations that were not originally installed for sea level monitoring purposes, but accidentally near the coast, thus being suitable but not necessarily optimal for detecting sea-level changes.

A coastal GNSS station can simultaneously measure relative sea-level changes from reflected satellite signals off the water surface through the GNSS-IR technique, and vertical land motions from the direct satellite signals through precise point positioning. Combining results from direct and reflected satellite signals can provide geocentric sea-level changes near the coast (e.g., Holden and Larson 2021; Peng et al. 2021; Santamaría-Gómez et al. 2015; Tabibi et al. 2021). This is important for climate studies as conventional tide-gauge records are contaminated by vertical land motions and satellite altimeter measurements near the coast are not yet reliable due to contamination of altimetric waveforms with the land, or inadequate geophysical corrections (Benveniste et al. 2020). We plan to install coastal GNSS stations in Southeast and East Asia at strategically selected locations with goals to monitor both land-height changes originated from tectonic motions and sea surface height changes induced by climate change. Our first station—QJIN—in Taiwan was installed in November 2019 (location and photography are given in Fig. 1; see Supporting Information (SI) for site selection and installation). It was equipped with a Trimble NetR9 receiver, a TRM59900.00 antenna and a SCIT antenna radome. The GNSS antenna was configured to receive signals from GPS (the United States’ Global Positioning System), GLONASS (Russia), BeiDou (China), QZSS (Japan), and Galileo (European Union), thus providing an opportunity to investigate the performance of GNSS-IR based on SNR data from multiple frequencies and multiple constellations, and how it will impact the subsequent tidal estimation.

Fig. 1
figure 1

locations of the GNSS station (red dot) and tide gauges (yellow dots), and photography of GNSS station at QJIN

An important application of the GNSS-IR technique is to estimate astronomical tides—the rise and fall of sea levels caused by the combined effects of the gravitational forces exerted by the Moon and the Sun on a rotating Earth. Tides have a significant influence on coastal water levels and can result in disastrous coastal floods when a high tide coincides with large meteorologically induced surges (e.g., Horsburgh and Wilson 2007; Li et al. 2018; Williams et al. 2016). Tides also play an important role in the vegetative development of mangrove coasts (Collins et al. 2017), the suspension, transportation, and deposition of sediment (Mitra and Kumar 2021; Olliver et al. 2020), and the erosion of shorelines (Vousdoukas et al. 2020). Traditionally, tides have been estimated using conventional tide-gauge data. Recently, Löfgren et al. (2014), Larson et al. (2017) and Tabibi et al. (2020) used sea-level measurements derived from GPS SNR data to perform tidal analysis and demonstrated that GPS SNR-based tidal constituents are comparable with tidal constituents from tide-gauge records. However, they also found that the amplitudes of luni-solar semidiurnal (K2) and luni-solar diurnal (K1) constituents show systematic biases (~ 1.3 cm compared with tide gauge coefficients) and inferred that the biases originated from geometrical errors in the reflection data, which result from the K2 and K1 periods being identical to the GPS orbital period and revisit period. Similar problems were reported in estimating ocean tide loading at K1 and K2 frequencies using GPS; combining GPS and GLONASS showed a reduction of the biases in the two constituents compared with GPS-only solutions (Abbaszadeh et al. 2020; Matviichuk et al. 2020). It is therefore assumed that the systematic effect in the GPS SNR-based K1 and K2 constituents may also be overcome or mitigated using other satellite navigation constellations such as GLONASS and Galileo with orbital periods differing from GPS (Tabibi et al. 2020). To our knowledge, this hypothesis has not been previously demonstrated.

Mainly due to lack of observations from other satellite constellations, monitoring water level changes using the GNSS-IR technique have until now been based mostly on GPS SNR data (Geremia-Nievinski et al. 2020; Lee et al. 2019; Santamaría-Gómez et al. 2015; Strandberg et al. 2019). Studies using GNSS-IR SNR data from multiple constellations have been limited to developing algorithms to process multi-GNSS signals with aims to improve temporal resolution and precision of sea-level estimates (Löfgren and Haas 2014; Wang et al. 2019; Zheng et al. 2021). In this work, besides evaluating the quality of sea-level measurements from GNSS-IR at QJIN, we also explore tidal estimations using SNR data from multiple frequencies and multiple satellite navigation constellations. Specifically, we use 18 months of GNSS data at QJIN to estimate sea levels and then perform tidal analysis. Our aim is to address the following questions: (1) can a combination of sea-level retrievals from multi-GNSS signals result in an improvement in tidal estimation? (2) can the bias in the GPS SNR-based K2 and K1 constituents be resolved by using sea levels generated from GLONASS/Galileo signals? Additionally, to investigate whether such bias is related to location of the site, tidal range and/or tidal regime, we also use data from two additional sites (BRST at Brest, France and SC02 at Friday Harbor, Washington State, United States) to estimate tides. Those two sites were originally installed for geodetic survey purposes. It has been proven that GPS SNR data from those two sites can be used for sea-level retrieving and the accuracy is comparable with conventional tide gauges (Larson et al. 2017; Löfgren et al. 2014). In this study, besides GPS SNR data, we also use SNR data from other satellite navigation constellations (GLONASS and Galileo) to estimate sea levels for tidal analysis.

2 Data and method

2.1 GNSS data and tide-gauge records

We use 1-Hz GNSS SNR data from January 2020 to June 2021 to estimate sea levels and co-located tide-gauge records to evaluate the quality of GNSS-based sea-level estimates. We obtained GNSS data for SC02 in the RINEX2 (Receiver Independent Exchange) format from UNAVCO, and for BRST in RINEX3 format from the Crustal Dynamics Data Information System (Noll 2010). GNSS equipment, tidal range, tidal regime and approximate vertical distance (reflector height) between antenna and water surface at the three sites are summarized in Table 1. For consistency, we only use SNR data from GPS, GLONASS and Galileo (see Table S1 in SI for the information of satellite system, frequency band, frequency, channel and SNR codes) as BeiDou measurements are not available at SC02. Table 2 displays all the available SNR data from those constellations at the three sites. Note that GPS SNR data at SC02 at L2 frequency are S2X for satellites launched after 2005, and the rest are S2W. Due to the issue of double peaks (Roesler and Larson 2018), we excluded GPS S2W SNR data for sea-level analysis.

Table 1 GNSS equipment, tidal regime and reflector height
Table 2 The available SNR data types at the three stations

For tide-gauge records, we obtained the measurements at Friday Harbor (345 m from SC02 with an Aquatrak acoustic sensor) and Kaohsiung (2.5 km from QJIN with an Aquatrak acoustic sensor) from the National Oceanic and Atmospheric Administration and the Central Weather Bureau (CWB), Taiwan, respectively; they have a sampling interval of 6 min. Tide-gauge records at Brest (293 m from BRST with a Krohne BM100 radar sensor) with a sampling interval of 10 min in validated and delayed mode were provided by the Service Hydrographique et Océanographique de la Marine (SHOM).

2.2 GNSS SNR data analysis to derive sea levels

Since GNSS stations are installed on land, we must define an azimuth and elevation angle mask to restrict our data use to those reflected only from the water. For QJIN, we choose data with elevations angles between 5° and 15°. Azimuthally, the location of this particular site allows data from only 120°–260°. For SC02, we apply a mask of elevation angle between 5° and 13°, and restrict azimuths to between 50° and 240°. For BRST, the elevation angle mask is between 15° and 23°, and the azimuth mask is from 145° to 260°. Figure 2 shows the reflection areas from the water surface (i.e., after the mask has been applied) that can be sensed by the three GNSS antennas.

Fig. 2
figure 2

Locations of the three GNSS sites at QJIN, SC02 and BRST (yellow dots), and the corresponding reflection areas (red, yellow and white ellipses), which were approximated by the first Fresnel zone for a reflector height of 17 m for QJIN, 5 m for SC02 and 16 m for BRST. The ellipses for each satellite track are the sensing zones for GNSS observations for elevation angles 5° (longest ellipse), 10° (second ellipse), and 15° (shortest ellipse) at QJIN, 5°, 8° and 13° for SC02, and 15° 20° and 23° for BRST. The sensing zones in the figure were calculated at L1 frequency. We made the figures using Google Earth. The figures show that with a combined GPS, GLONASS and GLONASS data set, the reflections sensing zones are denser and larger

We used the MGEX (Multi-GNSS Experiment) orbit products in SP3 (Standard Product #3) format provided by the International GNSS Service (Johnston et al. 2017) to calculate elevation angles, and all the available SNR data from GPS, GLONASS and Galileo to calculate vertical distance \(H\) between the water surface and the GNSS antenna phase center. Specifically, we first converted the SNR data from units of decibels-hertz on a logarithmic scale to volt per volt on a linear scale, assuming a 1-Hz bandwidth. Secondly, we applied the azimuth and elevation angle masks and then separated satellite passes as rising and setting arcs. Thirdly, we removed the direct signal effect for each arc using a 2nd order polynomial. Fourthly, we followed Larson et al. (2013a) to model the SNR residuals as a function of GNSS wavelength, elevation angle and multipath frequencies. Lastly, we adopted a Lomb–Scargle Periodogram approach to estimate the dominant multipath frequency and convert it to \(H\). We corrected the biases caused by tropospheric delay using a combination of an astronomical refraction model (Bennett 1982) and the Global Pressure and Temperature 2 (GPT2) Wet model (Böhm et al. 2015). We iteratively estimated astronomical tides at each station and used the predicted tides to correct the height-rate change \(\dot{H}\) over a satellite pass (Larson et al. 2013b). The reference point of \(H\) is the average of the antenna phase center as we did not consider phase center variations in the estimation of \(H\) from SNR data.

Figure 3 shows an example of 48 h of combined sea-level measurements at QJIN generated from GPS, GLONASS and Galileo SNR data. There is a lack of GPS observations in the time period between hour 13 and hour 16. However, with the contribution of GLONASS and Galileo observations, the gaps are less significant, and the data set is more complete. The same applies for a lack of GLONASS/Galileo observations in certain periods, such as hour 30 to hour 32. In total, we obtained 51 measurements from GPS SNR data alone over the 48 h. With measurements derived from GLONASS, and Galileo SNR data included, the number of observations increased to 139, demonstrating that combining sea-level estimates from multiple constellations results in substantial improvement in the temporal resolution of sea-level estimations (see further discussion about sampling interval in Sect. 3.2).

Fig. 3
figure 3

Combined sea-level estimates from GPS S1C, GLONASS S2C and Galileo S7X at QJIN. Each dot is from one overflight. There are no GPS observations between hour 11 and hour 13; supplementarily, there are three GLONASS/Galileo observations available over the same period. Thus, a combined GPS, GLONASS and Galileo data set can provide a higher sampling interval of sea-level estimates

2.3 Tidal harmonic analysis

We first convert \(H\) estimated from each type of SNR data from GPS, GLONASS and Galileo to relative sea levels \(h= -(H- \overline{H })\). Secondly, we merge two or three time series of sea-level estimates, one series from each GNSS constellation (e.g., G-S1C + R-S1P, G-S1C + R-S1P + E-S5X, etc.), by appending the estimates and then sorting all in time (see Fig. 3 for illustration). Here, we did not consider the differences between the reference points (i.e., the phase center of the GNSS signals), which are assumed to be negligible considering that the accuracy of GNSS-IR sea-level measurements is at the level of a few cm. Note that here (and hereafter) we use the notation of satellite system identifier-SNR code to denote the type of SNR data used to derive sea levels. For example, G-S1C represents GPS S1C SNR data, while R-S1P stands for GLONASS S1P SNR data. Lastly, we conduct tidal estimation using relative sea levels derived from individual and combined sea-level estimates through the MATLAB Unified Tidal Analysis and Prediction (UTide) software package (Codiga 2011). We configured UTide for iteratively re-weighted least-squares to harmonically estimate automatically selected constituents, white noise to compute confidence intervals (CI), and an exact formulation to correct the effect of the 18.6-year nodal cycle on amplitudes and phases of the tidal constituents. To reduce computational effort, we down sampled tide-gauge records to standard hourly data by averaging data at 6- or 10-min interval over one hour.

3 Results

3.1 Comparison with tide-gauge records: individual measurements

Conventional tide gauges provide sea-level observations at an hourly or higher frequency. In contrast, the sampling interval of sea-level measurements generated by the GNSS-IR technique is fundamentally limited by the number of satellite overflights, the precision of the SNR data, and the geometry of the site (Larson et al. 2017), we therefore first examine the number of observations.

Over the analysis period, the number of daily sea-level measurements from G-S1C at QJIN is between 11 and 44 with a median of 34 (Fig. 4a); and the corresponding time between successive measurements is between 1 to 300 min with a median of 35 min (Fig. 4b). Unlike tide-gauge data, GNSS-IR observations are not uniformly distributed in time. Hereafter, we use the median of the number of daily observations and the median of the time between successive measurements to represent the number of daily observations and sampling interval.

Fig. 4
figure 4

Histogram of the number of sea-level estimates from G-S1C SNR data each day over the 18 months period from January 2020 to June 2021 at QJIN; b Histogram of time (minutes) between successive G-S1C sea-level estimates

The number of daily observations from individual sea-level estimates at the three sites over the analysis period and the corresponding sampling intervals are summarized in Fig. 5. Generally, SC02 has the most observation data among the three sites, with the best sampling interval of 28 min (43 measurements per day) from G-S1C and the lowest temporal resolution of 45 min (24 measurements per day) from G-S5X and E-S1X. BRST has the least observation data; the sampling intervals are from 50 (19 measurements per day from G-S1C) minutes to 95 min (13 measurements per day from G-S5X). As anticipated, merging two/three time series of sea-level estimates (one series from each constellation) significantly improves the sampling intervals (Figure S1 in SI): the sampling intervals of all the combinations from the three sites are better than 60 min. The best sampling intervals of combined sea levels are approximately 15 min for QJIN from G-S1C + R-S1C + E-S1X, 10 min for SC02 from G-S1C + R-S2C + E-S7X, and 19 min for BRST from G-S1C + R-S2P + E-S7X. The lowest sampling intervals of combined sea levels for QJIN, BRST and SC02 are 50 min from R-S1C + E-S8X, 21 min from G-S1C + E-S1X, and 44 min from G-S5X + E-S1X, respectively.

Fig. 5
figure 5

Number of observations per day (a) and sampling interval (b) over the analysis period from individual sea-level estimates

To evaluate whether systematic biases exist between the tide-gauge records and GNSS-IR measurements, we match each sea-level estimated from SNR data \({h}_{GNSS}\) with a corresponding tide gauge value \({h}_{TG}\) by linearly interpolating high-rate (6 or 10 min sampling intervals) tide-gauge records in time. We removed a mean for both time series and then used them to form a time series of differences: \(\Delta h= {h}_{TG}- {h}_{GNSS}\). We display the differences between sea level estimated from G-S1C SNR data and tide-gauge records on a Van de Casteele diagram (Martin Miguez et al. 2008) in Fig. 6. The diagram has been found useful in comparison tests of tide gauges since it can indicate scale problems, timekeeping errors and other problems (Pérez et al. 2014). The diagram (Fig. 6a) for QJIN is centered around zero difference. However, \(\Delta h\) appears slightly skewed towards positive values. A scale difference may or may not exist. We computed a linear fit between the two time series: \({h}_{GNSS}= \alpha {h}_{TG}+c\). From this we found \(\alpha =1.0073 \pm 0.0016\), suggesting a scale difference of 7.3‰ \(\pm \) 1.6‰. A similar scale difference (5.6‰) was also found at SC02 from the G-S1C sea-level estimates (Fig. 6b), consistent with findings from Larson et al. (2017), which they attributed to GNSS-IR measuring lower water levels with a better accuracy. Since GNSS stations and tide gauges are 2.5 km/345 m apart, the scale difference might also be a reflection of small changes in tidal environment. In comparison, the diagram for BRST (Fig. 6c) is less asymmetric, with \(\alpha =0.9972\pm 0.0005\) (i.e., − 2.8‰ ± 0.5‰ scale difference). Nevertheless, the scale differences at the three sites are much smaller than corresponding scale errors found by Pérez et al. (2014), which ranges between − 79‰ and + 26‰ among their 17 pairs of gauges. Additionally, sea levels derived from other types of SNR data at the three sites show a similar pattern to G-S1C on the diagram. We thus conclude that there is no detectable systematic shift between the GNSS-IR measurements and tide-gauge records at the three sites, and differences between the two types of measurements are instrumental noises.

Fig. 6
figure 6

Van de Casteele diagram as a two-dimensional density of the differences \(\Delta {\text{h}}\) between the G-S1C and tide-gauge sea-level measurements as a function of the sea level \({\text{h}}\). Contour levels are linear, in arbitrary units. The mean of \({\text{h}}\) is set to zero

To quantify how well the GNSS-IR measurements agree with the co-located tide-gauge records, we calculate a root-mean-square deviation (RMSD) of the centered differences between GNSS-IR and tide-gauge measurements. The majority of the RMSDs at the three sites are < 10 cm, except G-S1C at SC02 and BRST, and E-S1X at BRST (Fig. 7). In general, the agreement between tide-gauge data and GNSS-IR measurements at BRST is slightly poorer than those at QJIN and SC02; possible reasons could be due to location, imperfections in the tropospheric delay model, and/or residual errors in height rate change \(\dot{H}\). BRST is located in a busy harbor, ships coming and going may disturb the reflected signals, causing more outliers and/or larger errors in the sea-level measurements from GNSS-IR. Also, there may still be residual errors caused by the height rate change even after applying \(\dot{H}\) correction. Tidal range at BRST is the largest, implying that the unmodelled \(\dot{H}\) errors could be the greatest as the errors are positively related tidal ranges (Larson et al. 2013b).

Fig. 7
figure 7

RMSD of the differences between tide-gauge records and GNSS-IR measurements

3.2 Comparison with tide-gauge records: major tidal constituents

We compare the amplitudes (\(A\)) and Greenwich phase lags (\(G\)) of the eight major tidal constituents estimated from tide-gauge records and individual/combined sea-level estimates from GNSS-IR. Additionally, we carry out a more complete comparison using the complex difference (\(\Delta {A}_{c}\)) between GNSS-IR and tide gauge constituents. It is defined using estimated amplitudes (\({A}_{GNSS}\), \({A}_{TG}\)) and Greenwich phase lags (\({G}_{GNSS}\), \({G}_{TG}\)) as the norm \(\Vert {A}_{GNSS}{e}^{-i{G}_{GNSS}}- {A}_{TG}{e}^{-i{G}_{TG}}\Vert \). For the sake of simplicity, here we only show comparison of tidal constituents estimated from selected combinations of sea-level estimates. We demonstrated in Sect. 3.1 that statistically the differences of sampling intervals/RMSDs between GLONASS/Galileo-based sea-level estimates at different frequencies are not significant; we thus select one time series of sea-level estimates from each constellation to form combined sea-level estimates with those from GPS SNR data for tidal analysis. Note that the combinations of the selected time series of GLONASS and Galileo-based sea-level estimates with GPS-based (S1C, S2X, and S5X) sea-level time series demonstrates a slight superiority over other GLONASS and Galileo-based sea-level time series in terms of effectively mitigating the K1 and K2 biases primarily caused by GPS geometrical errors. However, the optimal combinations are site-dependent; see Tables 3, 4, and 5 for results from combinations of GPS S2X sea-level time series with the selected GLONASS/Galileo-based sea-level time series.

Table 3 Amplitudes and phases of the eight major tidal constituents at 95% confidence interval at QJIN estimated from the co-located tide-gauge (TG) records and combination of G-S2X + R-S1P + E-S5X
Table 4 Amplitudes and phases of the eight major tidal constituents at 95% CI at SC02 estimated from the co-located tide-gauge (TG) records and a combination of G-S2X + R-S2C + E-S8X data sets
Table 5 Amplitudes and phases of the eight major tidal constituents at 95% CI at BRST estimated from the co-located tide-gauge (TG) records and a combination of G-S2X + R-S1P + E-S8X data sets

At QJIN, the largest amplitude and phase differences between tide gauge constituents and those estimated from individual GNSS-IR sea-level estimates (Fig. 8a) are found from G-S5X in K1 and K2, respectively, with absolute differences amounting to 18 mm and 31.8°, whereas the remaining amplitude differences are on millimetric level, and the corresponding absolute phase differences are < 5°, except in K2 from G-S1C and G2X, for which the absolute phase differences are 12.5° and 5.9°. Note that the period of K1 is equal to the GPS revisit period, which is 23.93 h (one sidereal day), and the period of K2 is 11.97 h, coinciding with the GPS orbital period. This may cause geometrical errors in the reflection data in the same way that GPS positioning can sometimes be prone to K1 errors (e.g., King et al. 2008) because the satellite geometry is correlated with multipath errors. Thus, geometrical errors could be a possible cause of the large differences in K1 and K2, coupled with neglected systematic errors. Imperfections in the tropospheric delay model may also contribute to the bias in the amplitude of K1 (Williams and Nievinski 2017). In addition, Tabibi et al. (2020) inferred that a discontinuity in response to tidal analysis reproduced by radiational tides may result in bias in K2. Besides, residual errors in \(\dot{H}\) correction and high sampling interval (approximately 75 min) associated with relatively large data noise (RMSD = 6.9 cm compared with tide-gauge records) may contribute to the large differences in K1 and K2 as well.

Fig. 8
figure 8

Differences in amplitudes (\(\Delta {\text{A}}\)) and phases (\(\Delta {\text{G}}\)), and complex differences (\(\Delta {{\text{A}}}_{{\text{c}}}\)) between tide gauge and GNSS-IR constituents from (a) individual sea-level estimates; (b) two sea-level estimates combined, one from GPS SNR data and the other from R- S1P (color bars without black edge) or E-S5X (color bars with black edge) SNR data, and R-S1P + E-S5X (black bar); and (c) three sea-level estimates combined, one from GPS SNR data, and other two from R-S1P and E-S5X SNR data at QJIN. For plotting purposes, \(\Delta {\text{A}}\) and \(\Delta {\text{G}}\) shown in the figure are absolute values. Note that the y-axis in (a) and (b)/(c) is different

To quantify the impact of sampling interval along with data noise, we simulated sea-level data with GNSS-IR sampling intervals and random numbers that follow given Gaussian distributions, i.e., zero means (\(\mu \)) and standard deviations (\(\sigma \)) equal to the RMSDs in Fig. 7. Specifically, we firstly linearly interpolated tide-gauge records in time to obtain sea-level data at GNSS-IR time tags (i.e., sea-level data without associated error estimates); secondly, we generated 1000 samples with random numbers that follow a given Gaussian distribution (e.g., \(\mu =0\), \(\sigma =\) 6.9) to represent white noise. In each sample, the number of random numbers is equal to the number of interpolated sea-level data in the first step. Thirdly, we added the white noise to the interpolated sea-level data to form simulated sea-level data and perform tidal analysis. Note that sampling interval and data noise impact estimation of all the eight major tidal constituents. Since we intend to isolate the impact of sampling interval and data noise on K1 and K2 constituents estimated from the G-S5X sea-level estimates for the purpose of confirming the impact of geometrical errors, we show simulation results for only the two constituents in Fig. 9a and b. Simulation results for the rest of the eight major tidal constituents can be found in Figures S2 and S3 in SI. At the 99.7% confidence interval, the differences in the K1 amplitude and K2 phase estimated from tide-gauge records and sea-level data simulated from G-S5X are − 0.3 ± 4.5 mm and 3.4° ± 12.9°, indicating that it is statistically unlikely that the K1 amplitude difference and K2 phase difference could be greater than 5 mm and 17°, respectively. In contrast, the differences from observations are 18 mm in the K1 amplitude and 31.8° in the K2 phase, which are larger than the possible differences from simulated sea-level data. Therefore, the differences must be from a different source such as geometrical errors caused by GPS orbital period. It should be noted that here and hereafter neglected systematic errors (e.g., due to imperfections in the models of tropospheric delay and \(\dot{H}\) correction and radiational tides) may enhance the biases in K1 and K2 caused by the geometrical errors. Those errors are coupled, and quantifying the impact of the individual errors on K1 and K2 is beyond the scope of this study.

Fig. 9
figure 9

Histogram of differences in the K1 amplitude (a), K2 phase (b) and M2 amplitude (c) estimated from tide-gauge records and simulated sea levels from G-S5X (a and b) and E-S8X (c)SNR data

Additionally, complex differences from E-S8X are generally larger, except for K1. The largest difference amounts to 10 mm for M2. This is most likely due to the combined effect of low temporal resolution (95 min) and data noise (RMSD = 7.4 cm). Results from sea-level data simulated from E-S8X (Fig. 10c) show that at the 99.7% CI, the difference in the amplitude of M2 is − 0.3 ± 9.6 mm, demonstrating that, under the condition that the data accuracy is around 7 cm, a sampling interval of 95 min can cause a bias of up to 10 mm in the M2 tidal constituent. Combining sea-level estimates from E-S8X with any GLONASS-based sea-level estimates improves the sampling interval to 46 min, and the complex differences are reduced to < 5 mm (Figure S4 in SI). In comparison with simulated sea-level data from G-S5X, data noise in E-S8X simulated sea-level data is at a similar order, but the sampling interval of G-S5X is slightly better, resulting in better agreement with tide-gauge constituents. This demonstrates the impact of having different sampling intervals, but investigation of what sampling interval is best for GNSS-IR measurements to perform tidal analysis is beyond the scope of this study. No large differences in amplitudes and phases from GLONASS and Galileo-based estimates except E-S8X are found for any of the eight major tidal constituents, indicating that tidal estimation using GLONASS or Galileo-based sea-level estimates can overcome the issue of biases caused by the geometrical errors originated from GPS orbital period. This also suggests that geometrical errors are the primary contributors to the K1 and K2 biases from the GPS-based sea-level data because the same models (e.g., tropospheric delay and \(\dot{H}\) correction) were applied to GLONASS and Galileo-based sea-level data. Errors resulted from the imperfection in these models would similarly impact GLONASS or Galileo-based K1 and K2 constituents. Figure 8a shows that their K1 amplitude differences and K2 phase differences (except E-S8X) are < 5 mm and 6°, respectively. This indicates that the impact of imperfections in these models on K1 and K2 is relatively minor compared to GPS geometrical errors. Therefore, even though errors due to the imperfection in models could be a source of biases in the GPS-based K1 and K2 constituents, their role would most likely be secondary. Additionally, Williams and Nievinski (2017) discovered that atmospheric delay does not appear to impact the phase of tidal constituents, although, if left uncorrected, it would lead to tidal constituent amplitudes being approximately 2% smaller than their true values. Our results show clear biases in the GPS-based K2 phases at QJIN station; based on the findings by Williams and Nievinski (2017), such biases are unlikely from the residuals of the tropospheric delay due to the imperfection in the model we used. Furthermore, the tidal range at this site is small (around 1 m), we would expect the residuals in the \(\dot{H}\) correction due to the imperfection in the model to be minor too. This further suggests that GPS geometrical errors are the primary sources responsible for the biases in the GPS-based K2 phases.

Fig. 10
figure 10

Same as Fig. 8, but for SC02

Combining sea-level estimates from G-S5X with those from R-S1P or E-S5X significantly reduces the differences in the K1 amplitude and K2 phase (Fig. 8b) to < 4 mm and < 12°. Note that the K2 phase difference from R-S1P and E-S5X-based sea-level estimates combined is 1.7°, implying GPS geometrical errors still impacts the K2 phase in the combination of G-S5X and R-S1P/E-S5X-based sea-level estimates. The bias in the K2 phases did not translate into complex differences because of the small K2 amplitude (1.8 cm, Table 4). Combining sea-level estimates from G-S5X, R-S1P and E-S5X slightly further reduces the complex differences (Fig. 8c). However, the K2 phase differences are still noticeably large; this could be due to large uncertainties in the K2 phase estimations (Table 3) and/or residual impact from GPS geometrical errors as GPS-based sea-level estimates were involved in the combined sea-level estimates.

Figure 8c also shows that the combination of G-S2X + R-S1P + E-S5X slightly outperforms the other two combinations. We thus summarize the amplitudes and Greenwich phase lags at 95% CI and complex differences for the eight major tidal constituents estimated from tide gauge and the combined sea-level estimates in Table 3. The uncertainties in both amplitudes and phases from tide gauge and GNSS-IR are of the same order, and the complex differences are < 6.0 mm, suggesting that tidal estimation using 18 months of combined sea-level estimates from multi-constellation GNSS-IR can reach an accuracy as good as that from conventional tide gauges.

At SC02, most absolute differences in amplitudes from individual sea-level estimates (Fig. 10a) are < 10 mm, except for K1 from G-S1C (11 mm) and \({K}_{2}\) from G-S2X (24 mm) and G-S5X (14 mm). Simulation results show that differences caused by sampling interval along with data noise are 2.9 ± 3.3 mm in the K1 amplitude from G-S1C (Figure S5), 0.6 ± 3.3 mm and − 0.6 ± 3.3 mm in the K2 amplitude from G-S2X and G-S5X (Figure S6 and S7), further proving the impact of the GPS geometrical errors on the K1 and K2 constituents. In terms of complex differences, only K1 from G-S1C (12 mm), G-S2X (21 mm) and G-S5X (43 mm) and K2 from G-S2X (24 mm) and G-S5X (21 mm) are > 10 mm. This is also consistent with the findings from Larson et al. (2017), who used 10-years of GPS SNR data at the L1 frequency at SC02 to model tides. They found that the complex differences between GNSS-IR and tide-gauge estimates for K1 and S1(solar diurnal) are 13 mm and 14 mm, respectively, whereas the discrepancies for the remaining constituents are < 5 mm. They attributed the K1 discrepancy to the GPS geometrical errors and the S1 discrepancy to thermal effects in the tide-gauge data.

Combining sea-level estimates from G-S2X/G-S5X and R-S2C/E-S8X reduces the K2 amplitude differences to < 13 mm/ < 4.6 mm and K1 phase differences from 1.5°/3.2° to < 0.9°/ < 1.6° (Fig. 10b). Combining sea-level estimates from G-S2X/G-S5X, R-S2C and E-S8X further reduces the K2 amplitude differences to < 8 mm/ < 2.9 mm and K1 phase differences to < 0.6°/ < 0.9° (Fig. 10c). This demonstrates that biases in the K1 and K2 caused by the GPS geometrical errors can be mitigated by merging sea-level estimates from GPS, and GLONASS and/or Galileo. With a combination of sea-level estimates from G-S2X + R-S2C + E-S8X, the complex differences between tide-gauge and GNSS-IR coefficients are all < 8 mm (Table 4).

At BRST, the difference in the K1 amplitude from G-S5X reaches 47.6 mm (Fig. 11a), which is the largest discrepancy, followed by K1 from G-S1C (15.7 mm) and K2 from G-S5X (15.6 mm). Simulations results (Figures S8 and S9 in SI) show that at 99.7% CI, the differences in the K1 amplitude from G-S5X and G-S1C are − 2.2 ± 5.7 mm and − 0.3 ± 4.8 mm; and difference in K2 from G-S5X is − 0.2 ± 5.4 mm.

Fig. 11
figure 11

Same as Fig. 8, but for BRST

Combining sea-level estimates from G-S1C/G-S5X and R-S1P/E-S8X reduced the differences in K1 amplitudes to < 11 mm/ < 23 mm (Fig. 11b), and the differences in K2 amplitudes were mitigated to < 5 mm. Merging sea-level estimates from G-S1C/G-S5X, R-S1P and E-S8X further reduces the difference in K1 amplitudes to < 8 mm/ < 13 mm (Fig. 11c). This further confirms that biases in K1 and K2 amplitudes caused by the GPS geometrical errors can be mitigated by adding sea-level estimates from GLONASS and/or Galileo.

K2 and K1 phases from G-S2X and G-S5X were also found to be affected by the geometrical errors (Figures S10 and S11 in SI). Additionally, the discrepancies in P1, Q1 and O1 phases from GPS, GLONASS and Galileo are also large; however, no patterns were observed. Owing to their statistically small amplitudes, those large discrepancies did not translate into the complex differences. Combining sea-level estimates from all three constellations reduced those phase discrepancies to < 5°, which is approximately within the 95% CI (see Table 5). We therefore infer that the large discrepancies in the P1, Q1 and O1 phases are due to large uncertainties.

Complex differences from individual sea-level estimates followed the same pattern as the amplitude differences. The largest one is the K1 difference from G-S5X, followed by K2 from G-S5X and K1 from G-S1C. Combining sea-level estimates from G-S5X/G-S1C and R-S1P/E-S8X made the K1 and K2 constituents from GNSS-IR agree better with tide-gauge constituents. Combining sea-level estimates from G-S5X/G-S1C, R-S1P and E-S8X further reduced the \({K}_{1}\) complex difference with G-S1C to < 7 mm and with G-S5X to < 15 mm. Note that the complex differences in the K1 from combinations with G-S5X are the largest, and this was found at SC02 as well (see Fig. 12 for comparisons with G-S1C and G-S2X from all the combinations). This may imply that G-S5X are more prone to the GPS geometrical errors. In addition, M2 complex differences are generally the largest among the eight major tidal constituents, due to their large amplitude (Table 5). Table 5 shows that with a proper combination of sea-level estimates from all three constellations, one each from GPS, GLONASS and Galileo, discrepancies in tide-gauge and GNSS-IR constituents can be on millimetric level.

Fig. 12
figure 12

complex differences in the K1 constituent from all combinations of three time series of sea-level estimates, one series from each constellation, at (a) SC02 and (b) BRST. There are eight combinations for SC02 and 20 combinations for BRST

4 Discussion and conclusion

From our analysis of 18 months of multi-constellation GNSS SNR data at three sites, we found that merging sea-level estimates from GPS, GLONASS and Galileo significantly improves the GNSS-IR sampling intervals to around 10 min compared to using GPS alone. We therefore conclude that in the use of SNR data from multiple frequencies and multiple constellations, temporal resolution is no longer a limitation of the GNSS-IR technique. Our results from tidal analysis of eight major tidal constituents demonstrate that G-S1C, G-S2X and G-S5X are prone to the GPS geometrical errors, causing biases in K1/K2 amplitude and phases. Supplementing sea-level estimates from GLONASS and/or Galileo reduces the biases in both amplitude and phases, resulting in millimetric complex differences between GNSS-IR and tide-gauge constituents. Additionally, sea-level estimates from GLONASS/Galileo alone with adequate temporal resolution can overcome the issue of biases in the K1/K2 amplitude and phases from GPS signals. However, due to the restriction of the site geometry, the number of observations from a single constellation is limited: merging sea-level estimates from multiple constellations is still necessary for a better temporal resolution, which could result in a better tidal analysis.

Among the three sites, we found that K1 complex differences from a combination of sea-level estimates from three constellations involving G-S5X are consistently twice as large as the differences from other combinations at both SC02 and BRST, although the largest K1 difference is around 1 cm. This may imply that G-S5X SNR data, at its current level of availability (only about half of the constellation broadcast at L5 frequency), are more prone to the sidereal period aliasing of GPS satellites, and supplementing sea-level estimates from GLONASS and Galileo cannot eliminate the biases.

The three sites used in this study are geographically distant from each other. Tidal ranges are from 1.0 to 6.7 m, and tidal regimes cover semi-diurnal, mixed, mainly semi-diurnal, and mixed, mainly diurnal tides. Therefore, regardless of location, tidal ranges, and tides type, a GNSS station, properly placed near the coast with a sufficiently open view of the sea and configured to receive satellite signals from multiple constellations, can provide useful sea-level information to study tides with comparable accuracy as conventional tide gauges.