Un collega mi ha chiesto di indicargli le percentuali di territorio (comunale) pianeggiante e collinare.
Avevo a disposizione un DEM con risoluzione 5m (realizzato con GRASS a partire dalle curve di livello della CTRN) ed il vettoriale del limite amministrativo.Tuttavia il DEM (chiamato dem_5m) ricopre un’area pressochè rettangolare ben più ampia del limite del comune ed avevo la necessità di “clipparlo” sul boundary di interesse. Ho agito per passi successivi utilizzando GRASS dall’interno di QGIS.
L’immagine sottostante illustra la situazione di partenza (dem e confine):
Ecco i passi seguiti:
– conversione del vettoriale del confine comunale in raster:
$ v.to.rast input=confine_comune out=confine_comune (comando lanciato dalla shell del plugin qgis grass)
– impostazione della regione di lavoro sul raster appena creato:
$ g.region rast=confine_comune res=5
– creazione di una MASK dal confine per clippare il dem su di esso in un secondo momento:
$ r.mask input=confine_comune
– clip del dem per delimitarlo al territorio comunale (con r.mapcalc); si ottiene un raster che chiameremo “dem_comune”:
$ r.mapcalc “dem_comune=dtm_5m – confine_comune”
– calcolo del territorio considerato collinare (da una stima si è deciso di considerare tale il territorio con quota > 120 m s.l.m. in quanto rappresenta la quota media del piede di collina dell’area di lavoro):
$ r.mapcalc “collina=dem_comune>120”
– e calcolo della pianura con il territorio che rimane a complemento:
$ r.mapcalc “pianura=dem_comune<=120”
Il risultato è il seguente:
Il passaggio succesivo consiste nel trasformare i raster in vettori mediante il modulo “r.to.vect“. Il calcolo della superficie e, di conseguenza, l’incidenza percentuale delle due porizioni di territorio sul totale vengono tralasciati (basta consultare le aree con lo strumento di interrogazione di QGIS o lanciare il modulo “v.report” in GRASS).