[R-sig-Geo] overlay SpatialPolygons and SpatialGridDataFrame, overlay

Edzer Pebesma e.pebesma at gmail.com
Thu Dec 24 16:59:39 CET 2009


Dear Patrick,

Patrick Giraudoux wrote:
> I am trying to clip a SpatialGridDataframe using a 
> SpatialPolygonsObject (actually a simple rectangle, e.g. a region), 
> the ultimate aim being to extract the corresponding area to a new 
> SpatialGridDataFrame corresponding to the region. I was supposing that 
> I can start doing it using the overlay function. Here we are:
>
> region<-matrix(c(73.5,18.1,73.5,54,135,54,135,18.1,73.5,18.1),ncol=2,byrow=T) 
>
> region<-SpatialPolygons(list(Polygons(list(Polygon(region)),ID=1)))
>
> idx<-overlay(WorldTemp,region)
>
> WorldTemp[!is.na(idx),]
>
> I get:
>
> Error in WorldTemp[!is.na(idx), ] :
>  (subscript) logical subscript too long
>
> The SpatialGridDataframe has  259200 pixels. Am I too greedy and is 
> there really a limitation in length?
do first a

fullgrid(WorldTemp) = FALSE

and then do the overlay. If you want to select individual pixels, this 
needs be done on SpatialPixelsDataFrame objects; if you select the way 
you did it, on a SpatialGridDataFrame object, it will select grid rows, 
as in WorldTemp[rowNumbers,colNumbers] -- no wonder that the pixel 
indexes (cell index numbers) vector was too long.

 From a design perspective, this might sound complex, but both selection 
mechanisms are convenient at times, and they match the way the data are 
stored. If your selection is as simple as you sketch above, you might 
prefer to select straight away on grid rows and columns of a 
SpatialGridDataFrame object.
>
> A second step would be to compute the upper left coordinates, etc... 
> to get the new SpatialGridDataFrame But this is another story...
R does this for you automatically, by

bbox(WorldTemp[!is.na(idx),]

but note that the bbox values for *Grid* and *Pixel* objects are grid 
and cell corners, not cell centers.
-
Edzer
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo

-- 
Edzer Pebesma
Institute for Geoinformatics (ifgi), University of Münster 
Weseler Straße 253, 48151 Münster, Germany. Phone: +49 251 
8333081, Fax: +49 251 8339763  http://ifgi.uni-muenster.de 
http://www.52north.org/geostatistics      e.pebesma at wwu.de



More information about the R-sig-Geo mailing list