Compile and install GDAL-GRASS plugin

From GRASS-Wiki
Revision as of 08:37, 28 April 2009 by Neteler (talk | contribs) (+osgviewer)
Jump to navigation Jump to search

The idea of the GDAL-GRASS plugin is to directly access GRASS raster and vector data from outside. Any GDAL enabled software (QGIS, R, ...) can read and write through the plugin from the GRASS database. It is sufficient to indicate the full path to the GRASS dataset (see below).


The compilation order should be kept due to inter-dependencies between the packages. Please keep the order as seen below. GRASS compilation is explained in Compile and Install.

Compilation and Installation of Prerequisites

The install order should be kept due to inter-dependencies between the packages. Please keep the order or install all in a single step:

  1. PROJ4 with Datum grids (expand in nad/ before compiling)
  2. Optional: GEOS
  3. Optional: PostgreSQL, mySQL, unixODBC, SQLite (SQLite is needed for QGIS)
  4. GDAL/OGR compiled without GRASS support (because we use the plugin!)

Compilation and Installation of the GDAL-GRASS plugin

Get the GDAL/OGR-GRASS plugin - file: gdal-grass-1.4.3.tar.gz (or later)

  1. Use the latest plugin source code version available. The code is fairly stable so the version doesn't need to match the latest GDAL version to keep working. Generally if an update is needed it will be issued, otherwise the existing (well tested) version will be left in place.
  2. NOTE: the plugin needs to "see" the GRASS libraries. The best way is to add a file 'grass6.conf' into the directory /etc/ld.so.conf.d/ (edit as root) which contains the path to the GRASS libraries; then run 'ldconfig'. A script to configure/install easily can be found here.

Usage of the plugin

You always need to specify the full path to the data set:

  • GRASS raster map: gdalinfo grassdata/spearfish60/PERMANENT/cellhd/aspect
  • GRASS vector map: ogrinfo -ro -so grassdata/spearfish60/PERMANENT/vector/roads/head
  • Mapserver: should see both raster and vector maps, define connection properly in the .map file
  • QGIS: needs it only for raster data
  • OpenSceneGraph:
 osgdem --xx 10 --yy 10 -t ${GRASSDATA}/cellhd/landuse96_28m \
        --xx 10 --yy 10 -d ${GRASSDATA}/cellhd/elevation \
        -l 4 -v 0.1 -o north_carolina.ive
 # you can already watch while the conversion is still running:
 osgviewer north_carolina.ive

Troubleshooting

All stuff installed but QGIS doesn't see GRASS or r.out.gdal doesn't work?

  • Check if GDAL finds the plugin:
        gdal_translate --formats | grep -i grass
        GRASS (ro): GRASS Database Rasters (5.7+)
  • Check if the GRASS libs are found by the plugin. All libraries should be found (maybe you forgot to run 'ldconfig' if you didn't install from RPMs?):
        ldd /usr/lib/gdalplugins/gdal_GRASS.so
        ldd /usr/lib/gdalplugins/ogr_GRASS.so
  • Check if the GRASS plugins are in the right directory (check the 'Auto register' directory reported in the output):
        # remember that you have to specify the absolute path:
        export CPL_DEBUG=on
        gdalinfo /home/neteler/grassdata/spearfish60/PERMANENT/cellhd/roads
        ogrinfo -summary $HOME/grassdata/spearfish60/PERMANENT/vector/roads/head

Further Instructions

If you are still having trouble, please also visit "GRASS for Fedora Core 4" for more detailed GRASS and GDAL compilation and installation instructions developed by Isaac Ullah for Fedora Core 4.

There are good instructions on source code compiling here http://casoilresource.lawr.ucdavis.edu/drupal/node/123