[R] Calculate focal values for neighboring cells that are located at the raster edge from the function "focal" in the R package "raster"

Marine Regis m@rine@regi@ @ending from hotm@il@fr
Fri Jun 8 18:00:23 CEST 2018


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]]



More information about the R-help mailing list