[R-sig-Geo] Issues with R focal (raster package)

Francesco Tonini ftonini84 at gmail.com
Wed Jan 14 18:51:47 CET 2015


Dear all,

I was wondering if any of you could help me with the following task 
dealing with the focal() function in the R raster package.

By default, the focal() function will run through each cell of a given 
raster ('background' raster hereafter) and apply a given function to the 
neighboring values as defined by a user-defined moving window. In order 
to optimize and speed up my computation on large rasters/study areas, I 
would like to apply this function (filter) only when the 'background' 
raster has some values (e.g. greater than zero) within the extent 
covered by the 'moving window' and skip all the other focal cells. This 
way, the filter would not spend time computing any focal value where 
there is no need to.

Below a reproducible small example and in-line comments:

|library(raster)

x<-  matrix(1:25,  ncol=5)
x[c(1,2,3,6,7,8,11,12,13)]  <-  0
r<-  raster(x)

#Apply filter to focal cells and return values using a 3x3 moving window...ONLY IF
#ALL values found within the window are > 0. Skip focal cell otherwise.

r3<-  focal(r,  w=matrix(1/9,nrow=3,ncol=3),  FUN=sum)|

How should I change this function to have the desired outcome?


Thank you.
Francesco

	[[alternative HTML version deleted]]



More information about the R-sig-Geo mailing list