有条件地将值分配给相邻的栅格像元吗?
我有一个值栅格: m <- matrix(c(2,4,5,5,2,8,7,3,1,6, 5,7,5,7,1,6,7,2,6,3, 4,7,3,4,5,3,7,9,3,8, 9,3,6,8,3,4,7,3,7,8, 3,3,7,7,5,3,2,8,9,8, 7,6,2,6,5,2,2,7,7,7, 4,7,2,5,7,7,7,3,3,5, 7,6,7,5,9,6,5,2,3,2, 4,9,2,5,5,8,3,3,1,2, 5,2,6,5,1,5,3,7,7,2),nrow=10, ncol=10, byrow = T) r <- raster(m) extent(r) <- matrix(c(0, 0, 10, 10), nrow=2) plot(r) text(r) 从该栅格中,如何根据此插图为当前像元的8个相邻像元分配值(或更改值)?我从此代码行在当前单元格中放置了一个红点: points(xFromCol(r, col=5), yFromRow(r, row=5),col="red",pch=16) 在这里,预期结果将是: 其中当前像元的值(即值栅格中的5)被替换为0。 总体而言,必须按以下方式计算8个相邻像元的新值: 新值=红色矩形中包含的单元格值的平均值*当前单元格(红色点)与相邻单元格之间的距离(即,对角线相邻单元格的sqrt(2)或其他情况下的1) 更新资料 当相邻像元的边界超出栅格限制时,我需要计算尊重条件的相邻像元的新值。不遵守条件的相邻单元将等于“ NA”。 例如,如果使用[row,col]表示法的参考位置是c(1,1)而不是c(5,5),则只能计算右下角的新值。因此,预期结果将是: [,1] [,2] [,3] [1,] NA NA NA [2,] …