[Rasters in QGIS] Generate a Vector Grid with Average Slope Values


  • Slope: DEM Layer.tif=[QGIS/Raster Based Terrain Analysis]=>slope.tif=>[r.in.gdal]=>slope
  • Grid: [QGIS/Vector/Research Tools/Vector Grid]=>grid.shp=[v.in.ogr]=>grid=>[v.to.rast]=>grid
  • Crossing Grid and Slope: grid*slope=[r.average]=>gridSlope=[r.to.vect]=>gridSlope=[v.out.ogr]=>gridSlope.shp

Open your DEM Layer

Here, we applied a pseudo-color table

Slope Raster creation
First, create a slope map using raster-based Terrain Raster Analysis Plugin

Here is the result with pseudo-color table

Import your raster
Use r.in.gdal

Vector Grid Creation
Create a grid covering your area of interest
Vector > Research Tools > Vector Grid

It generates a grid shapefile with an ID Colum which is unique

Here, the grid covers the slope map

Import your grid

Rasterize your grid using ID Column
The ID attribute will become the cell’s category

Set the region on your rasterized vector grid

Generate an average slope grid using the two existing rasters
r.average – Finds the average of values in a cover map within areas assigned the same category value in a user-specified base map. “

Remember that each square area of the rasterized vector grid has a unique category as it corresponds to the previous ID attribute of the vector grid

Here is the result:

Vectorize your average slope grid

Here, we labeled the generated vector using the cat column. Each number represents the average slope in each cell.

Export it to shapeFile (optional)

Slope could have been created using r.slope.aspect within GRASS instead of using QGIS plugin
You could apply the same procudure using features instead of a grid. For example, you could get the average slope touching and/or surrounding some urban areas in the context of a Terrain Movement study