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

62
Universita` degli Studi della Basilicata Dipartimento di Ingegneria e Fisica dell'Ambiente (DIFA) Interpolazione spaziale Ing. Margherita Di Leo

Upload: margherita-di-leo

Post on 13-Jun-2015

3.748 views

Category:

Education


9 download

DESCRIPTION

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.

TRANSCRIPT

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

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

Interpolazione spaziale

Ing. Margherita Di Leo

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

Introduzione● L'interpolazione 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!

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

I metodi

Esistono numerosi metodi per l'interpolazione 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.

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

Diagramma di VoronoiDato un insieme finito di punti S, il diagramma di Voronoi per S è la partizione del piano che associa una regione V(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

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

Diagramma di VoronoiIn GRASS, il diagramma di Voronoi si ottiene utilizzando il comando v.voronoi, che prende in input una mappa vettoriale di punti.

Figura dal manuale di GRASS

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

Triangulated Irregular Network Il TIN è una struttura dati vettoriale basata su triangoli con maglia irregolare, che ha il vantaggio di fornire elevata risoluzione dove necessario.

Figura Mitas, L., Mitasova, H. 1998

I triangoli vengono generati unendo i punti in una rete di maglie triangolari che soddisfano il criterio di Delaunay: un cerchio disegnato per i tre punti di un triangolo non deve contenere altri punti.

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

Triangulated Irregular Network

Figura Mitas, L., Mitasova, H. 1998

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

Triangulated Irregular Network

Il principale svantaggio della triangolazione cosi` ottenuta e` che la superficie non si presenta “liscia”.

In GRASS storicamente non si lavora molto con i TIN, anche perche` ci sono tools di interpolazione che forniscono risultati di gran lunga piu` soddisfacenti, come vedremo di seguito.

E` comunque possibile costruire TIN in GRASS, importando i nodi x,y,z con il comando v.in.ascii e utilizzando una nuova versione di v.delaunay (Martin Pavlovsky, 2008) che permette di creare una triangolazione di Delaunay e di gestire i triangoli come “faces” (superfici tridimensionali).

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

Inverse Distance Weighted

I valori vengono interpolati secondo il principio che l'influenza di un punto su un altro ignoto che desideriamo stimare, decresce con il quadrato della distanza.

Figura Mitas, L., Mitasova, H. 1998

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

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).

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

Kriging● Il Kriging, o processo gaussiano, effettua la regressione

minimizzando lo scarto quadratico medio.La regressione si basa sull'autocorrelazione 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 nell'intorno 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.

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

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

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

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

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

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.

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

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.

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

Regularized Spline Tension● Variazione del parametro di “tension”:

Figura Mitas, L., Mitasova, H. 1998

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

Regularized Spline Tension● Variazione del parametro di “smooth”:

Figura Mitas, L., Mitasova, H. 1998

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

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).

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

Applicazione

Confrontiamo diversi metodi per l'interpolazione di punti LiDAR.

Utilizziamo il North Carolina dataset.

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

● Visualizziamo la mappa vettoriale:

elev_lid792_cont1m.

● Impostiamo la regione computazionale rispetto a tale mappa:

g.region vect=elev_lid792_cont1m

● Impostiamo la risoluzione di cella a un metro:

g.region res=1 -ap

Applicazione

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

● 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.

Applicazione

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

Applicazione

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

Applicazione

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

Applicazione

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

r.surf.idw

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

r.surf.idw

Utilizziamo prima 12 punti di interpolazione piu` vicini aventi peso maggiore.

Poi faremo un altro esperimento aumentando il numero di punti e confrontando i risultati.

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

r.surf.idw

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

r.surf.idw

Utilizziamo ora 250 punti di interpolazione piu` vicini aventi peso maggiore.

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

r.surf.idw

Utilizziamo ora 250 punti di interpolazione piu` vicini aventi peso maggiore.

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

r.surf.idw

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

r.surf.idw

Figura: a sinistra DEM ottenuto con 12 punti di interpolazione piu` vicini aventi peso maggiore, a destra DEM ottenuto con 250 punti (Bowman, H., 2010).

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

r.surf.idw

Un inconveniente e` rappresentato dal fatto che il comando produce un output in formato intero.

● Vediamo cosa dice r.info.

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

r.surf.idw

Un inconveniente e` rappresentato dal fatto che il comando produce un output in formato intero.

● Vediamo cosa dice r.info.

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

r.surf.idw

Un inconveniente e` rappresentato dal fatto che il comando produce un output in formato intero.

● Vediamo cosa dice r.info.

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

r.surf.idw

A tale inconveniente si puo` ovviare con un escamotage:

r.mapcalc "curvedilivello.100k = curvedilivello * 100000"

r.surf.idw in=curvedilivello.100k out=dem_idw_np250.100k npoints=250

r.mapcalc "dem_idw_np250 = dem_idw_np250.100k / 100000.0"

g.remove dem_idw_np250.100k

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

r.surf.idw

A tale inconveniente si puo` ovviare con un escamotage:

r.mapcalc "curvedilivello.100k = curvedilivello * 100000"

r.surf.idw in=curvedilivello.100k out=dem_idw_np250.100k npoints=250

r.mapcalc "dem_idw_np250 = dem_idw_np250.100k / 100000.0"

g.remove dem_idw_np250.100k

Da notare il punto decimale

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

v.surf.rst

● Ricaviamo ora il DEM con v.surf.rst.

● Usiamo come base la mappa vettoriale elev_lid792_cont1m.

● Diamo un'occhiata alla tabella degli attributi.

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

v.surf.rst

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

v.surf.rst

Output: dem_1mcont_rst

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

v.surf.rst

Parametri di smoothing e tension: sono quelli che dobbiamo variare se il risultato non e` soddisfacente.

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

v.surf.rst

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

r.surf.contourPer interpolare le curve di livello si puo` usare r.surf.contour. Anche questo comando produce un output intero, quindi si puo` adottare lo stesso escamotage gia` visto.

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

r.surf.contour

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

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 l'obbiettivo del lavoro.

● Valutare diversi risultati ottenuti applicando diversi metodi e scegliere il migliore (presenza di artefatti).

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

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).

Valutare il risultato

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

Visualizzazione tridimensionale

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

Per visualizzare eventuali artefatti, calcoliamo la mappa della pendenza con r.slope.aspect

Pendenza

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

Calcoliamo la curvatura con r.param.scale.

Curvatura

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

● Nel tab “Optional” selezioniamo il parametro che vogliamo calcolare: profc (profile curvature).

● E` la curvatura che interseca il piano definito dall'asse Z e la direzione di massima pendenza.

● I valori positivi indicano un profilo convesso, mentre i valori negativi descrivono un profilo di curvatura concavo.

Curvatura

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

Gli artefatti sono evidenti.

Curvatura

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

Rilievo ombreggiato

Per calcolare il rilievo ombreggiato usiamo r.shaded.relief.

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

Rilievo ombreggiato

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

Rilievo ombreggiato

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

EsercitazioneA 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).

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

EsercitazioneDal 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 dell'area e perimetro (v.db.addcol + v.to.db).

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

v.patch

● Il comando v.patch permette di combinare due o piu` mappe vettoriali in un'unica mappa.

● Se la struttura della tabella degli attributi e` identica, gli attributi vengono trasferiti nella nuova tabella.

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

v.patch

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

v.patch

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

v.patch

Input multiplo

Output

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

v.patch

Copia anche la tabella degli attributi

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

v.patch

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

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.