RSS300 Surface Velocity Radar automated data processing - ugcs/GeoHammer GitHub Wiki

image image
The Geolux RSS Doppler radar payload enables airborne measurements of surface-flow velocity in rivers and streams at very high spatial resolution. The payload is based on the Geolux RSS surface velocity radar, originally developed for static deployment on a fixed platform above a river channel. For UAV operation, the instrument has been modified to support aerial installation, interface with the UAV onboard computer, and transmit measurements in real time despite being mounted on a moving platform.

A key advantage of UAV-based sensing is the ability to conduct measurements in locations that are difficult to access or lack existing monitoring infrastructure. Data acquisition can be fully automated via the SkyHub onboard computer and UgCS mission-planning software, allowing the UAV-mounted sensor to collect measurements at predefined sampling points.

The Geolux RSS surface velocity Doppler radar is a continuous-wave (CW) Doppler radar operating in the K-band at 24.125 GHz. This frequency range is licence-exempt in many jurisdictions, enabling operation without the need for dedicated spectrum authorization in most regions. The effective isotropic radiated power (EIRP) is below 100 mW, which remains well within established health and safety limits.

The UAV application assumes that, for each observation, the drone hovers in a stationary position at a prescribed altitude, with the radar oriented upstream or downstream along the flow direction. The recommended acquisition time per measurement point is approximately 30 seconds. The radar reports a spatially averaged surface-flow velocity over a footprint of several square metres, with the footprint area increasing as flight altitude increases. An optimal operating altitude is typically around 5 m above the water surface.

Measurement quality, expressed as the signal-to-noise ratio, is strongly influenced by water-surface roughness as well as the magnitude of the flow velocity. Consequently, higher-velocity flows are generally measured more robustly than low-velocity flows.

Geolux RSS and all necessary to use it on the drones were developed and tested in the frame of UAWOS (Unmanned Airborne Water Observing System) project: (https://uawos.dtu.dk.)

To streamline data processing, a Python script was developed and integrated into GeoHammer. The implementation is based on the UAWOS_processing repository made by Peter Bauer-Gottwein and Xinqi Hu.

Workflow summary.
The script uses opened SEG-Y file and identifies embedded marks by scanning trace headers for the byte sequence. For each detected mark, the script:

  • Extracts data around the event: selects a window of traces surrounding the marked trace.

  • Derives a representative spectrum: averages the Doppler/velocity spectra across the selected traces.

  • Estimates surface velocity using two approaches:

    • Raw velocity—the velocity corresponding to the maximum spectral peak.
    • Full-waveform velocity—a Gaussian peak fit (using curve_fit) to estimate a smoothed peak location.
  • Retrieves associated metadata:

    • Timestamp (UTC): read from standard SEG-Y trace header fields (year, day, hour, minute, second).
    • GNSS and ancillary information: longitude, latitude, altitude, and a vendor-defined direction
  • Exports results: writes all derived parameters and metadata to a CSV file (*_processed.csv), including velocities in m/s.

  • Applies basic post-processing: computes a cleaned direction sign based on the track geometry, saves the updated CSV, and (where supported) attempts to open the output file automatically.


Let's acquire some data!


  1. Use the “Open files” toolbar button or drag and drop the required file for processing.
image
  1. Usually at the second step, we do area cropping, but we don`t need to do anything else here to limit the flight path. Open up the 'Scripts' part and choose 'RSS data processing'. A small checkbox and text box will be shown:
  • If the checkbox is left unchecked, the script will not save the processed velocity data, but will open it up on the screen.
  • If the checkbox is checked, you'll need to provide the output folder, where the processed data will be saved.

For now, let`s leave it unchecked as we just need to see the data and click apply.

image

After all the necessary dependencies are automatically installed and the script is completed, a CSV (comma-delimited) file will be opened.

image

If the source SEG-Y (.sgy) file contains no marks, the processing script cannot calculate surface velocity because it relies on those marks to segment the data. This most often happens when the RSS300 is used manually in small or narrow/shallow rivers, where recording marks isn’t necessary, or when the .sgy has been edited/re-saved/converted and the original mark information was removed or shifted.

The workaround is to open the .sgy in GeoHammer, add the required marks manually at the appropriate positions (based on your workflow or field notes), save the file, then close and reload it in GeoHammer to ensure the marks are properly written. After reloading, run the processing script again on the updated file.

In our case, the data was recorded at four separate spots, so we will obtain a set of results for each location. First, we will trim the flight to keep only the sections where surface velocity was actually recorded.

image image

Next, we place multiple marks on each of those zones and save the file.

image

Now we can open our new .sgy file that we just made run the RSS script and get the results.

image
⚠️ **GitHub.com Fallback** ⚠️