R statistics: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
(use TOC template)
(move using grass gis 6 functionality to a different page)
Line 35: Line 35:
=== Using GRASS GIS functionality within a R session ===
=== Using GRASS GIS functionality within a R session ===


To call GRASS functionality from R, use the initGRASS() function to define the GRASS settings:
* GRASS GIS 6: See [[R_statistics/spgrass6]]
 
* GRASS GIS 7: See [[R_statistics/rgrass7]]
    library(spgrass6)
   
    # initialisation and the use of spearfish60 data
    initGRASS(gisBase = "/usr/local/grass-6.4.1", home = tempdir(),
              gisDbase = "/home/neteler/grassdata/",
              location = "spearfish60", mapset = "user1", SG="elevation.dem",
              override = TRUE)
   
    system("g.region -d")
    # verify
    gmeta6()
   
    spear <- readRAST6(c("geology", "elevation.dem"),
              cat=c(TRUE, FALSE), ignore.stderr=TRUE,
              plugin=NULL)
   
    summary(spear$geology)
 
Run this script with
 
    R CMD BATCH batch.R
 
The result is (shorted here):
 
    cat batch.Rout
   
    R version 2.10.0 (2009-10-26)
    Copyright (C) 2009 The R Foundation for Statistical Computing
    ISBN 3-900051-07-0
    ...
    > library(spgrass6)
    Loading required package: sp
    Loading required package: rgdal
    Geospatial Data Abstraction Library extensions to R successfully loaded
    Loaded GDAL runtime: GDAL 1.7.2, released 2010/04/23
    Path to GDAL shared files: /usr/local/share/gdal
    Loaded PROJ.4 runtime: Rel. 4.7.1, 23 September 2009
    Path to PROJ.4 shared files: (autodetected)
    Loading required package: XML
    GRASS GIS interface loaded with GRASS version: (GRASS not running)
    >
    > # initialisation and the use of spearfish60 data
    > initGRASS(gisBase = "/usr/local/grass-6.4.1", home = tempdir(), gisDbase = "/home/neteler/grassdata/",
    +          location = "spearfish60", mapset = "user1", SG="elevation.dem", override = TRUE)
    gisdbase    /home/neteler/grassdata/
    location    spearfish60
    mapset      user1
    rows        477
    columns    634
    north      4928010
    south      4913700
    west        589980
    east        609000
    nsres      30
    ewres      30
    projection  +proj=utm +zone=13 +a=6378206.4 +rf=294.9786982 +no_defs
    +nadgrids=/usr/local/grass-6.4.1/etc/nad/conus +to_meter=1.0
    Warning messages:
    1: In dir.create(gisDbase) : '/home/neteler/grassdata' already exists
    2: In dir.create(loc_path) :
      '/home/neteler/grassdata//spearfish60' already exists
    >
    > system("g.region -d")
    > # verify
    > gmeta6()
    gisdbase    /home/neteler/grassdata/
    location    spearfish60
    mapset      user1
    rows        477
    columns    634
    north      4928010
    ...
    >
    > spear <- readRAST6(c("geology", "elevation.dem"),
    +          cat=c(TRUE, FALSE), ignore.stderr=TRUE,
    +          plugin=NULL)
    >
    > summary(spear$geology)
    metamorphic  transition    igneous  sandstone  limestone      shale
          11693        142      36534      74959      61355      46423
    sandy shale    claysand        sand        NA's
          11266      14535      36561        8950
    >
    >
    > proc.time()
      user  system elapsed
      2.891  0.492  3.412
 
 


=== Getting Support ===
=== Getting Support ===

Revision as of 17:20, 19 July 2015

High quality statistic analysis in GRASS GIS is possible thanks to an interface to the most powerful statistics analysis package around: R (http://www.r-project.org).

There is support for:

  • The spgrass6 R addon package provides a convenient R ←→ GRASS GIS 6 interface
  • The rgrass7 R addon package provides a convenient R ←→ GRASS GIS 7 interface

Using R in GRASS GIS directly can has two meanings:

  • The first is that R is run "on top of" GRASS, transferring GRASS data to R to run statistical functions on the imported data as R objects in memory, and possibly transfer the results back to GRASS.
  • The second is to leave the data mostly in GRASS, and to use R as a scripting language "on top of" GRASS with execGRASS() - in this case, little data is moved to R, so memory constraints are not important, but R functionality is available.

Overview

Installation

See R_statistics/Installation

Command help

Start the R help browser:

help.start()
  • GRASS GIS 6: Select the Packages entry and then spgrass6.
  • GRASS GIS 7: Select the Packages entry and then rgrass7.

Using R within a GRASS GIS session

Using GRASS GIS functionality within a R session

Getting Support

  • Primary support for R + GRASS and the spgrass6 package is through the grass-stats mailing list.

See also

  • Using R and GRASS with cygwin: It is possible to use Rterm inside the GRASS shell in cygwin, just as in Unix/Linux or OSX. You should not, however, start Rterm from a cygwin xterm, because Rterm is not expecting to be run in an xterm under Windows, and loses its input. If you use the regular cygwin bash shell, but need to start display windows, start X from within GRASS with startx &, and then start Rterm in the same cygwin shell, not in the xterm.
  • Spatial data in R (sp) is a R library that provides classes and methods for spatial data (points, lines, polygons, grids), and to new or existing spatial statistics R packages that use sp, depend on sp, or will become dependent on sp, such as maptools, rgdal, splancs, spgrass6, gstat, spgwr and many others.
  • RPy - Python interface to the R Programming Language

Open tickets

  • Ticket trac #1103 (new enhancement) WinGrass64 - windows-commandline not released: a Grass-session with wxGui, command-line and R inside a Grass-session would be possible (as already does in WinGrass7)

Workshop material

Articles

  • GRASS News vol.3, June 2005 (R. Bivand. Interfacing GRASS 6 and R. GRASS Newsletter, 3:11-16, June 2005. ISSN 1614-8746).
  • OSGeo Journal vol. 1 May 2007 (R. Bivand. Using the R— GRASS interface. OSGeo Journal, 1:31-33, May 2007. ISSN 1614-8746).
  • GRASS Book, last chapter