[R-sig-Geo] Overlay of SpatialGrid/Raster and polygons

Alan Swanson alan.swanson at umontana.edu
Mon Nov 23 22:18:50 CET 2009


Ned, here is how I have done that using the overlay function. Not sure 
if it would work with a rasterstack. 
Alan

xy.locs <- readOGR(poly.shapefile.name,drop_unsupported_fields=T)
img<-readGDAL(image.name)
y<-slot(img,"data")
n.bands <- ncol(y)
bnames <- paste(varname,"_b",1:n.bands,sep="") }
out.frame <- 
as.data.frame(matrix(NA,nrow=nrow(xy.locs),ncol=n.bands,dimnames=list(NULL,bnames)))   

for(m in 1:(n.poly <- length(slot(xy.locs,"polygons")))){
    gc()
    z<-overlay(img,xy.locs[m,])
    for(j in 1:n.bands){
        xx <- mean(y[z==1 & !is.na(z),j],na.rm=T)
        out.frame[m,j] <- xx
        } # end inner loop over bands #
    } # end loop over individual polygons #
  


Ned Horning wrote:
> 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
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
>



More information about the R-sig-Geo mailing list