# Extracting Raster Values from Points in R and GRASS

July 26, 2010
By

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

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 about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.