lez. 3 - corso di modelli e gis per l'ambiente

Post on 29-May-2015

3.272 Views

Category:

Education

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

Lezione 3 - Grass per la modellazione idrologica - 21/12/2011 e 10/01/2012

TRANSCRIPT

Universita` degli Studi della BasilicataDipartimento di Ingegneria e Fisica dell'Ambiente (DIFA)

GRASS GIS e l'idrologia

Ing. Margherita Di Leo

Introduzione

● In GRASS GIS sono implementati numerosi moduli utili alla modellazione idrologica. ● Qui [1] sono riportati alcuni esempi.

[1] http://grass.osgeo.org/wiki/Hydrological_Sciences

Carving● r.carve: Prende in input i fiumi digitalizzati e li utilizza per

“correggere” il DEM abbassando la quota nei punti in cui il reticolo di calcolo non coincide con quello naturale.

Input: DEM

Input: fiumi (vettoriale)

Output: DEM “corretto”

Carving● Opzione “no flat areas”:

Elimina le aree piane nella direzione del flusso.

● Opzione “points”: l'output generato e` in formato vettoriale. I punti possono essere utilizzati per reinterpolare il DEM per correggere gli errori.

● E` possibile indicare inoltre la larghezza e la profondita` del corso d'acqua.

Percorso di drenaggio● r.drain: Traccia il percorso del flusso attraverso il DEM utilizzando un

algoritmo di least-cost path (ovvero ricerca il percorso di “costo” inferiore). La mappa di input puo` essere una mappa dei costi cumulativi generata da r.cost. L'output e` un raster che mostra uno o piu` percorsi che minimizzano il costo. Di default l'output e` una mappa che riporta 1 lungo il percorso e null data altrove.

● In pratica cerca il percorso con i valori minimi a partire da un punto dato dall'utente (nell'esempio e` 19).

● La flag -c (copy) copia il valore del DEM nella mappa di output:

Percorso di drenaggio

● La flag -a (accumulate) pone la somma dei valori del DEM nella mappa di output:

Percorso di drenaggio

● La flag -n (number) enumera il percorso delle celle nella mappa di output:

Percorso di drenaggio

● NOTA: r.drain non trova TUTTI i valori piu` bassi del DEM, ma solo quelli collegati al punto di partenza indicato dall'utente.

● In pratica indica i “pits” che si incontrano lungo il percorso, non trova invece tutti i “buchi” del DEM.

● Per correggere i “buchi” del DEM si possono usare invece:

r.fill.dir, r.terraflow, e r.basins.fill.

Percorso di drenaggio

Filling● r.fillnulls: Colma le aree in cui sono presenti dati

nulli (no data) interpolando i valori mancanti con un algoritmo RST (Regularized Splines with Tension).

● E` possibile controllare il risultato modificando i parametri smooth e tension, che vengono utilizzati nell'interpolazione.

Filling● r.fill.dir: Applica

un filtro e genera una mappa di elevazione priva di depressioni (sinks), e inoltre genera la mappa delle direzioni di drenaggio a partire dal DEM.

Linee di flusso● r.flow: Costruisce

le linee di flusso (flowlines), le lunghezze delle linee di flusso (flowpath lengths), e la densita` di drenaggio (upslope areas) a partire da un DEM.

Linee di flusso Linee di flusso

Lunghezza percorso

Densita` di drenaggio

Indice topografico

● r.topidx: Crea la mappa dell'indice topografico, [ln(a/tan(beta))] utilizzato in alcuni modelli idrologici.

Indice topografico

Modellazione dei deflussi● r.terraflow: Calcola il DEM filled (privo di

depressioni), la mappa delle direzioni di drenaggio, la densita` di drenaggio, l'indice topografico. Puo` utilizzare l'algoritmo D8 (single flow direction, SFD) o l'algoritmo MFD (multiple flow direction), che e` impostato di default.

Modellazione dei deflussi

Modellazione dei deflussi

Densita` di drenaggio MFD

Direzioni di drenaggio MFD

Deflussi profondi● r.gwflow : Modulo per il calcolo numerico del flusso

transiente in acquiferi confinati e non confinati, bidimensionale.

● r3.gwflow : Modulo per il calcolo numerico del flusso transiente in acquiferi confinati e non confinati, in 3D

Immagine tratta dal manuale online di GRASS

Modellazione idrologica● r.topmodel :

Modulo che consente di applicare il modello idrologico TOPMODEL (Beven, 1995), un modello idrologico distribuito fisicamente basato.

Erosione● r.sim.sediment: Simulazione del trasporto dei

sedimenti e dell'erosione/deposito;

● r.sim.water: Simulazione idrologica dell'overland flow.

Nella figura e` riportata una mappa della portata generata con il modulo r.sim.water, che simula l'overland flow utilizzando il path sampling method (SIMWE) con un rainfall excess rate di 50 mm/hr.

7.7

5.5

3.7

1.8

0.0

Analisi di bacino● r.basin.fill: Genera una mappa raster con

l'individuazione dei sottobacini.

● r.water.outlet: Delimita il bacino idrografico sotteso ad una determinata sezione di chiusura (vedi esercitazione).

● r.watershed: Analisi di bacino (vedi esercitazione).

● r.lake: “Allaga” un DEM a partire da un determinato punto. (vedi figura a lato).

Esercitazione

● L'obiettivo di questa esercitazione e` di estrarre il reticolo idrografico di una certa regione, e inoltre di voler delimitare il bacino idrografico sotteso alla sezione di chiusura di coordinate:

easting=643677.87 northing=222800.246

(Lambert Conformal Conic)

Analisi idrologica● r.watershed

permette di ricavare a partire dal DEM la mappa della direzione di drenaggio, la mappa di densita` drenaggio, la mappa raster del reticolo idrografico, data una certa SOGLIA.

● Possiamo scegliere di usare MFD o SFD. Di default e` impostato SFD (D8).

Input: elevation@PERMANENT

Analisi idrologica

Soglia

● La soglia e` il numero di celle della mappa della densita` di drenaggio, che discrimina fra versante e canale.

● In questo caso mettiamo 1000.

Analisi idrologica

r.watershed elevation=elevation@PERMANENT accumulation=accumuli drainage=drenaggio streams=fiumi threshold=1000

Analisi idrologica

r.watershed elevation=elevation@PERMANENT accumulation=accumuli drainage=drenaggio streams=fiumi threshold=1000

● In “Optional” spuntare “use positive flow accumulation even if likely underestimated”

Analisi idrologica

r.watershed elevation=elevation@PERMANENT accumulation=accumuli drainage=drenaggio streams=fiumi threshold=1000

fiumi

Analisi idrologica

drenaggio

Analisi idrologica

accumuli

Trasformazione da raster a vettoriale

● Per trasformare un raster in vettoriale (linee) dobbiamo innanzitutto correggere il raster di partenza.

● Infatti gli elementi lineari presenti nel raster devono avere spessore di una sola cella, eventuali spessori diversi provocherebbero errori nella generazione del file vettoriale.

● Questa operazione si esegue con il comando r.thin.

Trasformazione da raster a vettoriale

fiumi

fiumi_thin

r.thin input=fiumi output=fiumi_thin

Trasformazione da raster a vettoriale

reticolo

fiumi_thinLa trasformazione da raster a vettoriale si esegue con il comando r.to.vect.

Feature: line

r.to.vect input=fiumi_thin output=reticolo feature=line

Visualizzazione del vettoriale

Dal Layer Manager scegliamo “Add Vector Layer” e scegliamo dal menu a tendina il file vettoriale appena creato (reticolo).

Visualizzazione del vettoriale

Possiamo confrontare il reticolo cosi` ottenuto con i fiumi digitalizzati.

Dal Layer Manager scegliamo “Add Vector Layer” e scegliamo dal menu a tendina il file vettoriale streams.

Aggiungiamo anche il file verroriale lakes, che rappresenta i laghi, con la stessa procedura.

Caricando le due mappe, assegnamo loro un colore differente dal nero per distinguerle, dal tab “colors” scegliamo il colore blu.

Visualizzazione del vettoriale

Visualizzazione del vettoriale

Visualizzazione del vettoriale

Visualizzazione del vettoriale

Visualizzazione del vettoriale

Visualizzazione del vettoriale

Visualizzazione del vettoriale

Layers: Lakes, streams

Confronto

Layers: Lakes, streams in blu e reticolo in nero.

Confronto

Layers: Lakes, streams in blu e reticolo in nero, elevation.

Delimitazione del bacino● Per delimitare il

bacino idrografico, utilizziamo il comando r.water.outlet, che apriamo come al solito dalla command console.

r.water.outlet drainage=drenaggio basin=bacino easting=643677.87 northing=222800.246

Delimitazione del bacino

● r.water.outlet prende in iput la mappa delle direzioni di drenaggio (che abbiamo chiamato drenaggio), il nome della mappa che vogliamo creare (bacino), e le coordinate easting=643677.87 northing=222800.246

r.water.outlet drainage=drenaggio basin=bacino easting=643677.87 northing=222800.246

Delimitazione del bacino

● Carichiamo il raster cosi` ottenuto:

bacino

Trasformazione da raster a vettoriale

● Usiamo il comando r.to.vect selezionando la feature “area”

Trasformazione da raster a vettoriale

● Usiamo l'opzione “smooth corners od area features”

Trasformazione da raster a vettoriale

● Il risultato finale e` la mappa vettoriale del bacino idrografico sotteso alla sezione di chiusura data.

Calcolare il perimetro del bacino

● Per calcolare il perimetro, aggiungiamo una colonna alla tabella associata al vettoriale.

● Per consultare la tabella, cliccare: Show attribute table.

Calcolare il perimetro del bacino

Calcolare il perimetro del bacino

● Per aggiungere una colonna alla tabella associata al vettoriale “bacino”, usiamo v.db.addcol.

● Indichiamo il nome della nuova colonna “perimetro” e il tipo di dato che conterra` “double precision”.

Calcolare il perimetro del bacino

● Associamo la colonna al layer 1

Calcolare il perimetro del bacino

● Controlliamo la tabella: la colonna “perimetro” e` stata aggiunta.

● Ora dobbiamo popolare la nuova colonna con i valori del perimetro.

Calcolare il perimetro del bacino● Per popolare la

colonna, usiamo v.to.db.

● Nel tab “Required” inseriamo il nome della mappa cui e` associata la tabella: “bacino”, e scegliamo il valore da aggiornare: “perimeter”.

Calcolare il perimetro del bacino

Calcolare il perimetro del bacino

Calcolare il perimetro del bacino

● Nel tab “Optional” inseriamo l'unita` di misura “kilometers” e il nome della colonna da popolare: “perimetro”.

Calcolare il perimetro del bacino

● Consultando nuovamente la tabella, notiamo che la colonna del perimetro e` stata aggiornata.

● Il perimetro del bacino risulta essere 54 km.

Misurare la distanza

● Per verificare che il valore ottenuto e` giusto, possiamo verificarne almeno l'ordine di grandezza misurandolo direttamente sulla mappa.

● Da “Analyze map” selezioniamo “Measure distance”.

● Per verificare che il valore ottenuto e` giusto, possiamo verificarne almeno l'ordine di grandezza misurandolo direttamente sulla mappa.

● Da “Analyze map” selezioniamo “Measure distance”.

Misurare la distanza

● Similmente al calcolo del perimetro, per il calcolo dell'area usiamo di nuovo v.db.addcol e poi v.to.db.

Calcolare la superficie

● v.db.addcol.

● Indichiamo il nome della nuova colonna “superficie” e il tipo di dato che conterra` “double precision”.

Calcolare la superficie

Calcolare la superficie● Visualizziamo la tabella associata al vettoriale e verifichiamo che il campo

“superficie” e` stato creato.

Calcolare la superficie● Per popolare la

colonna, usiamo v.to.db.

● Nel tab “Required” inseriamo il nome della mappa cui e` associata la tabella: “bacino”, e scegliamo il valore da aggiornare: “area”.

Calcolare la superficie

Calcolare la superficie

Calcolare la superficie

● Nel tab “Optional” inseriamo l'unita` di misura “kilometers” e il nome della colonna da popolare: “superficie”.

Calcolare la superficie

● Consultando nuovamente la tabella, notiamo che la colonna della superficie e` stata aggiornata.

● La superficie del bacino risulta essere 60 km2.

License of this document

             This work is licensed under a Creative Commons License.                         http://creativecommons.org/licenses/by­sa/3.0/

                                       (c) 2011, Margherita Di Leo, Italy                                      dileomargherita AT gmail DOT com

License details: Attribution­ShareAlike 3.0:You are free:  * to Share — to copy, distribute and transmit the work  * to Remix — to adapt the work Under the following conditions:  * Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).  *Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only under the same, similar or a compatible license.

With the understanding that:  * Waiver — Any of the above conditions can be waived if you get permission from the copyright holder.  * Other Rights — In no way are any of the following rights affected by the license:       o Your fair dealing or fair use rights;       o The author's moral rights;       o Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights.

top related