Permanent GNSS receivers are instruments that receive signals from Global Navigation Satellite Systems (GNSS), such as GPS, GLONASS, Galileo and BeiDou, and use them to position the receiver in space and time. This is fundamentally the same technology used in car and mobile phone navigation tools, but using higher quality equipment to allow for more accurate measurements. They are commonly installed at tide gauges in order to monitor vertical land movement and position the tide gauge datum in a geocentric reference frame.
However, there is a secondary use we can make of GNSS receivers installed near bodies of water. GNSS receivers suffer from multipath errors caused when the main signal from the satellite is interfered with by versions of the signal reflected off surfaces in the vicinity of the receiver. But with some care, we can exploit these errors to extract information about these surfaces.
Signals reflected off the water will be delayed in reaching the receiver, and as a result will not necessarily be in phase the with direct signal. As the satellite passes overhead, the angle of reflection changes, and thus the delay will change. At some times the reflected signal will be in phase with the main signal, enhancing it, at other times it will be out of phase, dampening it's strength. These variations in the signal strength are measured by the receiver's signal-to-noise ratio (SNR).
We can extract the frequency of these variations in the signal-to-noise ratio by examining its spectrum and when combined with some trigonometry, we can use this to estimate the height of the surface.
In many locations the receiver's view of the sea will be blocked in certain directions: there might be parts of a harbour, or boats may moor regularly at a certain location. However, we can use the satellite position information to automatically mask out reflections from these areas. For this reason, sites have to be processed on a case by case basis, examining which reflections give good results, often on an iterative basis. We've also designed a widget to help create these masks by showing the shadow of a GNSS receiver installed at any location.
This technique doesn't only apply to water levels, but anything where the height of a reflected surface varies - it has been used to monitor snow height, vegetation cover, soil moisture, and there's even an extension capable of measuring significant wave height.
This repository doesn't only contain coastal gauges though, there's some observations from offshore platforms, and some from rivers and lakes. As part of the analysis process we routinely fit tidal cycles to the data - this step is omitted for non-tidal sites.
For a fuller explanation of the technique, we'd suggest watching videos created by Kristine Larson, including a short course on GNSS-IR produced in conjunction with UNAVCO, available on YouTube. These videos explain how to use Kristine's python toolbox to perform GNSS-IR, and she's even produced a web app where you can try it out online.