我有一个代表一系列斑驳栖息地的栅格。每个栖息地斑块的值为1。栅格中的所有其他像元均设置为NA。我想像使用raster::buffer
一样在点周围应用缓冲区,但需要一些额外的功能。
当您离开补丁时,我希望缓冲区“衰减”。因此,如果patch = 1且缓冲区设置为3个mapunit,我希望缓冲区在mapunits = 3之前衰减到零。如果两个补丁之间的距离足够近,以致它们的缓冲区重叠,那么我需要应用一些函数来确定重叠单元格中的值(例如,求和,均值,第一个,最后一个等)。
我在下面提供了一些代码,这些代码说明了预期的结果。由于无法在线找到任何解决方案(搜索“递减缓冲区”或“递减缓冲区”),对不起,我无法提供更多代码来帮助您。
focal = raster(nrow=5, ncol=5, crs=NA, xmn=0, xmx=5, ymn=0, ymx=5)
focal[] = c(0.33,NA,NA,NA,0.33,
0.66,0.33,NA,0.33,0.66,
1,0.66,0.33,0.66,1,
0.66,0.33,NA,0.33,0.66,
0.33,NA,NA,NA,0.33)
plot(focal)