隣接するラスターセルへの値の条件付き割り当て?
値ラスターがあります: 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(5,5)ではなくc(1,1)である場合、右下隅の新しい値のみを計算できます。したがって、期待される結果は次のようになります。 [,1] [,2] [,3] [1,] NA NA NA [2,] NA …