澄清raster :: adjacent()输出值:

时间:2018-03-29 20:16:07

标签: r gis raster

我正在尝试使用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.如何使用相邻()或其他能够为我提供相邻单元格数对的输出?

谢谢:)

1 个答案:

答案 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