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

5,013 views

Published on

Interpolazione in GRASS GIS. Ricavare un modello digitale del terreno a partire da curve di livello e punti quotati. Esercitazione. Lezioni 17-18-19 e 24/01/2012.

Published in: Education

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

  1. 1. Universita` degli Studi della BasilicataDipartimento di Ingegneria e Fisica dellAmbiente (DIFA)Interpolazione spazialeIng. Margherita Di Leo
  2. 2. Introduzione● Linterpolazione spaziale serve per stimare il valore ignoto di una data variabile in un certo punto utilizzando i valori che tale variabile assume nei punti circostanti.● Esempi: * Ricostruzione della mappa delle precipitazioni a partire dai dati raccolti dalla rete pluviometrica; * Mappa delle temperature a partire dalle registrazioni delle stazioni; * Costruzione di un DTM a partire da curve di livello e punti quotati; * Resampling di un DEM; * .. numerosi altri esempi!
  3. 3. I metodi Esistono numerosi metodi per linterpolazione in ambiente GIS. I piu` comuni sono i seguenti:● Diagramma di Voronoi;● Triangulated Irregular Network (TIN);● Inverse Distance Weighted (IDW);● Kriging;● Regularized Spline with Tension (RST);● Per le curve di livello: r.surf.contour.
  4. 4. Diagramma di VoronoiDato un insieme finito di punti S, il diagramma di Voronoiper S è la partizione del piano che associa una regioneV(p) ad ogni punto in modo tale che tutti i punti di V(p)siano più vicini a p che ad ogni altro punto in S. Figura Mitas, L., Mitasova, H. 1998
  5. 5. Diagramma di VoronoiIn GRASS, il diagramma di Voronoi si ottiene utilizzando ilcomando v.voronoi, che prende in input una mappavettoriale di punti. Figura dal manuale di GRASS
  6. 6. Triangulated Irregular NetworkIl TIN è una struttura dati vettoriale basata su triangoli conmaglia irregolare, che ha il vantaggio di fornire elevatarisoluzione dove necessario.I triangoli vengonogenerati unendo i puntiin una rete di maglietriangolari chesoddisfano il criterio diDelaunay: un cerchiodisegnato per i tre puntidi un triangolo nondeve contenere altripunti. Figura Mitas, L., Mitasova, H. 1998
  7. 7. Triangulated Irregular Network Figura Mitas, L., Mitasova, H. 1998
  8. 8. Triangulated Irregular NetworkIl principale svantaggio della triangolazione cosi` ottenutae` che la superficie non si presenta “liscia”.In GRASS storicamente non si lavora molto con i TIN,anche perche` ci sono tools di interpolazione cheforniscono risultati di gran lunga piu` soddisfacenti, comevedremo di seguito.E` comunque possibile costruire TIN in GRASS,importando i nodi x,y,z con il comando v.in.ascii eutilizzando una nuova versione di v.delaunay (MartinPavlovsky, 2008) che permette di creare unatriangolazione di Delaunay e di gestire i triangoli come“faces” (superfici tridimensionali).
  9. 9. Inverse Distance WeightedI valori vengono interpolati secondo il principioche linfluenza di un punto su un altro ignoto chedesideriamo stimare, decresce con il quadratodella distanza. Figura Mitas, L., Mitasova, H. 1998
  10. 10. Inverse Distance Weighted● Anche questo metodo ha alcuni svantaggi: la qualita` del risultato puo` risultare insoddisfacente se il la distribuzione dei punti e` irregolare.● Inoltre, i massimi e i minimi corrispondono sempre ai punti campionati, e questo si manifesta con picchi ed avvallamenti innaturali nel risultato finale.● In GRASS sono disponibili: v.surf.idw, r.surf.idw e r.surf.idw2 (output floating point).
  11. 11. Kriging● Il Kriging, o processo gaussiano, effettua la regressione minimizzando lo scarto quadratico medio.La regressione si basa sullautocorrelazione della grandezza, cioè l’assunto che la grandezza in oggetto vari nello spazio con continuità; ovvero le cose più vicine sono più simili rispetto alle cose più lontane (Legge di Tobler).● Il valore incognito in un punto viene calcolato con una media pesata dei valori noti.● I pesi che vengono dati alle misure note dipendono dalla relazione spaziale tra i valori misurati nellintorno del punto incognito. Per calcolare i pesi si usa il semivariogramma, un grafico che mette in relazione la distanza tra due punti e il valore di semivarianza tra le misure effettuate in questi due punti. Il semivariogramma espone, sia in maniera qualitativa che quantitativa, il grado di dipendenza spaziale, ovvero l’autocorrelazione.
  12. 12. Kriging● In GRASS, il modulo per effettuare il kriging e` v.krige.● Poiche` richiama alcune funzioni dal software R, occorre compilare GRASS con supporto di R. Figura Mitas, L., Mitasova, H. 1998
  13. 13. Regularized Spline Tension● Questo metodo utilizza una funzione spline per approssimare la forma del terreno.● Il comando di GRASS e` v.surf.rst. Figura Mitas, L., Mitasova, H. 1998
  14. 14. Regularized Spline Tension● La funzione interpolante ottenuta con la interpolazione spline è più liscia di quelle ottenute con altri metodi.● La funzione richiede due parametri un parametro di “tension”, che regola la “rigidezza” della funzione, e uno di “smooth”, che regola la “levigatezza” della superficie interpolante.
  15. 15. Regularized Spline Tension● Possiamo pensare alla superficie spline come ad un foglio di gomma, che si adagia sui punti di elevazione nota.● Il parametro “tension” non rappresenta altro che la “rigidezza” della gomma.● Il parametro “smooth” determina la tendenza della superficie a passare per i punti campionati. Per smooth=0 la superficie passa per tutti i punti campionati.
  16. 16. Regularized Spline Tension● Variazione del parametro di “tension”: Figura Mitas, L., Mitasova, H. 1998
  17. 17. Regularized Spline Tension● Variazione del parametro di “smooth”: Figura Mitas, L., Mitasova, H. 1998
  18. 18. Curve di livello● Il modulo r.surf.contour e` pensato specificamente per produrre un DEM a partire dalle curve di livello. Figura: a sinistra un DEM ottenuto con r.surf.contour a partire da punti LiDAR (elev_lid792_bepts), a destra lo stesso ottenuto con v.surf.rst (Bowman, H., 2010).
  19. 19. Applicazione Confrontiamo diversi metodi per linterpolazione di punti LiDAR.Utilizziamo il North Carolina dataset.
  20. 20. Applicazione● Visualizziamo la mappa vettoriale: elev_lid792_cont1m.● Impostiamo la regione computazionale rispetto a tale mappa: g.region vect=elev_lid792_con t1m● Impostiamo la risoluzione di cella a un metro: g.region res=1 -ap
  21. 21. Applicazione● Alcuni moduli che useremo richiedono la mappa delle curve di livello in formato raster, quindi effettuiamo la trasformazione da vettoriale a raster con il comando v.to.rast.
  22. 22. Applicazione
  23. 23. Applicazione
  24. 24. Applicazione
  25. 25. r.surf.idw
  26. 26. r.surf.idwUtilizziamo prima 12punti diinterpolazione piu`vicini aventi pesomaggiore.Poi faremo un altroesperimentoaumentando ilnumero di punti econfrontando irisultati.
  27. 27. r.surf.idw
  28. 28. r.surf.idwUtilizziamo ora 250punti diinterpolazione piu`vicini aventi pesomaggiore.
  29. 29. r.surf.idwUtilizziamo ora 250punti diinterpolazione piu`vicini aventi pesomaggiore.
  30. 30. r.surf.idw
  31. 31. r.surf.idwFigura: a sinistra DEM ottenuto con 12 punti di interpolazione piu` vicini aventi pesomaggiore, a destra DEM ottenuto con 250 punti (Bowman, H., 2010).
  32. 32. r.surf.idw Un inconveniente e` rappresentato dal fatto che il comando produce un output in formato intero.● Vediamo cosa dice r.info.
  33. 33. r.surf.idw Un inconveniente e` rappresentato dal fatto che il comando produce un output in formato intero.● Vediamo cosa dice r.info.
  34. 34. r.surf.idw Un inconveniente e` rappresentato dal fatto che il comando produce un output in formato intero.● Vediamo cosa dice r.info.
  35. 35. r.surf.idwA tale inconveniente si puo` ovviare con unescamotage:r.mapcalc "curvedilivello.100k = curvedilivello *100000"r.surf.idw in=curvedilivello.100kout=dem_idw_np250.100k npoints=250r.mapcalc "dem_idw_np250 = dem_idw_np250.100k /100000.0"g.remove dem_idw_np250.100k
  36. 36. r.surf.idwA tale inconveniente si puo` ovviare con unescamotage:r.mapcalc "curvedilivello.100k = curvedilivello *100000"r.surf.idw in=curvedilivello.100kout=dem_idw_np250.100k npoints=250 Da notare il punto decimaler.mapcalc "dem_idw_np250 = dem_idw_np250.100k /100000.0"g.remove dem_idw_np250.100k
  37. 37. v.surf.rst● Ricaviamo ora il DEM con v.surf.rst.● Usiamo come base la mappa vettoriale elev_lid792_co nt1m.● Diamo unocchiata alla tabella degli attributi.
  38. 38. v.surf.rst
  39. 39. v.surf.rstOutput: dem_1mcont_rst
  40. 40. v.surf.rstParametri dismoothing e tension:sono quelli chedobbiamo variare se ilrisultato non e`soddisfacente.
  41. 41. v.surf.rst
  42. 42. r.surf.contourPer interpolare lecurve di livello sipuo` usarer.surf.contour.Anche questocomandoproduce unoutput intero,quindi si puo`adottare lostessoescamotage gia`visto.
  43. 43. r.surf.contour
  44. 44. Valutare il risultato● Tutti i metodi di interpolazione hanno vantaggi e svantaggi, non esiste un metodo perfetto. Come scegliamo il metodo migliore?● Il metodo migliore e` quello che si adatta meglio ai dati che abbiamo a disposizione.● Osservare i dati campionati, valutare la loro densita` e distribuzione spaziale.● Applicare il metodo piu` appropriato per il set di dati e per lobbiettivo del lavoro.● Valutare diversi risultati ottenuti applicando diversi metodi e scegliere il migliore (presenza di artefatti).
  45. 45. Valutare il risultato Per valutare i risultati e confrontare i vari metodi, e per impostare correttamente gli eventuali parametri richiesti dal metodo di interpolazione prescelto, in GRASS possiamo avvalerci di:● Visualizzazione tridimensionale;● Osservare la mappa della pendenza (r.slope.aspect) e della curvatura (r.param.scale) per evincere eventuali artefatti;● Visualizzare la mappa ombreggiata dei rilievi (r.shaded.relief).
  46. 46. Visualizzazione tridimensionale
  47. 47. PendenzaPer visualizzareeventualiartefatti,calcoliamo lamappa dellapendenza conr.slope.aspect
  48. 48. CurvaturaCalcoliamo la curvaturacon r.param.scale.
  49. 49. Curvatura● Nel tab “Optional” selezioniamo il parametro che vogliamo calcolare: profc (profile curvature).● E` la curvatura che interseca il piano definito dallasse Z e la direzione di massima pendenza.● I valori positivi indicano un profilo convesso, mentre i valori negativi descrivono un profilo di curvatura concavo.
  50. 50. CurvaturaGli artefatti sonoevidenti.
  51. 51. Rilievo ombreggiatoPer calcolare ilrilievoombreggiatousiamor.shaded.relief.
  52. 52. Rilievo ombreggiato
  53. 53. Rilievo ombreggiato
  54. 54. Esercitazione A partire dalle curve di livello e dai punti quotati digitalizzati, costruiamo un modello digitale del terreno. I passi sono i seguenti:● Importare i vettoriali di curve di livello e punti quotati (v.in.ogr);● Impostare la regione di lavoro (g.region);● Trasformare le curve di livello in raster (v.to.rast), poi in punti vettoriali (r.to.vect);● Costruiamo una mappa con le informazioni derivanti dalle curve di livello e punti quotati usando v.patch;● Interpolazione usando v.surf.rst (tension=40, smooth=0.1 come valori di tentativo, poi valutare il risultato).
  55. 55. Esercitazione Dal modello digitale del terreno, estraiamo il reticolo e il bacino idrografico. I passi sono i seguenti:● Ricaviamo mappa delle direzioni di drenaggio, densita` di drenaggio e reticolo raster, fissando una soglia (r.watershed);● Confronto del reticolo ottenuto con i fiumi digitalizzati e regolazione della soglia, ripetere dallo step precedente;● Una volta trovata la soglia, trasformiamo il reticolo da raster a vettoriale (r.thin + r.to.vect);● Individuazione delle coordinate della sezione di chiusura sul reticolo di calcolo;● Estrazione del bacino, date le coordinate della sezione di chiusura, con r.water.outlet.● Trasformazione del bacino in vettoriale r.to.vect e calcolo dellarea e perimetro (v.db.addcol + v.to.db).
  56. 56. v.patch● Il comando v.patch permette di combinare due o piu` mappe vettoriali in ununica mappa.● Se la struttura della tabella degli attributi e` identica, gli attributi vengono trasferiti nella nuova tabella.
  57. 57. v.patch
  58. 58. v.patch
  59. 59. v.patchInput multiploOutput
  60. 60. v.patchCopia anchela tabelladegli attributi
  61. 61. v.patch
  62. 62. 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.

×