R statistics/Installation: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
(→‎Linux: +install.packages("terra"))
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
First of all you need to install '''''R''''' onto your system.
First of all you need to install '''''R''''' in 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.
R and many of its packages are pre-built and distributed through the CRAN network of mirrors. In addition many Linux distributions pre-package R and a number of the most popular libraries.


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.
=== Status of rgrass package ===


==== Status of "spgrass" and "rgrass7" packages ====
See the overview here: https://cran.r-project.org/web/packages/rgrass/index.html


See overview here: https://r-forge.r-project.org/R/?group_id=2020
=== Installation ===
 
==== Source packages ====
 
From the R console first pick a local mirror:
chooseCRANmirror()
 
you can then see what it picked with
options("repos")
 
To permanently save the mirror site add it to <tt>~/.Rprofile</tt>. For example:
options(repos=c(CRAN="<nowiki>http://cran.stat.auckland.ac.nz</nowiki>"))
 
and then run <tt>install.packages()</tt> as in the Quick Start section above.
 
For more information see http://cran.r-project.org/doc/manuals/R-admin.html


==== Linux ====
==== Linux ====
Line 32: Line 17:
  # apt-get install r-base r-cran-vr r-cran-rodbc r-cran-xml
  # apt-get install r-base r-cran-vr r-cran-rodbc r-cran-xml


Once those are installed start "<tt>R</tt>" at the command prompt and install the libraries not packaged by the OS:
Once those are installed start "<tt>R</tt>" at the command prompt and install the <tt>rgrass</tt> library:
: ''n.b. <tt>r-cran-sp</tt> is now shipped as an official Debian/Ubuntu package and can be installed with <tt>apt</tt> as above''


install.packages("sp")
<source lang="bash">
install.packages("gstat")
install.packages("rgrass", dependencies = TRUE)
 
install.packages("terra")
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:
</source>
$ 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")
 
And finally, back inside the ''R'' session:
 
# in case of GRASS GIS 6
install.packages("spgrass6", dependencies = TRUE)
 
# in case of GRASS GIS 7
install.packages("rgrass7", dependencies = TRUE)
 
 
* [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"])
* [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.
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:  
 
''R'' and a number of pre-build cran packages are already present in the main repositories. Start with:


  # su
  # sudo dnf install R
# 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:
This R RPM is a meta-package. It has no content but ensures that the following components are installed: R-core, R-core-devel, R-java, R-java-devel, libRmath, libRmath-devel. Once those are installed, start "<tt>R</tt>" and install the <tt>rgrass</tt> library:


<source lang="bash">
<source lang="bash">
R
install.packages("rgrass", dependencies = TRUE)
 
install.packages("terra")
# in case of GRASS GIS 6
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).


==== Mac OSX ====
==== Mac OSX ====


Start a R session, then
Start an R session and try:


* for install.packages() you might have to rely on building packages from source code. try:
<source lang="bash">
<source lang="bash">
R
install.packages("rgrass", type="source", dependencies = TRUE)
 
# in case of GRASS GIS 6
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->Resources which would be "GISBASE"; So, in my case, the "gisBase" parameter is "/HD/Applications/Grass-8.2.app/Contents/Resources". If you Command-click at the top of the window on the folder icon beside "Resources" (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',  
library(rgrass)
           location = 'geostat2012_ll', mapset = 'user1',  
initGRASS(gisBase ='/Applications/GRASS-8.2.app/Contents/Resources',  
           gisDbase = '/Users/Lars/Documents/Biologi/grassdata', override = TRUE)
           location = 'nc_spm_08_grass7',  
          mapset = 'user1',  
           gisDbase = '/Users/carol/Documents/grassdata',  
          override = TRUE)
</source>
</source>


===== 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 76:
===== 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
  install.packages("ctv")
  install.packages("ctv")
  library("ctv")
  library(ctv)
  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 an 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 an R session (GUI mode) inside a GRASS session.


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

Latest revision as of 11:46, 18 March 2024

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

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

Status of rgrass package

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

Installation

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 rgrass library:

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

This R RPM is a meta-package. It has no content but ensures that the following components are installed: R-core, R-core-devel, R-java, R-java-devel, libRmath, libRmath-devel. Once those are installed, start "R" and install the rgrass library:

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

Mac OSX

Start an R session and try:

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->Resources which would be "GISBASE"; So, in my case, the "gisBase" parameter is "/HD/Applications/Grass-8.2.app/Contents/Resources". If you Command-click at the top of the window on the folder icon beside "Resources" (from the line above this one), you can see the full path.

Now we can run GRASS from within a R session:

library(rgrass)
initGRASS(gisBase ='/Applications/GRASS-8.2.app/Contents/Resources', 
          location = 'nc_spm_08_grass7', 
          mapset = 'user1', 
          gisDbase = '/Users/carol/Documents/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 an R session (command line mode) inside a GRASS session.
  • Start winGRASS, bring the winGRASS-windows console in front and type RGui for opening an R session (GUI mode) inside a GRASS session.