GRASS 6.4 1. introduzione Marco Negretti Politecnico di Milano e-mail: marco.negretti@polimi.it http://geomatica.como.polimi.it 18/11/2011
indice introduzione, download e installazione struttura dell'archivio dati: carte raster e vettoriali manuali i comandi di GRASS utilizzare i dati demo di Spearfish avvio di GRASS visualizzare carte raster e vettoriali tabelle degli attributi dei dati vettoriali definire i colori per le carte raster e vettoriali il workspace navigare e interrogare la cartografia legenda e barra di scala stampa gestione dell'archivio 2
introduzione GRASS Geographic Resources Analysis Support System E' un Sistema Informativo Geografico (GIS) utilizzato per la gestione, l'elaborazione, il modellamento spaziale e la visualizzazione di dati geografici http://grass.osgeo.org/ 3
introduzione GRASS è un software gratuito che può essere acquisito, modificato e ridistribuito nei termini del GNU General Public License http://www.gnu.org/ Originariamente scritto, sviluppato, gestito e diffuso dall'u.s. Army Construction Engineering Research Laboratories (USA-CERL, 19821995), sezione dell'us Army Corp of Engineers, come strumento per la gestione del territorio e la pianificazione ambientale per scopi militari 4
introduzione E' diventato rapidamente un potente strumento in un ampio campo di applicazioni in molte differenti aree della ricerca scientifica GRASS è attualmente utilizzato in tutto il mondo in ambienti accademici e commerciali, in molti settori governativi, che includono NASA, NOAA, USDA, DLR, CSIRO, il National Park Service, l' U.S. Census Bureau, USGS, e in molte compagnie di consulenza ambientale 5
introduzione GRASS è sviluppato da una rete mondiale di operatori che continuano a rilasciare con regolarità nuove versioni Contiene oltre 350 moduli per elaborare dati raster, vettoriali e immagini multispettrali, restituire carte ed immagini sul monitor e su carta, immagazzinare dati con connessioni a diversi DBMS (PostgreSQL, ed altri tramite ODBC), visualizzare dati tridimensionali, mediante interfacce grafiche semplici e intuitive 6
introduzione È utilizzabile con i seguenti sistemi operativi: GNU/Linux (Intel, PowerPC, Sun,...), Solaris (SPARC, i86), SGI IRIX, HP UX, Mac OS X, IBM AIX, BSD-Unix, FreeBSD, CRAY Unicos, ipaq/linux handhelds e altre piattaforme UNIX (32/64bit), MS-Windows GRASS è un progetto dell'open Source Geospatial Foundation http://www.osgeo.org/ 7
download e installazione Il team di sviluppo di GRASS rende disponibili diverse versioni del sw: GRASS 6.4.x è la nuova versione stabile GRASS 6.5 è la versione di sviluppo di GRASS 6, consigliata per gli sviluppatori, meno per la produzione GRASS 7 è la nuova versione di GRASS, in fase di sviluppo 8
download e installazione E' possibile scaricare i file sorgenti e poi compilarli Oppure utilizzare uno dei pacchetti precompilati della versione 6.4 Debian, Mandriva, Ubuntu, OpenSUSE,... MacOSX, Windows http://grass.osgeo.org/download/software.php 9
download e installazione In alternativa all'installazione, per iniziare, sono a disposizione versioni su live CD e USB: OSGEO Live GIS Disc DVD live Università degli Studi di Trento USB live Laboratorio di Geomatica... http://grass.osgeo.org/download/cdrom.php 10
struttura dell'archivio L'organizzazione dei dati di GRASS è di tipo gerarchico ed è stata pensata per gestire in modo efficiente l'accesso multiutente ai dati e la loro condivisione I dati di GRASS sono contenuti tutti all'interno di una directory, GISDBASE, che deve essere creata prima di utilizzare GRASS GISDBASE /home/grassdb/ 11
struttura dell'archivio All'interno di GISDBASE i dati sono organizzati in directory chiamate LOCATION ogni location contiene dati omogenei dal punto di vista del sistema di riferimento e dell'estensione geografica /home/grassdb/ GISDBASE LOCATION COMO GENOVA MODENA 12
struttura dell'archivio In ogni LOCATION ci sono una o più directory chiamate MAPSET I mapset sono le aree di lavoro degli utenti che accedono ai dati della location ad ogni mapset corrisponde un utente GISDBASE LOCATION MAPSET /home/grassdb/ COMO PERMANENT GENOVA utente01 MODENA utente02 13
struttura dell'archivio Accesso ai dati di un mapset l'accesso in lettura/scrittura ai dati di un mapset è consentito solo al proprietario del mapset per default ogni utente ha accesso in lettura ai mapset degli altri utenti Mapset PERMANENT viene creato da GRASS quando si crea la location sono definite le proprietà della location, valide per tutti gli altri mapset della location sistema di riferimento, estensione, risoluzione... contiene i dati comuni da condividere con tutti gli utenti della location 14
struttura dell'archivio - dati raster I dati raster sono memorizzati in una matrice numerica di N righe per M colonne i cui elementi rappresentano ciascuno una porzione di forma rettangolare di territorio Ogni matrice contiene N x M valori numerici, ciascuno per ogni cella, che descrivono la corrispondente porzione di territorio Si possono utilizzare matrici di valori interi e in virgola mobile 15
struttura dell'archivio - dati raster I dati di ogni carta raster sono distribuiti su più file residenti in sottodirectory tematiche del mapset LOCATION MAPSET DATI COMO PERMANENT utente01 utente02 fcell cell cell_misc colr cellhd cats hist 16
struttura dell'archivio - dati raster Esempio gisdabse: GRASSDB location: spearfish60 mapset: user1 carta raster: elevation.dem 17
struttura dell'archivio - dati raster directory cell - fcell matrice numerica in formato binario con i dati della carta directory cellhd cell => valori interi fcell => valori in virgola mobile file di testo con l intestazione (header) directory cell_misc ad ogni raster corrisponde una directory con 2 file: range: definisce massimo e minimo valore della carta raster null: definisce le celle a valore nullo 18
struttura dell'archivio - dati raster directory cats directory colr contiene il file con l'elenco delle categorie, corredate eventualmente da una descrizione Contiene il file con la tavola dei colori definiti nel formato RGB: cat:r:g:b directory hist Contiene il file con le meta informazioni 19
struttura dell'archivio - dati vettoriali Le carte vettoriali sono contenute all'interno della directory vector Ad ogni carta vettoriale corrisponde una directory all'interno della quale ci sono i file che definiscono le proprietà geometriche della carta Gli attributi sono memorizzati per default in tabelle dbf all'interno della directory dbf LOCATION MAPSET DATI COMO PERMANENT vector utente01 utente02 dbf 20
struttura dell'archivio - dati vettoriali Esempio gisdabse: GRASSDB location: spearfish60 mapset: user1 carta vettoriale: roads 21
struttura dell'archivio - dati vettoriali file coor, cidx, topo file head intestazione (header) file dbln file binari con geometria, indici spaziali e topologia tipo di connessione al database file hist meta informazioni 22
struttura dell'archivio - dati vettoriali Gli attributi della carta vettoriale sono: in tabelle DBF, all'interno della directory dbf oppure è possibile utilizzare dei database esterni: PostgreSQL SQLite MySQL qualsiasi altro DB via ODBC 23
manuali GRASS è ben documentato I manuali delle varie versioni sono on-line: Per la versione 6.4, utilizzata come riferimento: http://grass.osgeo.org/grass64/manuals/html64_user/ Ad ogni comando corrisponde una pagina, ad esempio, per il comando d.rast: http://grass.osgeo.org/gdp/manuals.php http://grass.osgeo.org/grass64/manuals/html64_user/d.rast.html che più semplicemente, in questa dispensa sarà indicata come: http://path_to_man/d.rast.html 24
i comandi in GRASS Il campo di azione di un comando è identificato dalla stringa a sinistra del punto: g.xxxx => generali - es: g.region r.xxxx => per i raster - es: r.mapcalc, r.buffer r3.xxxx => per i raster 3D - es: r3.mapcalc v.xxxx => per i vettoriali - es: v.buffer i.xxxx => per le immagini - es: i.fft d.xxxx => di visualizzazione - es: d.rast, d.vect db.xxxx => per la connessione ai DB - es: db.connect ps.xxxx => per la stampa - es: ps.map m.xxxx => comandi vari (misellaneous) - es: m.proj 25
i comandi in GRASS Per usare un comando di GRASS: cercare il comando nei menu della GUI nome del comando help del comando definizione dei parametri di esecuzione linea di comando che sarà eseguita premendo sul tasto run 26
i comandi in GRASS da linea di comando, nella scheda command console : indicare il nome del comando e invio per aprire direttamente la finestra senza cercare nei menu specificare direttamente le opzioni per eseguire il comando senza utilizzare la GUI 27
utilizzare dei dati di demo: la location spearfish 1. creare la directory principale (GISDBASE) dove si ritiene più opportuno 2. scaricare i dati demo spearfish_grass60data-0.3.tar.gz http://grass.osgeo.org/download/data.php 3. decomprimere il file scaricato al punto 2 all'interno della GISDBASE creata al punto 1 si così ottiene una location pronta da utilizzare con GRASS 28
avvio di GRASS: la GUI di GRASS E' possibile utilizzare due interfacce grafiche diverse: tcltk => GUI di default fino a GRASS 6 wxpython => la nuova GUI di GRASS 7, disponibile anche per GRASS 6.4 UNIX, da linea di comando grass64 -tcltk grass64 -wxpython windows doppio click sull'icona corrispondente sul desktop cercare nel menù di avvio http://path_to_man/grass6.html 29
avvio di GRASS: scegliere il DB Indicare GISDBASE, LOCATION e MAPSET: GISDBASE LOCATION MAPSET avviare GRASS 30
avvio di GRASS: GUI tcltk map display finestra di visualizzazione layer manager - proprietà layer - gestione dell'archivio - accesso ai comandi di GRASS output messaggi http://path_to_man/gis.m.html 31
avvio di GRASS: GUI wxpython map display finestra di visualizzazione layer manager - proprietà layer - gestione dell'archivio - accesso ai comandi di GRASS - console http://path_to_man/wxgui.html 32
avvio di GRASS: terminale Si può utilizzare GRASS anche direttamente da terminale senza utilizzare la GUI 33
visualizzare una carta raster per selezionare un raster da visualizzare si ottiene l'elenco di tutte le carte raster del mapset corrente e di tutti quelli ai quali si ha accesso in lettura mapset nome della carta 34
visualizzare una carta raster Per visualizzare sul Map Display le carte aggiunte nel Layer Manager Selezionare per avere l'aggiornamento automatico dei contenuti http://path_to_man/d.rast.html 35
visualizzare una carta vettoriale per selezionare un vettoriale da visualizzare si ottiene l'elenco di tutte le carte vettoriali del mapset corrente e di tutti quelli ai quali si ha accesso in lettura mapset nome della carta 36
visualizzare una carta vettoriale Per aggiornare il Map Display con la nuova carta aggiunta nel Layer Manager http://path_to_man/d.vect.html 37
vettoriali - tabella degli attributi Gestire la connessione alle tabelle degli attributi dei dati vettoriali per tutti i dati del mapset corrente menu manage databases per una determinata carta vettoriale menu vector database connections 38
vettoriali - tabella degli attributi Visualizzare i parametri della connessione corrente db.connect http://path_to_man/db.connect.html 39
vettoriali - tabella degli attributi Per default la connessione: utilizza il driver dbf i file dbf degli attributi sono in $GISDBASE/$LOCATION_NAME/$MAPSET/dbf/ dove: $GISDBASE è la "GIS data directory" indicata all'avvio di GRASS $LOCATION è la location corrente $MAPSET è il mapset corrente 40
vettoriali - tabella degli attributi Per modificare la struttura di una tabella, visualizzarne e modificarne il contenuto è possibile: 1.utilizzare il tasto "show attribute table" nel layer manager modalità accessibile solo dalla GUI 2.operare utilizzando i comandi db.xxxx, v.db.xxxx questi comandi sono sempre accessibili, da GUI e da linea di comando 41
vettoriali - tabella degli attributi: dal layer manager 1. Dal layer manager, selezionare il vettoriale di interesse e click sul tasto di visualizzazione della tabella 42
vettoriali - tabella degli attributi: dal layer manager Visualizzare i dati contenuti nella tabella doppio click su una riga per evidenziare sul map display l'elemento vettoriale corrispondente definizione di query per visualizzare dati parziali 43
vettoriali - tabella degli attributi: dal layer manager Visualizzare i dati contenuti nella tabella tasto dx per modificare il valore dell'attributo selezionato, cancellare righe, inserirne di nuove... 44
vettoriali - tabella degli attributi: dal layer manager Visualizzazione ed editing della struttura tasto dx per cancellare una colonna aggiungere una colonna rinominare una colonna 45
vettoriali - tabella degli attributi: dal layer manager Aggiungere, cancellare, modificare un layer 46
vettoriali - tabella degli attributi: db.xxxx, v.db.xxxx 2. I comandi db.xxxx e v.db.xxxx elenco degli attributi: db.columns struttura della tabella: db.describe http://path_to_man/db.columns.html http://path_to_man/db.describe.html 47
vettoriali - tabella degli attributi: db.xxxx, v.db.xxxx interrogare i dati: v.db.select http://path_to_man/v.db.select.html 48
definire i colori Definizione dei colori i colori sono definiti utilizzando la codifica RGB (Red, Green, Blue) per definire un qualsiasi colore si assegna a ciascuna delle tre componenti un valore compreso tra 0 e 255, dove zero indica assenza del colore e 255 intensità massima il colore sarà definito dalla combinazione delle tre componenti fondamentali: R=0, G=255, B=0 R=255, G=255, B=0 R=127, G=127, B=127 R=127, G=0, B=127 R=0, G=0, B=0 R=255, G=255, B=255... => => => => => => verde giallo grigio magenta nero bianco 49
definire i colori per una carta raster Per associare i colori ad una carta raster è necessario stabilire una relazione tra valori numerici del raster e colori Questa relazione è definita in un file di testo (directory colr del mapset) che chiameremo "tabella dei colori" Definire le regole per la costruzione della tabella dei colori con lo strumento Color rules 50
definire i colori per una carta raster Definire degli intervalli di valori e associare i colori agli estremi di questi intervalli i colori per i valori intermedi sono calcolati da GRASS interpolando i tre valori RGB associati agli intervalli 51
definire i colori per una carta raster Definire un colore per ogni valore diverso del raster 52
definire i colori per una carta raster In alternativa, utilizzare direttamente il comando r.colors per avere accesso a tutte le funzionalità http://path_to_man/r.colors.html 53
definire i colori per una carta vettoriale Per associare i colori ad una carta vettoriale è necessario creare una nuova colonna nella tabella degli attributi che contenga i valori RGB associati 54
definire i colori per una carta vettoriale Definire le regole per la costruzione della tabella dei colori con lo strumento Color rules 55
definire i colori per una carta vettoriale Definire un colore in funzione all'attributo selezionato e la colonna RGB in cui scrivere 56
definire i colori per una carta vettoriale Nelle proprietà del layer vettoriale indicare di visualizzare i colori in base a quanto stabilito nella colonna RGB 57
definire i colori per una carta vettoriale In alternativa, utilizzare direttamente il comando v.colors per avere accesso a tutte le funzionalità http://path_to_man/v.colors.html 58
il Workspace L'elenco dei layer aggiunti nel layer manager, con le proprietà di visualizzazione associate, può essere salvato in un file e utilizzato in una successiva sessione di lavoro 59
navigare la cartografia cancellare il display puntatore pan zoom in zoom out ritorna allo zoom precedente 60
interrogare la cartografia Selezionare i layer che si vogliono interrogare tasto CTRL => selezione multipla Click sul tasto di interrogazione Click sul punto della carta da interrogare 61
interrogare la cartografia raster: comando e risultato vettoriale: comando e risultato http://path_to_man/r.what.html http://path_to_man/v.what.html 62
legenda e barra di scala Per aggiungere dei contenuti testuali in sovrapposizione alla cartografia visualizzata tasto add map elements Quindi selezionare l'oggetto che si vuole aggiungere barra di scala e punti cardinali legenda testo 63
legenda e barra di scala barra di scala e freccia dei punti cardinali http://path_to_man/d.barscale.html 64
legenda e barra di scala legenda http://path_to_man/d.legend.html 65
legenda e barra di scala Risultato 66
stampa dello schermo Nel Map Display, utilizzare il tasto print display impostazioni pagina anteprima stampa 67
gestione dell'archivio All'interno di un mapset le informazioni relative ad una singola carta sono distribuite in più directory esistono una serie di strumenti per elencare, copiare, rinominare, cancellare agevolmente i dati copia da un altro mapset o da quello corrente elenco delle carte del mapset rinomina carte, regioni,... cancella 68
gestione dell'archivio da linea di comando g.copy rast=slope@permanent,slope g.rename vect=roads,strade cambia il nome del vettoriale da roads a strade (lavora nel mapset corrente) g.remove rast=soils,slope vect=roads copia slope dal mapset PERMANENT a quello corrente cancella dal mapset corrente soils, slope e roads g.list type=vect elenca i file vettoriali ai quali si ha accesso: mapset corrente e altri mapset per i quali si hanno i diritti di lettura http://path_to_man/ g.copy.html - g.rename.html - g.remove.html - g.list.html 69
link utili Home page GRASS: Home page GRASS Italia: http://grass.osgeo.org http://grass-italia.como.polimi.it/ Tutorial on-line dell'università di Trento: http://www.ing.unitn.it/~grass/docs/tutorial_641/ 70
http://creativecommons.org/licenses/by-nc-nd/3.0/ Versione utilizzata come riferimento nelle dispense: GRASS 6.4.2 RC1 71