Hello All,

I am using the function "focal" in the R package "raster" but I don�t 
understand how the function calculates values for neighboring cells that are 
located at the raster edge. Here is an example reproducible:

f <- matrix(1, nrow=3, ncol=3)
f[c(1,3,7,9)]=1/sqrt(2)
f[5]=0

func <- function(x) {
  sum(abs(x-x[5])*f)/8
}

r <- raster(ncol=3, nrow=3)
vals <- 1:ncell(r)
r <- setValues(r, vals)
plot(r)

func_f  <- focal(r, w=matrix(1,nrow=3,ncol=3),
                   fun= func, pad = TRUE, padValue = NA)
text(func_f )
getValues(func_f)


From the example, I manage to find the value �2.06066�:

c <- 5

(abs(1-c)*(1/sqrt(2)) + abs(2-c)*1 + abs(3-c)*(1/sqrt(2)) +

  abs(4-c)*1 + abs(5-c)*0 + abs(6-c)*1 +

  abs(7-c)*(1/sqrt(2)) + abs(8-c)*1 + abs(9-c)*(1/sqrt(2))) / 8


 but I don�t manage to find the value �2.18566�. How can I find this value ? In 
addition, why does the function with �pad = TRUE� and without �pad=TRUE� give 
the same result ?

 Thank you very much for your time.

Have a nice day

Marine


        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to