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

Patrick Giraudoux patrick.giraudoux at univ-fcomte.fr
Thu Dec 24 17:23:20 CET 2009

Edzer Pebesma a écrit :
> 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

Woaouuuu... Impressive. I will dig on that and go further ASAP

>> _______________________________________________
>> 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