[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