R中的焦点功能

时间:2014-05-18 18:53:13

标签: r raster

我想使用矩阵运行焦点细胞邻域的焦点值,最好使用函数。我的数据有0,1和2作为值,如果我使用焦点函数,我想仅添加值“1”。

这可能是一个非常简单的问题,我尝试了很多种组合,但仍未达到预期效果。

请帮忙!

这是我尝试的其中一个代码:

# 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)

1 个答案:

答案 0 :(得分:2)

您正在为您的功能调用焦点。该函数将传递给焦点,并应表示您希望在本地窗口中完成的操作。我不知道unique()的应用是什么。在你的情况下,条件总和只是:

r_new <- focal(in_image, w=matrix(1/9, ncol=3, nrow=3), fun=function(x) sum(x[x==1]))