Integrazione con GRASS GIS

The GRASS plugin provides access to GRASS GIS (see GRASS-PROJECT Letteratura e riferimenti web) databases and functionalities. This includes visualization of GRASS raster and vector layers, digitizing vector layers, editing vector attributes, creating new vector layers and analysing GRASS 2D and 3D data with more than 400 GRASS modules.

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 sec_starting_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 funzionalità di GRASS e/o visualizzare i vettori e i raster di GRASS all’interno di QGIS, è necessario selezionare e caricare il plugin GRASS all’interno del Gestore dei plugin. Occorre quindi scegliere dal menu Plugins ‣ mActionShowPluginManager Gestisci ed installa plugin, selezionare checkbox GRASS e scegliere [OK].

Ora è possibile caricare layer raster e vettoriali da una LOCATION GRASS esistente (sezione sec_load_grassdata).È 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, scaricare il dataset di esempio QGIS ‘Alaska’ qgis_sample_data.zip da http://download.osgeo.org/qgis/data/ e scoppattare il file all’interno della 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 di GRASS, selezionare il pulsante grass_open_mapset Apri mapset per evidenziare il MAPSET wizard.

  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 Aggiunge vettore GRASS, scegliere il nome mappa alaska e premere [OK]. Il vettore contenente i limiti dell’Alaska verrà sovrapposto sopra alla mappa gtopo30. A questo punto, è possibile modificare le proprietà del layer come descritto all’interno del capitolo Proprietà dei layer vettoriali, per esempio, cambiando l’opacità, il riempimento e il colore del contorno.

  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/sample-data/.

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 sec_starting_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 Letteratura e riferimenti web). 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_location1.png

Dati di GRASS all’interno della LOCATIoN Alaska

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. Visualize the alaska.shp shapefile (see Section vector_load_shapefile) from the QGIS alaska dataset Dati campione.
  3. In the GRASS toolbar, click on the grass_new_mapset New mapset icon to bring up the MAPSET wizard.
  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. We can use this wizard to create a new MAPSET within an existing LOCATION (see section Aggiungere un nuovo MAPSET) or to create a new LOCATION altogether. Select radiobuttonon Create new location (see figure_grass_location_2).
  6. Enter a name for the LOCATION - we used ‘alaska’ and click [Next].
  7. Define the projection by clicking on the radio button radiobuttonon Projection to enable the projection list.
  8. We are using Albers Equal Area Alaska (feet) projection. Since we happen to know that it is represented by the EPSG ID 2964, we enter it in the search box. (Note: If you want to repeat this process for another LOCATION and projection and haven’t memorized the EPSG ID, click on the mIconProjectionEnabled CRS Status icon in the lower right-hand corner of the status bar (see Section Lavorare con le proiezioni)).
  9. Cliccare su Trova e inserire 2964 per selezionare la proiezione.

  10. Cliccare su [Next].

  11. To define the default region, we have to enter the LOCATION bounds in north, south, east, and west direction. Here we simply click on the button [Set current QGIS extent], to apply the extend of the loaded layer alaska.shp as the GRASS default region extend.
  12. Cliccare su [Next].

  13. We also need to define a MAPSET within our new LOCATION. You can name it whatever you like - we used ‘demo’ (when creating a new LOCATION). GRASS automatically creates a special MAPSET called PERMANENT designed to store the core data for the project, its default spatial extend and coordinate system definitions (Neteler & Mitasova 2008 Letteratura e riferimenti web).
  14. Controllare il riassunto per assicurarsi che le impostazioni siano corrette e cliccare su [Finish].

  15. The new LOCATION ‘alaska’ and two MAPSETs ‘demo’ and ‘PERMANENT’ are created. The currently opened working set is ‘demo’, as you defined.
  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

If that seemed like a lot of steps, it’s really not all that bad and a very quick way to create a LOCATION. The LOCATION ‘alaska` is now ready for data import (see section Importare dati nelle LOCATION GRASS). You can also use the already existing vector and raster data in the sample GRASS LOCATION ‘alaska’ included in the QGIS ‘Alaska’ dataset Dati campione and move on to Section 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 Letteratura e riferimenti web, sezione Lo strumento Regione di GRASS)).

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

  2. In the GRASS toolbar, click on the grass_new_mapset New mapset icon to bring up the MAPSET wizard.
  3. Select the GRASS database (GISDBASE) folder grassdata with the LOCATION ‘alaska’, where we want to add a further MAPSET, called ‘test’.
  4. Cliccare su [Next].

  5. We can use this wizard to create a new MAPSET within an existing LOCATION or to create a new LOCATION altogether. Click on the radio button radiobuttonon Select location (see figure_grass_location_2) and click [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

This Section gives an example how to import raster and vector data into the ‘alaska’ GRASS LOCATION provided by the QGIS ‘Alaska’ dataset. Therefore we use a landcover raster map landcover.img and a vector GML file lakes.gml from the QGIS ‘Alaska’ dataset Dati campione.

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

  2. In the GRASS toolbar, click the grass_open_mapset Open 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. Browse to the folder raster in the QGIS ‘Alaska’ dataset and select the file landcover.img.
  7. As raster output name define landcover_grass and click [Run]. In the Output tab you see the currently running GRASS command 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. Browse to the folder gml in the QGIS ‘Alaska’ dataset and select the file lakes.gml as OGR file.
  11. As vector output name define lakes_grass and click [Run]. You don’t have to care about the other options in this example. In the Output tab you see the currently running GRASS command v.in.ogr -o dsn=/path/to/lakes.gml output=lakes\_grass.
  12. When it says Succesfully finished click [View output]. The lakes_grass vector layer is now imported into GRASS and will be visualized in the QGIS canvas.

Il modello dati vettoriale di GRASS

It is important to understand the GRASS vector data model prior to digitizing.

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

The best way to learn the GRASS vector model and its capabilities is to download one of the many GRASS tutorials where the vector model is described more deeply. See http://grass.osgeo.org/documentation/manuals/ for more information, books and tutorials in several languages.

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 it is possible to organize all sort of geometry types (point, line and area) in one layer, because GRASS uses a topological vector model, so you don’t need to select the geometry type when creating a new GRASS vector. This is different from Shapefile creation with QGIS, because Shapefiles use the Simple Feature vector model (see Section Creating new Vector layers).

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

The region definition (setting a spatial working window) in GRASS is important for working with raster layers. Vector analysis is by default not limited to any defined region definitions. But all newly-created rasters will have the spatial extension and resolution of the currently defined GRASS region, regardless of their original extension and resolution. The current GRASS region is stored in the $LOCATION/$MAPSET/WIND file, and it defines north, south, east and west bounds, number of columns and rows, horizontal and vertical spatial resolution.

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

A complete list of GRASS modules available in the graphical Toolbox in QGIS version 2.0 is available in the GRASS wiki (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.

A new feature since QGIS 1.8 is the support for a show advanced options button below the simplified module dialog in the Options tab. At the moment it is only added to the module v.in.ascii as an example use, but will probably be part of more / all modules in the GRASS toolbox in future versions of QGIS. This allows to use the complete GRASS module options without the need to switch to the GRASS 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.

  • Click [Run] to start the process. Wait for several moments until the message Successfully finished appears in the output window. Then click [View Output] and [Close].

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