RQGIS, Utilizing Rstudio as an alternative GIS

From CUOSGwiki
Jump to navigationJump to search

Introduction

This tutorial is meant to demonstrate how to utilize RQGIS as a method of processing and analyzing spatial data. You will learn how to set up an environment within R to utilize RStudio as a GIS application. Additionally, you will learn how to make use of various QGIS, SAGA and GRASS functions within RStudio by accessing their functions using the R coding language.


RStudio and RQGIS

RStudio

RStudio is an open source IDE that utilizes the programing language “R”. Due to the nature of open source software a wealth of packages have been developed for the “R” language(RQGIS included) which allow users to preform various types of statistical analysis, modeling and geospatial processes.

RQGIS

RQGIS acts a bridge package between the functionality of QGIS and the IDE of RStudio. By installing this package, the user can access the geospatial processing functions found within QGIS from within RStudio. This allows for the user to utilize R as their primary GIS without losing any of the functionalities tied to using QGIS.

Installation guides

QGIS

We start by creating a fresh install of QGIS in order to download the functions that we will be exploring in this tutorial. QGIS can be installed from https://www.qgis.org/en/site/forusers/download.html, for the purposes of this tutorial we will be installing the 64-bit version.

Figure 1: QGIS 64-bit installer.
  • After downloading the installer, open it, select Advanced install then click next
  • We will be intalling QGIS into the default root directory so click next to continue through the installer
  • Next select install from internet and then click next
  • A default directory will be created for temporary files, you can create a custom directory for these temporary files or use the default one
  • Select direct connection and click next
  • Select the host http://download.osgeo.org which will act as the provider for the download
  • Next click the circle to select install for: commandline_Utilities, Desktop, and Libs
Figure 1: Packages that will be installed within this version of QGIS Desktop.

R and RStudio

In order to utilize RStudio we first need to download R. This can be installed from https://cran.r-project.org/bin/windows/base/. For this installer we will be accepting all of the default paths and options.

Figure 1: R 3.5.2 installer.

Now we can download RStudio, similar to R we will be utilizing all default paths and options. RStudio can be downloaded from https://www.rstudio.com/products/rstudio/download/#download.

Figure 1: R 3.5.2 installer.

RStudio and RQGIS setup

Now that we have all of the software that we need we can proceed with setting up RQGIS within RStudio. Start by opening up RStudio and creating a new ‘’’R script’’’ file (file->new file->R script). Within this new script we will be downloading and installing some packages that allow us to manipulate raster and spatial data within RStudio. Start by adding this code to your script and running it.

#Install packages
install.packages("sp")
install.packages("RQGIS")
install.packages("rgeos")
install.packages("raster")
#Attach packages to workspace
library("sp")
library("RQGIS")
library("rgeos")
library("raster")
  • sp: provides functions for plotting spatial data
  • RQGIS: Creates a link between the IDE (RStudio) and functions found within QGIS
  • rgeos: allows for the manipulation of vector data
  • raster: Provides the user to read, write and manipulate raster images within RStudio

Now that we have installed all the necessary packages we have to link the directory of the QGIS applications to our current RStudio workspace. This is achieved by utilizing the set_env() function.

#Links QGIS paths to the current RStudio workspace
set_env()

Try adding this line to your script,after running this line the console should provide path names similar to this example.

Figure 1: Connection of QGIS paths within the RStudio Workspace.

Now you have full access to all of the geoprocessing functions found within your copy of QGIS Desktop. Within this workspace you will be able to call these functions to manipulate and display spatial data.

Data Acquisition

In this tutorial we will make use of datasets that are accessible within RStudio, to demonstrate the use of various geoprocessing functions. In order to access these datasets you use the data() function which provides the user with a list of all available datasets preloaded within RStudio. Additionally the getData() function allows the user to download geographic data for specific countries around the world.

First up we will create a folder within your main directory in order to store all of the outputs that we create within this tutorial. This folder will be placed in the first branch of your C: drive, if your computer's IOS is located on a different drive (such as a D: drive) you will have to modify the drive name within the code to match your computer's hard drive.

#Create a working directory for this tutorial
mainDir <- "C:/"
subDir <- "tutorial"
if (file.exists(subDir)){
  setwd(file.path(mainDir, subDir))
} else {
  dir.create(file.path(mainDir, subDir))
  setwd(file.path(mainDir, subDir))  
}

Next we will import the datasets that we will be using in this tutorial into our workspace and display them within the RStudio plot frame. We will be downloading a DEM of Canada as well as a preloaded DEM of Mt. Mongón which is located in Peru.

#Digital elevation model (DEM) of the Mongón study area
data(dem) 
dem_mongon<-dem
plot(dem_mongon, col=grey(0:100/100), main='DEM of the Mongón study area')
#Digital elevation model (DEM) of Canada
canada_dem<-getData('alt', country='CAN', mask=TRUE)
plot(canada_dem, col=grey(0:100/100), main='DEM of Canada')

After running this code you will notice that the DEM's are displayed in the lower right plot window. The outputs should look like this:

Figure 1: DEM of Canada displayed within the plot window.
Figure 1: DEM of Mount Mongón displayed within the plot window.


QGIS Functions

In order to utilize QGIS functions within RStudio, we first have to learn how to find the functions we want to use with their respective syntax, as well as learn what parameters we will be working with for each function. In order to do this we will be making use of the find_algorithms() function and get_usage() function. The find_algorithms() function allows the user to enter a keyword for the function they are interested in using, and provides the user with a list of available functions that pertain to that keyword. After selecting the function that we are interested in using we can use the get_usage() function to display the parameters that the function requires as inputs. As an example we will use the find_algorithms() to search for a clipping function.

#Searches for functions which contain the keyword 'clip'
find_algorithms(search_term = 'clip')

After running this line you will see a list of 11 clipping tools that have been displayed in the console.

Figure 1: Clipping algorithms available for use within RStudio.

Lets select the first one qgis:clip and determine which parameters we will need to be able to make use of this function in RStudio. To do this we will use the get_usage() function. In order to use this function we need to use the full name of clip which is qgis:clip. Additionally, by setting intern=FALSE we can display the parameters in a list.

#Provides the user with information regarding the parameters of a function
get_usage(alg = "qgis:clip",intern=FALSE)

When running this line of code you will see a list of the functions parameters appear in the console. This provides you with information regarding the type of input required for each parameter and provides the user with a legend for parameters that are normally accessed through drop down boxes.

Figure 1: Parameters needed in order to utilized the QGIS clip function.

Now that we know how to search for the functions we would like to use we can go on to utilizing these functions to modify our DEM files.