# Extracting Raster Values from Points in R and GRASS

July 26, 2010
By

(This article was first published on Computational Ecology, and kindly contributed to R-bloggers)

A common task in GIS analysis is to extract the value of a remotely
sensed environmental variable at a point location. For instance we
may wish to extract the elevation of a field plot from a digital
elevation model. The elevation data is a raster (i.e. grid) and the
plots are a point shapefile (or a simple text file of X, Y
locations). The command for doing this in ArcGIS is
`ExtractValuesToPoints` available in the Spatial Analyst package.
Situations may arise where ArcGIS is not the most efficient way of
extracting these values. So, here, I provide a brief overview of how to
extract raster values to points in R and GRASS.

### Extract Values to Points in R

This is strikingly easy is R. My work usually requires more
statistical sophistication than is available in ArcGIS. As a
result, I have completely switched to doing the extraction in R. I
known I am going to end in R eventually, and it is easier to automate
than writing a long python script in ArcGIS.

#### Data required

For the purpose of this exercise. All the data must be have the
same spatial projection.

`gr.asc`
an ESRI ASCII grid. This could also be an ArcGIS
binary grid if you know how to use RGDAL. That perhaps will be
another post.
`pt.shp`
a point shapefile.

You also need the `maptools` and `sp` packages.

#### The Code

That is it. Fast, and easy.

### Extracting Values in GRASS

Extracting raster values in GRASS is somewhat faster than in R, but
it takes a little bit more planning in that you have to explicitly
create the column that the raster values will go into.

#### Data Required

• `gr` : A GRASS grid
• `pt` : A GRASS point dataset

#### The Code

The basic flow of this is that you create an empty column in the
point dataset with the right data type (i.e. `varchar(10)` string
of length 10, `double precision` floating point numbers, `int`
integers). Then, fill the column with the raster values.

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...