Outdated version of the documentation. Find the latest one here.

.

Integrazione con GRASS GIS

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

In this section, we’ll introduce the plugin functionalities and give some examples of managing and working with GRASS data. The following main features are provided with the toolbar menu when you start the GRASS plugin, as described in section sec_starting_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

To use GRASS functionalities and/or visualize GRASS vector and raster layers in QGIS, you must select and load the GRASS plugin with the Plugin Manager. Therefore, go to the menu Plugins ‣ mActionShowPluginManager Manage Plugins, select checkbox GRASS and click [OK].

You can now start loading raster and vector layers from an existing GRASS LOCATION (see section sec_load_grassdata). Or, you can create a new GRASS LOCATION with QGIS (see section Creare una nuova LOCATION GRASS) and import some raster and vector data (see section Importare dati nelle LOCATION GRASS) for further analysis with the GRASS Toolbox (see section The GRASS Toolbox).

Caricare layer raster e vettoriali GRASS

With the GRASS plugin, you can load vector or raster layers using the appropriate button on the toolbar menu. As an example, we will use the QGIS Alaska dataset (see section Dati campione). It includes a small sample GRASS LOCATION with three vector layers and one raster elevation map.

  1. Create a new folder called grassdata, download the QGIS ‘Alaska’ dataset qgis_sample_data.zip from http://download.osgeo.org/qgis/data/ and unzip the file into grassdata.
  2. Start 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. For Gisdbase, browse and select or enter the path to the newly created folder grassdata.
  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. Click on grass_add_vector Add GRASS vector layer, choose the map name alaska and click [OK]. The Alaska boundary vector layer will be overlayed on top of the gtopo30 map. You can now adapt the layer properties as described in chapter Proprietà dei vettori (e.g., change opacity, fill and outline color).
  10. Also load the other two vector layers, rivers and airports, and adapt their properties.

As you see, it is very simple to load GRASS raster and vector layers in QGIS. See the 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

If you have problems loading data or QGIS terminates abnormally, check to make sure you have loaded the GRASS plugin properly as described in section Avviare il plugin GRASS.

LOCATION e MAPSET in GRASS

GRASS data are stored in a directory referred to as GISDBASE. This directory, often called grassdata, must be created before you start working with the GRASS plugin in QGIS. Within this directory, the GRASS GIS data are organized by projects stored in subdirectories called LOCATIONs. Each LOCATION is defined by its coordinate system, map projection and geographical boundaries. Each LOCATION can have several MAPSETs (subdirectories of the LOCATION) that are used to subdivide the project into different topics or subregions, or as workspaces for individual team members (see Neteler & Mitasova 2008 in Letteratura e riferimenti web). In order to analyze vector and raster layers with GRASS modules, you must import them into a GRASS LOCATION. (This is not strictly true – with the GRASS modules r.external and v.external you can create read-only links to external GDAL/OGR-supported datasets without importing them. But because this is not the usual way for beginners to work with GRASS, this functionality will not be described here.)

Figure GRASS location 1:

../../../_images/grass_location1.png

Dati di GRASS all’interno della LOCATIoN Alaska

Creare una nuova LOCATION GRASS

As an example, here is how the sample GRASS LOCATION alaska, which is projected in Albers Equal Area projection with unit feet was created for the QGIS sample dataset. This sample GRASS LOCATION alaska will be used for all examples and exercises in the following GRASS-related sections. It is useful to download and install the dataset on your computer (see Dati campione).

  1. Start QGIS and make sure the GRASS plugin is loaded.
  2. Visualize the alaska.shp shapefile (see section Caricare uno shapefile) from the QGIS Alaska dataset (see Dati campione).
  3. In the GRASS toolbar, click on the grass_new_mapset New mapset icon to bring up the MAPSET wizard.
  4. Select an existing GRASS database (GISDBASE) folder grassdata, or create one for the new LOCATION using a file manager on your computer. Then click [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. In Filter, insert 2964 to select the projection.
  10. Cliccare su [Next].

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

  13. We also need to define a MAPSET within our new LOCATION (this is necessary when creating a new LOCATION). You can name it whatever you like - we used ‘demo’. GRASS automatically creates a special MAPSET called PERMANENT, designed to store the core data for the project, its default spatial extent and coordinate system definitions (see Neteler & Mitasova 2008 in 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

A user has write access only to a GRASS MAPSET he or she created. This means that besides access to your own MAPSET, you can read maps in other users’ MAPSETs (and they can read yours), but you can modify or remove only the maps in your own MAPSET.

All MAPSETs include a WIND file that stores the current boundary coordinate values and the currently selected raster resolution (see Neteler & Mitasova 2008 in Letteratura e riferimenti web, and section Lo strumento Regione di GRASS).

  1. Start QGIS and make sure the GRASS plugin is loaded.
  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. Enter the name text for the new MAPSET. Below in the wizard, you see a list of existing MAPSETs and corresponding owners.
  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 of how to import raster and vector data into the ‘alaska’ GRASS LOCATION provided by the QGIS ‘Alaska’ dataset. Therefore, we use the landcover raster map landcover.img and the vector GML file lakes.gml from the QGIS ‘Alaska’ dataset (see Dati campione).

  1. Start QGIS and make sure the GRASS plugin is loaded.
  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 The GRASS Toolbox).

  5. To import the raster map landcover.img, click the module r.in.gdal in the Modules Tree tab. This GRASS module allows you to import GDAL-supported raster files into a GRASS LOCATION. The module dialog for r.in.gdal appears.
  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. When it says Succesfully finished, click [View output]. The landcover_grass raster layer is now imported into GRASS and will be visualized in the QGIS canvas.
  9. To import the vector GML file lakes.gml, click the module v.in.ogr in the Modules Tree tab. This GRASS module allows you to import OGR-supported vector files into a GRASS LOCATION. The module dialog for v.in.ogr appears.
  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.

Besides boundaries and centroids, a vector map can also contain points and lines. All these geometry elements can be mixed in one vector and will be represented in different so-called ‘layers’ inside one GRASS vector map. So in GRASS, a layer is not a vector or raster map but a level inside a vector layer. This is important to distinguish carefully. (Although it is possible to mix geometry elements, it is unusual and, even in GRASS, only used in special cases such as vector network analysis. Normally, you should prefer to store different geometry elements in different layers.)

It is possible to store several ‘layers’ in one vector dataset. For example, fields, forests and lakes can be stored in one vector. An adjacent forest and lake can share the same boundary, but they have separate attribute tables. It is also possible to attach attributes to boundaries. An example might be the case where the boundary between a lake and a forest is a road, so it can have a different attribute table.

The ‘layer’ of the feature is defined by the ‘layer’ inside GRASS. ‘Layer’ is the number which defines if there is more than one layer inside the dataset (e.g., if the geometry is forest or lake). For now, it can be only a number. In the future, GRASS will also support names as fields in the user interface.

Attributes can be stored inside the GRASS LOCATION as dBase or SQLite3 or in external database tables, for example, PostgreSQL, MySQL, Oracle, etc.

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

To create a new GRASS vector layer with the GRASS plugin, click the grass_new_vector_layer Create new GRASS vector toolbar icon. Enter a name in the text box, and you can start digitizing point, line or polygon geometries following the procedure described in section Digitalizzare e modificare layer vettoriali GRASS.

In GRASS, it is possible to organize all sorts 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

If you want to create a polygon in GRASS, you first digitize the boundary of the polygon, setting the mode to ‘No category’. Then you add a centroid (label point) into the closed boundary, setting the mode to ‘Next not used’. The reason for this is that a topological vector model links the attribute information of a polygon always to the centroid and not to the boundary.

Barra degli strumenti di digitalizzazione

In figure_grass_digitizing_1, you see the GRASS digitizing toolbar icons provided by the GRASS plugin. Table table_grass_digitizing_1 explains the available functionalities.

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

Split an existing line into two parts
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

  • Mode: The category value that will be applied to new geometry elements.
    • Next not used - Apply next not yet used category value to geometry element.
    • Manual entry - Manually define the category value for the geometry element in the ‘Category’ entry field.
    • No category - Do not apply a category value to the geometry element. This is used, for instance, for area boundaries, because the category values are connected via the centroid.
  • Category - The number (ID) that is attached to each digitized geometry element. It is used to connect each geometry element with its attributes.
  • Field (layer) - Each geometry element can be connected with several attribute tables using different GRASS geometry layers. The default layer number is 1.

Suggerimento

Creating an additional GRASS ‘layer’ with |qg|

If you would like to add more layers to your dataset, just add a new number in the ‘Field (layer)’ entry box and press return. In the Table tab, you can create your new table connected to your new layer.

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

The Symbology tab allows you to view and set symbology and color settings for various geometry types and their topological status (e.g., closed / opened boundary).

Figure GRASS digitizing 4:

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

GRASS Digitizing Symbology Tab

Scheda Tabella

The Table tab provides information about the database table for a given ‘layer’. Here, you can add new columns to an existing attribute table, or create a new database table for a new GRASS vector layer (see section Creare un nuovo layer vettoriale GRASS).

Figure GRASS digitizing 5:

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

GRASS Digitizing Table Tab

Suggerimento

Permessi di modifica in GRASS

You must be the owner of the GRASS MAPSET you want to edit. It is impossible to edit data layers in a MAPSET that is not yours, even if you have write permission.

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.

It is possible to switch on and off the visualization of the GRASS region in the QGIS canvas using the grass_region Display current GRASS region button.

With the grass_region_edit Edit current GRASS region icon, you can open a dialog to change the current region and the symbology of the GRASS region rectangle in the QGIS canvas. Type in the new region bounds and resolution, and click [OK]. The dialog also allows you to select a new region interactively with your mouse on the QGIS canvas. Therefore, click with the left mouse button in the QGIS canvas, open a rectangle, close it using the left mouse button again and click [OK].

The GRASS module g.region provides a lot more parameters to define an appropriate region extent and resolution for your raster analysis. You can use these parameters with the GRASS Toolbox, described in section The GRASS Toolbox.

The GRASS Toolbox

The grass_tools Open GRASS Tools box provides GRASS module functionalities to work with data inside a selected GRASS LOCATION and MAPSET. To use the GRASS Toolbox you need to open a LOCATION and MAPSET that you have write permission for (usually granted, if you created the MAPSET). This is necessary, because new raster or vector layers created during analysis need to be written to the currently selected LOCATION and MAPSET.

Figure GRASS Toolbox 1:

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

GRASS Toolbox and Module Tree nix

Lavorare con i moduli GRASS

The GRASS shell inside the GRASS Toolbox provides access to almost all (more than 300) GRASS modules in a command line interface. To offer a more user-friendly working environment, about 200 of the available GRASS modules and functionalities are also provided by graphical dialogs within the GRASS plugin Toolbox.

A complete list of GRASS modules available in the graphical Toolbox in QGIS version 2.6 is available in the GRASS wiki at http://grass.osgeo.org/wiki/GRASS-QGIS_relevant_module_list.

It is also possible to customize the GRASS Toolbox content. This procedure is described in section Personalizzare gli strumenti GRASS.

As shown in figure_grass_toolbox_1, you can look for the appropriate GRASS module using the thematically grouped Modules Tree or the searchable Modules List tab.

By 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

The Options tab provides a simplified module dialog where you can usually select a raster or vector layer visualized in the QGIS canvas and enter further module-specific parameters to run the module.

Figure GRASS module 1:

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

GRASS Toolbox Module Options nix

The provided module parameters are often not complete to keep the dialog clear. If you want to use further module parameters and flags, you need to start the GRASS shell and run the module in the command line.

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 of use, but it will probably be part of more or all modules in the GRASS Toolbox in future versions of QGIS. This allows you 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

The Manual tab shows the HTML help page of the GRASS module. You can use it to check further module parameters and flags or to get a deeper knowledge about the purpose of the module. At the end of each module manual page, you see further links to the Main Help index, the Thematic index and the Full index. These links provide the same information as the module 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

The first example creates a vector contour map from an elevation raster (DEM). Here, it is assumed that you have the Alaska LOCATION set up as explained in section Importare dati nelle LOCATION GRASS.

  • First, open the location by clicking the grass_open_mapset Open mapset button and choosing the Alaska location.
  • 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.

  • In the list of tool categories, double-click Raster ‣ Surface Management ‣ Generate vector contour lines.
  • Now a single click on the tool r.contour will open the tool dialog as explained above (see Lavorare con i moduli GRASS). The gtopo30 raster should appear as the Name of input raster.
  • 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 vettori.

Next, zoom in to a small, mountainous area in the center of Alaska. Zooming in close, you will notice that the contours have sharp corners. GRASS offers the v.generalize tool to slightly alter vector maps while keeping their overall shape. The tool uses several different algorithms with different purposes. Some of the algorithms (i.e., Douglas Peuker and Vertex Reduction) simplify the line by removing some of the vertices. The resulting vector will load faster. This process is useful when you have a highly detailed vector, but you are creating a very small-scale map, so the detail is unnecessary.

Suggerimento

Semplifica geometrie

Note that the QGIS fTools plugin has a Simplify geometries ‣ tool that works just like the GRASS v.generalize Douglas-Peuker algorithm.

However, the purpose of this example is different. The contour lines created by r.contour have sharp angles that should be smoothed. Among the v.generalize algorithms, there is Chaiken’s, which does just that (also Hermite splines). Be aware that these algorithms can add additional vertices to the vector, causing it to load even more slowly.

  • Open the GRASS Toolbox and double-click the categories Vector ‣ Develop map ‣ Generalization, then click on the v.generalize module to open its options window.
  • Controllare che ‘ctour_100’ appaia come Nome della mappa vettoriale in input.

  • From the list of algorithms, choose Chaiken’s. Leave all other options at their default, and scroll down to the last row to enter in the field Name for output vector map ‘ctour_100_smooth’, and click [Run].
  • The process takes several moments. Once Successfully finished appears in the output windows, click [View output] and then [Close].
  • È 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

The procedure described above can be used in other equivalent situations. If you have a raster map of precipitation data, for example, then the same method will be used to create a vector map of isohyetal (constant rainfall) lines.

Creating a Hillshade 3-D effect

Several methods are used to display elevation layers and give a 3-D effect to maps. The use of contour lines, as shown above, is one popular method often chosen to produce topographic maps. Another way to display a 3-D effect is by hillshading. The hillshade effect is created from a DEM (elevation) raster by first calculating the slope and aspect of each cell, then simulating the sun’s position in the sky and giving a reflectance value to each cell. Thus, you get sun-facing slopes lighted; the slopes facing away from the sun (in shadow) are darkened.

  • Begin this example by loading the gtopo30 elevation raster. Start the GRASS Toolbox, and under the Raster category, double-click to open Spatial analysis ‣ Terrain analysis.
  • 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.

  • To view both the hillshading and the colors of the gtopo30 together, move the hillshade map below the gtopo30 map in the table of contents, then open the Properties window of gtopo30, switch to the Transparency tab and set its transparency level to about 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

The GRASS plugin in QGIS is designed for users who are new to GRASS and not familiar with all the modules and options. As such, some modules in the Toolbox do not show all the options available, and some modules do not appear at all. The GRASS shell (or console) gives the user access to those additional GRASS modules that do not appear in the Toolbox tree, and also to some additional options to the modules that are in the Toolbox with the simplest default parameters. This example demonstrates the use of an additional option in the r.shaded.relief module that was shown above.

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.

  • Load the gtopo30 elevation raster as above, then start the GRASS Toolbox and click on the GRASS shell. In the shell window, type the command r.shaded.relief map=gtopo30 shade=gtopo30_shade2 azimuth=315 zmult=3 and press [Enter].
  • After the process finishes, shift to the Browse tab and double-click on the new gtopo30_shade2 raster to display it in QGIS.
  • As explained above, move the shaded relief raster below the gtopo30 raster in the table of contents, then check the transparency of the colored gtopo30 layer. You should see that the 3-D effect stands out more strongly compared with the first shaded relief map.

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.

  • Now an intermediate step is required: centroids must be added to the imported trees map to make it a complete GRASS area vector (including both boundaries and centroids).
  • From the Toolbox, choose Vector ‣ Manage features, and open the module v.centroids.
  • Inserire come Nome del vettoriale in output ‘forest_areas’ e lanciare il modulo.

  • Now load the forest_areas vector and display the types of forests - deciduous, evergreen, mixed - in different colors: In the layer Properties window, Symbology tab, choose from Legend type selectstring ‘Unique value’ and set the Classification field to ‘VEGDESC’. (Refer to the explanation of the symbology tab in Menu Stile of the vector section.)
  • Next, reopen the GRASS Toolbox and open Vector ‣ Vector update by other maps.
  • Click on the v.rast.stats module. Enter gtopo30 and forest_areas.
  • Only one additional parameter is needed: Enter column prefix elev, and click [Run]. This is a computationally heavy operation, which will run for a long time (probably up to two hours).
  • Finally, open the forest_areas attribute table, and verify that several new columns have been added, including elev_min, elev_max, elev_mean, etc., for each forest polygon.

Lavorare con il browser delle LOCATION GRASS

Another useful feature inside the GRASS Toolbox is the GRASS LOCATION browser. In figure_grass_module_7, you can see the current working LOCATION with its MAPSETs.

In the left browser windows, you can browse through all MAPSETs inside the current LOCATION. The right browser window shows some meta-information for selected raster or vector layers (e.g., resolution, bounding box, data source, connected attribute table for vector data, and a command history).

Figure GRASS module 7:

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

GRASS LOCATION browser nix

The toolbar inside the Browser tab offers the following tools to manage the selected 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

Nearly all GRASS modules can be added to the GRASS Toolbox. An XML interface is provided to parse the pretty simple XML files that configure the modules’ appearance and parameters inside the Toolbox.

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>

The parser reads this definition and creates a new tab inside the Toolbox when you select the module. A more detailed description for adding new modules, changing a module’s group, etc., can be found on the QGIS wiki at http://hub.qgis.org/projects/quantum-gis/wiki/Adding_New_Tools_to_the_GRASS_Toolbox.