Integrazione con GRASS GIS

Il plugin GRASS consente l’accesso ai dati e alle funzioni di GRASS GIS (vedi GRASS-PROJECT Literature and Web References) , inclusa la visualizzazione di layer raster e vettoriali, la digitalizzazione di layer vettoriali, la modifica degli attributi, la creazione di nuovi vettori e l’analisi di dati GRASS 2D e 3D tramite più di 300 moduli GRASS.

Questa sezione contiene un’introduzione sulle funzionalità del plugin e qualche esempio sulla gestione e l’utilizzo di dati GRASS. Quando viene abilitato il plugin GRASS, come descritto alla Sezione Avviare il plugin GRASS, le seguenti funzionalità sono disponibili nella barra degli strumenti GRASS:

  • grass_open_mapset Apri mapset

  • grass_new_mapset Nuovo mapset

  • grass_close_mapset Chiudi mapset

  • grass_add_vector Aggiungi vettore GRASS

  • grass_add_raster Aggiungi raster GRASS

  • grass_new_vector_layer Crea nuovo vettore GRASS

  • grass_edit Modifica vettore GRASS

  • grass_tools Apri strumenti GRASS

  • grass_region Visualizza la regione di GRASS attuale

  • grass_region_edit Modifica la regione di GRASS attuale

Avviare il plugin GRASS

Per usare le funzioni GRASS e/o visualizzare layer raster e vettoriali in formato GRASS in QGIS, bisogna prima selezionare e caricare il plugin GRASS con il gestore di plugin. Cliccare su Plugins ‣ mActionShowPluginManager Gestione plugins, selezionare checkbox GRASS e cliccare su [OK].

Ora è possibile caricare layer raster e vettoriali da una LOCATION GRASS esistente (sezione Caricare layer raster e vettoriali GRASS).È anche possibile creare una nuova LOCATION GRASS in QGIS (sezione Creare una nuova LOCATION GRASS) e importarci dati raster e vettoriali (sezione Importare dati nelle LOCATION GRASS) per ulteriori analisi con gli strumenti GRASS (sezione Gli strumenti GRASS).

Caricare layer raster e vettoriali GRASS

Con il plugin GRASS, possono essere caricati layer raster o vettoriali usando il pulsante appropriato nella barra strumenti. Come esempio si consideri il set di dati Alaska (Sezione Dati campione) che contiene una LOCATION GRASS campione contenente tre layer vettoriali e una mappa di altitudine raster.

  1. Creare una nuova cartella grassdata, nella quale scaricare il set di dati Alaska denominato qgis_sample_data.zip dall’indirizzo web http://download.osgeo.org/qgis/data/ e decomprimere il file nella cartella grassdata.

  2. Avviare QGIS

  3. If not already done in a previous QGIS session, load the GRASS plugin clicking on Plugins ‣ mActionShowPluginManager Manage Plugins and activate checkbox GRASS. The GRASS toolbar appears in the QGIS main window.
  4. Nella barra degli strumenti GRASS, cliccare sull’icona grass_open_mapsetApri mapset per aprire la finestra Scegli mapset GRASS.

  5. Alla voce Gisdbase inserire il’indirizzo completo o navigare fino alla cartella grassdata appena creata.

  6. Dovrebbe ora essere possibile selezionare la LOCATION selectstring alaska e il MAPSET selectstring demo.

  7. Cliccare su [OK]. Si noti che ora alcuni degli strumenti precedentemente disabilitati sono divenuti attivi.

  8. Cliccare su grass_add_raster Aggiungi raster GRASS, scegliere la mappa denominata gtopo30 e cliccare su [OK]. Verrà visualizzato il layer delle quote del terreno.

  9. Cliccare su grass_add_vector Aggiungi vettore GRASS, selezionare la mappa denominata alaska e cliccare su [OK]. Il confine Alaska verrà sovrapposto alla mappa gtopo30. Ora è possibile adattare le proprietà del layer come descritto nel capitolo Proprietà dei layer vettoriali, ovvero cambiare la trasparenza, il colore di riempimento e del contorno dell’elemento.

  10. Caricare anche gli altri due layer vettoriali denominati rivers e airports e modificarne le proprietà.

As you see, it is very simple to load GRASS raster and vector layers in QGIS. See following sections for editing GRASS data and creating a new LOCATION. More sample GRASS LOCATIONs are available at the GRASS website at http://grass.osgeo.org/download/data.php.

Suggerimento

Caricare dati GRASS

Se si presentano problemi nel caricare dati o QGIS termina inaspettatamente, assicurarsi di aver caricato il plugin GRASS correttamente come descritto alla Sezione Avviare il plugin GRASS.

LOCATION e MAPSET in GRASS

GRASS organizza i propri dati in cartelle alle quali si fa riferimento con la denominazione GISDBASE. Queste cartelle, spesso chiamate grassdata, devono essere create prima di iniziare a lavorare con il plugin GRASS in QGIS. In queste directory, i dati GRASS sono organizzati per progetti inseriti in sottocartelle chiamate LOCATION. Ogni LOCATION è definita da un sistema di coordinate, da una proiezione e dall’estensione geografica. La LOCATION può avere a sua volta molte sottocartelle denominate MAPSET usate per suddividere il progetto in diversi argomenti, sottoregioni o spazi di lavoro per i diversi membri del team che vi sta lavorando (Neteler & Mitasova 2008 Literature and Web References). Per analizzare layer raster e vettoriali con i moduli GRASS, bisogna importarli in una LOCATION GRASS (tuttavia con i moduli di GRASS r.external e v.external è possibile creare dei collegamenti a database supportati da GDAL/OGR senza doverli importare. Questa funzione non è consigliabile a chi si sta avvicinando a GRASS e non verrà descritta di seguito).

Figure GRASS location 1:

../../../_images/grass_location.png

GRASS data in the alaska LOCATION

Creare una nuova LOCATION GRASS

Per questo e per tutti i successivi esempi riguardanti GRASS GIS verrà usata la LOCATION alaska campione, nel sistema di riferimento Albers Equal Area, unità di misura in metri e creata dal set di dati campione di QGIS. Sarà utile scaricare ed installare il set di dati sul proprio computer (Dati campione).

  1. Avviare QGIS e assicurarsi che il plugin GRASS sia caricato

  2. Visualizzare lo shapefile alaska.shp (sezione Caricare uno shapefile) dal dataseti di dati alaska Dati campione.

  3. Nella barra strumenti GRASS, cliccare sull’icona grass_new_mapsetNuovo mapset per avviare la procedura guidata.

  4. Selezionare la cartella contenente il database GRASS (GISDBASE) denominata grassdata o crearne una nuova in cui ospitare la nuova LOCATION usando il gestore di file installato sul proprio computer. Cliccare su [Next].

  5. Per creare un nuovo MAPSET in una LOCATION esistente (sezione Aggiungere un nuovo MAPSET) o per creare una nuova LOCATION, selezionare l’opzione radiobuttononCrea nuova location (figura figure_grass_location_2).

  6. Inserire il nome della LOCATION - nell’esempio abbiamo usato alaska e cliccare su [Next].

  7. Definire la proiezione cliccando sull’opzione radiobuttononProiezione per abilitare l’elenco delle proiezioni.

  8. Scegliere la proiezione Albers Equal Area Alaska (feet). Siccome ne conosciamo l’identificativo EPSG 2964, inserirlo nella casella di ricerca. (Nota: se si vuole ripetere il processo per un’altra LOCATION e non si è memorizzato l’identificativo EPSG della proiezione, cliccare sull’icona mIconProjectionEnabled Stato SR a destra della barra di stato (sezione Lavorare con le proiezioni)).

  9. Cliccare su Trova e inserire 2964 per selezionare la proiezione.

  10. Cliccare su [Next].

  11. Per definire l’estensione della regione predefinita, bisogna inserire i limiti della LOCATION verso nord, sud, est e ovest. Nel nostro esempio cliccare semplicemente sul pulsante Imposta estensione attuale di QGIS, per applicare l’estensione del layer caricato alaska.shp come estensione predefinita della regione GRASS.

  12. Cliccare su [Next].

  13. Abbiamo anche bisogno di definire un MAPSET interno alla LOCATION. Il nome è a scelta, nell’esempio abbiamo usato demo. Quando si crea una nuova LOCATION, GRASS crea automaticamente un MAPSET speciale chiamato PERMANENT designato a contenere i dati di base del progetto, l’estensione spaziale predefinita e la definizione del sistema di coordinate (Neteler & Mitasova 2008 Literature and Web References)

  14. Controllare il riassunto per assicurarsi che le impostazioni siano corrette e cliccare su [Finish].

  15. La nuova LOCATION alaska e i MAPSETs demo e PERMANENT vengono creati. Il set di lavoro impostato per il lavoro corrente è il MAPSETs demo.

  16. Si noti che alcuni strumenti della barra di GRASS precedentemente disabilitati sono ora attivi.

Figure GRASS location 2:

../../../_images/create_grass_location.png

Creating a new GRASS LOCATION or a new MAPSET in QGIS

Per quanto possa sembrare lunga, questa procedura costituisce un modo veloce per creare una LOCATION. La LOCATION alaska è ora pronta per l’importazione dei dati (sezione Importare dati nelle LOCATION GRASS). È possibile usare dati raster e vettoriali della LOCATION alaska del set di dati QGIS alaska (Dati campione) e procedere alla sezione Il modello dati vettoriale di GRASS.

Aggiungere un nuovo MAPSET

Ogni utente ha accesso in scrittura solo ai MAPSET GRASS che ha creato. Ciò implica che oltre ad accedere ai propri MAPSET, l’utente può anche leggere i dati contenuti nei MAPSET creati da altri, ma può modificare o rimuovere solo i dati nei suoi MAPSET.

Tutti i MAPSET includono un file denominato WIND nel quale sono memorizzate le coordinate dei limiti della regione e la risoluzione spaziale impostata per i raster (Neteler & Mitasova 2008 Literature and Web References, sezione Lo strumento Regione di GRASS)).

  1. Avviare QGIS e assicurarsi che il plugin GRASS sia caricato

  2. Nella barra degli strumenti GRASS, cliccare sull’icona grass_new_mapset Nuovo mapset per avviare la procedura guidata di creazione del MAPSET.

  3. Selezionare la cartella GRASS (GISDBASE) grassdata con il nome LOCATION alaska, nel quale si vuole aggiungere un ulteriore MAPSET, che chiameremo test.

  4. Cliccare su [Next].

  5. Con questa procedura possiamo creare un nuovo MAPSET all’interno di una LOCATION esistente e creare anche una nuova LOCATION contemporaneamento. Cliccare sull’opzione radiobuttononSelezionare location (figura figure_grass_location_2) e cliccare su [Next].

  6. Inserire il nome text per il nuovo MAPSET. Più in basso nella finestra è visibile una lista di MAPSETs esistenti e i relativi proprietari.

  7. Cliccare su [Next], controllare il riassunto per assicurarsi che le impostazioni siano corrette e cliccare su [Finish].

Importare dati nelle LOCATION GRASS

Questa Sezione fornisce un esempio su come importare dati raster e vettoriali nella LOCATION GRASS alaska fornita dal set di dati QGIS alaska. Verrà usata la mappa raster dell’uso del suolo landcover.img e il file vettoriale GML lakes.gml.

  1. Avviare QGIS e assicurarsi che il plugin GRASS sia caricato

  2. In the GRASS toolbar, click the grass_open_mapsetOpen MAPSET icon to bring up the MAPSET wizard.
  3. Select as GRASS database the folder grassdata in the QGIS alaska dataset, as LOCATION alaska, as MAPSET demo and click [OK].
  4. Cliccare ora sullo strumento grass_tools Apri strumenti GRASS. Apparirà la finestra degli strumenti di GRASS (sezione Gli strumenti GRASS).

  5. Per importare la mappa raster landcover.img, cliccare sul modulo r.in.gdal nella scheda Albero moduli. Questo modulo GRASS consente l’importazione di file supportati da GDAL in una LOCATION GRASS. Apparirà la finestra di dialogo del modulo r.in.gdal.

  6. Navigare nella cartella raster nel set di dati QGIS alaska e selezionare il file landcover.img.

  7. Come nome del raster in uscita inserire landcover_grass e cliccare su [Esegui]. Nella scheda Output è possibile verificare l’avanzamento del comando GRASS r.in.gdal -o input=/path/to/landcover.img output=landcover_grass.

  8. Quando compare la dicitura Operazione conclusa con successo cliccare sul pulsante [Visualizza output]. Il layer raster landcover_grass è ora importato in GRASS e verrà visualizzato nella vista mappa di QGIS.

  9. Per importare il vettore lakes.gml, usare il modulo v.in.ogr nella scheda Albero moduli. Questo modulo GRASS consente di importare i formati vettoriali supportati da OGR in una LOCATION GRASS. Apparirà la finestra di dialogo v.in.ogr.

  10. Navigare alla cartella gml nel set di dati QGIS alaska e selezionare il file lakes.gml come file OGR.

  11. Come nome del vettore in uscita inserire lakes_grass e cliccare su [Esegui].In questo esempio è possibile trascurare altre opzioni. Nella scheda Output è possibile verificare l’avanzamento del comando GRASS v.in.ogr -o dsn=/path/to/lakes.gml output=lakes_grass.

  12. Quando compare la dicitura Operazione conclusa con successo cliccare sul pulsante [Visualizza output]. Il layer vettoriale lakes_grass è ora importato in GRASS e verrà visualizzato nella vista mappa di QGIS.

Il modello dati vettoriale di GRASS

È importante comprendere il modello dati vettoriale di GRASS, per gestire nella maniera ottimale le attività di digitalizzazione.

In generale, GRASS usa un modello dati vettoriale topologico.

Questo significa che le aree non sono rappresentate con poligoni chiusi singoli, ma da uno o più contorni (boundary). Un contorno tra due aree adiacenti è digitalizzato una sola volta e condiviso da entrambe le aree. Perché un’area sia topologicamente corretta, i contorni devono essere connessi senza soluzione di continuità. Un’area è identificata (ed etichettata) dal suo centroide.

Oltre a contorni e centroidi, una mappa vettoriale può contenere anche punti e linee. Tutti questi elementi possono essere compresenti in un singolo layer vettoriale e saranno rappresentati con ’livelli’ differenti in una mappa vettoriale GRASS. Quindi in GRASS con ’layer’ non s’intende una mappa raster o vettoriale bensì un livello all’interno di un dato vettoriale. Questa è una distinzione molto importante da tenere presente (Sebbene sia possibile mescolare elementi geometrici di diverso tipo (punti, linee, contorni e centroidi), ciò è abbastanza insolito e perfino in GRASS viene usato solo in casi speciali come ad es. quando si esegue l’analisi di una rete vettoriale. Di solito è preferibile che elementi geometrici diversi vengano digitalizzati su file distinti).

È possibile salvare più ’livelli’ in un set di dati vettoriale. Per esempio campi, foreste e laghi possono essere salvati in un vettore. Foreste e laghi adiacenti possono condividere lo stesso contorno, ma avranno tabelle degli attributi distinte. È anche possibile assegnare attributi ai contorni. Ad esempio se il contorno tra un lago ed una foresta è una strada, questa può avere una diversa tabella degli attributi.

Il livello di un elemento è definito layer in GRASS. Layer è il numero che indica se c’è più di un gruppo geometrico nel set di dati vettoriale, ad es. se la geometria è foresta o lago. Attualmente tale indice può essere solo un numero, in versioni di GRASS successive saranno supportati anche stringhe di testo.

Gli attributi degli elementi geometrici possono essere memorizzati nella LOCATION GRASS in formato DBase o SQLITE3 o in database esterni come PostgreSQL, MySQL, Oracle, ecc.

Gli attributi contenuti nelle tabelle del database sono collegati alla geometria per il tramite di un valore ’category’.

’Category’ (key, ID) è un valore intero collegato alle primitive geometriche ed è usato come collegamento ad una colonna chiave nella tabella del database.

Suggerimento

Conoscere il modello dati vettoriale di GRASS

Il miglior modo per capire il modello dati vettoriale di GRASS e le sue capacità è quello di scaricare una delle molte guide (tutorial) di GRASS nelle quali tale modello è descritto più approfonditamente. Si veda http://grass.osgeo.org/gdp/manuals.php per informazioni, libri e guide in diverse lingue.

Creare un nuovo layer vettoriale GRASS

Per creare un nuovo layer vettoriale GRASS tramite il plugin GRASS cliccare sullo strumento grass_new_vector_layer Crea un nuovo vettore GRASS. Inserire un nome nella casella di testo e iniziare la digitalizzazione di punti, linee o poligoni, seguendo la procedura descritta alla sezione Digitalizzare e modificare layer vettoriali GRASS.

In GRASS è possibile gestire ogni tipo di geometria (punti, linee ed aree) in un singolo layer, in quanto viene impiegato un modello dati vettoriale topologico; di conseguenza non è necessario definire a priori il tipo di geometria che si intende utilizzare per un nuovo vettore. In questo il modello dati di GRASS si differenzia ad esempio dal formato shapefile di QGIS, che usa un modello vettoriale denominato Simple Feature (sezione Creare nuovi layer vettoriali).

Suggerimento

Creare una tabella attributi per un nuovo layer vettoriale GRASS

Se si desidera assegnare attributi alla geometria digitalizzata, accertarsi di definire lo schema della tabella prima di iniziare a digitalizzare (figura figure_grass_digitizing_5).

Digitalizzare e modificare layer vettoriali GRASS

Gli strumenti di digitalizzazione per i layer vettoriali GRASS sono accessibili con l’icona|grass_edit| Modifica vettore GRASS nella barra degli strumenti GRASS. Assicurarsi di caricare un vettoriale GRASS e che esso sia selezionato nella legenda prima di attivare lo strumento di digitalizzazione. La figura figure_grass_digitizing_2 mostra la finestra di dialogo degli strumenti di digitalizzazione GRASS che viene mostrata quando si clicca sullo strumento di modifica. Gli strumenti e le impostazioni di questa barra saranno discussi nelle sezioni seguenti.

Suggerimento

Digitalizzare poligoni in GRASS

Per creare poligoni in GRASS, bisogna iniziare con il digitalizzarne i contorni, impostando preliminarmente il modo Nessuna categoria. Una volta chiuso il poligono, aggiungere un centroide (punto dell’etichetta) all’interno del contorno chiuso impostando preliminarmente la modalità Prossimo non in uso. Questa procedura è necessaria in quanto il modello di dati vettoriale topologico collega le informazioni sull’attributo del poligono sempre al centroide e non al contorno.

Barra degli strumenti di digitalizzazione

Nella figura figure_grass_digitizing_1 sono mostrate le icone della barra degli strumenti per la digitalizzazione del plugin GRASS. La tabella table_grass_digitizing_1 mostra le funzioni disponibili.

Figure GRASS digitizing 1:

../../../_images/grass_digitizing_toolbar.png

GRASS Digitizing Toolbar

Icona

Strumento

Azione

grass_new_point

Nuovo punto

Digitalizza un nuovo punto

grass_new_line

Nuova linea

Digitalizza una nuova linea

grass_new_boundary

Nuovo contorno

Digitizalizza nuovo contorno (annullare selezionando un altro strumento)

grass_new_centroid

Nuovo centroide

Digitalizza un nuovo centroide (imposta l’etichetta per un’area esistente)

grass_move_vertex

Sposta vertice

Sposta un vertice di una linea o contorno esistente in una nuova posizione

grass_add_vertex

Aggiungi vertice

Aggiunge un vertice ad una linea o contorno esistente

grass_delete_vertex

Elimina vertice

ancella vertici da linee e contorni esistenti (confermare l’eliminazione del vertice selezionato cliccando una seconda volta)

grass_move_line

Sposta elemento

Sposta il contorno, la linea, il punto o il centroide selezionato in una nuova posizione

grass_split_line

Dividi linea

Divide una linea o un contorno in due parti nel punto selezionato

grass_delete_line

Elimina elemento

Elimina un contorno, una linea, un punto o un centroide esistente (confermare cliccando una seconda volta)

grass_edit_attributes

Modifica attributi

Modifica gli attributi dell’elemento selezionato (si noti che ad un elemento possono essere associati più attributi, si veda sopra)

grass_close_edit

Chiudi

Chiude la sessione e salva lo stato attuale (ricostruisce la topologia)

Tabella Strumenti per la digitalizzazione in GRASS

Scheda Categoria

La scheda Category consente di definire il modo in cui i valori della categoria verranno assegnati al nuovo elemento geometrico.

Figure GRASS digitizing 2:

../../../_images/grass_digitizing_category.png

GRASS Digitizing Category Tab

  • Modalità: modalità con la quale viene assegnata la categoria (colonna cat della tabella) alle geometrie digitalizzate.

    • Prossimo non in uso - applica il primo valore non utilizzato in ordine numerico crescente.

    • Inserimento manuale - definizione manuale della categoria da assegnare all’elemento.

    • Nessuna categoria - non assegna alcun valore all’elemento. Questa modalità è in genere usata ad esempio per i contorni dei poligoni ai quali la categoria viene collegata tramite il centroide.

  • Categoria- Il numero (ID) inserito o visualizzato viene associato ad ogni elemento digitalizzato. Viene usato per collegare ogni elemento geometrico ai relativi attributi.

  • Layer - Ogni elemento geometrico può essere collegato con molteplici tabelle attributo usando diversi livelli (“layer”) secondo il modello GRASS: il numero del layer predefinito è 1.

Suggerimento

Creare un livello GRASS aggiuntivo con QGIS

Se si vogliono aggiungere ulteriori livelli al set di dati, inserire semplicemente un numero nel campo ‘Layer’ e dare invio. Nella scheda Tabella sarà a questo punto possibile creare il nuovo schema degli attributi da associare a questo livello.

Scheda Preferenze

La scheda Preferenze consente di impostare la tolleranza per l’aggancio automatico tra elementi (snapping) in pixels dello schermo. La soglia definisce a quale distanza massima nuovi punti o linee sono agganciati ad altri nodi esistenti. Ciò aiuta ad evitare interruzioni o incroci tra contorni. Il valore preimpostato è 10 pixels.

Figure GRASS digitizing 3:

../../../_images/grass_digitizing_settings.png

GRASS Digitizing Settings Tab

Scheda Simbologia

La scheda Simbologia consente di visualizzare e impostare la simbologia e i colori dei vari tipi geometrici nei vari stati topologici (ad es. contorni aperti/chiusi).

Figure GRASS digitizing 4:

../../../_images/grass_digitizing_symbology.png

GRASS Digitizing Symbolog Tab

Scheda Tabella

La scheda Tabella`fornisce informazioni sulla struttura della tabella per un determinato livello. È possibile aggiungere nuove colonne ad una tabella attributi esistente o creare un nuovo schema tabella per un nuovo layer vettoriale GRASS o per un nuovo livello (sezione :ref:`creating_new_grass_vectors).

Figure GRASS digitizing 5:

../../../_images/grass_digitizing_table.png

GRASS Digitizing Table Tab

Suggerimento

Permessi di modifica in GRASS

È necessario essere il proprietario del MAPSET GRASS che si vuole editare. Non è possibile modificare dati in un MAPSET del quale non si è proprietari, anche se si possiedono su di esso permessi in scrittura.

Lo strumento Regione di GRASS

L’impostazione di una regione (ovvero di una porzione di spazio geografico nella quale operare) è molto importante in GRASS, specialmente quando si lavora con dati raster. L’analisi vettoriale non è limitata all’impostazione della regione ma interessa tutta l’estensione del layer. Tutti i raster di nuova creazione avranno l’estensione e la risoluzione spaziale della regione GRASS definita, indipendentemente dalla loro estensione e risoluzione originale. L’impostazione corrente della regione GRASS è salvata nel file $LOCATION/$MAPSET/WIND che ne definisce i limiti nord, sud est e ovest, il numero di righe e colonne e la risoluzione spaziale in senso orizzontale e verticale.

È possibile abilitare/disabilitare la visualizzazione della regione di GRASS nella vista mappa in QGIS usando il pulsante grass_region Visualizza la regione di GRSS attuale.

Con lo strumento grass_region_edit Modifica la regione di GRAS attuale è possibile aprire una finestra di dialogo per cambiare le impostazioni correnti della regione e la simbologia con la quale il rettangolo che la rappresenta viene visualizzato nella vista mappa di QGIS. Inserire i nuovi limiti della regione e la risoluzione e cliccare su [OK] . Lo strumento consente anche di selezionare l’estensione della regione interattivamente con il mouse nella vista mappa di QGIS. Cliccando con il tasto sinistro del mouse nella vista mappa si imposta il primo angolo del rettangolo che definirà la regione e cliccando in un altro punto lo si chiuderà: cliccare su [OK] per confermare.

Il modulo GRASS g.region mette a disposizione molti più parametri per definire l’estensione della regione e la risoluzione con la quale si vuole condurre l’analisi raster. Si possono usare questi parametri tramite lo strumento GRASS appropriato Gli strumenti GRASS.

Gli strumenti GRASS

Cliccando su grass_tools Apri strumenti GRASS si ha accesso alle funzionalità dei moduli GRASS con i quali lavorare nella LOCATION e nel MAPSET impostati. Per usare gli strumenti di GRASS è necessario aprire una LOCATION e un MAPSET sui quali si abbiano permessi di scrittura (in genere concessi se si è l’utente che ha creato il MAPSET). Ciò è necessario in quanto i nuovi layer raster o vettoriali creati durante l’analisi devono poter essere scritti nella LOCATION e nel MAPSET selezionati.

Figure GRASS toolbox 1:

../../../_images/grass_toolbox_moduletree.png

GRASS Toolbox and Module Tree nix

La shell di GRASS fornisce accesso a praticamente tutti gli oltre 330 moduli GRASS in modalità riga di comando. Per offrire un ambiente di lavoro maggiormente user-friendly, circa 200 di questi moduli e loro relative funzionalità sono presentati in finestre di dialogo. Questi moduli sono raggruppati in blocchi tematici: è disponibile una funzione di ricerca.

Lavorare con i moduli GRASS

La shell di GRASS fornisce accesso a praticamente tutti gli oltre 300 moduli GRASS in modalità riga di comando. Per offrire un ambiente di lavoro maggiormente user-friendly, circa 200 di questi moduli e loro relative funzionalità sono presentati in finestre di dialogo. Questi moduli sono raggruppati in blocchi tematici: è disponibile una funzione di ricerca.

È possibile trovare la lista completa dei moduli GRASS accessibili tramite l’interfaccia grafica di QGIS nel wiki di GRASS: http://grass.osgeo.org/wiki/GRASS-QGIS_relevant_module_list.

È possibile personalizzare il contenuto della finestra di dialogo degli strumenti GRASS: la procedura è descritta nella sezione Personalizzare gli strumenti GRASS.

Come mostrato in figura figure_grass_toolbox_1 , è possibile ricercare il modulo GRASS desiderato per aree tematiche nella scheda Albero moduli o nella scheda Lista moduli che permette la ricerca per parola chiave.

Clicking on a graphical module icon a new tab will be added to the toolbox dialog providing three new sub-tabs Options, Output and Manual.

Opzioni

La scheda Opzioni fornisce una finestra semplificata nel quale di solito è possibile selezionare un layer raster o vettoriale ed inserire ulteriori opzioni specifiche per l’esecuzione del modulo.

Figure GRASS module 1:

../../../_images/grass_module_option.png

GRASS Toolbox Module Options nix

Per mantenere la leggibilità della finestra non sempre sono presenti tutte le opzioni: qualora si volessero usare ulteriori parametri per il modulo è necessario avviare la shell di GRASS ed eseguire il modulo dalla riga di comando.

Una nuova caratteristica di QGIS 1.8.0 è il supporto per un pulsante Mostra le opzioni avanzate nella scheda Opzioni della finestra di dialogo semplificata di un modulo. Al momento tale funzionalità è disponibile per pochi moduli, ma probabilmente sarà estesa ad altri moduli nelle prossime versioni di QGIS. Ciò permetterà di sfruttare appieno le potenzialità dei moduli di GRASS senza dover usare la shell.

Output

Figure GRASS module 2:

../../../_images/grass_module_output.png

GRASS Toolbox Module Output nix

The Output tab provides information about the output status of the module. When you click the [Run] button, the module switches to the Output tab and you see information about the analysis process. If all works well, you will finally see a Successfully finished message.

Manuale

Figure GRASS module 3:

../../../_images/grass_module_manual.png

GRASS Toolbox Module Manual nix

La scheda Manuale mostra la pagina di aiuto in formato HTML del modulo GRASS scelto: permette di verificare la disponibilità di ulteriori parametri o ottenere una conoscenza più approfondita delle operazioni che il modulo può eseguire. Alla fine di ogni pagina di manuale vi sono ulteriori collegamenti al Main Help index, al Thematic index o al Full index. Questi link forniscono le stesse informazioni che si avrebbero usando il modulo g.manual.

Suggerimento

Mostrare i risultati immediatamente

Se si desidera visualizzare il risultato di un’analisi immediatamente nella vista mappa, è possibile cliccare sul pulsante Visualizza Output nella porzione inferiore della scheda.

Esempi di utilizzo di moduli GRASS

Gli esempi che seguono mostrano le potenzialità di alcuni moduli GRASS.

Creare curve di livello

Come primo esempio, deriviamo le curve di livello a partire da un modello digitale di elevazione (DEM): si assume che la LOCATION Alaska sia impostata come descritto nella sezione Importare dati nelle LOCATION GRASS.

  • Aprire la ’location’ Alaska cliccando su grass_open_mapset Apri mapset .

  • Caricare il DEM gtopo30 cliccando su grass_add_raster Aggiungi raster GRASS e selezionare gtopo30 dal mapset demo.

  • Aprire gli strumenti GRASS con grass_tools Apri strumenti GRASS.

  • Nell’albero dei moduli cliccare su Raster ‣ Gestione superficie ‣ Genera curve di livello vettoriali.

  • Cliccando su r.contour si aprirà la finstra di dialogo dello strumento com spiegato in Lavorare con i moduli GRASS. Il raster gtopo30 dovrebbe apparire in Nome della mappa raster in input.

  • Inserire in Incrementa fra le isoipse selectnumber il valore 100. (per creare curve di livello ad intervalli di 100 metri)

  • Inserire in Nome del vettoriale in output il nome ctour_100.

  • Cliccare su [Esegui] ed attendere fino alla comparsa del messaggio Operazione conclusa con successo: quindi cliccare su [Visualizza] risultato e su [Chiudi].

Dal momento che la regione è pittosto estesa, il comando richiede del tempo. Una volta terminata l’operazione è possibile modificare le proprietà del nuovo layer vettoriale come descritto in Proprietà dei layer vettoriali.

Ingrandendo una porzione della mappa in un’area più montagnosa si potrà notare come le curve di livello appaiano spigolose. In GRASS è disponibile il modulo v.generalize per alterare leggermente un vettore senza modificarne la forma generale: il modulo utilizza diversi algoritmi, ognuno per uno scopo specifico. Alcuni algoritmi (es. Douglas Peuker e Vertex reduction) semplificano una linea rimuovendo alcuni vertici: il risultato sarà più veloce da caricare. Tale tipo di algoritmo è ad esempio molto utile nel caso in cui si abbia una mappa vettoriale molto dettagliata, ma si sta lavorando ad una scala molto piccola per cui tanto dettaglio non è necessario.

Suggerimento

Semplifica geometrie

Si noti che lo strumento Semplifica geometrie di fTools opera allo stesso modo dell’algoritmo Douglas-Peuker di v.generalize.

Ad ogni modo, lo scopo dell’esempio è diverso: le curve di livello create con r.contour hanno angoli molto acuti che devono essere smussati. Tra gli algoritmi di v.generalize Chaikens (o anche Hermite splines) fa al caso nostro. Si noti che l’algoritmo potrebbe aggiungere dei vertici, rendendo il caricamento della mappa ancora più lento.

  • Aprire gli strumenti di GRASS e lanciare il modulo Vettore ‣ Elabora mappa ‣ Generalizzazione e cliccare su v.generalize.

  • Controllare che ‘ctour_100’ appaia come Nome della mappa vettoriale in input.

  • Scegliere Chaiken’s come algoritmo di generalizzazione ed inserire il Nome del vettoriale in output ‘ctour_100_smooth’ e cliccare su [Esegui].

  • Il processo richiederà un po’ di tempo. Una volta che viene visualizzato Operazione conclusa con successo, cliccare su [Visualizza output] e poi su [Chiudi].

  • È possibile modificare il colore del layer vettoriale in modo da renderlo ben visibile sul raster si sfondo. Si potrà notare come le curve di livello ora appaiano meno spigolose.

Figure GRASS module 4:

../../../_images/grass_toolbox_vgeneralize.png

GRASS module v.generalize to smooth a vector map nix

Suggerimento

Altri usi di r.contour

La procedura appena descritta può essere usata in situazioni equivalenti. Se si ha un raster delle precipitazioni, ad esempio, si può usare r.contour per derivare le isoiete (curve a precipitazione costante).

Creare un rilievo ombreggiato con effetto 3D

Ci sono diversi modi per visualizzare dati di elevazione e dare un effetto 3D alla vista. L’uso delle curve di livello è uno dei metodi più utilizzato, sopratutto nella produzione di mappe topografiche. Un altro modo consiste nell’utilizzare l’ombreggiatura. L’ombra viene derivata da un DEM, calcolando prima pendenze ed orientamento, poi simulando la posizione del sole nel cielo per assegnare un valore di riflettanza per ogni cella del raster: in tal modo le pendenze in ombra saranno più scure di quelle esposte al sole.

  • Caricare il raster gtopo30, aprire gli strumenti di GRASS e lanciare il modulo Analisi spaziali ‣ Analisi geomorfologica.

  • Cliccare r.shaded.relief per aprire il modulo.

  • Impostare l’azimuth selectnumber da 270 a 315.

  • Inserire gtopo30_shade per il nuovo raster delle ombreggiature e cliccare su [Esegui].

  • Quando il processo sarà completato, aggiungere il raster ombreggiatura alla vista mappa.

  • Il nuovo raster verrà visualizzato in scala di grigi: per vedere contemporaneamente l’ombreggiatura ed i colori di gtopo30, portare gtopo30_shade sotto gtopo30 nella legenda, quindi aprire le Proprietà di gtopo30, andare nella scheda Trasparenza ed impostare il livello di trasparenza al 25%.

Si dovrebbe vedere gtopo30 sopra la mappa di ombreggiatura in scala di grigi. Per riuscire a visualizzare appieno gli effetti dell’ombreggiatura, deselezionare gtopo30_shade.

Usare la shell di GRASS

Il plugin GRASS è orientato principalmente agli utenti che non conoscono GRASS ed i suoi moduli, con relative opzione, per cui molti moduli non mostrano tutte le possibili opzione ed altri non sono affatto presenti. La shell di GRASS consente di accedere ai moduli che non appaiono nell’interfaccia grafica ed alle opzioni aggiuntive di quelli che invece ci sono. Il seguente esempio mostra l’uso di un’opzione del modulo r.shaded.relief.

Figure GRASS module 5:

../../../_images/grass_toolbox_shell.png

The GRASS shell, r.shaded.relief module nix

The module r.shaded.relief can take a parameter zmult which multiplies the elevation values relative to the X-Y coordinate units so that the hillshade effect is even more pronounced.

  • Caricare gtopo30 ed aprire la shell di GRASS. Nella shell scrivere il comando r.shaded.relief map=gtopo30 shade=gtopo30_shade2 azimuth=315 zmult=3 e premere [invio].

  • Quando il comando ha terminato, spostarsi nella scheda Browse della finestra di dialogo degli strumenti GRASS e fare doppio click sul nuovo raster gtopo30_shade2 per visualizzarlo in QGIS.

  • Impostare le proprietà del raster così come descritto in precedenza. L’effetto 3D dovrebbe apparire più pronunciato rispetto alla mappa creata in precedenza.

Figure GRASS module 6:

../../../_images/grass_toolbox_shadedrelief.png

Displaying shaded relief created with the GRASS module r.shaded.relief nix

Statistiche raster in una mappa vettoriale

Il prossimo esempio tratta di un modulo GRASS che può aggregare dati raster ed aggiungere colonne di statistiche per ogni poligono di una mappa vettoriale.

  • Importare in GRASS lo shapefile trees nella cartella shapefiles Importare dati nelle LOCATION GRASS.

  • Prima di proseguire bisogna aggiungere i centroidi ai poligoni per farne delle aree vettoriali secondo il modello dati di GRASS.

  • Aprire gli strumenti di GRASS e lanciare il modulo Vettore ‣ Gestisci elementi, e aprire il modulo v.centroids.

  • Inserire come Nome del vettoriale in output ‘forest_areas’ e lanciare il modulo.

  • Caricare``forest_areas`` e visualizzare le categorie - deciduous, evergreen, mixed - con colori differenti. Aprire le Proprietà del layer, andare nella scheda Stile, scegliere Stile selectstring ‘Categorizzato’ e impostare ‘VEGDESC’ come campo di classificazione. (sezione sec_symbology).

  • Aprire il modulo Vettore ‣ Aggiornamento di un vettore da altre mappe.

  • Cliccare su v.rast.stats per aprire il modulo e inserire gtopo30 e forest_areas.

  • Inserire column prefix elev, e cliccare su [Esegui]: l’operazione potrebbe durare molto tempo.

  • Aprire la tabella degli attributi di forest_areas e verificare come sianto state aggiunte diverse nuove colonne, come ad esempio elev_min, elev_max, elev_mean per ogni tipo di poligono.

Lavorare con il browser delle LOCATION GRASS

Un’altra utile funzione tra quelle presenti negli strumenti GRASS è il browser delle LOCATION. In figura figure_grass_module_7 è possibile vedere un esempio che mostra la LOCATION impostata e i relativi MAPSETs.

Nella parte sinistra della finestra del browser si può navigare attraverso tutti i MAPSETs contenuti nella LOCATION impostata. La porzione di destra mostra invece alcuni metadati del raster o del vettoriale selezionato, come la risoluzione, l’estensione spaziale, la fonte del dato, il percorso alla tabella attributi associata per i dati vettoriali e lo storico comandi che ha generato quel dato.

Figure GRASS module 7:

../../../_images/grass_mapset_browser.png

GRASS LOCATION browser nix

La barra degli strumenti nella scheda Browser offre i seguenti strumenti per la gestione della LOCATION:

  • grass_add_map Aggiungi la mappa selezionata all’area di lavoro

  • grass_copy_map Copia la mappa selezionata

  • grass_rename_map Rinomina la mappa selezionata

  • grass_delete_map Elimina la mappa selezionata

  • grass_set_region Imposta la regione corrente con la mappa selezionata

  • grass_refresh Aggiorna

Gli strumenti grass_rename_map Rinomina la mappa selezionata e grass_delete_map Elimina la mappa selezionata funzionano solo su mappe contenute nel MAPSET attivo. Tutti gli altri strumenti funzionano anche con layer raster e vettoriali di altri MAPSET.

Personalizzare gli strumenti GRASS

Praticamente tutti i moduli GRASS possono essere aggiunti nella finestra di dialogo degli strumenti GRASS. Per incorporare i file XML di configurazione dei moduli è fornita un’interfaccia XML nella quale è possibile definire l’aspetto del modulo e i parametri da visualizzare nella finestra di dialogo degli strumenti.

Un esempio di file XML che genera il modulo v.buffer (v.buffer.qgm) ha il seguente aspetto:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE qgisgrassmodule SYSTEM "http://mrcc.com/qgisgrassmodule.dtd">

<qgisgrassmodule label="Vector buffer" module="v.buffer">
        <option key="input" typeoption="type" layeroption="layer" />
        <option key="buffer"/>
        <option key="output" />
</qgisgrassmodule>

Il parser legge questa definizione e crea una nuova scheda nella finestra di dialogo degli strumenti GRASS quando si seleziona il modulo. Informazioni più dettagliate su come aggiungere moduli, cambiare i gruppi di moduli ecc. sono reperibile sul Wiki di QGIS all’indirizzo http://hub.qgis.org/projects/quantum-gis/wiki/Adding_New_Tools_to_the_GRASS_Toolbox