Calcolo di un bacino idrografico con GIS

Tempo di lettura: 5 minuti

Durante l’attività professionale, capita di doversi occupare del calcolo di un bacino idrografico, procedimento che, normalmente, qualsiasi studente di ingegneria civile incontra durante la propria carriera universitaria.

Può essere interessante quindi capire come effettuarne il calcolo con i moderni strumenti di gestione del territorio ad oggi disponibili (vedi GIS). Se, invece, il calcolo dei bacini non è tra le principali priorità, il procedimento teorico di calcolo è comunque interessante e può trovare applicazione anche per altri ambiti di applicazione.

INTRODUZIONE

Capiamo anzitutto lo scopo finale del procedimento. Il calcolo del bacino idrografico è utile per avere una serie di informazioni come, per esempio, la portata di un fiume in corrispondenza di una certa sezione, vedere se un punto è afferente a un determinato corso d’acqua e molte altre.

Sarebbe bello quindi che, dato un certo punto, automaticamente si possa saperne il corrispondente bacino idrografico. Questa operazione è possibile e disponibile appunto con la maggior parte dei programmi GIS disponibili, sia a pagamento (es. ArcGIS) o OpenSource (es. QGIS + GRASS). Senza entrare in merito di uno specifico programma vedremo la teoria che sta alla base del calcolo.

D.E.M.

Punto di partenza del tutto è il DEM (Digital Elevation Model) che è appunto il modello digitale di elevazione del terreno. Questo file, sostanzialmente, contiene l’elevazione di ogni punto del terreno suddiviso in una griglia con una certa risoluzione. Già da qui si può intuire che sapendo la quota del terreno è possibile capire in che direzione cade la goccia di pioggia che tocca il terreno.

Dem

Esempio di DEM visualizzato con ombreggiatura e scala di grigio

Il DEM, molte volte, è reso pubblico dalla regione o comunque da un ente territoriale e quindi risulta di facile accesso. Per esempio, per la regione Veneto, il DEM è pubblicamente disponibile tramite il geoportale regionale. Una volta caricato all’interno del programma GIS è possibile procedere al calcolo della direzione di flusso, passaggio fondamentale del procedimento.

Tips: il DEM una volta caricato può essere visualizzato in diversi modi. Di default QGis lo carica colorando i singoli pixel con una scala di grigio, secondo il valore (altitudine) che possiede il punto. Molto interessante è visualizzare il DEM secondo una scala colori. Anche se non fondamentale per la procedura in oggetto, può risultare molto carino da vedere!

DIREZIONI DI FLUSSO

Il passo successivo è il calcolo delle direzioni di flusso. Si tratta appunto di capire che direzione prende la goccia di pioggia che cade su una determinata area. Avendo a disposizione il DEM è abbastanza intuitivo capire che, considerato un pixel del raster DEM, la direzione di flusso sarà verso il pixel adiacente più basso.

Il calcolo avviene appunto in questo modo, considerando quindi un pixel e vedendo l’elevazione dei pixel adiacenti. Esistono molti algoritmi di calcolo ed il più semplice ed intuitivo è sicuramente il D8 (che non è la metà del dado di Dungeons&Dragons). Si riporta successivamente un immagine per capine il funzionamento.

D8

Si nota che sono disponibili le 8 direzioni fondamentali e che sono memorizzate all’interno del computer tramite potenze di due.

Una volta applicato l’algoritmo, si conosce quindi la direzione di flusso di ogni punto della griglia.

Il raster direzioni di flusso, pur essendo fondamentale, non è molto interessante dal punto di vista grafico: appare infatti come un insieme disordinato di colori. E’ proprio il caso di dire che l’apparenza inganna!

MAPPA DI ACCUMULO

E’ possibile a questo punto procedere con il calcolo della mappa di accumulo. Tale mappa non è fondamentale ai fini del calcolo finale, ma risulta un passaggio sicuramente utile e direi quasi obbligato.

Nella mappa di accumulo ogni singolo punto contiene la somma dei pixel afferenti il punto stesso. Indovinate un po’ quali punti avranno un punto più alto? I punti in cui defluisce più acqua avranno dei valori di accumulo più alti e tali punti dovrebbero coincidere con i corsi d’acqua naturali presenti nella mappa. Bello no?

La mappa di accumulo dovrebbe coincidere quindi con l’idrografia reale disponibile per una certa zona. Si può sempre eseguirne la prova caricando un layer vettoriale che contiene appunto l’idrografia reale. Al 99% le due mappe corrispondono, anzi solitamente la mappa di accumulo possiede dei piccoli corsi d’acqua che i layer vettoriali non possiedono per diverse ragioni, per esempio perché tombinati o morfologicamente cambiati. Anche qui può nascere un’applicazione interessante, per esempio per capire l’evoluzione idrografica di un certo luogo, notando che la mappa di accumulo evidenzia la presenza di un corso d’acqua che con il tempo è magari sparito.

flow accumulation

Esempio di mappa di accumulo con evidenziati alcune sezioni di chiusura

CALCOLO DEL BACINO

Una volta calcolate tutte queste mappe, è possibile procede con il calcolo del bacino idrografico. La maggior parte dei programmi mette a disposizione una funzione di calcolo del bacino. Le variabili d’ingresso sono solitamente la coordinata (x,y) e la mappa contenente le direzioni di flusso e come uscita si ottiene appunto il bacino, solitamente come raster contenente valore non nullo per i pixel interni al bacino e nullo per tutto il resto. E’ possibile inoltre impostare altri valori, che dipendono dall’algoritmo utilizzato, come per esempio la soglia massima.

Sembra il passaggio più facile ma in realtà è il passaggio che crea più problemi. E’ opportuno infatti fare delle considerazioni in merito, vediamo perché.

La coordinata d’ingresso rappresenta di fatto la sezione di chiusura del bacino. Molto utile è per esempio la possibilità di caricare un livello vettoriale formato da soli punti che contiene la coordinata della sezione di chiusura; in questo modo non si carica direttamente la coordinata come due valori numerici ma si può inserire tramite semplice click del mouse. Questo è utile perché il calcolo del bacino viene effettuato a partire dalle direzioni di flusso e quindi il calcolo viene effettuato correttamente solo se si “centra” un pixel che viene riconosciuto correttamente come corso d’acqua. Ecco che la mappa di accumulo risulta fondamentale per questo scopo visto che rappresenta i corsi d’acqua “calcolati” a partire dalle direzioni di flusso.

Tips: alcuni programmi mettono a disposizione degli algoritmi che permettono di avvicinare una certa coordinata al pixel con il valore di accumulo più elevato (vedi Jenson’s Snap Pour Points).

Una volta eseguito il calcolo del bacino è possibile che il risultato sia non corretto, per esempio una linea o un bacino minuscolo, soprattutto le prime volte. Il mio consiglio personale è riprovare con l’ultimo passaggio utilizzando un altro punto, magari poco più a valle. Basta poco infatti per inserire un punto che, in apparenza corretto, viene riconosciuto in diverso modo dal calcolo.

Nella migliore delle ipotesi il risultato dovrebbe assomigliare a questo

bacino

Bello no? Dopo questa brevissima introduzione, al temainvito ad approfondire l’argomento cercando documentazione su internet che dispone di tantissimi tutorial ed informazioni a riguardo , soprattutto in inglese.

Concludo dicendo che avevo trovato su internet anche un articolo che adattava di fatto la stessa procedura ad applicazioni di significato completamente diverso, come per esempio il calcolo del minimo percorso tra due punti utilizzando di fatto una funzione di costo per determinare le direzioni di flusso e visualizzando la mappa di accumulo si poteva già vedere il percorso con il minimo costo. Più GIS per tutti insomma!

 

The following two tabs change content below.

Fabbro Massimo

Si occupa prevalentemente di appalti pubblici, gestione del patrimonio di proprietà di un ente pubblico e della sua manutenzione. E’ appassionato di nuove tecnologie.