我正在尝试使用raster :: adjacent()创建一个rooks case邻接矩阵,但我无法理解输出。
可重复的例子:
library(raster)
r <- raster(nrow = 3, ncol = 3)
rAdjacent <- raster::adjacent(r, cells = 1:ncell(r), pairs = TRUE, directions = 4)
rAdjacent
from to
[1,] 1 3
[2,] 2 1
[3,] 3 2
[4,] 4 6
...
根据我对输出的解释,输出结果表明1和3有一个案例关系(如果我理解这种关系,他们就不会)。
问题1.这是正确的吗?我正确地解释了这个输出吗?
问题2.如何使用相邻()或其他能够为我提供相邻单元格数对的输出?
谢谢:)
答案 0 :(得分:3)
您需要投射光栅。
如果光栅不是,则该功能连接外部子午线 投射(在地理(纬度/经度)“投影”)并且有数据在 经度-180和180度。 (来自here)。
r <- raster(nrow = 3, ncol = 3)
crs(r) <- CRS("+proj=robin +datum=WGS84")
rAdjacent <- raster::adjacent(r, cells = 1:ncell(r),
pairs = TRUE, directions = 4)
rAdjacent[order(rAdjacent[,1]),]
from to [1,] 1 2 [2,] 1 4 [3,] 2 1 [4,] 2 3 [5,] 2 5 [6,] 3 2 [7,] 3 6 [8,] 4 5 [9,] 4 1 [10,] 4 7 [11,] 5 4 [12,] 5 6 [13,] 5 2 [14,] 5 8 [15,] 6 5 [16,] 6 3 [17,] 6 9 [18,] 7 8 [19,] 7 4 [20,] 8 7 [21,] 8 9 [22,] 8 5 [23,] 9 8 [24,] 9 6