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

50
Universita` degli Studi della Basilicata Dipartimento di Ingegneria e Fisica dell'Ambiente (DIFA) GRASS GIS: Primi passi e operazioni sui raster Ing. Margherita Di Leo

description

Lezione 2 - GRASS GIS: Primi passi e operazioni sui raster. - corso di Modelli e GIS per l’ambiente, Universita` della Basilicata, 20/12/2011

Transcript of Lez. 2 - Corso di modelli e GIS per l'ambiente

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

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

GRASS GIS: Primi passi e operazioni sui raster

Ing. Margherita Di Leo

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

Avvio del programma

● Avviare il programma dal launcher;

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

Avvio del programma

● Avviare il programma dal launcher;

● Sfogliare la cartella grass data;

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

Avvio del programma

● Avviare il programma dal launcher;

● Sfogliare la cartella grass data;

● Scegliere la location North Carolina;

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

Avvio del programma

● Avviare il programma dal launcher;

● Sfogliare la cartella grass data;

● Scegliere la location North Carolina;

● Scegliere il mapset user1;

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

Avvio del programma

● Avviare il programma dal launcher;

● Sfogliare la cartella grass data;

● Scegliere la location North Carolina;

● Scegliere il mapset user1;

● Avvio.

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

Map Display

Layer Manager

TerminalMap Layers

Command console

Search module

Interfaccia utente (GUI)

Python shell

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

● La prima volta che si usa GRASS e` importante impostare la regione computazionale.

● Tutte le elaborazioni successive vengono effettuate sulla regione computazionale prescelta.

● La regione (estensione e risoluzione) si imposta con il comando g.region.

Impostare la regione

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

Impostare la regione

●Digitando g.region nella command console e premendo invio, si manifesta l'interfaccia grafica del comando.

●Nel tab Existing e` possibile impostare la regione sulla base di una regione esistente salvata precedentemente oppure su un file esistente.

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

Impostare la regione

●Nel tab Bounds e` possibile impostare la regione indicando i limiti precisi.

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

Impostare la regione

●Nel tab Resolution e` possibile impostare la risoluzione della cella.

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

Impostare la regione

●Nel tab Effects e` possibile salvare la regione corrente (regione di visualizzazione) con un nome, in modo da poterla successivamente richiamare.

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

Impostare la regione

●Nel tab Print e` possibile spuntare le varie opzioni di cio` che desideriamo venga stampato a schermo.

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

Impostare la regione

g.region -ap rast=elevation@PERMANENT

●Per il nostro progetto, impostiamo come regione computazionale la risoluzione ed estensione del raster elevation.

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

Visualizzare il contenuto del mapset● Vogliamo vedere cosa e` contenuto nel

dataset di esempio. Il comando che si usa allo scopo e` g.list.

● La sintassi e`: g.list type=tipo1[,tipo2,...]

● Ad esempio:g.list type=rast,vect

elenchera` tutti i raster e i vettoriali presenti nel mapset, mentre:g.list type=rast3d

dira` che non e` presente alcun raster3d.

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

Visualizzare un rasterAdd raster map layer

d.rastd.rast –helpd.rast map=elevation@PERMANENT

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

Visualizzare un rasterZoom to selected map

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

Informazioni su una mappa raster

r.infor.info –helpr.info rast=elevation@PERMANENT

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

r.infor.info –helpr.info rast=elevation@PERMANENT

r.info da informazioni sulla mappa raster: titolo,

tipo di dato, righe, colonne, numero di celle, proiezione, estensione, risoluzione, intervallo dei valori, informazioni

sulla provenienza (come e` stata generata e da

chi).

Informazioni su una mappa raster

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

Interrogare una mappa rasterQuery raster/vector map(s)

r.what restituisce il valore della mappa nel punto selezionato.

Utile per individuare le coordinate della sezione di chiusura!

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

Interrogare piu` mappe raster● r.what puo` essere utilizzato da display oppure da linea di

comando, come in generale tutti i comandi di GRASS.

● Utilizzarlo da linea di comando e` utile quando, note le coordinate, vogliamo conoscere i valori di una o piu` mappe raster in quel dato punto.

● Per fare un esempio, consideriamo la mappa raster landclass96.

● Interroghiamo con il comando r.what entrambe le mappe contemporaneamente, per conoscere il valore di entrambe le mappe nella posizione considerata:

r.what input=elevation,landclass96 east_north=636889.830508,222716.101695

● La risposta e`:

636889.830508|222716.101695||98.26356|5

ovvero: east | north || elevation | landclass96

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

Suggerimenti

● Per interrogare la mappa landclass96, utilizzando la linea di comando, non e` necessario caricare la mappa nel layer tree!

● L'uso della linea di comando velocizza il lavoro;

● Per dubbi sulla sintassi dei comandi da riga di comando e` sempre possibile farli seguire da: --help

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

Generare report e statistiche

r.report fornisce le seguenti informazioni:

● Location in cui stiamo lavorando;

● Limiti n-s e-o della mappa;

● Risoluzione della mappa n-s e-o;

● Eventuale presenza della mask;

● Descrizione delle categorie presenti nella mappa;

● Estensione delle varie categorie nell'unita` di misura scelta dall'utente.

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

Generare report e statistiche

r.report map=name[,name,...][units=string[,string,...]]

[output=name][nsteps=value]

● Units: Le unita` possono essere: mi,me,k,a,h,c,p

(mi: miglia, me: metri, k: chilometri, a: acri, h: ettari, c: numero di celle, p: percentuale);

● Output: Nome del file di output;

● Nsteps: Numero di intervalli (default: 255). Ha senso per mappe con valori continui, come elevazione, pendenza, ecc.

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

Generare report e statistiche

r.report map=geology_30m units=k

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

Generare report e statisticher.univar serve per riportare le statistiche univariate dell'intervallo di dati della mappa:

● Numero di celle;

● Minimo e massimo valore delle celle;

● Intervallo;

● Media aritmetica;

● Varianza della popolazione;

● Deviazione standard

● Coefficiente di variazione.

● Con la flag -e vengono calcolati anche: primo quartile, secondo quartile (mediana), terzo quartile e percentile dato.

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

Generare report e statistiche

r.univar map=slope

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

Riclassificazioner.reclass serve per aggregare delle categorie a partire da una mappa raster. Consideriamo ad esempio la mappa landclass96. Utilizzando r.report su tale mappa otteniamo le categorie riportate a lato.

Procediamo alla riclassificazione creando un file di testo sul nostro Desktop (utilizziamo WordPad).

Il file di testo, denominato “regole.txt”, conterra` le regole per la riclassificazione.

r.report map=landclass96

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

RiclassificazioneSupponiamo di voler aggregare tutte le categorie che rappresentano la copertura vegetale non di origine agricola.

Per costruire il file delle regole:

vecchio_valore = nuovo_valore etichetta

Il file regole.txt sara` fatto cosi`:

1 = 1 developed

2 = 2 agriculture

3 = 3 vegetazione

4 = 3 vegetazione

5 = 3 vegetazione

6 = 4 water

7 = 5 sediment

Salviamo il file regole.txt sul Desktop.

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

RiclassificazioneOra siamo pronti a riclassificare la mappa landclass96.

Digitiamo nel command console r.reclass e diamo invio. Si aprira` l'interfaccia grafica.

Inseriamo in input: landclass96 e in output landclass_riclassificata.

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

RiclassificazioneNel tab “Optional” sfogliamo il percorso al file “regole.txt” che abbiamo salvato sul Desktop.

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

RiclassificazioneIl risultato e` una mappa raster riclassificata:

Prima: landclass96 Dopo: landclass_riclassificata

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

Riclassificazione

IMPORTANTE: La riclassificazione NON crea una nuova mappa, ma crea soltanto un file di riclassificazione

che viene conservato in una cartella del mapset di GRASS. Per generare un file raster riclassificato, e` necessario ricorrere alla map algebra. Nel terminale, digitiamo:

r.mapcalc “nuova_landclass = landclass_riclassificata”

● NOTA: Osservando bene “landclass_riclassificata” e “nuova_landclass”, si puo` notare che hanno risoluzione

diversa. Perche`? (Consiglio per la risposta: usare r.info e ricordare cio` che e` stato detto riguardo la regione

computazionale e g.region!)

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

Esercitazione

Supponiamo di voler creare una mappa di localizzazione probabile di reperti archeologici appartenenti ad una antica popolazione.

● Si ipotizza che tale popolazione costruisse i propri villaggi ad una quota inferiore a 100 m s.l.m., ad una distanza entro i 200 m dai corsi d'acqua, in territori con esposizione da sud-est a sud-ovest e pendenza compresa tra 0 e 25 gradi.

● Solo i terreni con superficie superiore a 1 ettaro saranno poi selezionati, poiché le aree con superfici inferiori non possono permettere lo sviluppo di un villaggio.

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

Creazione di un buffer

Ricaviamo prima di tutto la mappa dei punti che si trovano ad una distanza entro i 200 m dai corsi d'acqua. Utilizziamo il comando r.buffer.

r.buffer input=streams_derived@PERMANENT output=fiumi_buffer distances=200 units=meters

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

Creazione di un buffer

Il risultato è una mappa in cui hanno valore 1 le celle contenenti i fiumi, valore 2 le celle distanti fino a 200 metri da essi e * le altre.

[* questo simbolo indica i null data, e si gestisce con il comando r.null]

r.buffer input=streams_derived@PERMANENT output=fiumi_buffer distances=200 units=meters

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

Map algebra

r.mapcalc "fino_a_100=if(elevation<=100,1,0)"

Vogliamo ricavare la mappa delle aree con quota non superiore a 100 m s.l.m. Nel TERMINALE inseriamo il comando:

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

Map algebra

r.mapcalc "fino_a_100=if(elevation<=100,1,0)"

Il risultato e` una mappa binaria, con valore 1 dove la quota e` minore o uguale a 100, e valore 0 altrove.

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

Map algebraCerchiamo ora le aree con esposizione a sud-est, sud e sud-ovest. La convenzione delle direzioni in GRASS e` la seguente:

I valori della mappa dell'esposizione (aspect) che ci interessano sono dunque: >=225 & <=315

Tradotto in map algebra, si scrive:

r.mapcalc "buona_esposizione=if(aspect>=225&&aspect<=315,1,0)"

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

Map algebra

Scriviamo nel terminale:

r.mapcalc "buona_esposizione=if(aspect>=225&&aspect<=315,1,0)"

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

Map algebra

r.mapcalc "buona_esposizione=if(aspect>=225&&aspect<=315,1,0)"

Mappa delle esposizioni sud-est, sud, sud-ovest.

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

Map algebraNOTA: la map algebra ha anche un'interfaccia grafica, per chi la preferisce.

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

Map algebraCalcoliamo ora la mappa delle aree con pendenza non superiore a 25 gradi, usiamo la mappa slope presente nel dataset, e impostiamo la condizione con la solita map algebra, scrivendo nel terminale:

r.mapcalc "buona_pendenza=if(slope<=25,1,0)"

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

Map algebra

Mappa delle aree con pendenza non superiore a 25 gradi.

r.mapcalc "buona_pendenza=if(slope<=25,1,0)"

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

Map algebraCalcoliamo infine la mappa di intersezione di tutte le condizioni richieste(si ricorda che l'intersezione corrisponde all'operatore AND (&), mentre l'unione corrisponde all'operatore OR(|)):

r.mapcalc "intersezione = if( ( fiumi_buffer == 2 && fino_a_100 == 1 && buona_esposizione == 1 && buona_pendenza == 1 ), 1, null() )"

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

Map algebraLa mappa di intersezione di tutte le condizioni richieste:

r.mapcalc "intersezione = if( ( fiumi_buffer == 2 && fino_a_100 == 1 && buona_esposizione == 1 && buona_pendenza == 1 ), 1, null() )"

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

Riclassificazione in base all'areaCome ultimo step, dobbiamo eliminare tutte le aree che risultano inferiori ad un ettaro. Per fare cio` utilizziamo il comando r.reclass.area. Digitiamolo della command console, e nell'interfaccia grafica inseriamo i parametri richiesti:

r.reclass.area input=intersezione output=intersezione_max_ettaro greater=1

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

Riclassificazione in base all'area

Nel tab “Optional” inseriamo la condizione che le aree debbano essere superiori ad 1 ettaro:

r.reclass.area input=intersezione output=intersezione_max_ettaro greater=1

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

Risultato

Et voila`!

La mappa intersezione_max_ettaro

rappresenta il risultato della nostra esercitazione.

Page 50: Lez. 2 - 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/

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