1 Introduction

Tides are periodic fluctuations of the sea level due to astronomical objects, for example, sun, moon, and earth rotation gravity effects (Doodson 1954; Shum et al. 2001; Devlin 2016). Knowledge of the tide is essential for safe ship navigation, coastal engineering, marine pollution management, surveying engineering, marine tourism, and commercial and recreational fishermen. Moreover, tidal energy is on its way to being one of the important sources of clean, reliable, and sustainable energy (Rourke et al. 2010). Sea level has long been an essential parameter for numerous coastal and offshore services, for example, defining national reference level systems, easing port operation, security, and safety, facilitating navigation, and as an important index of climate changes (Adebisi et al. 2021). Besides tide gauge as the main method for sea-level monitoring, satellite altimetry, and Global Navigation Satellite Systems Reflectometry (GNSS-R) have also been used. The history of using tide poles goes back to the 1770 s (Church and White 2011). Tide gauges measure sea level, relative to a local geodetic monument as a reference level. Although tide gauges can obtain precise relative sea level, there are some limitations and challenges, for example, vertical land movement (Cipollini et al. 2017), stability of the area, and connecting the relative sea level to a global reference frame. The limitation of satellite altimetry lies primarily in its low repeat period, limiting its ability to capture rapid changes in ocean dynamics. Additionally, it is often restricted in its use near coastlines due to contamination from land reflections. (Marti et al. 2019).

The utilization of the Global Navigation Satellite Systems (GNSS) for remote sensing (GNSS-RS) purposes has been gaining in popularity in recent decades besides its primary services (timing, navigation, and positioning). Over 100 GNSS satellites, including GPS, Galileo, GLONASS, and BeiDou/Compass, transmit navigation signals. The signal generated by these satellites which pass through the atmosphere can contribute information about the atmospheric layers and their variability (Rajabi et al. 2020a, 2015). Reflected GNSS signals from land or oceans in a bi-static geometry provide an opportunity to study different parameters of the reflecting surfaces for natural hazards and environmental monitoring applications such as sea level (Martin-Neira 1993), sea surface roughness (Hoseini et al. 2020b), ocean eddies (Hoseini et al. 2020a), sea ice concentration (Semmling et al. 2019), flood (Rajabi et al. 2020b), precipitation (Asgarimehr et al. 2021), wind speed (Foti et al. 2017), snow depth (Tabibi 2016), river water height (Zeiger et al. 2021), and storm detection (Vu et al. 2019). This innovative technique represents a significant advancement in remote sensing, as it utilizes passive sensors that can operate effectively in ground-based, airborne, and space-borne modes (Zavorotny et al. 2014).

Ground-based GNSS-R as a multi-purpose sensor has been introduced as an alternative option for traditional tide gauges over the past decades. Compared to the tide gauges, this sensor is easier to install, covers a wider area, gives sea surface height in a global height coordinate system, is capable of correcting the station’s vertical displacement, and can deliver extra information such as sea surface roughness and ice coverage. The conceptualization of sea level retrieval using GNSS-R was proposed in 1993 (Martin-Neira 1993) and used for ground-based GNSS-R stations signals in 2000 (Anderson 2000). Several studies have assessed the performance of the GNSS-R heights time series for tidal constituents analysis.

Semmling et al. (2012) used a 60-day GNSS-R height time series at Godhavn to detect diurnal (\(K_1\)) and semi-diurnal (\(M_2, S_2\)) constituents with decimeter range. Löfgren et al. (2014) presented sea-level measurements retrieved from the analysis of signal-to-noise ratio (SNR) data recorded by five coastal geodetic GPS stations. They showed that the harmonic analysis of the residuals reveals remaining signal power at multiples of the GPS draconitic day. Furthermore, they illustrated that the observed SNR data were, to some level, disturbed by additional multi-path signals, in particular for GPS stations that are located in harbors. Larson et al. (2017) used 10 years of L1 SNR GPS data at Friday Harbor and found an RMSE of 12 cm from individual satellite passes. They showed that the tidal component (between \(S_a and M_6\)) retrieved from both the GNSS-R and tide gauge time series was in good agreement with the absolute differences of up to 1 cm in case of amplitudes. Tabibi et al. (2020) showed there is a millimetric agreement between SNR-based GNSS-R height and the tide gauge observation for eight major tidal components, except lunisolar diurnal (\(K_1\)), principal solar (\(S_2\)), and lunisolar semi-diurnal (\(K_2\)) components. They stated that differences were due to leakage from the GPS orbital period. Gravalon et al. (2022) used SNR-based GNSS-R at four stations and noticed an error in the K1/K2 tidal constituents. Geremia-Nievinski et al. (2020) utilized 1 year of SNR data for the GPS L1-C/A signal collected at the Onsala Space Observatory and compared the performance of the methods developed by four research groups. They concluded that all four groups captured semi-diurnal and diurnal variations and most GNSS-R solutions showed harmonics at integer fractions of one sidereal day.

In most of the GNSS-R studies, the tidal harmonics with periods shorter than 3 h (higher harmonics) are poorly represented due to the low temporal resolution of the measurements (Geremia-Nievinski et al. 2020). The studies predominantly utilized L1 SNR observations from geodetic receivers. This study uses around 6 years of In-phase and Quadrature (I/Q) datasets collected by multi-front-end dedicated GNSS-R receiver located in the Onsala Space Observatory. We evaluate the effect of using more observations at lower level, i.e., direct I/Q outputs, to retrieve SL variations. The final SL is the result of a combination of L1 and L2 generated height using a Left-Handed Circular Polarization (LHCP) antenna for detecting and analyzing the tidal harmonics. We estimate the SL using a 15-minute averaging window (near real-time and combined SL product) to increase time resolution. The rest of this paper is organized as follows. The study area and dataset are presented in Sect. 2. The methodology and mathematical concepts are described in Sect. 3. The discussion of data processing and the results are explained in Sect. 4. Finally, the paper is finalized by a conclusion in Sect. 5.

2 Data

2.1 GNSS-R site and dataset

We use just under 6 years of GNSS-R data from July 2015 to May 2021 obtained from a dedicated GNSS-R site mounted and operated by the German Research Center for Geosciences (GFZ) together with Onsala Space Observatory in Sweden (\(57.393^\circ \) N, \(11.914^\circ \) E). The experiment uses multiple antennas installed on a concrete structure with a height of about 3 m from the sea surface. The station has three types of antennas, one is zenith-looking and the two others are tilted toward the sea with the angle of \( 98^\circ \) relative to the zenith. The zenith-looking antenna is RHCP and is assigned to track direct GPS signals. The sea-looking antennas with RHCP and LHCP can effectively acquire reflected GPS signals at two different polarizations with the highest antenna gain values of up to 4.7 dB. A GNSS occultation, reflectometry, and scatterometry (GORS) receiver (Rajabi et al. 2021a; Helm et al. 2007) with four antenna inputs is used in the GNSS-R site. The receiver can only process GPS L1 and L2 signals. The first input is utilized for the master channel and is linked to the up-looking antenna. The second and third inputs are dedicated to the slave channels and are connected to the sea-looking antennas.

Based on our previous study (Rajabi et al. 2022), the best performance for the altimetry can be achieved using the LHCP antenna. Therefore, we just use the data output of the LHCP link. To select valid observations which include reflected signals from the sea surface, the location of the specular points is calculated via a ray-tracing algorithm described by Semmling et al. (2016) concerning the earth’s surface curvature. Afterward, we select the reflections from the sea surface using a polygon mask. The observations with elevation angles between \(5^{\circ }\) and \(30^{\circ }\) are selected for the investigation. The I/Q data with elevation angles below \(5^{\circ }\) are excluded to reduce the atmospheric effect and the rest of the effect is considered negligible because of the low reflector height. However, the atmospheric effect could introduce a small-scale error proportional to the reflector height (Williams and Nievinski 2017). As will be presented in the results section, the retrieved amplitudes from GNSS-R and the tide gauge show very close correspondence, highlighting a minimal atmospheric effect.

Figure 1a, b shows the GNSS-R experiment setup from the top view and the antenna installation setup. The data suffer from some gaps accounting for about 21% of the whole data. Although the method used in this study can handle datasets with gaps, the presence of missing values in the analyzed GNSS-R dataset can leave its signature on the accuracy of the results. In order to create the same situation for both datasets in the analysis, we utilize tide gauge measurements only at the epochs when GNSS-R data is available.

Fig. 1
figure 1

a The red square and yellow circle represent the GNSS-R experiment setup and the tide gauge station from the top view, respectively, b the GNSS-R station antenna configuration, c the tide gauge station located in Onsala Space Observatory

2.2 Tide gauge measurements

The dataset used in this study includes ancillary sea-level measurements from a nearby tide gauge located about 300 m away from our GNSS-R experiment setup (Fig. 1a). The tide gauge (Fig. 1c) was developed and constructed in-house, with advice from the Swedish Meteorological and Hydrological Institute (SMHI). The official tide gauge station consists of several sensors, and the main sensor is the Campbell CS476 radar with an \(8^\circ \) beam angle and millimeter-level accuracy. The data are open access through the SMHI website (https://www.smhi.se/kunskapsbanken/oceanografi/tide-gauge-onsala-1.94732).

3 Method

This study consists of three main stages (Fig. 2). The first stage is the data preparation through the time series associated with each reflection event. In the second stage, we focus on finding the interferometric frequency in the I/Q observations using multivariate least-squares harmonic estimation (LS-HE) for the LHCP antenna. Then, we calculate the sea surface heights based on the retrieved interferometric frequency from L1 and L2 observations. To combine the estimated sea surface heights from different satellites, we use an averaging window of 15 min for every 5 min time step. Overall, each height measurement is based on up to eight reflection events from one to four satellites at L1 and L2 frequencies satellites reflection. We use a native MATLAB function for outlier detection based on the median absolute deviation (MAD) values. All the values beyond three scaled MAD with respect to the median are considered as outliers. To suppress the effect of any remaining outliers, the median value of the estimates within the averaging window is considered as the final height estimate. The last stage of the methodology is the validation of the GNSS-R height estimates with the collocated tide gauge observations and detecting the tidal harmonics for both datasets, and comparing them in terms of amplitudes, period, and initial phases.

Fig. 2
figure 2

A schematic diagram of methodology based on the univariate and multivariate least-squares harmonic estimation (LS-HE) method

3.1 GNSS-R height estimation

The interference of a reflected signal with the direct signal generates a compound signal. The SNR of the compound signal fluctuates due to the constructive or destructive phases of the direct and reflected signals. This oscillation is known as interference pattern and can be used to retrieve different information from the reflecting surface. Here, we aim to retrieve sea-level variations from the interference patterns. The geometry of reflection affects the frequency of the oscillation. Therefore, the main observation used in this study is the interferometric frequency. We apply the LS-HE method to I/Q observations to effectively detect this frequency. The method uses individual linear terms for the I/Q time series. The linear terms can compensate the effect of the direct signal on the time series variations. Therefore, the LS-HE can separate the contributions of the direct signal from the interferometric fringes. The interferometric period are then inverted to the reflector height, i.e., the height between the phase center of the receiving antenna and the reflecting surface. The details of this procedure are given in (Rajabi et al. 2022).

The reflected signals travel an excess path to reach the antenna. The path difference between the direct and reflected signals (\(\delta \rho \)) changes over time which creates a Doppler frequency shift (\(\delta f\)) that characterizes the interferometric pattern’s frequency (Hoseini et al. 2020b):

$$\begin{aligned} \delta f = \frac{1}{\lambda } \frac{d (\delta \rho )}{dt} \end{aligned}$$
(1)

where \(\lambda \) is the carrier signal’s wavelength. We use the period of interferometric oscillations to calculate the sea surface height. As shown in Fig. 3, \(\delta \rho \) can be estimated by:

$$\begin{aligned} \delta \rho = 2 \; h \; \text {sin}(e) \end{aligned}$$
(2)

with e being the satellite elevation angle, h the height difference between the sea surface and the antenna phase center. The variable \(x = 2\sin (e)/\lambda \) is used here to simplify the calculations. The frequency of interferometric fringes in terms of the variable x is shown by \(\delta f_x\) and can be formulated as:

$$\begin{aligned} \delta \rho= & {} \lambda \; h \; x \nonumber \\ \delta f_x= & {} \frac{1}{\lambda } \frac{\text {d} (\delta \rho )}{\text {d}x} = h + x\,\frac{\text {d}h}{\text {d}x} = h + x\,\dot{h}\,\frac{\text {d}t}{\text {d}x} \ \end{aligned}$$
(3)

where \(\dot{h} = \text {d}h/\text {d}t\) is the rate of change for the reflector height. We apply an iterative process to simultaneously estimate the effect of height rate and retrieve accurate reflector height. In doing so, we first apply LS-HE method denoted by \({\mathcal {L}}\) to the I/Q samples of the LHCP slave antenna with respect to x:

$$\begin{aligned} P(T_x)= & {} {\mathcal {L}}(x,Y) \nonumber \\ Y= & {} [I_s^{L}, \, Q_s^{L}] \nonumber \\ \{P_\textrm{max},T_\textrm{int}\}= & {} \max [P(T_x)] \nonumber \\ h\approx & {} \delta f_x = \frac{1}{T_\textrm{int}} \end{aligned}$$
(4)

where \(P(T_x)\) is the output of LS-HE spectral analysis, which is a power spectrum against different periods, Y is the matrix of I/Q time series. The superscript \(^L\) is used to refer to the LHCP polarization of the slave antenna denoted by the subscript \(_s\). The function \(\max \) detects the maximum power and returns the corresponding period, which is the period of interferometric pattern (\(T_\textrm{int}\)). The iterative process to find the accurate reflector height starts with the assumption \(\dot{h}=0\). The values of h and \(\dot{h}\) are calculated within the following minimization problem (Rajabi et al. 2022):

$$\begin{aligned}&\min \limits _{h,\dot{h}} \sum \limits _{i}^{2}{\left\| \hat{Y_i}- a_i \sin \left( \frac{4\pi [h + \delta h]\sin (e)}{\lambda } + \phi _i \right) \right\| } \end{aligned}$$
(5)
$$\begin{aligned}&\delta h = \frac{\dot{h} \tan (e)}{\dot{e}} \end{aligned}$$
(6)

where \(\delta h\) is the height rate correction, \(\dot{e}\) denotes the rate of satellite elevation angle, \(\hat{Y_i}\) are the detrended I/Q time series (linear trends removed), and \(a_i\) and \(\phi _i\) are the amplitude and initial phase of the interferometric oscillation.

Fig. 3
figure 3

The path difference between the direct and reflected signals in a ground-based reflectometry experiment with low reflector height. \(\rho _\mathrm{sat-sp}\) is the distance between the satellite and specular point, \(\rho _\mathrm{sat-rec}\) is the distance between the satellite and receiver antenna, \(\rho _\mathrm{sp-rec}\) is the distance between the specular point and receiver antenna, e is the satellite elevation angle, \(\delta \rho \) is the extra path of the reflected signal compared to the direct signal, and h is the height difference between the phase center of the antenna and sea surface

3.2 Least-squares harmonic estimation (LS-HE)

The LS-HE method is utilized in our study for retrieving sea-level variations from the GNSS-R I/Q interferometric observations and for the tidal harmonics analysis. The height retrieval uses multivariate LS-HE formulation while the tidal harmonics detection is based on univariate LS-HE. The multivariate LS-HE, as an extension of univariate harmonics estimation, can detect the common-mode signals in a set of multiple time series (Amiri-Simkooei et al. 2007). In the following, a brief introduction to this method is provided. Further details can be found in (Amiri-Simkooei 2013; Amiri-Simkooei et al. 2007; Rajabi et al. 2020a).

3.2.1 Univariate model

Observation equations can be modeled through the following linear model, which includes deterministic and stochastic parts of the time series (Amiri-Simkooei 2013):

$$\begin{aligned} E(y) = A x,\; D(y) = Q_y, \end{aligned}$$
(7)

with \(E(\bullet )\) and \(D(\bullet )\) indicating the expectation and dispersion operators. Deterministic behavior of the time series is captured by the first term \(E(y)=Ax\) and the second term provides a stochastic model to describe the statistical characteristics of the observations. The vector of unknowns includes elements describing a low-order polynomial, e.g., two unknowns for a linear regression model.

Under null hypothesis, we assume that Eq. (7) can adequately model the time series. The model can be improved under the alternative hypothesis. For any periodic signal in the time series, the deterministic part of the model can be extended by a two-column design matrix \(A_k\):

$$\begin{aligned} E(y) = A x+A_k x_k,\quad D(y) = Q_y, \end{aligned}$$
(8)

where the unknown vector \(x_k\) contains two elements to estimate the amplitudes of the signal \(a_k \cos (\omega _k t)+b_k \sin (\omega _k t)\) at a frequency of \(\omega _k\). The unknown frequencies \(\omega _k\) are detected through LS-HE, i.e., by maximizing the following functional:

$$\begin{aligned} \omega _k=arg \max _{\omega _j} P(\omega _j), \end{aligned}$$
(9)

where

$$\begin{aligned} P(\omega _j)=\text {tr} (\hat{e}^T Q_y^{-1} A_j (A_j^T Q_y^{-1} P_A^\perp )^{-1}A_j^T Q_y^{-1} \hat{e}), \end{aligned}$$
(10)

where tr is the trace operator and the least-squares residuals are \(\hat{e}= P_A^\perp y \) with \(P_A^\perp = I-A(A^T Q^{-1} A)^{-1} A^T Q^{-1}\) being an orthogonal projector. The values of \(P(\omega _j)\) construct the power spectrum against a range of different frequencies. The frequency corresponding to the maximum value of the power spectrum indicates the frequency of interest, i.e., \(\omega _K\). The statistical significance of the detected frequency can be verified through a hypothesis testing procedure using the test statistic \(T_k = P(\omega _j)=tr (\hat{e}^T Q_y^{-1} A_k(A_k^T Q_y^{-1} P_A^\perp )^{-1}A_k^T Q_y^{-1} \hat{e})\). Under the null hypothesis, if the covariance matrix \(Q_y\) is known and the distribution of the time series is normal, the test statistic has a central Chi-square distribution with 2 degrees of freedom. The detected frequency is statistically significant if the null hypothesis is rejected. The detection process can be repeated for other frequencies with the new design matrix \(A=[A \ A_k]\).

3.2.2 Multivariate model

The LS-HE can be utilized for detecting common periodic signals in multiple time series through a multivariate power spectrum. Each time series can have a dedicated polynomial model with its corresponding unknown coefficients. In this case, if the design matrix A and covariance matrix \(Q_y\) are the same for all the time series, the deterministic model can be referred to as multivariate model represented by (Amiri-Simkooei 2013):

$$\begin{aligned} E(\text {vec}(Y)) = (I_{{r}} \otimes A) \;\text {vec}(X) + (I_{{r}} \otimes A _{{k}}) \text {vec}(X_{_{k}}) \end{aligned}$$
(11)

with the multivariate covariance matrix

$$\begin{aligned} D(\text {vec} (Y)) = \Sigma \otimes Q, \end{aligned}$$
(12)

with r being the number of the time series, \(\otimes \) the Kronecker product, I the identity matrix, and vec the vector operator. A and \(A_k\) are the design matrices.

The second term in Eq. (11) includes the element \((I_r \otimes A _k)\) which is meant to capture a common periodic pattern across all the time series. The common periodicity can have different phase and amplitude in different time series. The matrix Y is the observations matrix, which includes the time series as its columns. The matrices X and \(X_k\) are the unknowns. The frequency (\(\omega _k\)) can be detected through the maximization of Eq. (9) with:

$$\begin{aligned} P(\omega _j)=\text {tr} (\hat{E}^T Q^{-1} A_j(A_j^T Q^{-1} P_A^\perp )^{-1}A_j^T Q^{-1} \hat{E} \hat{\Sigma }^{-1}),\nonumber \\ \end{aligned}$$
(13)

where \(P(\omega _j)\) denotes the multivariate power spectrum, \(\hat{E}= P_A^\perp Y \) is the least-squares residuals matrix and \(P_A^\perp = I-A(A^T Q^{-1} A)^{-1} A^T Q^{-1}\) is the orthogonal projector and \(\hat{\Sigma }=\hat{E}^T Q^{-1} \hat{E}/(m-n)\). The following test statistic can be used for testing the significance of the detected signal:

$$\begin{aligned} T = P(\omega _k)=\text {tr} (\hat{E}^T Q^{-1} A_k(A_k^T Q^{-1} P_A^\perp )^{-1}A_k^T \end{aligned}$$
(14)
Fig. 4
figure 4

Examples of observation time series of PRN 26 for one segment which are used to retrieve interferometric period (\(T_\textrm{int}\)) using multivariate LS-HE formulation. a The In-phase and Quadrature components for GPS L1 and L2 for the LHCP antenna. b The dominant interferometric period retrieved by applying LS-HE method to the combinations of the I/Q time series

If \(\Sigma \) and Q are known and the original observations follow a normal distribution, the test statistic T under the null hypothesis is considered to follow a central Chi-square distribution with 2r degrees of freedom, i.e., \(T\sim \chi ^2 (2r,0)\) with r being the number of the time series (Amiri-Simkooei 2013).

3.3 Applications of the LS-HE to height retrieval and tidal harmonics detection

We first apply multivariate LS-HE for SL calculation. The multivariate formulation provides a robust tool to find common-mode interferometric period in the I/Q time series obtained from the GNSS-R receiver. The SL time series from GNSS-R and the nearby tide gauge are then analyzed by the univariate LS-HE to characterize the tidal harmonics.

The LS-HE method performs a numerical search to catch the dominant harmonic signals in the time series. The step size for finding the harmonic signals is determined with the following recursive formula:

$$\begin{aligned} T_{i} = T_{{i-1}}\left( 1+ \alpha \;\frac{T_{{i-1}}}{T_\textrm{max}}\right) ,\quad \alpha = 0.01,\quad i= 1,2, \ldots , T_{i} \le T_\textrm{max},\nonumber \\ \end{aligned}$$
(15)

with \(T_{{i}}\) being the trial periods, \(T_{{0}}\) and \(T_\textrm{max}\) the minimum and maximum periods in the time series based on Nyquist’s theorem, respectively. The coefficient \(\alpha \) controls the resolution or step of searching the periods. The recursive formula creates smaller step size for shorter periods and larger step size for longer periods. We assume the covariance matrix is the Identity matrix \(Q_y = I\) for each time series. The observation matrices used in the SL retrieval and in the tidal harmonics analysis are as follows:

$$\begin{aligned}{} & {} \hbox {Observations matrix for finding interference pattern:}\nonumber \\{} & {} \quad Y = [I, \, Q] \nonumber \\{} & {} \hbox {Observations matrix for tidal harmonic:}\nonumber \\{} & {} \quad Y = [h_{\textrm{GNSS}}], \, Y = [h_{\textrm{TG}}] \end{aligned}$$
(16)

It should be noted that univariate formulation of LS-HE with \(Q_y = I\) will act similar to the ordinary least-squares method.

3.4 Phase and amplitude estimation

We use the U-tide MATLAB package (Codiga 2011), implemented according to the equilibrium tide theory (Foreman and Henry 1989) for deriving the amplitude and phase of a standard table of tidal constituents from the GNSS-R and tide gauge SL measurements. The following model is used for the estimation of the amplitude and phase of the tidal constituents [equation (6) in Foreman et al. (2009)]:

$$\begin{aligned} h(t_j)&= Z_0 + a\;t_j + \sum \limits _{k=1}^{n}{f_k(t_j)}[ X_k\;\cos \,(V_k(t_j) + u_k(t_j))\nonumber \\&\qquad + Y_k\;\sin \,(V_k(t_j) + u_k(t_j)) ] + R(t_j) \end{aligned}$$
(17)

where \(X_k\) and \(Y_k\) are:

$$\begin{aligned} X_k= & {} A_k\;\cos \,g_k, \end{aligned}$$
(18)
$$\begin{aligned} Y_k= & {} A_k\;\sin \,g_k \end{aligned}$$
(19)

with \(h(t_j)\) being the SL measurement at the time \(t_j\); \(Z_0\) and a are the unknown linear terms, and for each constituent k the unknown amplitude and phase are, respectively, denoted by \(A_k\) and \(g_k\). In the process of tidal harmonic analysis, the unknown parameters are estimated by minimization of the residuals \(R(t_j)\), while the nodal corrections (Godin 1972) to the amplitude (\(f_k(t_j)\)) and phase (\(u_k(t_j)\)), and the astronomical argument \(V_k(t_j)\) (Godin 1972) can be calculated for each constituent k at the time of sea-level measurement \(t_j\) (Foreman et al. 2009).

4 Results and discussion

The performance of SL retrieval from the I/Q interference patterns at different antenna settings and sea states has been already discussed in (Rajabi et al. 2021a, b, 2022). According to these investigations, the sea-looking LHCP antenna performs better compared to both up- and sea-looking RHCP antennas. The improvement is significant and can reach 48% and 50% for L1 and L2 frequencies, respectively. Moreover, combining the SL measurements from L1 and L2 improves the accuracy of final sea surface heights by up to 25% and 40%. Therefore, we use the SL measurements from the combined L1 and L2 I/Q observations of the sea-looking LHCP antenna. The measurements have a temporal resolution of 5 min. This setting is chosen to provide an adequate dataset for retrieving tidal harmonics.

Fig. 5
figure 5

Scatter plot of the GNSS-R and tide gauge height anomalies with the time step and averaging window of 5 and 15 min, respectively. The fitted line and 1:1 ideal correlation are shown by the solid red line and black line, respectively

In the first step, we down-sampled I/Q correlation sums to a 10-second (0.1 Hz) integration due to the outputs of the GORS receiver being based on 5-millisecond coherent integration time (200 Hz sampling rate). Afterward, we prepared the 15 min time series of I/Q with the time step of 1 min for extracting interferometric pattern periods using multivariate LS-HE to calculate L12 SL with an averaging window of 15 min and 5-minute time step. The multivariate analysis improves the detection by utilizing common-mode signals from the different GNSS-R time series by amplifying the power of the retrieved signals. Figure 4 visualized an example estimation of the LS-HE on the time series which is generated from a 15 min segment for satellite PRN 26 in L1 and L2 signals. Figure 4a shows the I and Q components from the LHCP antenna in different frequencies, and Fig. 4b depicts the harmonic analysis results for L1 and L2, including estimated heights.

Figure 5 compares the sea surface height variations from GNSS-R and tide gauge measurements. The SL variations from the two datasets show a high level of agreement. The red is the fitted line to the corresponding measurements from the datasets, and the black line illustrates the ideal 1:1 line. The RMSE between GNSS-R L12 sea surface heights with collocated tide gauge observations is 5.8 cm with a correlation of 0.948.

Fig. 6
figure 6

The least-squares power spectrum of the tidal harmonics detected in the GNSS-R and tide gauge (TG) sea-level measurements. The measurements cover a period of 6 years with a temporal resolution of 5 min. a The overall Periodogram produced by applying the univariate LS-HE to the GNSS-R and tide gauge data. b The power ratio between the two periodograms. c, d Provide zoomed views of the detected tidal harmonics with periods between 3 to 30 and 0.5 to 3 h, respectively

We utilize the univariate LS-HE method for detecting the tidal harmonics in the GNSS-R L12 and tide gauge sea-level time series. Figure 6a illustrates the tidal periods retrieved from both GNSS-R estimated and tide gauge heights. These plots show the detected periodic harmonics until the annual and semiannual tidal harmonics \(S_\textrm{a}\) and \(S_\textrm{sa}\). \(S_\textrm{a}\) and \(S_\textrm{sa}\) are smaller than other tidal constituents and insignificant for most applications, but their estimated values are much larger than would be reasonable from astronomical forcing due to the seasonal changes in wind, temperature, and atmospheric pressure. Overall, the detected harmonics from the GNSS-R and tide gauge time series coincide very well. For instance, both sensors could successfully capture the periodicity of the lunar monthly constituent (\(M_\textrm{m}\)), lunar synodic fortnightly constituent (\(M_\textrm{sf}\)), and lunar fortnightly constituent (\(M_\textrm{f}\)). Figure 6b depicts the ratio of the GNSS-R and tide gauge power spectra. The variation of the power ratio is mostly distributed equally around zero.

Two parts of the spectra shown in Fig. 6a are magnified and presented in Fig. 6c, d. Figure 6c depicts the detected harmonics with periods between \(\approx \) 3 and 30 h and Fig. 6d covers the periods ranging from 30 min to just below 3 h. The periodograms in Fig. 6c, d show the main tidal harmonic constituents segment the period spectrum with the central harmonics of \(S_n = 24/n, n = 1, 2,\ldots \). Several harmonics are detected around the \(S_n\) harmonics. The results which the tidal harmonics are around \(S_n\) in the spectral analysis agree with the tidal analysis presented by Amiri-Simkooei et al. (2014). For better visualization, some of the harmonics by Darwin’s symbols are marked in Fig. 6a, c. Both of the datasets can similarly capture the main tidal frequencies, e.g., the tidal periods longer than one day (bi-monthly, monthly, semiannual), the solar diurnal signal, and its higher harmonics (\(S_n\)), lunar diurnal and higher harmonics (\(O_1\), \(K_1\), \(\rho _1\), \(M_2\), \(N_2\), \(M_3\), \(M_4\) and \(M_6\)), lunisolar diurnal (\(K_1\)) and variational (\(MU_2\)) and shallow waters (i.e., \(MK_3\)).

Table 1 The amplitudes and initial phases of the standard tidal constituents up to the annual period which were detected by the univariate least-squares harmonic estimation of 6-year time series for both tide gauge (TG) and GNSS-R
Fig. 7
figure 7

The estimated amplitudes of standard tidal constituents retrieved from GNSS-R and Tide Gauge observations. The blue bars are related to the GNSS-R, and the red bars show the tide gauge estimates. The circles above the bars visualize the relative error between GNSS-R and tide gauge amplitudes by their sizes and colors. Horizontal axes are labeled by the Darwin Symbol clarified in Table 1

Fig. 8
figure 8

Comparison of amplitudes and phases of the most important tidal harmonics at Onsala stations based on polar representation. The amplitudes are shown in centimeter and the phases are in degrees

Figure 6d shows the detected tidal harmonics with periods below 3 h. The periodograms shown in Fig. 6 confirm the overall excellent performance of the GNSS-R measurements. However, we have detected some harmonics in GNSS-R time series (marked by a green ellipsoid in Fig. 6d) that are not well-accompanied by TG counterparts. In this area, some GNSS-R retrieved picks are stronger than TG and are closer to the standard tidal periods. For example, standard tenth-diurnal tidal constituents (according to the standard tidal constituents list of the tide, water level and current working group of international hydrographic organization (https://iho.int/en/twcwg) start from 2.431 to 2.511 h, and the estimated period by GNSS data is around 2.428 compared to 2.390 from TG. For the case of fourteenth-diurnal with the period of 1.766 to 1.770 h in the standard tide table, GNSS-R detects sharp peaks from 1.728 to 1.741 in contrast to a less prominent TG peak at 1.724 h. Therefore, GNSS-R shows a better performance in detecting higher harmonics. Geremia-Nievinski et al. (2020) investigated the capability of GNSS-R using the least-square method in Onsala to capture tidal harmonics between 3 and 30 h. Their results confirm that GNSS-R is successful in capturing the dominant tidal constituents. However, long periods of tidal harmonics are less discussed in the GNSS-R studies due to the limited time span of the datasets. The same issue applies to the period shorter than 3 h because of the temporal resolution of the retrieved sea levels. For example, Semmling et al. (2012) could detect the diurnal (K1) and semi-diurnal harmonics (M2, S2) in Godhavn. Löfgren et al. (2014) report their tidal analysis and the captured periods (semi-diurnal up to semiannual ) in five different stations, one of which is located in Onsala. This study investigates tidal harmonics with a wide range of periods from 30 min to 1 year using a relatively long dataset. It should be noted that the GNSS-R station used in the two studies mentioned above in Onsala are different from our experiment and are based on SNR observations from geodetic receivers.

Table 1 lists the amplitudes larger than the 1-sigma confidence interval and the initial phases of the standard tidal constituents estimated from the tide gauge and GNSS-R. The table highlights an overall good agreement between the tide gauge and GNSS-R results, suggesting that the GNSS-R sea-level products can effectively be used for the tidal analysis purposes. As can be seen from Table 1, the most significant difference of 3.7 mm between the amplitudes belongs to \(K_1\) constituent as depicted in Fig. 7. The figure visualizes Table 1 regarding amplitude and relative errors between two datasets. The blue and red bars show the amplitudes of the tidal harmonics retrieved from GNSS-R and TG observations, respectively. The size and color of the circles above the bars illustrate the relative error between the estimated amplitudes in percentage. The relative errors are calculated as the difference of the two amplitudes divided by the tide gauge amplitude. Figure 8 highlights the agreements and discrepancies between the estimated phase values of GNSS-R and tide gauge using the polar coordinate system. The estimated phase values from GNSS-R measurements for harmonics \(K_1\), \(OO_1\), \(K_2\), and \(MK_3\) show large deviations from the tide gauge estimates, although they have relatively small amplitudes at the site. The GPS orbital period can be one the main contributors to the observed differences as reported by previous studies (e.g., Tabibi et al. (2020), Larson et al. (2017), Löfgren et al. (2014)). This effect is more noticeable in phase of the tidal harmonics.

Our estimated amplitudes for daily and sub-daily harmonics agree with a similar study at Onsala by Löfgren et al. (2014). However, for the monthly and semiannual harmonics the differences are significant. These differences can stem from the fact that the results presented here are based on measurements at higher temporal resolution from I/Q observations over much longer time span (6 years compared to six months).

5 Conclusion

This study investigated the potential of ground-based GNSS-R technique for detecting and analyzing tidal constituents. The analysis is conducted using a relatively long dataset of 6 years obtained from a coastal GNSS-R experiment installed at Onsala Space Observatory. A highlight of this study was to utilize dual-frequency I/Q interferometric observations to retrieve sea level and tidal harmonics. We applied uni- and multivariate least-squares harmonic estimation (LS-HE) method for sea-level calculation and estimating tidal constituents. The U-tide software is used to retrieve the amplitude and phase of a list of standard tidal harmonics. The RMSE value between GNSS-R sea surface heights for LHCP sea-looking antenna and collocated tide gauge measurements was 5.8 cm, with a correlation of 0.948. Our tidal harmonics analysis, owing to the long dataset and a high temporal resolution measurements of 5 min, could capture a broad range of periods, i.e., from 30 min to annual. Both the GNSS-R and tide gauge sea-level measurements showed similar performance in capturing tidal constitutes. However, the GNSS-R shows supremacy in detecting harmonics with the periods shorter than 3 h. Comparison of the estimated amplitude and phase of the standard tidal periods indicates a high level of agreement between the GNSS-R and tide gauge observations. However, a significant difference is observed for the amplitude and phase of the \(k_1\) constituent. Moreover, the phase values of \(OO_1\), \(K_2\), and \(MK_3\) constituents derived from GNSS-R are notably different compared to the tide gauge. As already reported in the literature, the orbital period of GPS is considered as one of the main affecting factors for the observed differences. It should be noted that these four constituents have very small amplitudes of less than 5 mm at Onsala. The study suggests that a dedicated GNSS-R setup based on the dual-frequency I/Q observations from sea-looking antenna, provides accurate tidal products.