We are involved in an extensive peatland restoration project in the Shetland Islands. We provide high resolution and accurate digital surface models and orthomosaics for initial analysis and on-going monitoring. One of the most arduous tasks on a new site is identifying the gullies and hags (think of a one-sided gulley); this is done manually by drawing shapefile line strings using hillshade and slope rasters overlaid on the orthomosaic (see attached). What we would like to do is semi automate this process, identify and create shapefiles of gullies and hags more than 0.5m deep and 2m long.

The example image shows a small section of hillshade extracted from the 0.5cm cell size DSM, and a slope analysis using the raster calculator to display slopes over 25º. The hillshade is set to 50% transparency, and the slope is set to display white as no data and overlaid on the 0.25cm orthomosaic. It's very easy to see the gullies this way, but with the average site being between 50 and 100 hectares it's a laborious process!

Small section of a new site

The r.geomorphon tool is getting towards the results I want. The image below shows the DSM resampled to 0.1m cell size and processed using the following parameters in geomorphon: outer search radius: 35, inner search radius: 9, flatness threshold: 3.7, flatness distance: 15.

DSM processed with r.geomorphon

Further processing with the raster calculator isolates the gullies:

enter image description here

Now I need to simplify and thin the raster then convert it to a vector, however r.thin fails.

How can I convert the raster to a vector?

  • 1
  • I'd also look at Whitebox Tools developed by @whiteboxdev, jblindsay.github.io/wbt_book/qgis_plugin.html
    – user2856
    Jun 7, 2020 at 0:51
  • 1
    What means "r.thin fails" in detail? Maybe we can help...
    – markusN
    Jun 7, 2020 at 11:07
  • 1
    Please don't ask a new question in an edit to your original question, ask a new question separately.
    – user2856
    Jun 7, 2020 at 11:38
  • I've figured out r.thin, I converted from float32 to byte and it's working now. I don't think the edit counts as a new question, the original question is to create a vector file of the gullies.
    – RoryG
    Jun 7, 2020 at 12:09

1 Answer 1


I now have the required output for the gullies, and can use the other landform classes from r.geomorphon to create shapefiles of the other features such as ridges and shoulders. The workflow is as follows:

  • Resample the DSM to 0.1m cell size;
  • Run r.geomorphon with these parameters: outer search radius: 35, inner search radius: 9, flatness threshold: 3.7, flatness distance: 15;
  • Create a new raster using the raster calculator to single out the required class (in this case 9);
  • Sieve the new raster using a threshold of 300;
  • Covert the sieved raster from float32 to byte;
  • Run r.thin on the converted raster;
  • Run raster to polygon to convert the raster;
  • Remove the background polygon from the shapefile;
  • Delete any obvious outliers or false gullies;
  • Simplify then smooth the shapefile;

The resultant output looks like this:

Vector polygons extracted from the DSM

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.