[R-sig-Geo] Sampling SpatialPolygonDataFrame attributes from points in a grid..

Roger Bivand Roger.Bivand at nhh.no
Thu May 22 18:42:07 CEST 2008

On Wed, 21 May 2008, reeves at nceas.ucsb.edu wrote:

> Greetings:
> I'd like to get some advice on performing this task:
> Given a SpatialPolygonsDataFrame, and a regularly-spaced point grid
> created 'over' the polygons using spsample() or similar method, how
> to extract one attribute from the polygon 'beneath' the location of
> each point in the grid, and then assign the computed attribute to
> the point? Best end product would be a SpatialPointsDataFrame.
> The next step would be to replace the attribute of all points corresponding
> to each polygon with a weighted average of all the point subset's attribute
> value.
> I am reviewing the spsample() and overlay() methods, which look like
> good candidates for this task. But perhaps there is a better way.
> Can someone direct me to a sample solution to a similar task,
> for example, a vector polygon to raster grid conversion?

I have a feeling of uncertainty about the relative resolutions of the grid 
and the polygons, how many points per polygon do you expect to see?

fn <- system.file("shapes/sids.shp", package="maptools")[1]
p4s <- CRS("+proj=longlat +ellps=clrk66")
xx <- readShapePoly(fn, IDvar="FIPSNO", proj4string=p4s)
xxG <- Sobj_SpatialGrid(xx, n=10000)
o <- overlay(xxG, xx)
zz <- as(xx, "data.frame")[o,]
xxSGDF <- SpatialGridDataFrame(slot(xxG, "grid"),
   proj4string=CRS(proj4string(xxG)), data=zz)

Going the other way, you can use tapply() using o to form ragged arrays, 
for example, say to take median grid values by polygon. If you could 
illustrate using this or another available case, it would help.


> Thanks in advance,
> Rick Reeves
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no

More information about the R-sig-Geo mailing list