<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
I&nbsp; am trying to install "raster" package, but&nbsp; it is not available&nbsp; in
this site.&nbsp; <a class="moz-txt-link-freetext" href="http://R-Forge.R-project.org">http://R-Forge.R-project.org</a> . <br>
<br>
Zia<br>
<br>
Robert J. Hijmans wrote:
<blockquote
 cite="mid:dc22b2570911231305s7f8a23d8v25f85b02d0e311e1@mail.gmail.com"
 type="cite">
  <pre wrap="">Hi Ned,

Here is an approach to get values from a RasterStack to all cells in
each polygon:

library(raster)
# a polygon
data(meuse.riv)
pol &lt;- SpatialPolygons(list(Polygons(list(Polygon(meuse.riv)), "x")))
# a raster
r1 &lt;- raster(system.file("external/test.ag", package="sp"))
r2 &lt;- sqrt(r1)
# a stack
s &lt;- stack(r1, r2)

# convert the polygon to a RasterLayer
rr &lt;- polygonsToRaster(pol, s)

par(mfrow=c(1,2))
plot(r1)
plot(pol, add=TRUE)
plot(rr)

# extract points that are not NA
pts &lt;- rasterToPoints(rr) # see additional arguments to select a
subset (useful for very large rasters)
# perhaps subsample your points
sampl &lt;- sample(1:length(pts[,1]), min(100, length(pts[,1])))
pts &lt;- pts[sampl,]

v &lt;- xyValues(s, pts[,1:2])
# if you have mutiple polygons, bind the polygon ID to the raster values:
v &lt;- cbind(pts[,3], v)

# You could also sample points with spsample
pts &lt;- spsample(pol, 100,  "random")
# remove duplicate cells
cells &lt;- unique(cellFromXY(s, pts))
v2 &lt;- cellValues(s, cells)

# or sample from a SpGDF if you can create it from the RasterLayer (if
it is not too big)
spdf &lt;- as(rr, 'SpatialGridDataFrame')
pts &lt;- spsample(spdf, 100,  "random")
v3 &lt;- xyValues(s, pts)


For extremely large rasters, rasterToPoints could fail. If so, first
create a RasterLayer with random values with calc and "fun=runif" and
make values F for e.g x &gt; 0.01, overlay that with rr, and try
rasterToPoints again...

Hth, Robert




On Mon, Nov 23, 2009 at 12:16 PM, Ned Horning <a class="moz-txt-link-rfc2396E" href="mailto:horning@amnh.org">&lt;horning@amnh.org&gt;</a> wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Greetings,

I am looking for a way to use R to extract pixel values (currently in a
large RasterStack object) that fall under polygons (currently a
SpatialPolygonsDataFrame object). I seem to recall a discussion about using
overlay to do this but I can't find a method that would work.

Any insight would be appreciated.

Ned

_______________________________________________
R-sig-Geo mailing list
<a class="moz-txt-link-abbreviated" href="mailto:R-sig-Geo@stat.math.ethz.ch">R-sig-Geo@stat.math.ethz.ch</a>
<a class="moz-txt-link-freetext" href="https://stat.ethz.ch/mailman/listinfo/r-sig-geo">https://stat.ethz.ch/mailman/listinfo/r-sig-geo</a>

    </pre>
  </blockquote>
  <pre wrap=""><!---->
_______________________________________________
R-sig-Geo mailing list
<a class="moz-txt-link-abbreviated" href="mailto:R-sig-Geo@stat.math.ethz.ch">R-sig-Geo@stat.math.ethz.ch</a>
<a class="moz-txt-link-freetext" href="https://stat.ethz.ch/mailman/listinfo/r-sig-geo">https://stat.ethz.ch/mailman/listinfo/r-sig-geo</a>
  </pre>
</blockquote>
</body>
</html>