Lez. 3 - Corso di modelli e GIS per l'ambiente

5,970 views

Published on

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

Published in: Education

Lez. 3 - Corso di modelli e GIS per l'ambiente

  1. 1. Universita` degli Studi della Basilicata Dipartimento di Ingegneria e Fisica dellAmbiente (DIFA)GRASS GIS e lidrologiaIng. Margherita Di Leo
  2. 2. 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
  3. 3. 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”
  4. 4. Carving ● Opzione “no flat areas”: Elimina le aree piane nella direzione del flusso. ● Opzione “points”: loutput 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 dacqua.
  5. 5. 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. Loutput e` un raster che mostra uno o piu` percorsi che minimizzano il costo. Di default loutput 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 dallutente (nellesempio e` 19).
  6. 6. Percorso di drenaggio● La flag -c (copy) copia il valore del DEM nella mappa di output:
  7. 7. Percorso di drenaggio● La flag -a (accumulate) pone la somma dei valori del DEM nella mappa di output:
  8. 8. Percorso di drenaggio● La flag -n (number) enumera il percorso delle celle nella mappa di output:
  9. 9. Percorso di drenaggio● NOTA: r.drain non trova TUTTI i valori piu` bassi del DEM, ma solo quelli collegati al punto di partenza indicato dallutente.● 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.
  10. 10. 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 nellinterpolazione.
  11. 11. 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.
  12. 12. 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.
  13. 13. Linee di flusso Linee di flussoDensita` didrenaggio Lunghezza percorso
  14. 14. Indice topografico● r.topidx: Crea la mappa dellindice topografico, [ln(a/tan(beta))] utilizzato in alcuni modelli idrologici.
  15. 15. Indice topografico
  16. 16. Modellazione dei deflussi● r.terraflow: Calcola il DEM filled (privo di depressioni), la mappa delle direzioni di drenaggio, la densita` di drenaggio, lindice topografico. Puo` utilizzare lalgoritmo D8 (single flow direction, SFD) o lalgoritmo MFD (multiple flow direction), che e` impostato di default.
  17. 17. Modellazione dei deflussi
  18. 18. Modellazione dei deflussi Direzioni di drenaggio MFDDensita` didrenaggio MFD
  19. 19. 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
  20. 20. Modellazione idrologica● r.topmodel : Modulo che consente di applicare il modello idrologico TOPMODEL (Beven, 1995), un modello idrologico distribuito fisicamente basato.
  21. 21. Erosione● r.sim.sediment: Simulazione del trasporto dei sedimenti e dellerosione/deposito;● r.sim.water: Simulazione idrologica delloverland flow. 7.7Nella figura e` riportata una 5.5mappa della portatagenerata con il modulor.sim.water, che simula 3.7loverland flow utilizzando ilpath sampling method(SIMWE) con un rainfall 1.8excess rate di 50 mm/hr. 0.0
  22. 22. Analisi di bacino● r.basin.fill: Genera una mappa raster con lindividuazione 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).
  23. 23. Esercitazione● Lobiettivo 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)
  24. 24. Analisi idrologica ● r.watershed permette di ricavare a partire dal DEM la mappa della direzioneInput: elevation@PERMANENT 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).
  25. 25. Analisi idrologica ● La soglia e` il numero di celle della mappa della densita` di drenaggio, che discrimina fraSoglia versante e canale. ● In questo caso mettiamo 1000.
  26. 26. Analisi idrologicar.watershed elevation=elevation@PERMANENT accumulation=accumuli drainage=drenaggio streams=fiumi threshold=1000
  27. 27. Analisi idrologica ● In “Optional” spuntare “use positive flow accumulation even if likely underestimated”r.watershed elevation=elevation@PERMANENT accumulation=accumuli drainage=drenaggio streams=fiumi threshold=1000
  28. 28. Analisi idrologica fiumir.watershed elevation=elevation@PERMANENT accumulation=accumuli drainage=drenaggio streams=fiumi threshold=1000
  29. 29. Analisi idrologica drenaggio
  30. 30. Analisi idrologica accumuli
  31. 31. 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.
  32. 32. Trasformazione da raster a vettoriale fiumi fiumi_thin r.thin input=fiumi output=fiumi_thin
  33. 33. Trasformazione da raster a vettorialeLa trasformazione fiumi_thinda raster a reticolovettoriale siesegue con ilcomando Feature: liner.to.vect. r.to.vect input=fiumi_thin output=reticolo feature=line
  34. 34. Visualizzazione del vettorialeDal LayerManagerscegliamo “AddVector Layer” escegliamo dalmenu a tendina ilfile vettorialeappena creato(reticolo).
  35. 35. Visualizzazione del vettoriale Possiamo confrontare il reticolo cosi` ottenuto con i fiumidigitalizzati. Dal Layer Manager scegliamo “Add Vector Layer” escegliamo dal menu a tendina il file vettoriale streams. Aggiungiamo anche il file verroriale lakes, cherappresenta i laghi, con la stessa procedura. Caricando le due mappe, assegnamo loro un coloredifferente dal nero per distinguerle, dal tab “colors”scegliamo il colore blu.
  36. 36. Visualizzazione del vettoriale
  37. 37. Visualizzazione del vettoriale
  38. 38. Visualizzazione del vettoriale
  39. 39. Visualizzazione del vettoriale
  40. 40. Visualizzazione del vettoriale
  41. 41. Visualizzazione del vettoriale
  42. 42. Visualizzazione del vettoriale Layers: Lakes, streams
  43. 43. ConfrontoLayers: Lakes, streams in blu e reticolo in nero.
  44. 44. ConfrontoLayers: Lakes, streams in blu e reticolo in nero, elevation.
  45. 45. 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
  46. 46. 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
  47. 47. Delimitazione del bacino● Carichiamo il raster cosi` ottenuto: bacino
  48. 48. Trasformazione da raster a vettoriale● Usiamo il comando r.to.vect selezionand o la feature “area”
  49. 49. Trasformazione da raster a vettoriale● Usiamo lopzione “smooth corners od area features”
  50. 50. Trasformazione da raster a vettoriale● Il risultato finale e` la mappa vettoriale del bacino idrografico sotteso alla sezione di chiusura data.
  51. 51. 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.
  52. 52. Calcolare il perimetro del bacino
  53. 53. 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”.
  54. 54. Calcolare il perimetro del bacino● Associamo la colonna al layer 1
  55. 55. 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.
  56. 56. 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”.
  57. 57. Calcolare il perimetro del bacino
  58. 58. Calcolare il perimetro del bacino
  59. 59. Calcolare il perimetro del bacino● Nel tab “Optional” inseriamo lunita` di misura “kilometers” e il nome della colonna da popolare: “perimetro”.
  60. 60. 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.
  61. 61. Misurare la distanza● Per verificare che il valore ottenuto e` giusto, possiamo verificarne almeno lordine di grandezza misurandolo direttamente sulla mappa.● Da “Analyze map” selezioniamo “Measure distance”.
  62. 62. Misurare la distanza● Per verificare che il valore ottenuto e` giusto, possiamo verificarne almeno lordine di grandezza misurandolo direttamente sulla mappa.● Da “Analyze map” selezioniamo “Measure distance”.
  63. 63. Calcolare la superficie● Similmente al calcolo del perimetro, per il calcolo dellarea usiamo di nuovo v.db.addcol e poi v.to.db.● v.db.addcol.● Indichiamo il nome della nuova colonna “superficie” e il tipo di dato che conterra` “double precision”.
  64. 64. Calcolare la superficie
  65. 65. Calcolare la superficie● Visualizziamo la tabella associata al vettoriale e verifichiamo che il campo “superficie” e` stato creato.
  66. 66. 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”.
  67. 67. Calcolare la superficie
  68. 68. Calcolare la superficie
  69. 69. Calcolare la superficie● Nel tab “Optional” inseriamo lunita` di misura “kilometers” e il nome della colonna da popolare: “superficie”.
  70. 70. Calcolare la superficie● Consultando nuovamente la tabella, notiamo che la colonna della superficie e` stata aggiornata.● La superficie del bacino risulta essere 60 km2.
  71. 71. 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 comLicense 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 authors 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.

×