R statistics/Installation: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
(Major update; GRASS GIS 6 parts dropped)
Line 3: Line 3:
R and many of its addon packages are pre-built and distributed through the CRAN network of mirrors. In addition many Linux distributions prepackage R and a number of the most popular addon toolboxes.
R and many of its addon packages are pre-built and distributed through the CRAN network of mirrors. In addition many Linux distributions prepackage R and a number of the most popular addon toolboxes.


All the necessary functions for the GRASS 6 interface are now in packages on CRAN, so that on Linux/Unix (or Mac OSX) installing '''rgdal''' from source with PROJ4 and GDAL installed, or Windows installing from binary, the required packages are: '''sp'''; '''maptools''' (now includes spmaptools); '''rgdal''' (now includes spGDAL, spproj); '''spgrass6''' - now all on CRAN.
All the necessary functions for the GRASS GIS interface are in packages on CRAN, so that on Linux/Unix (or Mac OSX) installing '''rgdal''' from source with PROJ and GDAL installed, or Windows installing from binary, the required packages are: '''sp'''; '''maptools'''; '''rgdal'''; '''spgrass''' - all on CRAN.


==== Status of "spgrass" and "rgrass7" packages ====
==== Status of "rgrass" packages ====


See overview here: https://r-forge.r-project.org/R/?group_id=2020
See overview here: https://cran.r-project.org/web/packages/rgrass/index.html


==== Source packages ====
==== Source packages ====
Line 14: Line 14:
  chooseCRANmirror()
  chooseCRANmirror()


you can then see what it picked with
you can then see which repos has been picked with
  options("repos")
  options("repos")


Line 38: Line 38:
  install.packages("gstat")
  install.packages("gstat")


Debian/Lenny ships with ''R'' 2.7.1 which is too old for the modern ''rgdal'' package. So we have to fetch an old one from the archive and build it from the Linux command line:
You can install the ''rgdal'' CRAN package directly:
$ wget http://cran.r-project.org/src/contrib/Archive/rgdal/rgdal_0.6-24.tar.gz
$ R CMD INSTALL -l /usr/local/lib/R/site-library rgdal_0.6-24.tar.gz
 
If you are using a newer version of R than that you can install the ''rgdal'' CRAN package directly:
   install.packages("rgdal")
   install.packages("rgdal")


And finally, back inside the ''R'' session:
And finally:
 
  install.packages("rgrass", dependencies = TRUE)
# in case of GRASS GIS 6
install.packages("spgrass6", dependencies = TRUE)
 
# in case of GRASS GIS 7
  install.packages("rgrass7", dependencies = TRUE)


 
* [https://cran.r-project.org/bin/linux/debian/ Debian] and [https://cran.r-project.org/bin/linux/ubuntu/ Ubuntu] specific help is also available from the R-project website.
* [http://cran.r-project.org/bin/linux/debian/README Debian] and [http://cran.r-project.org/bin/linux/ubuntu/README Ubuntu] specific help is also available from the R-project website.
 
You can also use the CRAN Debian package repository: (pick one; adjust distribution as needed [here "Debian/testing"])
deb http://debian.cran.r-project.org/cran2deb/debian-i386 testing/
deb http://debian.cran.r-project.org/cran2deb/debian-amd64 testing/


===== RPM based =====
===== RPM based =====


* '''RedHat, Fedora, openSuse, Mandriva''' and similar distros: take the latest '''''R''''' RPM and install it
* '''RedHat, Fedora, openSuse, ...''' and similar distros: take the latest '''''R''''' RPM and install it


''R'' and a number of pre-build cran packages are already present in the main repositories. Start with:
''R'' and a number of pre-build cran packages are already present in the main repositories. Start with:


  # su
  # sudo dnf install R-core R-core-devel R-XML
# yum install R-core R-core-devel R-XML
# exit


Once those are installed, start as normal user "<tt>R</tt>" at the command prompt and install the libraries not packaged by the distro provider:
Once those are installed, start as normal user "<tt>R</tt>" at the command prompt and install the libraries not packaged by the distro provider:
Line 75: Line 59:
R
R


# in case of GRASS GIS 6
install.packages("rgrass", dependencies = TRUE)
install.packages("spgrass6", dependencies = TRUE)
 
# in case of GRASS GIS 7
install.packages("rgrass7", dependencies = TRUE)
</source>
</source>


'''Usage:''' You have the best user experience if you launch R within a running GRASS GIS session (then R automatically recognises the current settings of the [[Computational region]] and "sees" the GRASS maps).
'''Usage:''' You have the best user experience if you launch R within a running GRASS GIS session (then R automatically recognizes the current settings of the [[Computational region]] and "sees" the GRASS maps).


==== Mac OSX ====
==== Mac OSX ====
Line 92: Line 72:
R
R


# in case of GRASS GIS 6
install.packages("rgrass", type="source", dependencies = TRUE)
install.packages("spgrass6", type="source", dependencies = TRUE)
 
# in case of GRASS GIS 7
install.packages("rgrass7", type="source", dependencies = TRUE)
</source>
</source>


'''Startup of GRASS from within R:'''
'''Startup of GRASS from within R:'''


First you need to find the path to the GRASS binaries: Control-click on the GRASS.app and you'll get a popup menu; select "Show Package Contents" - this opens you to the directory structure. Go to Contents->MacOS which would be "GISBASE"; So, in my case, the "gisBase" parameter is "/HD/Applications/Grass-6.4/Contents/MacOS". If you Command-click at the top of the window on the folder icon beside "MacOS" (from the line above this one), you can see the full path.
First you need to find the path to the GRASS binaries: Control-click on the GRASS.app and you'll get a popup menu; select "Show Package Contents" - this opens you to the directory structure. Go to Contents->MacOS which would be "GISBASE"; So, in my case, the "gisBase" parameter is "/HD/Applications/Grass-8.2.app/Contents/MacOS". If you Command-click at the top of the window on the folder icon beside "MacOS" (from the line above this one), you can see the full path.


Now we can run GRASS from within a R session:
Now we can run GRASS from within a R session:


<source lang="bash">
<source lang="bash">
initGRASS(gisBase ='/Applications/GRASS/GRASS-6.4.app/Contents/MacOS',  
initGRASS(gisBase ='/Applications/GRASS/GRASS-8.2.app/Contents/MacOS',  
           location = 'geostat2012_ll', mapset = 'user1',  
           location = 'geostat2012_ll', mapset = 'user1',  
           gisDbase = '/Users/Lars/Documents/Biologi/grassdata', override = TRUE)
           gisDbase = '/Users/Lars/Documents/Biologi/grassdata', override = TRUE)
Line 112: Line 88:


===== Troubleshooting =====
===== Troubleshooting =====
If you get an error message when trying to call GRASS from R containing this line: dyld: Library not loaded: /usr/local/lib/libintl.8.dylib you need to establish a link from /Applications/Grass/GRASS-7.0.app/Contents/MacOS/lib/libintl.8.dylib to /usr/local/lib. This can be done through Terminal with the command:
 
If you get an error message when trying to call GRASS from R containing this line: dyld: Library not loaded: /usr/local/lib/libintl.8.dylib you need to establish a link from /Applications/Grass/GRASS-8.2.app/Contents/MacOS/lib/libintl.8.dylib to /usr/local/lib. This can be done through Terminal with the command:


<source lang="bash">
<source lang="bash">
sudo ln -s /Applications/Grass/GRASS-7.0.app/Contents/MacOS/lib/libintl.8.dylib /usr/local/lib/
sudo ln -s /Applications/Grass/GRASS-8.2.app/Contents/MacOS/lib/libintl.8.dylib /usr/local/lib/
</source>
</source>


Note: The path to the GRASS-x.x.app must reflect your own configuration.
Note: The path to the GRASS-x.x.app and the version number in libintl.X.dylib must reflect your own configuration.


==== MS Windows ====
==== MS Windows ====
Line 124: Line 101:
===== Installation =====
===== Installation =====
Run:
Run:
# in case of GRASS GIS 6
  install.packages("rgrass", dependencies = TRUE)
  install.packages("spgrass6", dependencies = TRUE)
 
# in case of GRASS GIS 7
install.packages("rgrass7", dependencies = TRUE)


or install Task View 'Spatial' - Analysis of Spatial Data
or install Task View 'Spatial' - Analysis of Spatial Data
Line 135: Line 108:
  install.views("Spatial")
  install.views("Spatial")


===== GRASS 6: Calling R from GRASS =====
===== Usage =====
On Windows, the easiest way is calling  R in a running GRASS 6 session by specifying the full path to the R startup executable. Note that all "\" must be changed to "/", furthermore quote white spaces in the path:
 
  GRASS 6.4> C:/Users/"Catherine user"/Documents/R/R-2.15.1/bin/i386/R.exe
  R version 2.15.1 (2012-06-22) -- "Roasted Marshmallows"
  ...
  library(spgrass6)
 
In some cases, you can use this path:
- For 32 bits:  <source lang="bash">C:/"Program Files"/R/R-2.15.1/bin/i386/R.exe --save</source>
- For 64 bits: <source lang="bash">C:/"Program Files"/R/R-2.15.1/bin/x64/R.exe --save</source> 
 
The best solution is then to add this path to the %PATH% entry in the grass64.bat-starting script.
 
===== GRASS 6: calling GRASS from R =====
On Windows, the second easiest way is calling GRASS from R with ''initGRASS()'' from the R package spgrass6(). After GRASS has been initialized for R, you have access to GRASS commands from within R (you may need to adjust the path):
 
  spgrass6()
  loc <- initGRASS("C:\\Program Files\\GRASS 6.4", home=tempdir())
 
or using an already existing mapset:
 
  spgrass6()
  loc <- initGRASS(gisBase="C:\\Program Files\\GRASS 6.4",
                    gisDbase = "'C:\\Users\\neteler\\Documents\\grassdata'",
                    location = "spearfish60", mapset = "user1", SG="elevation.dem",
                    override = TRUE)
 
For an example, see http://geomorphometry.org/content/geomorphometry-r-saga-ilwis-grass
 
===== GRASS 6 Usage III (taken from the grass-stats-ML) =====
 
http://lists.osgeo.org/pipermail/grass-stats/2010-September/001274.html
 
at the moment there is following for a Grass-R-connection implemented in WinGRASS 64
 
(1) the WinGrass64-installer searches during installation for a installed R and writes -
if found - the R-installation-path to %PATH% in the grass64.bat-starting script
(see http://trac.osgeo.org/grass/browser/grass/branches/develbranch_6/mswindows/GRASS-Installer.nsi#L660)
 
--> this means that you FIRST have to install R and then winGRASS!
 
(2) you can start "GRASS-command-line" - it's a windows-command-line, not a msys-rxvt-terminal
(you can find this starting option under Programs -> GRASS64 -> Grass command line; but not as a desktop icon)
 
with this starting option you start a Grass-session in the good old text mode.
if you type R in the command line, then you start R inside a GRASS-session like in Linux.
 
===== GRASS 7 Usage =====


In winGRASS 7 ([http://grass.osgeo.org/download/software.php#g70x standalone installer] and [https://trac.osgeo.org/osgeo4w/ OSGeo4W]) the [http://code.google.com/p/batchfiles/ Windows batchfiles for use with R] are now integrated for a smooth R-winGRASS-integration. The installation path of R and RStudio are dynamically loaded into PATH.
In winGRASS ([https://grass.osgeo.org/download/windows/#standalone-installers standalone installer] and [https://grass.osgeo.org/download/windows/#OSGeo4W OSGeo4W]) the installation path of R and RStudio are dynamically loaded into PATH.


* Start winGRASS 7, bring the winGRASS-windows console in front and type ''R'' for opening a R-session (command line mode) inside a GRASS-session.
* Start winGRASS, bring the winGRASS-windows console in front and type ''R'' for opening a R-session (command line mode) inside a GRASS-session.
* Start winGRASS 7, bring the winGRASS-windows console in front and type ''RGui'' for opening a R-session (GUI mode) inside a GRASS-session.
* Start winGRASS, bring the winGRASS-windows console in front and type ''RGui'' for opening a R-session (GUI mode) inside a GRASS-session.


[[Category:Installation]]
[[Category:Installation]]

Revision as of 14:13, 22 October 2022

First of all you need to install R onto your system.

R and many of its addon packages are pre-built and distributed through the CRAN network of mirrors. In addition many Linux distributions prepackage R and a number of the most popular addon toolboxes.

All the necessary functions for the GRASS GIS interface are in packages on CRAN, so that on Linux/Unix (or Mac OSX) installing rgdal from source with PROJ and GDAL installed, or Windows installing from binary, the required packages are: sp; maptools; rgdal; spgrass - all on CRAN.

Status of "rgrass" packages

See overview here: https://cran.r-project.org/web/packages/rgrass/index.html

Source packages

From the R console first pick a local mirror:

chooseCRANmirror()

you can then see which repos has been picked with

options("repos")

To permanently save the mirror site add it to ~/.Rprofile. For example:

options(repos=c(CRAN="http://cran.stat.auckland.ac.nz"))

and then run install.packages() as in the Quick Start section above.

For more information see http://cran.r-project.org/doc/manuals/R-admin.html

Linux

Debian and Ubuntu

R and a number of pre-build cran packages are already present in the main repositories. Start with:

# apt-get install r-base r-cran-vr r-cran-rodbc r-cran-xml

Once those are installed start "R" at the command prompt and install the libraries not packaged by the OS:

n.b. r-cran-sp is now shipped as an official Debian/Ubuntu package and can be installed with apt as above
install.packages("sp")
install.packages("gstat")

You can install the rgdal CRAN package directly:

 install.packages("rgdal")

And finally:

install.packages("rgrass", dependencies = TRUE)
  • Debian and Ubuntu specific help is also available from the R-project website.
RPM based
  • RedHat, Fedora, openSuse, ... and similar distros: take the latest R RPM and install it

R and a number of pre-build cran packages are already present in the main repositories. Start with:

# sudo dnf install R-core R-core-devel R-XML

Once those are installed, start as normal user "R" at the command prompt and install the libraries not packaged by the distro provider:

R

install.packages("rgrass", dependencies = TRUE)

Usage: You have the best user experience if you launch R within a running GRASS GIS session (then R automatically recognizes the current settings of the Computational region and "sees" the GRASS maps).

Mac OSX

Start a R session, then

  • for install.packages() you might have to rely on building packages from source code. try:
R

install.packages("rgrass", type="source", dependencies = TRUE)

Startup of GRASS from within R:

First you need to find the path to the GRASS binaries: Control-click on the GRASS.app and you'll get a popup menu; select "Show Package Contents" - this opens you to the directory structure. Go to Contents->MacOS which would be "GISBASE"; So, in my case, the "gisBase" parameter is "/HD/Applications/Grass-8.2.app/Contents/MacOS". If you Command-click at the top of the window on the folder icon beside "MacOS" (from the line above this one), you can see the full path.

Now we can run GRASS from within a R session:

initGRASS(gisBase ='/Applications/GRASS/GRASS-8.2.app/Contents/MacOS', 
          location = 'geostat2012_ll', mapset = 'user1', 
          gisDbase = '/Users/Lars/Documents/Biologi/grassdata', override = TRUE)
Troubleshooting

If you get an error message when trying to call GRASS from R containing this line: dyld: Library not loaded: /usr/local/lib/libintl.8.dylib you need to establish a link from /Applications/Grass/GRASS-8.2.app/Contents/MacOS/lib/libintl.8.dylib to /usr/local/lib. This can be done through Terminal with the command:

sudo ln -s /Applications/Grass/GRASS-8.2.app/Contents/MacOS/lib/libintl.8.dylib /usr/local/lib/

Note: The path to the GRASS-x.x.app and the version number in libintl.X.dylib must reflect your own configuration.

MS Windows

Installation

Run:

install.packages("rgrass", dependencies = TRUE)

or install Task View 'Spatial' - Analysis of Spatial Data

install.packages("ctv")
library("ctv")
install.views("Spatial")
Usage

In winGRASS (standalone installer and OSGeo4W) the installation path of R and RStudio are dynamically loaded into PATH.

  • Start winGRASS, bring the winGRASS-windows console in front and type R for opening a R-session (command line mode) inside a GRASS-session.
  • Start winGRASS, bring the winGRASS-windows console in front and type RGui for opening a R-session (GUI mode) inside a GRASS-session.