[R-sig-Geo] polygonValues (raster): Very slow

Nikhil Kaza nikhil.list at gmail.com
Wed Jun 30 19:23:09 CEST 2010


I second that you should reconsider weights argument and zonal  
statistics are much faster.


In case you wanted starspan download here it is

http://projects.atlas.ca.gov/frs/?group_id=48


Nikhil Kaza
Asst. Professor,
City and Regional Planning
University of North Carolina

nikhil.list at gmail.com

On Jun 30, 2010, at 1:15 PM, Robert J. Hijmans wrote:

> Dear Agus,
>
> You are extracting values for 18000 polygons for a high res raster.
> That is going to take a while. And using "weights=TRUE" is also bad
> (in terms of processing speed!); do you really need it?. You can do
> some testing by subsetting the polygons object.
>
> If the polygons are not overlapping, you could consider to do
> polygonsToRaster and then zonal. That would likely be much faster (but
> you would not have the weights).
>
> I have not attempted to optimize polygonValues much and 'raster' does
> not do multi-processor computations. I hope to have that implemented,
> at least for some slower functions like this one, by the end of this
> year.
>
> Robert
>
> On Wed, Jun 30, 2010 at 7:12 AM, Agustin Lobo  
> <alobolistas at gmail.com> wrote:
>> Hi!
>> I'm trying:
>>
>>> eugrd025EFDC <- readOGR(dsn="eugrd025EFDC",layer="eugrd025EFDC")
>> v <- polygonValues(p=eugrd025EFDC, Br, weights=TRUE)
>>
>> where
>>
>>> str(eugrd025EFDC,max.level=2)
>> Formal class 'SpatialPolygonsDataFrame' [package "sp"] with 5 slots
>>  ..@ data       :'data.frame': 18000 obs. of  5 variables:
>>  ..@ polygons   :List of 18000
>>  .. .. [list output truncated]
>>  ..@ plotOrder  : int [1:18000] 17901 17900 17902 17903 17899 17898
>> 17904 17897 17905 17906 ...
>>  ..@ bbox       : num [1:2, 1:2] 2484331 1314148 6575852 4328780
>>  .. ..- attr(*, "dimnames")=List of 2
>>  ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slots
>>
>>> summary(Br)
>> Cells:  13967442
>> NAs  :  0
>>
>>
>> Min.       0.00
>> 1st Qu.    0.00
>> Median     0.00
>> Mean      48.82
>> 3rd Qu.    0.00
>> Max.    4999.00
>>
>> so quite large objects.
>>
>> The problem is that  polygonValues() has been running (and not
>> completed the task) for
>> more than 2 h on a intel core i7 machine with 16 Gb RAM (Dell
>> Precision M6500), so a pretty powerful machine.
>> Is there any way I could speed up this process?
>> Also, is there anything I could do in order to take better advantage
>> of the 8 processing threads?
>> Currently, I see only 1 cpu working for R processes and the rest
>> remain pretty inactive
>>
>> Thanks
>>
>> Agus
>>
>> _______________________________________________
>> R-sig-Geo mailing list
>> R-sig-Geo at stat.math.ethz.ch
>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>
>
> _______________________________________________
> 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