Tutorial QuantumGIS/GRASS

Clara Tattoni

Università degli Studi di Trento Dipartimento Ingegneria Civile e Ambientale

Ultimo aggiornamento Aprile 2009

Questo documento è rilasciato con licenza Creative Commons CC-by-nc-sa.

Image cc88x31

$\textcopyright$ C. Tattoni 2009 tattonic AT ing DOT unitn DOT it

Introduzione

L'obiettivo di questa esercitazione è di fornire un esempio di come può essere usato Quantum GIS. In particolar modo si vogliono mostrare le funzioni per la visualizzazione e l'interrogazione di mappe,l'integrazione con GRASS grazie all'apposito plugin e l'impaginazione di una mappa per la stampa.

Quest'esercitazione è stata realizzata per GRASS 6.3 e Quantum GIS 1.0 (Kore) su Debian GNU/Linux testing, kernel 2.6.26 e testata anche in ambiente windows XP home edition. Dato il veloce aggiornamento dei software in questione, comandi, procedure e finestre mostrati in questo tutorial sono relativi alle versioni indicate.


Data set

I dati necessari per svolgere l'esercitazione, contenuti nel data set Spearfish, possono essere scaricati dal sito ufficiale di GRASS. E il seguente shapefile scaricabile curvespear.shp.tar.gz

Se non avete giàinstallato il dataset Spearfish per GRASS, è necessario scaricarlo e salvare il file sul vostro disco fisso.

Il dataset spearfish_grass60data-0.3.tar.gz è un archivio che deve essere scompattato per poter essere usato. Cliccare con il tasto destro sull'icona e scegliere l'opzione `` Estrai qui'': verràcreata una cartella alla quale si accederàin seguito come spiegato nel corso dell'esercitazione.

In alternativa, da una console di Linux, dopo essersi posizionati nella directory dove è stato salvato il file, si decomprime l'archivio con il comando:

tar xvfz Spearfish_grass60data.tar.gz

Avvio di QGIS

In questa esercitazione verranno esplorate alcune funzioni di QGIS e del plugin per GRASS basandosi sul dataset pubblico Spearfish.

Avviare QGIS cliccando l'icona corrispondente oppure digitando nella shell di linux il comando riportato qui sotto la & alla fine del comando serve per poter avere la shell a disposizione per digitare altri comandi in seguito:

% qgis &
 

Ora ci si trova di fronte all'interfaccia grafica di QGIS, che è suddivisa in 6 aree principali

Image qgis_interfaccia


Operazioni con dati vettoriali

Visualizzare uno shapefile

Prima di tutto scaricare il file in formato SHAPE curvespear.shp.tar.gz e scompattarlo nella propria home directory digitando da console il comando o cliccando con il tasto destro sull'icona selezionando l'opzione `` Estrai qui''. Anche in questo caso viene creata una cartella di dati alla quale si accede attraverso il programma.

tar xvfz  curvespear.shp.tar.gz

Per aprire la finestra di dialogo per caricare un layer vettoriale in QGIS, selezionare dalla barra dei menù di QGIS Layer -> Add vector Layer, oppure cliccare sul tasto Image mActionAddNonDbLayer

Nella barra in alto indicare la directory in cui si è scompattato lo shapefile curvespear e selezionarlo come nell'esempio di figura

Image add_shape


Il file viene aggiunto all'elenco dei layer e visualizzato con un colore casuale. Cliccando con il tasto destro del mouse sul nome del layer nella legenda appare un menù dal quale è possibile selezionare una voce per effettuare operazioni di base quali vederne le propriet√†, rimuovere i layer, zoomare, iniziare a modificarlo, eccetera.

Con i tasti Image zoom_bar è possibile ingrandire o rimpicciolire la vista della mappa, spostarsi, tornare alla vista precedente e aggiornare la vista della mappa. Fare alcune prove di zoom e ritornare infine alla vista sull'intera mappa (zoom to layer).

Per interrogare la mappa selezionare il tasto Image mActionIdentify ed usare il nuovo puntatore per cliccare una qualsiasi curva sulla mappa. Apparir una finestra che riporta gli attributi associati alle linee selezionate.

Image identify

Interrogare la tabella degli attributi

Gli attributi associati al layer curvespear sono visibili cliccando sull'icona Image mActionUnselectAttributes della barra degli strumenti.

Image shapetable


Dalla tabella appare ormai chiaro che lo shapefile curvespear rappresenta delle curve di livello, nel campo HEIGHT è contenuta la quota di ogni curva, il campo LABEL è una copia di quest'ultimo.

Ciò che viene selezionato a livello grafico viene evidenziato in giallo anche nella tabella degli attributi come mostrato in figura. Cliccare il tasto Image mActionSelect e selezionare una piccola area sulla mappa: le curve selezionate diventeranno gialle. Contemporaneamente questi oggetti vengono evidenziati anche nella tabella, per portarli nella parte visibile della tabella cliccare il tasto Image mActionSelectedToTop

Image selezione


è possibile fare il percorso contrario cioé partire da una selezione in base ai valori della tabella e visualizzare il risultato della selezione sulla mappa. Ad esempio vogliamo trovare le curve di livello di quota maggiore di 1800 metri. Nella finestra della tabella cliccare il tasto Advanced per aprire la finestra di creazione delle interrogazioni (Query). Comporre la ricerca cliccando sul nome del campo e sui simboli oppure scrivendo nello spazio SQL where statement il criterio di selezione: HEIGHT > 1800 e premere ok. Le curve di livello che soddisfano questo criterio sono evidenziate in giallo sia sulla mappa che nella tabella.

Image query1800


Grazie agli operatori logici AND OR NOT è possibile fare delle selezioni più complesse. Ad esempio cercare le curve di livello comprese tra le quote di 1200 e 1500. Ripetere la procedura di selezione usando il nuovo criterio

HEIGHT > 1200 AND HEIGHT < 1500

Figura 1: Curve di livello di quota compresa tra 1200 e 1500 metri
Image curve1200


Per eliminare la selezione usare il tasto in alto a sinistra nella finestra della tabella, oppure usare lo strumento della selezione grafica cliccando in un punto della mappa in cui non ci sono oggetti.

Modificare il colore

Per modificare il colore e il tipo di linea cliccare con il tasto destro del mouse sul nome del layer nella legenda e selezionare la voce Properties. Attraverso l'interfaccia grafica si possono selezionare simboli, colori retini... cliccando la linguetta Labels ad esempio si possono impostare le etichette in base a un campo, selezionare il carattere, la dimensione e la posizione delle etichette. Per cambiare il colore selezionare la tab Symbology

Figura 2: Modificare Colori e simboli di un vettoriale
Image vector_color


Fare alcune prove con colori e linee, per ottenere un effetto come quello riportato in figura selezionare dal menù a tendina Legend type Continous Color impostare il campo HEIGHT come classification field e cliccare sui colori per modificarli.

Image vector_color2

Image vector_color3

Operazioni base con il plugin di GRASS

Quantum GIS è stato progettato con un'architettura a moduli detti plugin con i quali è possibile estendere le funzioni di base. Alcuni moduli sono giàpresenti in di ogni distribuzione di QGIS e sono mantenuti dagli stessi sviluppatori (core plugin) altri (plugin esterni) sono sviluppati autonomamente dagli utenti e vanno installati a parte. Per informazioni sui plugin esterni e come installarli si rimanda al sito della Comunitàdi QGIS.

In questa parte dell'esercitazione verràapprofondito il plugin per GRASS, necessario per poter leggere i dati da un mapset di GRASS ed effettuare alcune analisi sui vettoriali e raster di GRASS. Dal menù di Qgis selezionare Plugins -> Plugin Manager e fare il segno di spunta vicino a GRASS come in figura.

Figura: Caricare un plugin
Image grass_plugin


Dopo questa operazione viene aggiunta all'interfaccia grafica di Qgis una nuova barra degli strumenti, che permette di eseguire alcune operazioni su i dati vettoriali e sullo stesso mapset di GRASS, come cambiare le impostazioni della regione ed altro.

Figura: Barra degli strumenti del plugin per GRASS
Image grass_plugin_bar


A questo punto è possibile lavorare anche con dati nel formato nativo di GRASS come quelli scaricati all'inizio del tutorial, ma è necessario indicare a QGIS dove trovarli. Cliccando l'icona Image grass_add_map compare una finestra in cui bisogna inserire il percorso alla LOCATION Spearfish60 (il dataset preparato in precedenza nella sezione 1.1) ed indicare il MAPSET user1 come indicato in figura:

Image Select_GRASS_Mapset

Metadati

Grazie al Plugin di GRASS possiamo esplorare il contenuto del MAPSET e vedere i dati e i metadati collegati. Cliccando sul bottone Open Grass Tools si apre la finestra degli strumenti di GRASS. Cliccando sul Tab Browser è possibile navigare nei mapset di GRASS trovando i dati raggruppati per tipo vettoriale o raster, aprendo una cartella, ad esempio raster di PERMANENT, si possono vedere le informazioni collegate ai vari raster, come elevation.dem dell'esempio qui sotto.

Image browser

Image browser1


Tramite il map browser si possono anche caricare, rinominare e copiare le mappe. Usare questo strumento per esplorare il contenuto del dataset Spearfish.

Aggiungere un vettoriale da un mapset di GRASS

A questo possiamo caricare dati vettoriali direttamente da un mapset di GRASS e visualizzarli insieme ai dati giàcaricati. Cliccando sul bottone "Add GRASS vector layer" Image grass_add_vector della barra degli strumenti del plugin per GRASS si apre la finestra di dialogo sottostante. Selezioniamo come location Spearfish60, come mapset PERMANENT e proviamo a caricare un layer contenente dei punti per esempio "archsites"

Figura: Aggiungere un vettoriale da GRASS
Image add_vector


Per consultare la tabella degli attributi si procede come visto per gli shapefile, questa volta sono contenuti anche i nomi dei siti nel campo str1. Analogamente a quanto fatto in precedenza, è possibile modificare il colore e la simbologia dei vettoriali cliccando due volte sul nome del vettoriale che ci interessa. Una volta aperta l'interfaccia Properties, selezionare il tab labels e provare a visualizzare le etichette sulla mappa provando ad indicare il campo contenente i nomi.

Caricare il vettoriale roads dal mapset PERMANENT e provare ad attribuire un simbolo grafico diverso a ciascuna tipologia di strada. Aprire la tabella degli attributi per capire in quale campo si trova la descrizione del tipo di strada. Impostare il tipo di legenda (Legend type) come Unique value e scegliere un colore, uno spessore o un tipo di linea diverso per ciascuna tipologia. Un risultato possibile delle operazioni precedenti è presentato nella figura qui sotto.

Image roads



Aggiungere un raster di GRASS

Ora caricheremo in Qgis il raster del modello digitale del terreno: cliccare sull'icona Add GRASS raster layer Image grass_add_raster e completare la finestra di dialogo indicando mapset PERMANENT e come map name elevation.dem. Il raster saràaggiunto alla legenda e visualizzato.

Una semplice elaborazione

Si proveràora ad usare uno dei moduli di GRASS per elaborare una mappa dell'ombreggiatura partendo dal modello digitale del terreno. Cliccando sul bottone Open Grass Tools si apre una finestra con l'elenco dei moduli di GRASS disponibili in QGIS: scorrere fino a trovare "Create shaded map" e selezionarlo con un doppio click del mouse. Nella finestra si crea una nuova tab in cui è possibile inserire i parametri per l'elaborazione:

Image shade


Mappa di input: elevation.dem

Altezza e azimuth del sole: si può lasciare il valore predefinito o fare delle prove

Nome della Mappa output: ombre

Image shade1


Usare il bottone in basso "run" per eseguire il comando e attendere qualche secondo prima di selezionare "view output" per caricare la nuova mappa in qgis.

Cambiare colore a un raster

All'attuale livello di sviluppo Qgis, la gestione dei colori per i file raster di GRASS è un po'complessa poichè è gestita da due interfacce diverse. L'interfaccia Properties, richiamabile facendo doppio click sul nome del raster in legenda, permette di selezionare solo 2 scale cromatiche (colore e scala di grigi) per i raster e permette di gestire la trasparenza della mappa.

Il colore di un raster di GRASS può essere modificato anche attraverso i moduli di Grass Tools, grazie ai quali si può selezionare una scala di colore predefinita. Tali moduli sono raggruppati sotto la voce Manage map colors.

Ricordiamo che i layer caricati sono visibili nella finestra a sinistra e sono visualizzati nell'ordine in cui compaiono: il layer più in alto viene disegnato sopra quelli sottostanti e così via. Se un layer è semi-trasparente sarè possibile visualizzare anche i layer sottostanti oppure ottenere degli effetti di ombreggiatura.

Figura: Esempio di raster semitrasparenti
Image dem2


Per ottenere un effetto simile a quello riportato in figura si visualizza il raster ombre appena elaborato in scala di grigio con una trasparenza di circa il 70% e lo si sovrappone al modello digitale del terreno. Con un doppio click sul nome del raster ombra si possono provare diversi livelli di trasparenza trascinando la barra fino ad ottenere l'effetto desiderato.

Figura: Cambiare colore e trasparenza a un raster
Image raster_properties


Impaginazione di una mappa

Qgis dispone di un'interfaccia per l'impaginazione di mappe (Map composer) che può essere chiamata cliccando sul simbolo della stampante.

Per prima cosa impostare nella tab "General" la dimensione del foglio da stampare, per esempio A4. Utilizzando il bottone Image mActionAddRasterLayer "Add new map" è possibile riportare l'area di visualizzazione dei layers su una porzione del foglio. Con il cursore si disegna un rettangolo nella posizione in cui vogliamo riportare la mappa e della dimensione desiderata. Il rettangolo con la vista può essere modificato anche in un secondo momento.

Image barra_layout

Gli altri bottoni della barra di Map Composer permettono di nell'ordine di esportare la mappa, zoomare, inserire l'area di visualizzazione del layer, inserire del testo, la legenda e la barra della scala. Provare a impaginare una mappa sul modello di quella riportata in figura con titolo, legenda e barra della scala selezionando liberamente alcuni vettoriali da PERMANENT e selezionando opportunamente colori e simboli In figura è riportato solo un esempio di impaginazione, l'utente è libero di creare una mappa con elementi e colori a propria scelta.

Figura: Impaginazione di una mappa con Qgis
Image layout


Stampa di una mappa

Una volta soddisfatti dell'impaginazione è possibile salvare la mappa in pdf, un formato adatto per la stampa o in formati adatti alla restituzione in video come jpg, png, bmp e altri. Cliccare il simbolo della stampante sul Map composer per avviare il dialogo di stampa. è possibile inviare direttamente il file alla stampante oppure e barrare l'opzione "Print to file" e indicare il nome di un file in cui salvare la mappa, che verràsalvata in formato pdf.

Per esportare la mappa impaginata in un immagine usare il tasto Image mActionExportMapServer e scegliere il formato desiderato, che potràpoi essere inserito in una presentazione o visualizzato con GIMP. Per esportare in formato vettoriale per webgis cliccare l'icona SVG, al momento non è perfettamente funzionante.

Editing di un vettoriale

Con QGIS è possibile modificare layer vettoriali esistenti, sia in formato shape che GRASS, e anche crearne di nuovi. In questa sessione si proveràa digitalizzare un nuovo vettoriale di tipo poligono seguendo i contorni di elementi di un immagine satellitare e salvando in formato ESRI shapefile.

Innanzitutto si carica in QGIS l'immagine presente nel mapset PERMANENT di nome spot.image, seguendo la procedura vista prima per caricare un raster [*]. Nell'immagine si vedono delle aree bianche dovute alla presenza di nubi: lo scopo di questo esercizio è creare una mappa delle nuvole.

Dalla barra dei menù scegliere Layer -> New Vector Layer ... Nella finestra selezionare Polygon e aggiungere almeno un nome di campo per gli attributi, ad esempio tipo o categoria, cliccare OK e salvare la mappa con il nome di "nuvole".

Image new_vector


La nuova mappa verràautomaticamente aggiunta all'elenco dei layer caricati. Cliccare con il tasto destro del mouse sul layer nuvole e selezionare la voce Toggle editing.

Provare a ingrandire la zona di una nuvola e provare a seguirne i contorni come in figura: selezionare lo strumento "Capture polygon" Image mActionCapturePolygon. Ogni click sinistro del mouse aggiunge un nuovo punto, per chiudere il poligono usare il tasto destro del mouse e immettere un valore nella tabella.

Image editqgis


Operazioni più complesse con il plugin di GRASS


Creazione di un report

Un GIS può essere usato per conoscere la distribuzione spaziale di una o più variabili. Ad esempio si possono interrogare la mappe vegcover e fields per vedere che tipo di copertura vegetale c'è sul terreno dei vari proprietari. Seguendo le procedure giàdescritte, visualizzare le mappe raster fields e vegcover e consultarne il contenuto.

Per una prima quantificazione dei dati contenuti nella mappa vegcover (copertura vegetale, forestale e non) si può utilizzare in comando r.report, che si trova nella Grass toolbox Raster -> Reports and statistics -> Statistics -> modulo r.report.

ATTENZIONE: perché le mappe compaiano nel menù a tendina dei moduli devono essere giàstate caricate in QGIS e avere il segno di spunta nella legenda!!

è possibile selezionare sia la mappa che l'unitàdi misura con la quale effettuare l'analisi: si selezioni una o più unitàdi misura da impiegare nel report (nell'esempio si sono utilizzati i km quadrati). Una volta inserite le scelte cliccare su Run.

Image rreport

Il risultato si legge nell'etichetta output.

Se si vogliono incrociare i dati di due o più mappe i menù giàpronti non sono sufficienti ad esaurire possibilitàdel comando r.report (guardare la pagina di manuale cliccando l'etichetta manual) ed è necessario ricorrere alla linea di comando. Se vogliamo sapere che tipo di copertura c'è nei vari appezzamenti dobbiamo incrociare le informazioni della mappa fields (suddivisione del territorio secondo i proprietari) con quelle di vegcover.

Aprire una shell di GRASS, uno dei primi moduli della Grass toolbox Image shell.1 e digitare questa stringa e premere invio:

r.report map=fields,vegcover units=k

Digitando il comando in quest'altro modo il risultato viene salvato in un file di testo di nome report.txt

r.report map=fields,vegcover units=k > report.txt

Il file report.txt è un semplice file di testo che viene creato nella directory corrente. Per aprire questo report basta aprire un file manager e fare doppio click sul nome del file.

Provare a creare un report con altre mappe raster, per esempio fields e geology oppure geology e vegcover o altri. L'ordine in cui vengono indicate le mappe cambia il risultato: si provi ad esempio a mettere prima il raster vegcover e poi fields.

Creazione di un modello digitale del terreno

A partire dalle curve di livello è possibile creare un DTM (Digital Terrain Model) attraverso un interpolazione della mappa delle quote. Un DTM è utile per effettuare elaborazioni successive che necessitano la conoscenza delle quote, creare viste tridimensionali ed ottenere delle mappe di esposizione, pendenza, ecc.

Impostazione della risoluzione

Prima di iniziare si ricorda che tutte le operazioni di elaborazione avvengono sempre all'interno della regione attiva e con la risoluzione lì definita. Per svolgere quest'esercitazione è consigliabile selezionare una risoluzione di 30 m, in modo da ridurre i tempi di calcolo.

Caricare il layer vettoriale curvespear in QGIS, selezionando dalla barra dei menù di QGIS Layer -> Add vector Layer, oppure cliccare sul tasto Image mActionAddNonDbLayer

Cliccare l'icona Edit Current Grass Region Image grass_region_edit Impostare la risoluzione pari a 30 (metri) in corrispondenza di N-S RES e E-W res

Curve raster

Prima di procedere con l'interpolazione delle quote è necessario importare la mappa curvespear (giàutilizzata in precedenza) nel formato nativo di grass e poi convertirla da vettoriale in raster.

Per procedere alla conversione nel formato di GRASS bisogna caricare lo shapefile curvespear in QGIS.

Cliccare l'icona GRASS Tools e selezionare tra i moduli la voce File -> Import vector -> v.in.ogr (Import OGR/POSTGIS vector layer) SI apriràuna finestra in cui è necessario indicare il nome del file di output, che può essere curvespear1.

Per le successive elaborazioni la mappa delle curve di livello va convertita in formato raster. Tra i moduli di GRASS tools scegliere

File -> Convert a vector to raster using attribute values

Image vtorast

Per caricare in legenda e visualizzare subito la mappa appena creata cliccare "view output" In alcune versioni il modulo non funziona correttamente, nel caso digitare nella shell di GRASS il comando seguente

v.to.rast input=curvespear output=curveraster use=attr column=HEIGHT

Interpolazione del DTM

Esistono varie tecniche di interpolazione che sfruttano vari algoritmi e diversi tipi di dati di input. Molti algoritmi lavorano partendo da dati puntiformi e non da curve di livello, in questo caso tra i vari moduli presenti si sceglie di interpolare le curve di livello con il comando r.surf.contour, che si trova nel menù di Grass tools Raster -> Interpolate Surface -> modulo r.surf.contour surface generation program from rasterized contours

Image rsurf

Scegliere come file di input il raster appena creato (curveraster) e come output un nome significativo (ad esempio dtm30m) e premere Run per iniziare l'elaborazione. Poichè è stata selezionata una risoluzione di 30 metri, il modello digitale che risulta dall'elaborazione avràtale risoluzione. Diminuendo la dimensione dei pixel i modelli digitali avranno accuratezza differente: tanto più piccoli sono i pixel tanto più lenta risulta l'elaborazione.

Visualizzare il risultato, che saràuna mappa in toni di grigio. Per cambiare il colore ad una mappa raster di GRASS si può utilizzare il modulo r.colors che si trova nella GRASS tools alla voce Raster -> Manage map color -> r.colors Set raster color table from setted table

Image dem_ne

Selezionare "Global elevation color table" per un risultato come in figura, oppure fare delle prove con i colori a disposizione nel menù.

Calcolo di esposizione e pendenza

In questa parte si utilizza il modello digitale del terreno per calcolare carte di esposizione e pendenza. Queste elaborazioni sono spesso utilizzate nel campo dell'analisi ambientale, ecologica e nella pianificazione territoriale.

Per creare la mappa della pendenza si utilizzi il modulo r.slope.aspect che si trova tra i GRASS tools in Raster -> Terrain analysis -> r.slope.aspect -> Generate slope map from DEM. Fare attenzione a scegliere il primo dei due moduli, altrimenti si calcola l'esposizione. Il file di input è il DTM dtm30m, come nome per il file di output conviene usarne uno significativo, ad esempio slope o pendenza. Visualizzare che il risultato sia come in figura cliccando "View output"

Image slope

Ripetere la procedura usando il secondo modulo r.slope.aspect -> Generate aspect map from DEM e calcolare la mappa di esposizione.

Image aspect

Vista 3D

Una volta creato il DTM, lo si può visualizzare in 3D: lanciare il programma nviz, uno degli ultimi moduli di GRASS Toolbox 3d Visualization -> Open 3D View in NVIZ.

Image nviz

Per rimuovere le curve di livello dalla vista e aggiungere altri vettoriali scegliere nel menù Visualize della finestra di NVIZ la voce "Vector Lines/3D Polygons" e cliccare il tasto Delete accanto al nome curvespear

è possibile cambiare interattivamente la posizione del punto di vista usando il pannello con la freccia ed i punti cardinali... anche in questo caso, minore è la risoluzione, maggiore è la velocitàdi elaborazione. Provare a cambiare i parametri per modificare la vista a piacimento.

Image geology
In questa immagine la mappa geology è stata "spalmata" sul DTM creato. Per fare ciò si selezione nel menù Visualize -> Raster surfaces. Nella finestra che si apre viene visualizzato: Current:dtm30m. Si clicchi il tasto sottostante Surface attribute scegliere color nel menù a tendina: si apriràun'ulteriore finestra: cliccare New Map e scegliere geology. Accettare ogni volta che viene richiesto.



Torna all'indice: Tutorial QGIS/GRASS

About this document ...

Tutorial QuantumGIS/GRASS

This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.71)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split=3 tutorial_qgis.tex

The translation was initiated by Clara Tattoni on 2009-04-11


Clara Tattoni 2009-04-11