代码之家  ›  专栏  ›  技术社区  ›  gvan

关于光栅::相邻()输出值的说明:

  •  1
  • gvan  · 技术社区  · 6 年前

    我正在尝试使用raster::Nextant()创建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具有rooks case关系(如果我正确理解这种类型的关系,它们就没有)。

    问题1。这是正确的吗?我是否正确解释了此输出?

    问题2。如何使用nextual()或其他提供成对相邻单元格编号的工具创建输出?

    谢谢:)

    1 回复  |  直到 6 年前
        1
  •  5
  •   DJack    6 年前

    您需要投影光栅。

    如果光栅不是,则该功能连接外部子午线 投影(在地理(纬度/经度)“投影”中),并且在 经度-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