Continua la nostra serie di script R da utilizzare in QGIS per le analisi spaziali e molto altro. Oggi è il turno dello script Zonal statistics for categorical raster. Come utilizzare gli script di R in QGIS è stato già spiegato in questo articolo.
Un problema che ci siamo trovati ad affrontare alcune volte è su come calcolare le statistiche dei raster categorici. Per raster categorici si intendo quei raster dove ad ogni valore è associato un dato qualitativo o categoria (es. uso del suolo, classi di pericolosità, ecc..). L’algoritmo GRASS r.report (presente tra gli strumenti di QGIS) permette di calcolare le statistiche di area per raster categorici. Il problema si pone quando abbiamo un file vettoriale che contiene le nostre “zone” e vogliamo calcolare le statistiche del raster all’interno di queste zone. Esiste il comando Statistiche Zonali in QGIS ma questo non distingue i raster categorici (difatti tratta i raster come se i valori fossero quantitativi).
Una soluzione trovata in rete consiste nell’utilizzare uno script di R!
Dallo script di R all’implementazione in QGIS è un attimo (si fa per dire!). Lo script è stato modificato ed adattato alle nostre esigenze.
Ecco un esempio pratico! Abbiamo:
Una volta scaricato ed installato lo script (con tutti i pacchetti di R necessari), lo troverete nel Processing -> R scripts-> sotto la voce Raster analysis.
Alla voce Layer va inserito il vettore contente le zone, nel field va inserito il campo del vettore che permette di distinguere le zone (id nel caso della griglia; Se avessimo avuto un file contente ad esempio i limiti comunali il campo sarebbe stato il nome del comune o il codice), nel Raster Layer va inserito il raster categorico. Si può scegliere se salvare la tabella di output oppure lasciarla come file temporaneo.
Clicchiamo su Run, aspettiamo qualche secondo ed ecco il risultato:
Per ogni id della griglia (le zone) abbiamo la categorie di copertura del suolo (4,6,8,…) in numero di pixel appartenenti ad ogni categoria, la superficie (in metri quadri e ettari) e la percentuale di copertura di ogni categoria all’interno delle zone.
Buon divertimento!