GNSS File Information

Data files are zipped csv files, beginning with several header lines containing metadata information marked with a #, followed by a line containing variable names, then the variables themselves, with one line for each pass of a satellite processed.

Here we provide a further description of the available variables.


This is the mean time of satellite pass, in UTC. Note that there can be multiple entries for a given timestep, as data from individual frequencies and satellites are analysed separately.

Times are given in ISO 8601 format to the nearest second (YYYY-MM-DDTHH:MM:SS, where the letter 'T' separates date and time, e.g. 2021-10-15T15:05:21)

raw_height (Raw Reflector Height)

This is the mean calculated height of the sea surface for the given satellite pass, in metres. Heights are initially calculated as distances below the GNSS antenna phase centre, but we have expressed them as heights above the reference ellipsoid, to make comparisons with tide gauge data easier.

Note that as with a traditional tide gauge, measurements of sea level using GNSS-IR are relative sea level, and thus will be affected by local land movement. As a result, this height above the reference ellipsoid is, strictly speaking, only accurate at the epoch of the estimate of the receivers ellipsoidal height. If you wish to compare these data with geocentric measurements of sea level (e.g. altimetry measurement from satellites), you'll need to account for this by including an estimate of land movement, such as those provided by SONEL.


The raw reflector height has a small bias as the surface of the sea is not static as the satellite passes overhead: usually the tide is either rising or falling. We have attempted to correct this error and provided the result as the adjusted height. We'd recommend using the adjusted height, but have also included the raw reflector height so the size of the adjustment can be calculated, and removed if desired.

For further details of the how the adjustment is made, see the paper where it was first mentioned: Larson et al., "The Accidental Tide Gauge: A GPS Reflection Case Study From Kachemak Bay, Alaska," 2013.

fitted_tide (Fitted Astronomical Tide)

This is our estimate of the astronomical tide at the site at the time heights are recorded. For non-tidal locations (e.g. lakes) this column will always be 0.

PRN - Satellite Pseudorandom Noise Sequence

This is a unique identifier showing which GNSS satellite produced the data. Each GNSS constellation has its own range, so you can use this to identify the constellation too.

  • 0-99: GPS
  • 100-199: GLONASS
  • 200-299: Galileo
  • 300-399: BeiDou

This defines which frequency was used in producing this data: each constellation transmits on several frequencies, and the data from each frequency is analysed separately. The available constellations and frequencies at each site will vary over time, as this is dependent on the receiver itself, and the file made available by the GNSS data provider.


Mean azimuth value of the satellite as it passes over the receiver, in degrees. This is the horizontal location of the satellite, with 0 representing due north from the receiver, and values moving clockwise (so 90 is east, 180 south, and 270 west).


Mean elevation value of the satellite as it passes over the receiver, in degrees. This is the vertical angle to the satellite, with 0 meaning the satellite is on the horizon, and 90 meaning the satellite is directly overhead, although in practice the angle needs to be small for reflections to reach the GNSS receiver.