Difference between revisions of "GRASS and Sextante"

From GRASS-Wiki
Jump to: navigation, search
(updated + screenshot)
m
 
(29 intermediate revisions by 8 users not shown)
Line 1: Line 1:
GRASS has been integrated into [http://www.sextantegis.com Sextante] as extension. Sextante itself is commonly used within gvSIG. Through this integration, gvSIG users have access to the wealth of well tested algorithms provided by GRASS.
+
GRASS GIS has been integrated into [http://www.sextantegis.com SEXTANTE] as extension. SEXTANTE itself is commonly used within gvSIG and QGIS. Through this integration, gvSIG and QGIS users have access to the wealth of well tested algorithms provided by GRASS GIS. The name "SEXTANTE" was changed to "Processing" in QGIS 2.
 +
 
 +
== SEXTANTE in gvSIG ==
 +
As of today the easiest and best alternative to use GRASS in SEXTANTE is within '''gvSIG Community Edition (CE)'''. [http://gvsigce.org gvSIG CE] is a community driven Open Source GIS project based on gvSIG OADE bundled with SEXTANTE. Both teams (SEXTANTE and gvSIG CE) have decided to unite forces and will be, from now on, sharing their development policies and strategies (http://sextantegis.blogspot.com/2011/12/important-notice-for-gvsig-users.html). Developers of gvSIG OADE and SEXTANTE are working together in gvSIG CE.
 +
 
 +
gvSIG CE includes SEXTANTE, neither installation of SEXTANTE nor configuration to use GRASS is needed.
 +
A technical preview of the upcoming gvSIG Community Edition 1.0 is available for download [http://gvsigce.sourceforge.net/joomla/index.php/download here]. It includes a SEXTANTE snapshot from 08/28/2011. This is a zero-install distribution. Simply unpack it somewhere on your harddisk and start it.
 +
 
 +
The information described below will help you if you would like to use GRASS in gvSIG OADE or in gvSIG 1.10.
  
 
Note: the GDAL-GRASS plugin must be installed.
 
Note: the GDAL-GRASS plugin must be installed.
  
== How to install (tuned OADE version) ==
+
== SEXTANTE in QGIS 1.x - Processing in QGIS 2.x ==
 +
 
 +
In QGIS < 2.0 the SEXTANTE package is an optional Python plugin.
 +
 
 +
From QGIS 2.0 onwards (i.e. incl. 1.9-dev), SEXTANTE is now a core module of QGIS called "[http://docs.qgis.org/2.8/en/docs/training_manual/processing/index.html?highlight=processing#the-qgis-processing-guide Processing]". One of its providers can be GRASS GIS (on Windows is it packaged)
 +
 
 +
== Installation ==
 +
 
 +
Both gvSIG and QGIS support SEXTANTE which itself offers a smooth GRASS GIS integration.
  
# Download and install OADE gvSIG binaries from [http://oadigital.net/software/gvsigoade/ here]
+
=== In QGIS: Sextante plugin/Processing with GRASS GIS support ===
  
Since version gvSIG OA Digital Edition 2010 (1.0), Sextante 0.6 with integrated GRASS GIS support is included.
+
'''QGIS 1.x:'''
  
== Alternative: How to install (original gvSIG version) ==
+
Since 2012, the [http://plugins.qgis.org/plugins/sextante/ Sextante plugin for QGIS 1.x] is available. Just get it through the QGIS plugin manager (Fetch plugins --> Sextante).
  
From gvSIG 1.10 onwards, Sextante with integrated GRASS GIS support is included:
+
[[Image:Qgis sextante plugin grass gis.png|center|thumb|500px|Sextante-GRASS GIS support in QGIS 1.x]]
 +
 
 +
'''QGIS 2.x:'''
 +
 
 +
This way of using GRASS in QGIS is superior to the [[QGIS GRASS_Cookbook|QGIS-GRASS toolbox]], unless your data is already in a GRASS database, since the creation and management of the GRASS location is handled automatically by Sextante. This leads to a seamless integration, using GRASS GIS as powerful backend to QGIS.
 +
 
 +
[[Image:QGIS2.0.1 processing grass version selector.jpg|center|thumb|500px|QGIS 2 with GRASS GIS support in "Processing" (former Sextante)]]
 +
 
 +
=== In gvSIG: How to install the improved gvSIG OADE version ===
 +
 
 +
From version gvSIG OA Digital Edition 2010 (1.0) onwards, Sextante 0.6 with integrated GRASS GIS support is included.
 +
 
 +
You can download and install OADE gvSIG binaries from [http://oadigital.net/software/gvsigoade/ here].
 +
 
 +
'''Note 1''': If you are on a 64bit system, add this to your settings file, e.g. $HOME/.bashrc:
 +
  # 32bit fix
 +
  export LD_LIBRARY_PATH=$HOME/gvsig-oade-2010-1.0.0/grass/lib/
 +
 
 +
'''Note 2''': If you want to use latest GRASS 6.4 rather than the bundled version, you have two options:
 +
* you can install or use an already installed version by pointing to the right path in the Sextante setup (see below);
 +
* you can replace the included grass/ version in the  gvsig-oade-2010-1.0.0/ directory. For example, get latest Linux 32bit GRASS binaries [http://grass.osgeo.org/grass64/binary/linux/snapshot/ here]. Likewise, for MacOSX (or Windows).
 +
 
 +
=== In gvSIG: Alternative: How to install the original gvSIG version ===
 +
 
 +
From gvSIG 1.10 onwards, Sextante with integrated GRASS GIS support is included (which yet fails):
  
 
# download gvSIG binaries from [http://www.gvsig.org/web/home/gvsig-en/view?set_language=en here] (download the '''All-included version''')
 
# download gvSIG binaries from [http://www.gvsig.org/web/home/gvsig-en/view?set_language=en here] (download the '''All-included version''')
Line 25: Line 65:
 
Only two parameters must be set, namely:
 
Only two parameters must be set, namely:
 
* The path to the GRASS installation folder. It is needed by Sextante to execute GRASS commands.
 
* The path to the GRASS installation folder. It is needed by Sextante to execute GRASS commands.
* The path to a GRASS mapset. The mapset doesn't have to contain any data at all, since data will be imported automatically each time you execute an algorithm. The only important part of the mapset is the location information, particularly the Coordinate Reference System. You must set the same CRS that is used by the layers that you want to process using GRASS algorithms. If, for instance, you have layers with data in the EPSG 23030 reference system, you must set the mapset to that same reference system. When data is imported into the mapset, no reprojection is performed, and layers are assumed to be in the same projection as the mapset itself.
+
* The path to a GRASS mapset. Sextante is able to use a temporary mapset.
  
 +
So we do the simple setup:
 
* Open the '''Sextante Toolbox icon'''
 
* Open the '''Sextante Toolbox icon'''
 
* Go to Sextante settings (open icon -> right of the "Search" bar at bottom of the window)
 
* Go to Sextante settings (open icon -> right of the "Search" bar at bottom of the window)
* Go to "GRASS"
+
* Go to "GRASS". Set therein
* Set therein
+
** GRASS folder: /path/to/grass-binary-installation/  (e.g., /usr/local/grass-6.4.3/ )
  GRASS folder: /path/to/grass-binary-installation/  (e.g., /usr/local/grass-6.4.0svn/ )
+
** Activate "Create temporary mapset"
  GRASS mapset: /path/to/grassdata/location/mapset  (e.g., /home/neteler/grassdata/nc_spm_08/sextante ) '''The mapset doesn't have to contain any data at all!'''
 
 
 
Note: you need to create this mapset with GRASS
 
  grass64 -c /path/to/grassdata/location/mapset (e.g., grass64 -c /home/neteler/grassdata/nc_spm_08/sextante )
 
  exit
 
 
 
 
* Click on "Setup GRASS" to register the raster and vector commands
 
* Click on "Setup GRASS" to register the raster and vector commands
 
* Now click on the "Help" button to know that it is there and what it contains
 
* Now click on the "Help" button to know that it is there and what it contains
 
* Finally click "OK" to leave the dialog. Now 5xx Sextante/GRASS commands should be available
 
* Finally click "OK" to leave the dialog. Now 5xx Sextante/GRASS commands should be available
 +
 +
'''Alternative''': edit the settings in the configuration file:
 +
 +
  $HOME/.qgis/sextante/sextante_qgis.conf
  
 
== How to use ==
 
== How to use ==
Line 47: Line 86:
  
 
=== Getting sample data ===
 
=== Getting sample data ===
A sample dataset is available here (based on free [http://www.grassbook.org/data_menu3rd.php North Carolina dataset], packaged by B. Ducke):
 
  
  ftp://88.208.250.116/gvsig-ref-data-nc.zip
+
A sample dataset (based on free [http://www.grassbook.org/data_menu3rd.php North Carolina dataset], packaged by B. Ducke) is coming with the gvSIG-OADE installer. Otherwise, if you prefer, you can also download and unpack it manually from [ftp://88.208.250.116/gvsig-ref-data-nc.zip here].
  
Unpack the data set. It contains several raster and vector map files. The projection is ([http://spatialreference.org/ref/epsg/32119/ EPSG code 32119]).
+
This data set contains several raster and vector map files. The projection is ([http://spatialreference.org/ref/epsg/32119/ EPSG code 32119]).
  
 
=== Sample session ===
 
=== Sample session ===
Line 62: Line 100:
 
# Open Sextante dialog
 
# Open Sextante dialog
 
# Go to "GRASS", expand "Vector (v.*)"
 
# Go to "GRASS", expand "Vector (v.*)"
# Select "v.in.idw" (double click)
+
# Select "v.surf.idw" (double click)
 
## The SHAPE file "geodetic_pts.shp" should be preselected. Enter as column name "elevation".
 
## The SHAPE file "geodetic_pts.shp" should be preselected. Enter as column name "elevation".
 
## Go to the region tab and select "Use extent from view".
 
## Go to the region tab and select "Use extent from view".
Line 84: Line 122:
  
 
[[Image:GvSIG OADE sextante rtopidx.png|thumb|center|400px|gvSIG-Sextante-GRASS GIS: Topographic index map from elevation map, North Carolina, USA]]
 
[[Image:GvSIG OADE sextante rtopidx.png|thumb|center|400px|gvSIG-Sextante-GRASS GIS: Topographic index map from elevation map, North Carolina, USA]]
 +
 +
==== Vector map dissolving using a string attribute column (GRASS via Sextante in QGIS) ====
 +
 +
The ZIP code map of Raleigh, NC is used in this example. The vector polygon map can be dissolved with an attribute column (here: by selecting the ZIPNAME column):
 +
 +
[[Image:Sextante grass v dissolve.png|thumb|center|400px|GRASS via Sextante in QGIS: Vector map dissolving using a string attribute column, North Carolina, USA. Original map and dissolved result are overlayed with transparency]]
 +
 +
== Troubleshooting ==
 +
 +
* ''GRASS GIS Manual pages are not shown, error "Grass help folder is not correctly configured. Please configure it":''
 +
: In QGIS, you need to define the path in Analysis -> SEXTANTE options -> GRASS commands -> GRASS help folder.
 +
: Double-click the line to enter a path
 +
 +
Example (path may differ according to your installation):
 +
 +
[[Image:Sextante grass help folder.png|center|thumb|500px|Setting the GRASS help manual folder in QGIS-Sextante]]
 +
 +
* ''Sextante on Mac OS X: a working solution for running GRASS commands''
 +
: See http://lists.osgeo.org/pipermail/qgis-user/2012-July/018180.html
  
 
== See also ==
 
== See also ==
 +
Software:
 +
* http://code.google.com/p/sextante/
 +
* HOWTO adding own GRASS algorithms to Sextante (simply by adding a new description file):
 +
: https://github.com/qgis/QGIS/blob/master/python/plugins/processing/algs/grass/grass.txt
  
 +
References:
 
* Victor Olaya's [http://sextantegis.blogspot.com/2009/07/nantes-ogrs-2009.html blog announcement] of the integration
 
* Victor Olaya's [http://sextantegis.blogspot.com/2009/07/nantes-ogrs-2009.html blog announcement] of the integration
 
* V. Olaya, JC Giménez, 2010: [http://2010.foss4g.org/presentations_show.php?id=3382 Integrating Sextante and GRASS]. FOSS4G 2010, Barcelona
 
* V. Olaya, JC Giménez, 2010: [http://2010.foss4g.org/presentations_show.php?id=3382 Integrating Sextante and GRASS]. FOSS4G 2010, Barcelona
 +
* M. Neteler, 2011: GRASS GIS e Sextante. [http://www.gvsig.org/web/community/events/giornate-italia/2011/Programa Quarte Giornate Italiane di gvSIG], 19-21 Apr 2011, Udine, Italy ([http://gvsig-desktop.forge.osor.eu/downloads/pub/events/giornate-triestine/2011/Presentazioni/GRASS_GIS_and_Sextante.pdf PDF])
 +
* R.Schönbuchner, 2011: [http://csgis.de/joomla/images/stories/pdf/Sextante_GB.pdf Sextante-eine freie Java-Bibliothek zur Geodatenanalyse]
  
 
[[Category: Documentation]]
 
[[Category: Documentation]]
 
[[Category: FAQ]]
 
[[Category: FAQ]]
 +
[[Category: Linking to other languages]]
 +
[[Category: QGIS]]
 +
[[Category: Tutorial]]

Latest revision as of 06:36, 24 January 2017

GRASS GIS has been integrated into SEXTANTE as extension. SEXTANTE itself is commonly used within gvSIG and QGIS. Through this integration, gvSIG and QGIS users have access to the wealth of well tested algorithms provided by GRASS GIS. The name "SEXTANTE" was changed to "Processing" in QGIS 2.

SEXTANTE in gvSIG

As of today the easiest and best alternative to use GRASS in SEXTANTE is within gvSIG Community Edition (CE). gvSIG CE is a community driven Open Source GIS project based on gvSIG OADE bundled with SEXTANTE. Both teams (SEXTANTE and gvSIG CE) have decided to unite forces and will be, from now on, sharing their development policies and strategies (http://sextantegis.blogspot.com/2011/12/important-notice-for-gvsig-users.html). Developers of gvSIG OADE and SEXTANTE are working together in gvSIG CE.

gvSIG CE includes SEXTANTE, neither installation of SEXTANTE nor configuration to use GRASS is needed. A technical preview of the upcoming gvSIG Community Edition 1.0 is available for download here. It includes a SEXTANTE snapshot from 08/28/2011. This is a zero-install distribution. Simply unpack it somewhere on your harddisk and start it.

The information described below will help you if you would like to use GRASS in gvSIG OADE or in gvSIG 1.10.

Note: the GDAL-GRASS plugin must be installed.

SEXTANTE in QGIS 1.x - Processing in QGIS 2.x

In QGIS < 2.0 the SEXTANTE package is an optional Python plugin.

From QGIS 2.0 onwards (i.e. incl. 1.9-dev), SEXTANTE is now a core module of QGIS called "Processing". One of its providers can be GRASS GIS (on Windows is it packaged)

Installation

Both gvSIG and QGIS support SEXTANTE which itself offers a smooth GRASS GIS integration.

In QGIS: Sextante plugin/Processing with GRASS GIS support

QGIS 1.x:

Since 2012, the Sextante plugin for QGIS 1.x is available. Just get it through the QGIS plugin manager (Fetch plugins --> Sextante).

Sextante-GRASS GIS support in QGIS 1.x

QGIS 2.x:

This way of using GRASS in QGIS is superior to the QGIS-GRASS toolbox, unless your data is already in a GRASS database, since the creation and management of the GRASS location is handled automatically by Sextante. This leads to a seamless integration, using GRASS GIS as powerful backend to QGIS.

QGIS 2 with GRASS GIS support in "Processing" (former Sextante)

In gvSIG: How to install the improved gvSIG OADE version

From version gvSIG OA Digital Edition 2010 (1.0) onwards, Sextante 0.6 with integrated GRASS GIS support is included.

You can download and install OADE gvSIG binaries from here.

Note 1: If you are on a 64bit system, add this to your settings file, e.g. $HOME/.bashrc:

 # 32bit fix
 export LD_LIBRARY_PATH=$HOME/gvsig-oade-2010-1.0.0/grass/lib/

Note 2: If you want to use latest GRASS 6.4 rather than the bundled version, you have two options:

  • you can install or use an already installed version by pointing to the right path in the Sextante setup (see below);
  • you can replace the included grass/ version in the gvsig-oade-2010-1.0.0/ directory. For example, get latest Linux 32bit GRASS binaries here. Likewise, for MacOSX (or Windows).

In gvSIG: Alternative: How to install the original gvSIG version

From gvSIG 1.10 onwards, Sextante with integrated GRASS GIS support is included (which yet fails):

  1. download gvSIG binaries from here (download the All-included version)
  2. run the installer
  3. start gvSIG

Activating GRASS GIS in Sextante

(modified after grass_sextante.html)

Configuring Sextante to use GRASS takes just a few easy steps. Once you have configured the system, you will be able to execute GRASS algorithms from any Sextante component like the toolbox or the graphical modeller, just like you do with any other Sextante geo-algorithm.

Only two parameters must be set, namely:

  • The path to the GRASS installation folder. It is needed by Sextante to execute GRASS commands.
  • The path to a GRASS mapset. Sextante is able to use a temporary mapset.

So we do the simple setup:

  • Open the Sextante Toolbox icon
  • Go to Sextante settings (open icon -> right of the "Search" bar at bottom of the window)
  • Go to "GRASS". Set therein
    • GRASS folder: /path/to/grass-binary-installation/ (e.g., /usr/local/grass-6.4.3/ )
    • Activate "Create temporary mapset"
  • Click on "Setup GRASS" to register the raster and vector commands
  • Now click on the "Help" button to know that it is there and what it contains
  • Finally click "OK" to leave the dialog. Now 5xx Sextante/GRASS commands should be available

Alternative: edit the settings in the configuration file:

 $HOME/.qgis/sextante/sextante_qgis.conf

How to use

Note that GRASS is used in an internal temporary session (so you cannot open GRASS data but work on GeoTIFF, SHAPE files using GRASS through gvSIG/Sextante).

Getting sample data

A sample dataset (based on free North Carolina dataset, packaged by B. Ducke) is coming with the gvSIG-OADE installer. Otherwise, if you prefer, you can also download and unpack it manually from here.

This data set contains several raster and vector map files. The projection is (EPSG code 32119).

Sample session

  1. Start a new project: "File" -> "New Project" -> Click on the new name -> "Open" button
  2. Set the projection of the View: "View" -> "Properties" -> "Current projection" -> "Type:" select "EPSG" -> Enter code: "32119" -> Click on "Search" -> Click on "OK" -> Accept Properties with "OK"

Vector points map interpolation

  1. Add a vector points map with the "Add layer" icon (top menu): File -> "Add" -> Select file "geodetic_pts.shp" -> "OK"
  2. Zoom to a portion of the map
  3. Open Sextante dialog
  4. Go to "GRASS", expand "Vector (v.*)"
  5. Select "v.surf.idw" (double click)
    1. The SHAPE file "geodetic_pts.shp" should be preselected. Enter as column name "elevation".
    2. Go to the region tab and select "Use extent from view".
    3. Enter "Cell size": 1000 (this is in map units, here: meters)
    4. Click "OK" to run the computation
  6. The resulting IDW interpolated raster map should appear in the view.
gvSIG-Sextante-GRASS GIS: IDW interpolated geodetic points, North Carolina, USA

Raster map analysis: Create topographic index map from elevation map

  1. Add a raster elevation map with the "Add layer" icon (top menu): File -> "Add" -> Select File Type "Raster" -> Select file "north_carolina/wake/wake_elevation.tif" -> "OK", "Accept" projection.
  2. "Zoom to layer" with right mouse button in the legend
  3. Open Sextante dialog
  4. Go to "GRASS", expand "Raster (r.*)"
  5. Go to "r.topidx"
    1. Start (double click) r.topidx, the map "wake_elevation.tif" should be predefined, as output write "wake_topidx.tif" (it will go into your current directory; check with browse button),
    2. Go to the region tab and select "Use extent from view".
    3. Enter "Cell size": 10 (this is in map units, here: meters)
    4. Click "OK" to run the computation
  6. It should have generated a new map which should appear in the view.
gvSIG-Sextante-GRASS GIS: Topographic index map from elevation map, North Carolina, USA

Vector map dissolving using a string attribute column (GRASS via Sextante in QGIS)

The ZIP code map of Raleigh, NC is used in this example. The vector polygon map can be dissolved with an attribute column (here: by selecting the ZIPNAME column):

GRASS via Sextante in QGIS: Vector map dissolving using a string attribute column, North Carolina, USA. Original map and dissolved result are overlayed with transparency

Troubleshooting

  • GRASS GIS Manual pages are not shown, error "Grass help folder is not correctly configured. Please configure it":
In QGIS, you need to define the path in Analysis -> SEXTANTE options -> GRASS commands -> GRASS help folder.
Double-click the line to enter a path

Example (path may differ according to your installation):

Setting the GRASS help manual folder in QGIS-Sextante
  • Sextante on Mac OS X: a working solution for running GRASS commands
See http://lists.osgeo.org/pipermail/qgis-user/2012-July/018180.html

See also

Software:

https://github.com/qgis/QGIS/blob/master/python/plugins/processing/algs/grass/grass.txt

References: