3

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?

2

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

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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