Introduction

The multipath effect in Global Navigation Satellite System (GNSS) technology is an undesired and dominant error source that should be eliminated for precise point positioning. However, GNSS interferometric reflectometry (GNSS-IR) has recently become a robust tool that uses the reflected signal quality to estimate the environment-related features of the reflected ground. If the satellite-emitted signal arrives at the GNSS antenna phase center (APC) following more than one path due to reflection surfaces surrounding the GNSS receiver location, reflected and direct signals are recorded simultaneously, which results in interference. A relative phase offset between direct and reflected signals occurs, resulting in an additional path that is proportional to the phase differences. The interference pattern of the direct and reflected signals shows a fluctuation/oscillation (Axelrad et al. 1996). The direct and reflected signal interference model is useful for extracting environmental parameters by analyzing the reflected GNSS signal phase, amplitude, and frequency. The signal-to-noise ratio (SNR) represents the strength of the signal recorded by GNSS receivers (Larson and Nievinski 2013) and the SNR observations recorded by GNSS receivers are used to estimate the signal quality and noise pattern of GNSS observations (Qian and Jin 2016).

The GNSS-IR technique implemented with a geodetic-grade GNSS antenna, which was designed to suppress the multipath effect, was first revealed by Larson et al. (2008a, b) for detecting soil moisture variations by SNR observables. Subsequently, the technique was successfully implemented for several environmental-related feature detection studies such as snow depth (Chen et al. 2014; Gutmann et al. 2012; Jin et al. 2016; Larson et al. 2009b; Ozeki and Heki 2012), vegetation models (Chew et al. 2016; Small et al. 2010; Wan et al. 2015), soil moisture (Altuntas and Tunalioglu, 2020; Han et al. 2020; Larson et al. 2008a,b, 2009a; Roussel et al. 2016; Zhang et al. 2017), landslide detection (Yang et al. 2019), and sea-level tides (Anderson 2000; Xi et al. 2018).

We introduce a new GUI-based software, GIRAS, that can process multi-constellation GNSS data and estimate SNR metrics, namely phase, amplitude, and frequency for feature extraction such as snow depth retrieval, effective reflector height estimation, and soil moisture monitoring. With a module included in the software, statistical analyses for controlling the quality and detecting the outliers of the estimations can be performed. Moreover, users can use the plot options to display the estimations and represent the sensed areas on the Google Earth map.

GNSS-IR and SNR Metrics

Bilich et al. (2007) described the relationship between the amplitudes and phases of direct and reflected signals through the phasor diagram when multipath was introduced. See Fig. 1. The carrier tracking loop shown in a phasor diagram with in-phase (I) and quadrature (Q) channels is shown in Fig. 1. The vector sum of the direct and reflected signals produces a composite signal, which is SNR observable.

Fig. 1
figure 1

Phasor diagram (following Bilich et al. 2007). I: In-phase component, Q: quadrature component

From Bilich et al. (2007) and Larson and Nievinski (2013), the SNR data due to the direct signal plus one multipath reflection can be expressed in terms of amplitudes of the signals and phase by the following:

$${\mathrm{SNR}}^{2}\equiv {A}_{c}^{2}={A}_{d}^{2}+{A}_{m}^{2}+2{A}_{d}{A}_{m}\mathrm{cos}\psi$$
(1)

Here the SNR is expressed as a function of the multipath amplitude \({A}_{m}\), direct amplitude \({A}_{d}\), and multipath relative phase \(\psi\). Since GNSS satellites move continuously in the sky, changes in the geometry of reflection and thus \(\psi\) result in oscillations over the SNR (Larson et al. 2008a). The phase difference can be expressed as \(\psi =(4\pi h/\lambda )\mathrm{sin}\varepsilon\), where \(\lambda\) is the GNSS wavelength, \(\varepsilon\) is the satellite elevation angle, and \(h\) is the vertical distance between the APC and ground.

As the composite signal includes the SNR data, the effect of direct and reflected signals should be separated to track the SNR variation due to multipath. Since \({A}_{d}{\gg A}_{m}\), the contribution of the direct signal over the trend of the composite signal can be eliminated by fitting a low-order polynomial. Then, the multipath pattern denoted as detrended SNR (dSNR) can be expressed as follows (Larson and Nievinski 2013):

$$\mathrm{dSNR}=A\mathrm{cos}\left(\frac{4\pi h}{\lambda }\mathrm{sin}\varepsilon +\phi \right)$$
(2)

where \(A\) and \(\phi\) are the amplitude and phase offset of the reflected signal, respectively. Using the sine of the elevation angle as the independent variable, the oscillation frequency becomes a constant function of \(h\). To estimate the SNR metrics, a Lomb–Scargle periodogram (LSP) can be implemented on the reflected signals for each satellite track (Hocke 1998; Lomb 1976; Scargle 1982). The outlier detection of the SNR metrics computed by LSP will be described in quality analysis of SNR metrics section.

The oscillations of the reflected signal are signs of fluctuations (Hefty and Gerhatova 2014), and the frequency of SNR oscillations is related to the effective reflector height between the APC and reflecting surface (Bilich and Larson 2007). The amplitude of SNR oscillations depends largely on surface reflectivity, and the phase offset directly relates to the apparent reflection depth of the GPS signal (Larson et al. 2008a). Once these SNR metrics, phase, amplitude, and frequency are estimated after analyzing the reflections of the GNSS signals, they can be used for environment-related retrieval facilities. Although the GNSS antenna records all available GNSS data transmitted from the satellites, the surrounding area where the receiver is located may not be suitable for retrieval studies. In some cases, the analysis of the SNR data recorded may be restricted by the surroundings, such as engineering structures, vegetation cover patterns, and forested areas from multiple directions. Thus, the sensed area should be mapped and represented. To overcome that, by selecting multiple azimuthal ranges from RINEX data, the first Fresnel zones (FFZs) should be drawn to show the GNSS footprints.

Quality analysis of SNR metrics

As is commonly known, errors in estimation raise uncertainty, which affects the reliability of the results. To eliminate this, outlier detection should be applied to the data. We added a series of options to obtain more stable results using criteria such as (1) limitations for minimum–maximum frequencies, (2) limitations for satellite elevation angles, (3) implementation of background noise condition (BNC), and (4) application of median absolute deviation (MAD) to the frequency, amplitude, or phase. The median method is implemented for the detection of outliers in SNR estimates as follows (Rousseeuw and Leroy 1987; Maronna et al. 2006; Hekimoglu et al. 2014):

$$med=median(\mathbf{s}),$$
(3)
$$MAD=1.2533\times \frac{1}{n}\times \sum \left|\mathbf{s}-med\right|,median\left|\mathbf{s}-med\right|=0,$$
(4)
$$MAD=11.4826\times median\left|\mathbf{s}-med\right|,median\left|\mathbf{s}-med\right|\ne 0,$$
(5)

where \(\mathbf{s}\) is the estimated SNR metric, \(med\) is the median value of the related estimation, and \(n\) is the length of the vector \(\mathbf{s}\). In this method, the absolute median residuals (\(\left|\mathbf{s}-med\right|\)) are compared with the \(MAD\) values as a critical value. For the computation of \(MAD\) values, the median of median residuals is used. In some cases, the median of median residuals equals zero. In this case, Eq. 4 is used; otherwise, Eq. 5 is implemented. Here, if the median residuals are greater than the critical value, they are detected as outliers and removed from the estimations; otherwise, they are assigned as a good estimation and remain in the dataset.

GIRAS: GNSS-IR analysis software

GIRAS (GNSS-IR Analysis Software) is open-source software with file reading, data analysis, and data visualization tools. It was developed in MATLAB R2018b version. The software has a user-friendly interface with three main modules (tabs) and five submodules (subtabs). The software framework, including functions and modules, is given in Figs. 2 and 3 with brief explanations. In the data processing section, the codes of get_ofac_hifac and lomb are provided by Roesler and Larson (2018). Additionally, we used the codes of refell and xyz2ell in this software provided by Craymer (2021).

Fig. 2
figure 2

Main functions of the GIRAS. Data handling functions are used to read raw data, data processing functions are used in pre-analysis and analysis modules, and other functions are the main supplementary function files

Fig. 3
figure 3

Main modules and submodules of the GIRAS. Read & convert files: reading the raw GNSS data and preparing the necessary MAT files; pre-analysis: visualization and review of SNR & dSNR data and reflection zones; analysis: estimation of the SNR metrics and outlier analysis

Data handling

This module reads raw GNSS data and stores the necessary observations in the MATLAB environment. RINEX version 2 and RINEX version 3 observation files are supported. Both broadcast ephemeris (navigation file) and precise ephemeris (sp3) files can be used. While multi-GNSS (GPS, GLONASS, Galileo, Beidou) data are supported in precise ephemeris files, only GPS navigation files are supported as broadcast ephemeris. In addition, there is an input section for manually entering the receiver’s position. In the user manual of GIRAS, the file capabilities for processes, inputs, outputs, and directories can be found.

Pre-analysis

This module enables reviewing the loaded and converted RINEX files in the first main module. It uses one of the SNRMAT files, which is one of the outputs of the first module. The first submodule of this module is called “SNR&dSNR data” and is used to plot SNR and dSNR data for each satellite and SNR observation type. Here, the user can select (1) data type: SNR or dSNR; (2) unit: dB or volts/volts; (3) time unit: hour or second; (4) angle limitations: azimuth and satellite elevation angle; (5) satellite track; and (6) polynomial degree. As different polynomial degrees are selected in this submodule, the plot screen on the side is updated instantly, thus allowing the user to visually select the most suitable trend. Here, the user can export the SNR & dSNR plot. In the second submodule, the sky view can be plotted as including the preferred satellite system/s. Sky plots can also be exported. In the third submodule, the FFZs in the study area can be plotted. The user can select the reflector height, satellite elevation angle, and SNR observation type as input; then, the FFZs can be displayed on the plot screen. In addition, the total number of satellite tracks, the distance between the ellipse center and the site, the area of an FFZ, and the total area of all FFZs are shown on the interface. The user can export the plot containing the FFZ areas as a MATLAB figure or a KML file that can be opened in Google Earth.

Analysis

The analysis module has two submodules. In the first submodule, “Make estimations,” GNSS-IR metrics (frequency, amplitude, and phase) are estimated by using data from SNRMAT files, which is one of the outputs of the first module. The user can analyze one or more SNRMAT files here. There is a “settings” section in this submodule. Here, the user can set (1) the satellite systems to be used; (2) SNR observation type; (3) polynomial degree; (4) angle limitations: (a) a single range for the satellite elevation angle (b) one or more ranges for azimuth; (5) estimation options: (a) maximum reflector height (b) desired precision; and (6) name of the analysis results file. In the second submodule, “Improve estimations,” the output of the first submodule is used as input. Then, four options are presented to the user to filter bad estimates in these data and improve the results. These are (1) minimum–maximum frequency; (2) minimum satellite elevation angle range; (3) BNC: 1 to 10 coefficient selection; and (4) MAD condition: selection of coefficients from 1 to 3 and selection of the metric based on which this condition will be applied (frequency, amplitude or phase). All available options for visualizing the results can be found in the user manual.

Finally, the output file provided by this submodule is saved in the “\results\best\” directory in both .mat and .txt formats. The structure of the output files (column numbers and descriptions) is given as follows: (1) Year, (2) DoY (day of year), (3) satellite PRN, (4) SNR type, (5) satellite track no, (6) satellite track type, (7) frequency, (8) amplitude, (9) phase, (10) first epoch, (11) last epoch, (12) number of epochs, (13) minimum elevation angle, (14) maximum elevation angle, (15) minimum azimuth angle, (16) maximum azimuth angle, (17) Max(P), and (18) background noise.

Case study example

To validate the GIRAS, an MGEX site, namely the Southern Great Plains Observatory (SGPO) (Fig. 4), which has multi-GNSS and multifrequency capability, was selected. The site information is given in Table 1.

Fig. 4
figure 4

SGPO site—view from the northwest direction

Table 1 SGPO site info

The SGPO site data collected between January 1–7, 2021 (DoY 1–7), were analyzed. Precise ephemeris files provided by the Center for Orbit Determination in Europe (CODE) were used for satellite coordinates. The following are some of the outputs provided by the software. S1C data and satellite elevation angles for the R05 satellite are shown in Fig. 5. In Fig. 6, the S1C data of the R05 satellite, SNR trend, and dSNR (0°–30° for satellite elevation angle range) are shown. A sky view of the SGPO site is given in Fig. 7. The FFZs for the 2-m reflector height and 5° satellite elevation angle are shown in Fig. 8.

Fig. 5
figure 5

R05 (GLONASS) S1C data and satellite elevation angles on January 01, 2021

Fig. 6
figure 6

R05 (GLONASS) S1C data, SNR trend and dSNR for the 0°–30° satellite elevation angle range on January 01, 2021. A second-order polynomial was implemented to obtain the trend indicated with the red line

Fig. 7
figure 7

Sky view of SGPO site on January 01, 2021

Fig. 8
figure 8

FFZs for 2-m reflector height and 5° satellite elevation angle on January 01, 2021

The 7-day data from the SGPO site were analyzed by taking polynomial degree 2 with the 0°–30° satellite elevation angle limits and choosing the maximum reflector height of 5 m and the desired precision of 0.001 m, including all of the satellite systems and observation types. Considering 7 days of observations, the total number of estimates and their distribution according to the satellite system and observation type are given in Table 2.

Table 2 Number of estimates with satellite systems

Since different types of observations have different frequencies, only one frequency should be selected when performing a frequency-based outlier analysis. In this example, the S1C data with the most estimates were evaluated. In Fig. 9 (left panels), the results are represented without implementing any outlier analysis option. The estimates remaining after outlier analysis are shown in the right panels. As can be seen, the outlier analysis significantly improved the results.

Fig. 9
figure 9

Plot examples of results obtained from the analysis of 7-day (January 01–07, 2021) S1C data. EAR: Elevation angle range, NoE: number of epochs. The minimum EAR was set at 10°, the BNC at 4, and the MAD at 1. All results (left column); results after outlier analysis (right column)

Conclusion

As the SNR data recorded at the GNSS antenna are an indicator of the signal strength, the SNR metrics estimated by analyzing the interference pattern are useful parameters for environmental sensing. This study represents software developed to estimate the amplitude and phase of reflected signals and subsequently compute reflector height. The software with modules enables the selection of azimuthal and elevation angle masks with multiple range selections for either short-term or long-term GNSS data collected, which may help to predict future models for climatological studies. The software is also suitable for multi-GNSS analysis in which the desired system(s) can be selected for analysis. The quality-control modules are multiple-choice modules. The output files are well designed for users in a defined format for further computations.