[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