[R-sig-Geo] How to reduce the buffering time with the function "buffer" (package raster)

Forrest Stevens r-sig-geo at forreststevens.com
Tue Apr 12 03:55:49 CEST 2016


And this is for a raster with around 5 milliion cells? Your results
surprise me a bit, especially if the bottleneck is at the call to
buffer()/distance().  Your best bet is to wait for a response from Robert
Hijmans or someone else working on the package, they might have some other
tricks up their sleeves. In any case, I agree, 5+ hours is extremely
excessive.

Sincerely,
Forrest

On Mon, Apr 11, 2016 at 6:57 PM Nelly Reduan <nell.redu at hotmail.fr> wrote:

> Thank you very much Forrest for your answer. I don't think I have memory
> problems (my computer has a 32 GB memory).
>
>
> Here is my code to draw the 100-m buffers with the function "buffer"
> (package raster):
>
> r1 <- r ## r is the original raster and has a resolution of 10m
> r1[(r1[]!=2 & r1[]!=5)]=NA
> plot(r1)
> r2 <- buffer(r1, 10)
>
>
> I also tested the function distance (package raster):
>
> r1 <- r ## r is the original raster and has a resolution of 10m
> r1[(r1[]!=2 & r1[]!=5)]=NA
> plot(r1)
> r3 <- distance(r1)
>
>
> In the two cases, I stopped the functions afer 5 hours as this was too
> long ! For the moment, I haven't find solutions.
>
>
> Thanks a lot for your time.
>
> Have a nice day.
>
> Nell
>
>
>
>
> ------------------------------
> *De :* Forrest Stevens <r-sig-geo at forreststevens.com>
> *Envoyé :* lundi 11 avril 2016 09:09
> *À :* Nelly Reduan; r-sig-geo at r-project.org
> *Objet :* Re: [R-sig-Geo] How to reduce the buffering time with the
> function "buffer" (package raster)
>
> Five million cells isn't all that many, how slow is too slow? Buffering a
> raster of about 10 million cells on my laptop takes on the order of 20
> seconds or so for a binary raster. Is it possible that you're fighting
> memory problems?
>
> In the past when doing multiple ring buffers I've found it faster to
> calculate a distance-to raster first, and then apply multiple logical
> comparisons on the distance raster.  I don't know if this applies to your
> situation or not but it's one trick that might help.
>
> Sincerely,
> Forrest
>
> On Mon, Apr 11, 2016 at 10:58 AM Nelly Reduan <nell.redu at hotmail.fr>
> wrote:
>
>> Hello,
>>
>>
>> I would like to build 100-m buffers (representing ecological corridors)
>> around land cover attributes in a raster layer and to assign a given value
>> (i.e., value of 13) to buffer cells.
>>
>>
>> To do this, I'm using the function "buffer" (package raster) to draw the
>> buffers around particular raster cells (i.e., cell values of 2 and 5). For
>> example, in the image below, the buffers are represented in blue (cell
>> values of 13) and the particular raster cells are represented in yellow
>> (cell values of 2).
>>
>>
>> The problem is that the time to run the function "buffer" is very low
>> because I have a raster of 5000000 cells. Does anyone know how I can reduce
>> the buffering time ?
>>
>>
>> Thanks a lot for your time.
>>
>> Have a nice day.
>>
>> Nell
>>
>> [image: Capture.PNG]
>>
>> _______________________________________________
>> R-sig-Geo mailing list
>> R-sig-Geo at r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://stat.ethz.ch/pipermail/r-sig-geo/attachments/20160412/22c1a547/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Capture.PNG
Type: image/png
Size: 12209 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-geo/attachments/20160412/22c1a547/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Capture.PNG
Type: image/png
Size: 12209 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-geo/attachments/20160412/22c1a547/attachment-0001.png>


More information about the R-sig-Geo mailing list