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

2,260 views

Published on

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

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,260
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
122
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

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

  1. 1. Universita` degli Studi della Basilicata Dipartimento di Ingegneria e Fisica dellAmbiente (DIFA)GRASS GIS: Primi passi e operazioni sui raster Ing. Margherita Di Leo
  2. 2. Avvio del programma● Avviare il programma dal launcher;
  3. 3. Avvio del programma● Avviare il programma dal launcher;● Sfogliare la cartella grass data;
  4. 4. Avvio del programma● Avviare il programma dal launcher;● Sfogliare la cartella grass data;● Scegliere la location North Carolina;
  5. 5. Avvio del programma● Avviare il programma dal launcher;● Sfogliare la cartella grass data;● Scegliere la location North Carolina;● Scegliere il mapset user1;
  6. 6. Avvio del programma● Avviare il programma dal launcher;● Sfogliare la cartella grass data;● Scegliere la location North Carolina;● Scegliere il mapset user1;● Avvio.
  7. 7. Interfaccia utente (GUI) Map Display Layer Manager Command console Python shellMap Layers Terminal Search module
  8. 8. Impostare la regione● 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.
  9. 9. Impostare la regione● Digitando g.regionnella commandconsole e premendoinvio, si manifestalinterfaccia grafica delcomando.●Nel tab Existing e`possibile impostare laregione sulla base diuna regione esistentesalvataprecedentementeoppure su un fileesistente.
  10. 10. Impostare la regione● Nel tab Bounds e`possibile impostare laregione indicando ilimiti precisi.
  11. 11. Impostare la regione●Nel tab Resolution e`possibile impostare larisoluzione della cella.
  12. 12. Impostare la regione●Nel tab Effects e`possibile salvare laregione corrente(regione divisualizzazione) conun nome, in modo dapoterlasuccessivamenterichiamare.
  13. 13. Impostare la regione●Nel tab Print e`possibile spuntare levarie opzioni di cio`che desideriamovenga stampato aschermo.
  14. 14. Impostare la regione●Per il nostro progetto,impostiamo comeregionecomputazionale larisoluzione edestensione del rasterelevation. g.region -ap rast=elevation@PERMANENT
  15. 15. 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.
  16. 16. Add raster map layer Visualizzare un rasterd.rastd.rast –helpd.rast map=elevation@PERMANENT
  17. 17. Visualizzare un raster Zoom to selected map
  18. 18. Informazioni su una mappa rasterr.infor.info –helpr.info rast=elevation@PERMANENT
  19. 19. Informazioni su una mappa raster 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).r.infor.info –helpr.info rast=elevation@PERMANENT
  20. 20. Interrogare una mappa raster Query raster/vector map(s) r.what restituisce il valore della mappa nel punto selezionato.Utile per individuare le coordinate della sezione di chiusura!
  21. 21. 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
  22. 22. Suggerimenti● Per interrogare la mappa landclass96, utilizzando la linea di comando, non e` necessario caricare la mappa nel layer tree!● Luso della linea di comando velocizza il lavoro;● Per dubbi sulla sintassi dei comandi da riga di comando e` sempre possibile farli seguire da: --help
  23. 23. Generare report e statisticher.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 nellunita` di misura scelta dallutente.
  24. 24. 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.
  25. 25. Generare report e statistiche r.report map=geology_30m units=k
  26. 26. Generare report e statistiche r.univar serve per riportare le statistiche univariate dellintervallo 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.
  27. 27. Generare report e statistiche r.univar map=slope
  28. 28. Riclassificazioner.reclass serve peraggregare delle categorie apartire da una mappa raster.Consideriamo ad esempio lamappa landclass96.Utilizzando r.report su talemappa otteniamo le categorieriportate a lato.Procediamo allariclassificazione creando unfile di testo sul nostroDesktop (utilizziamoWordPad).Il file di testo, denominato“regole.txt”, conterra` leregole per la riclassificazione. r.report map=landclass96
  29. 29. RiclassificazioneSupponiamo di voler aggregare tutte le categorie che rappresentano lacopertura vegetale non di origine agricola.Per costruire il file delle regole:vecchio_valore = nuovo_valore etichettaIl 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 sedimentSalviamo il file regole.txt sul Desktop.
  30. 30. RiclassificazioneOra siamo pronti ariclassificare lamappa landclass96.Digitiamo nelcommand consoler.reclass e diamoinvio. Si aprira`linterfaccia grafica.Inseriamo in input:landclass96 e inoutputlandclass_riclassificata.
  31. 31. RiclassificazioneNel tab “Optional”sfogliamo il percorsoal file “regole.txt” cheabbiamo salvato sulDesktop.
  32. 32. RiclassificazioneIl risultato e` una mappa raster riclassificata:Prima: landclass96 Dopo: landclass_riclassificata
  33. 33. Riclassificazione IMPORTANTE: La riclassificazione NON crea una nuova mappa, ma crea soltanto un file di riclassificazioneche 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 risoluzionediversa. Perche`? (Consiglio per la risposta: usare r.info e ricordare cio` che e` stato detto riguardo la regione computazionale e g.region!)
  34. 34. 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 dacqua, 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.
  35. 35. Creazione di un bufferRicaviamo primadi tutto la mappadei punti che sitrovano ad unadistanza entro i200 m dai corsidacqua.Utilizziamo ilcomandor.buffer. r.buffer input=streams_derived@PERMANENT output=fiumi_buffer distances=200 units=meters
  36. 36. 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@PERMANENToutput=fiumi_buffer distances=200 units=meters
  37. 37. Map algebraVogliamo ricavare la mappa delle aree con quota non superiore a 100 ms.l.m. Nel TERMINALE inseriamo il comando:r.mapcalc "fino_a_100=if(elevation<=100,1,0)"
  38. 38. Map algebra Il risultato e` una mappa binaria, con valore 1 dove la quota e` minore o uguale a 100, e valore 0 altrove.r.mapcalc "fino_a_100=if(elevation<=100,1,0)"
  39. 39. 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 dellesposizione (aspect) che ci interessano sono dunque: >=225 & <=315 Tradotto in map algebra, si scrive: r.mapcalc "buona_esposizione=if(aspe ct>=225&&aspect<=315,1,0)"
  40. 40. Map algebraScriviamo nel terminale:r.mapcalc"buona_esposizione=if(aspect>=225&&aspect<=315,1,0)"
  41. 41. Map algebra Mappa delle esposizioni sud-est, sud, sud-ovest.r.mapcalc"buona_esposizione=if(aspect>=225&&aspect<=315,1,0)"
  42. 42. Map algebraNOTA: la map algebra ha anche uninterfaccia grafica, per chi la preferisce.
  43. 43. Map algebraCalcoliamo ora la mappa delle aree con pendenza non superiore a 25gradi, usiamo la mappa slope presente nel dataset, e impostiamo lacondizione con la solita map algebra, scrivendo nel terminale: r.mapcalc "buona_pendenza=if(slope<=25,1,0)"
  44. 44. Map algebra Mappa delle aree con pendenza non superiore a 25 gradi.r.mapcalc "buona_pendenza=if(slope<=25,1,0)"
  45. 45. Map algebraCalcoliamo infine la mappa di intersezione di tutte le condizioni richieste(si ricorda che lintersezione corrisponde alloperatore AND (&),mentre lunione corrisponde alloperatore OR(|)): r.mapcalc "intersezione = if( ( fiumi_buffer == 2 && fino_a_100 == 1 && buona_esposizione == 1 && buona_pendenza == 1 ), 1, null() )"
  46. 46. 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() )"
  47. 47. Riclassificazione in base allareaCome ultimo step,dobbiamo eliminare tuttele aree che risultanoinferiori ad un ettaro. Perfare cio` utilizziamo ilcomando r.reclass.area.Digitiamolo dellacommand console, enellinterfaccia graficainseriamo i parametririchiesti: r.reclass.area input=intersezione output=intersezione_max_ettaro greater=1
  48. 48. Riclassificazione in base allareaNel tab “Optional”inseriamo la condizioneche le aree debbanoessere superiori ad 1ettaro: r.reclass.area input=intersezione output=intersezione_max_ettaro greater=1
  49. 49. Risultato Et voila`! La mappaintersezione_max_ettaro rappresenta il risultatodella nostra esercitazione.
  50. 50. 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 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.

×