[R-sig-Geo] Focal function in R

Matteo Mattiuzzi matteo.mattiuzzi at boku.ac.at
Mon May 19 10:00:32 CEST 2014


Is that what you want?

library(raster)
# your reproducible! raster
r <- raster()
r[] <- sample(0:2,ncell(r),replace=TRUE)

funX <- function(x){sum(x==1)} 
res1 <- focal(r,fun=funX,w=matrix(1, ncol=3, nrow=3))
# or in this special case (sum if 1) also 
rn <- r==1
res2 <- focal(rn,w=matrix(1, ncol=3, nrow=3))

# more general (eg sum if 2):
funX <- function(x){sum(x[x==2])} 
res3 <- focal(r,fun=funX,w=matrix(1, ncol=3, nrow=3))

Matteo


>>> anusheema <anusheema at gmail.com> 05/18/14 8:57 PM >>>
Hi!

I want to run focal values for neighbourhood of focal cells using a matrix,
with a function preferably. My data has 0, 1, and 2 as values, and I want to
add values of "1" only, if I am using the focal function.

It's probably a very simple question, and I have tried many combinations,
but still not getting the desired results.

Please help!

Here's one of the codes that I was attempting:

# to generate the function
   my.function <- function (x) {
      ux <- unique(x)
      ux [if (x==1) ux <- focal(in_image, w=matrix(1/9, ncol=3, nrow=3)),
fun=sum]
      }

# to run the focal window for the desired function
    r_new <- focal(in_image, w=matrix(1/9, ncol=3, nrow=3), fun=my.function)



--
View this message in context: http://r-sig-geo.2731867.n2.nabble.com/Focal-function-in-R-tp7586466.html
Sent from the R-sig-geo mailing list archive at Nabble.com.

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo at r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo



More information about the R-sig-Geo mailing list