如何将到相邻单元格的距离向量转换为距离的中心矩阵

时间:2021-01-20 06:06:03

标签: r coordinates raster r-raster adjacency-matrix

我想将距离矩阵恢复到代表矩阵中心的焦点 my_point。在这一点上我可以做:

        library(raster)
        set.seed(123)
        m168 <- matrix(1, nrow=13, ncol=13)
        m168[7,7] <- 0
        r <- raster(ncol=1000, nrow=1000)
        values(r) <- round(runif(ncell(r)) * 5)
        REP_UTM <-  '+proj=utm +zone=19 +ellps=GRS80 +datum=NAD83 +units=m +no_defs'
        r <- projectRaster(r, crs = REP_UTM)
        my_point <- c(500000, 560000)
        cells_a <- cellFromXY(r,my_point)
        xy_point <- xyFromCell(r, cells_a)
        a<- adjacent(r, cells=cells_a, directions=m168, pairs=FALSE)
        xy_a <- xyFromCell(r, a) 
        dist_to_a <- pointDistance(xy_a, my_point, lonlat=FALSE)

但我无法将向量 dist_to_a 转换为 13*13 方阵。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

@jay.sf 非常感谢你,同时我找到了一个解决方案:

dist_to_a <- append(dist_to_a, 0, 84) 
dist_to_a <- matrix(dist_to_a, nrow=13, ncol=13) 
相关问题