QGIS User Guide - OSGeo Server

QGIS User Guide - OSGeo Server

9 GRASS GIS INTEGRATION

9. GRASS GIS Integration

The GRASS plugin provides access to GRASS GIS [? ] 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 300 GRASS modules.

In this Section we’ll introduce the plugin functionalities and give some examples on managing and working with GRASS data. Following main features are provided with the toolbar menu, when you start the GRASS plugin, as described in Section

9.1

:

Open mapset

New mapset

9.2

Loading GRASS raster and vector layers

Manage Plugins , select GRASS and click OK .

You can now start loading raster and vector layers from an existing GRASS LOCATION (see Section

9.2

). Or you create a new GRASS

LOCATION with QGIS (see Section

9.3.1

) and import some raster

and vector data (see Section

9.4

) for further analysis with the GRASS Toolbox (see Section

9.9

).

9.2. Loading GRASS raster and vector layers

With the GRASS plugin, you can load vector or raster layers using the appropriate button on the toolbar menu. As an example we use the QGIS alaska dataset (see Section

3.2

). It includes a small

sample GRASS LOCATION with 3 vector layers and 1 raster elevation map.

1. Create a new folder 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 >

Manage Plugins and selecting GRASS . The GRASS toolbar appears on the toolbar menu.

4. In the GRASS toolbar, click the

Open mapset icon to bring up the

MAPSET wizard.

5. For

Gisdbase browse and select or enter the path to the newly created folder grassdata

.

6. You should now be able to select the LOCATION alaska and the MAPSET demo .

7. Click OK . Notice that some previously disabled tools in the GRASS toolbar are now enabled.

8. Click on

Add GRASS raster layer , choose the map name gtopo30 and click OK . The elevation layer will be visualized.

9. Click on

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

5.4

, 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 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

.

QGIS 1.4.0 User Guide 107

9 GRASS GIS INTEGRATION

Tip 34 GRASS D

ATA

L

OADING

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

9.1

.

9.3. GRASS LOCATION and MAPSET

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

LOCATION

.

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, subregions, or as workspaces for individual team members (Neteler

& Mitasova 2008 [? ]). In order to analyze vector and raster layers with GRASS modules, you must import them into a GRASS LOCATION .

5

Figure 37: GRASS data in the alaska LOCATION (adapted from Neteler & Mitasova 2008)

5

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 data sets without importing them. But because this is not the usual way for beginners to work with GRASS, this functionality will not be described here.

QGIS 1.4.0 User Guide 108

9.3

GRASS LOCATION and MAPSET

9.3.1. Creating a new GRASS LOCATION

As an an example you find the instructions 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 GIS related chapters. It is useful to download and install the dataset on your computer

3.2

).

Figure 38: Creating a new GRASS LOCATION or a new MAPSET in QGIS

1. Start QGIS and make sure the GRASS plugin is loaded

2. Visualize the alaska.shp

Shapefile (see Section

5.1.1

) from the QGIS alaska dataset

3.2

.

3. In the GRASS toolbar, click on the

Open 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

9.3.2

)

or to create a new

LOCATION altogether. Click on the radio button ⊙ Create new location (see

Figure

38 ).

6. Enter a name for the LOCATION - we used alaska and click Next

QGIS 1.4.0 User Guide 109

9 GRASS GIS INTEGRATION

7. Define the projection by clicking on the radio button

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 projector icon in the lower right-hand corner of the status bar (see Section

8.3

)).

9. Click Find to select the projection

10. Click 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. Click Next

13. We also need to define a MAPSET within our new LOCATION . You can name it whatever you like we used demo.

6

14. Check out the summary to make sure it’s correct and click Finish

15. The new

LOCATION alaska and two

MAPSETs demo and

PERMANENT are created. The currently opened working set is MAPSET demo , as you defined.

16. Notice that some of the tools in the GRASS toolbar that were disabled are now enabled.

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

9.4

). You can also use the already

existing vector and raster data in the sample GRASS

LOCATION alaska included in the QGIS alaska dataset

3.2

and move on to Section

9.5

.

9.3.2. Adding a new MAPSET

A user has only write access to a GRASS MAPSET he created. This means, besides access to his own

MAPSET , each user can also read maps in other user’s MAPSETs , but he can modify or remove only the maps in his own

MAPSET

. All

MAPSETs include a

WIND file that stores the current boundary coordinate values and the currently selected raster resolution (Neteler & Mitasova 2008 [? ], see Section

9.8

).

1. Start QGIS and make sure the GRASS plugin is loaded

6

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 [? ]).

QGIS 1.4.0 User Guide 110

9.4

Importing data into a GRASS LOCATION

2. In the GRASS toolbar, click on the

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. Click 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 ⊙ Select location (see Figure

38 ) and click

Next .

6. Enter the name text for the new MAPSET . Below in the wizard you see a list of existing MAPSETs and its owners.

7. Click Next , check out the summary to make sure it’s all correct and click Finish

9.4. Importing data into a GRASS LOCATION

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

3.2

.

1. Start QGIS and make sure the GRASS plugin is loaded.

2. In the GRASS toolbar, click the

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. Now click the appears.

Open GRASS tools icon. The GRASS Toolbox (see Section

9.9

) dialog

5. To import the raster map landcover.img

, click the module r.in.gdal

in the Modules Tree tab. This GRASS module allows 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

QGIS 1.4.0 User Guide 111

9 GRASS GIS INTEGRATION 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 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.

9.5. The GRASS vector data model

It is important to understand the GRASS vector data model prior to digitizing. In general, GRASS uses a topological vector model. This means that areas are not represented as closed polygons, but by one or more boundaries. A boundary between two adjacent areas is digitized only once, and it is shared by both areas. Boundaries must be connected without gaps. An area is identified (labeled) by the centroid of the area.

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.

7

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

The ’layer’ of the feature is defined by ’layer’ inside GRASS. ’Layer’ is the number which defines if there are 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.

Attributes in database tables are linked to geometry elements using a ’category’ value. ’Category’

(key, ID) is an integer attached to geometry primitives, and it is used as the link to one key column in

7

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 prefere to store different geometry elements in different layers.

QGIS 1.4.0 User Guide 112

9.6

Creating a new GRASS vector layer the database table.

Tip 35 L

EARNING THE

GRASS V

ECTOR

M

ODEL

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/gdp/manuals.php

for more information, books and tutorials in several languages.

9.6. Creating a new GRASS vector layer

To create a new GRASS vector layer with the GRASS plugin click the

Create new GRASS vector toolbar icon. Enter a name in the text box and you can start digitizing point, line or polygone geometries, following the procedure described in Section

9.7

.

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

5.5.6

).

Tip 36 C

REATING AN ATTRIBUTE TABLE FOR A NEW

GRASS

VECTOR LAYER

If you want to assign attributes to your digitized geometry features, make sure to create an attribute table with columns before you start digitizing (see Figure

43 ).

9.7. Digitizing and editing a GRASS vector layer

The digitizing tools for GRASS vector layers are accessed using the

Edit GRASS vector layer icon on the toolbar. Make sure you have loaded a GRASS vector and it is the selected layer in the legend before clicking on the edit tool. Figure

40

shows the GRASS edit dialog that is displayed when you click on the edit tool. The tools and settings are discussed in the following sections.

Tip 37 D

IGITIZING POLYGONES IN

GRASS

If you want to create a polygone 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 is, that a topological vector model links attribute information of a polygon always to the centroid and not to the boundary.

Toolbar

In Figure

39

you see the GRASS digitizing toolbar icons provided by the GRASS plugin. Table

5

explains the available functionalities.

QGIS 1.4.0 User Guide 113

9 GRASS GIS INTEGRATION

Figure 39: GRASS Digitizing Toolbar

Purpose

Table 5: GRASS Digitizing Tools

Icon Tool

New Point Digitize new point

Digitize new line (finish by selecting new tool) New Line

New Boundary Digitize new boundary (finish by selecting new tool)

New Centroid Digitize new centroid (label existing area)

Move vertex

Add vertex

Move one vertex of existing line or boundary and identify new position

Add a new vertex to existing line

Delete vertex Delete vertex from existing line (confirm selected vertex by another click)

Move element Move selected boundary, line, point or centroid and click on new position

Split line Split an existing line to 2 parts

Delete element Delete existing boundary, line, point or centroid (confirm selected element by another click)

Edit attributes Edit attributes of selected element (note that one element can represent more features, see above)

Close Close session and save current status (rebuilds topology afterwards)

Category Tab

The Category tab allows you to define the way in which the category values will be assigned to a new geometry element.

Mode: what category value shall 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.

QGIS 1.4.0 User Guide 114

9.7

Digitizing and editing a GRASS vector layer

Figure 40: GRASS Digitizing Category Tab

No category - Do not apply a category value to the geometry element. This is e.g. used for area boundaries, because the category values are connected via the centroid.

Category - A number (ID) 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. Default layer number is 1.

Tip 38 C

REATING AN ADDITIONAL

GRASS ’

LAYER

WITH

QGIS

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.

Settings Tab

The Settings tab allows you to set the snapping in screen pixels. The threshold defines at what distance new points or line ends are snapped to existing nodes. This helps to prevent gaps or dangles between boundaries. The default is set to 10 pixels.

Symbology Tab

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

QGIS 1.4.0 User Guide 115

9 GRASS GIS INTEGRATION

Figure 41: GRASS Digitizing Settings Tab

Figure 42: GRASS Digitizing Symbolog Tab

Table Tab

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

9.6

).

Tip 39 GRASS E

DIT

P

ERMISSIONS

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

QGIS 1.4.0 User Guide 116

Figure 43: GRASS Digitizing Table Tab

9.8

The GRASS region tool

9.8. The GRASS region tool

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 newlycreated 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/off the visualization of the GRASS region in the QGIS canvas using the

Display current GRASS region button. .

With the

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 . It also allows 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

provide a lot more parameters to define an appropriate region extend and resolution for your raster analysis. You can use these parameters with the GRASS Toolbox, described in Section

9.9

.

QGIS 1.4.0 User Guide 117

9 GRASS GIS INTEGRATION

9.9. The GRASS toolbox

The

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 where you have write-permission (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 .

9.9.1. Working with GRASS modules

Figure 44: GRASS Toolbox and searchable Modules List

(a) Modules Tree (b) Searchable Modules List

The GRASS Shell inside the GRASS Toolbox provides access to almost all (more than 300) GRASS modules in command line modus. To offer a more user friendly working environment, about 200 of the available GRASS modules and functionalities are also provided by graphical dialogs. These dialogs are grouped in categories, but are searchable as well. You find a complete list of GRASS modules available in QGIS version 1.4.0 in appendix

B . It is also possible to customize the GRASS Toolbox

content. It is described in Section

9.9.4

.

As shown in Figure

44 , you can look for the appropriate GRASS module using the thematically

grouped Modules Tree or the searchable Modules List tab.

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

45

you see an example for the GRASS module v.buffer

.

QGIS 1.4.0 User Guide 118

Figure 45: GRASS Toolbox Module Dialogs

9.9

The GRASS toolbox

(a) Module Options (b) Modules Output (c) Module Manual

Options

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.

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.

Output

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.

Manual

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 if you use the module g.manual

QGIS 1.4.0 User Guide 119

9 GRASS GIS INTEGRATION

Tip 40 D

ISPLAY RESULTS IMMEDIATELY

If you want to display your calculation results immediately in your map canvas, you can use the ’View Output’ button at the bottom of the module tab.

9.9.2. GRASS module examples

The following examples will demonstrate the power of some of the GRASS modules.

Creating contour lines

The first example creates a vector contour map from an elevation raster (DEM). Assuming you have the Alaska LOCATION set up as explained in Section

9.4

.

First open the location by clicking the location.

Open mapset button and choosing the Alaska

• Now load the gtopo30 elevation raster by clicking ing the gtopo30 raster from the demo location.

Add GRASS raster layer and select-

Now open the Toolbox with the

Open GRASS tools button.

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

9.9.1

. The

gtopo30 raster should appear as the Name of input raster gtopo30

.

• Type into the Increment between Contour levels

100 the value 100. (This will create contour lines at intervals of 100 meters.)

• Type into the Name for output vector map ctour_100 the name 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 .

Since this is a large region, it will take a while to display. After it finishes rendering, you can open the layer properties window to change the line color so that the contours appear clearly over the elevation raster, as in

5.4

.

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

QGIS 1.4.0 User Guide 120

Figure 46: GRASS Toolbox r.contour module

9.9

The GRASS toolbox

(a) r.contour Options (b) r.contour Output 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 will be used when you have a highly detailed vector, but you are creating a very small scale map, so the detail is unnecessary.

Tip 41 T

HE SIMPLIFY TOOL

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

QGIS 1.4.0 User Guide 121

9 GRASS GIS INTEGRATION

• Check that the ctour_100 vector appears as the Name of input vector ctour_100 .

• From the list of algorithms choose Chaiken’s. Leave all other options at their default, and scroll down to the last row to enter the 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 .

You may change the color of the vector to display it clearly on the raster background and to contrast with the original contour lines. You will notice that the new contour lines have smoother corners than the original while staying faithful to the original overall shape.

Figure 47: GRASS module v.generalize to smooth a vector map

Tip 42 O

THER USES FOR 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

QGIS 1.4.0 User Guide 122

9.9

The GRASS toolbox

Creating a Hillshade 3D effect

Several methods are used to display elevation layers and give a 3D 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 3D 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 and 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.

• Then click r.shaded.relief to open the module.

• Change the azimuth angle

270 to 315.

Enter gtopo30_shade

Output shaded relief map gtopo30_shade new hillshade raster, and click run .

for the

When the process completes, add the hillshade raster to the map. You should see it displayed in grayscale.

• To view both the hill shading and the colors of the gtopo30 together shift 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%.

You should now have the gtopo30 elevation with its colormap and transparency setting displayed

above the grayscale hillshade map. In order to see the visual effects of the hillshading, turn off the gtopo30_shade map, then turn it back on.

Using the GRASS shell

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.

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 .

§

¥

¦

QGIS 1.4.0 User Guide 123

9 GRASS GIS INTEGRATION

Figure 48: The GRASS shell, r.shaded.relief module

• After the process finishes shift to the Browse tab and double click on the new gtopo30_shade2 raster to display in QGIS.

As explained above, shift the shaded relief raster below the gtopo30 raster in the Table of

Contents, then check transparency of the colored gtopo30 layer. You should see that the 3D effect stands out more strongly compared to the first shaded relief map.

Raster statistics in a vector map

The next example shows how a GRASS module can aggregate raster data and add columns of statistics for each polygon in a vector map.

• Again using the Alaska data, refer to

9.4

to import the trees shapefile from the vmap0_shapefiles directory into GRASS.

QGIS 1.4.0 User Guide 124

9.9

The GRASS toolbox

Figure 49: Displaying shaded relief created with the GRASS module r.shaded.relief

• Now an intermediary 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.

Enter as the output vector map forest_areas and run the module.

• 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

Legend type Unique value

H and set the Classification field

VEGDESC to VEGDESC. (Refer to the explanation of the symbology tab

5.4.1

in the vector section).

• Next reopen the GRASS toolbox and open Vector -> Vector update by other maps.

Enter Name of raster gtopo30

, and • Click on the

v.rast.stats

module.

Name of vector polygon 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).

QGIS 1.4.0 User Guide 125

9 GRASS GIS INTEGRATION

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.

9.9.3. Working with the GRASS LOCATION browser

Another useful feature inside the GRASS Toolbox is the GRASS LOCATION browser. In Figure

50

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 50: GRASS LOCATION browser

The toolbar inside the Browser tab offers following tools to manage the selected

LOCATION

:

Add selected map to canvas

Copy selected map

QGIS 1.4.0 User Guide 126

9.9

The GRASS toolbox

Rename selected map

Delete selected map

Set current region to selected map

Refresh browser window

The

Rename selected map and Delete selected map only work with maps inside your currently selected

MAPSET

. All other tools also work with raster and vector layers in another

MAPSET

.

9.9.4. Customizing the GRASS Toolbox

Nearly all GRASS modules can be added to the GRASS toolbox. A XML interface is provided to parse the pretty simple XML files which configures the modules appearance and parameters inside the toolbox.

A sample XML file for generating the module v.buffer

(v.buffer.qgm) looks like this:

<?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 the modules group, etc. can be found on the QGIS wiki at http://wiki.qgis.org/qgiswiki/Adding_New_Tools_to_the_GRASS_Toolbox

.

QGIS 1.4.0 User Guide 127

Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement

Table of contents