我想算出从值1的栅格中的每个像元到值0的每个像元的距离(以像元数为单位)。理想情况下,输出将是另一个栅格,其中每个像元的值为距值为0的像元的最短距离。在原始栅格中为0的像元将假定值为0,因为从技术上讲,它们距离值为0的像元有0个像元。
但是,到目前为止,我对如何执行此操作的搜索均未成功。我相信QGIS中的接近性()命令可以做到这一点,但是要使用QGIS的r扩展(RQGIS)需要通过命令行下载多个项(SAGA,GRASS和QGIS),并且尝试安装时遇到了错误如果有人知道用R专门执行此操作的方法,那么SAGA会喜欢它。
这里是一个包含1和0的栅格,可以作为该问题的可重现示例:
library(raster)
#create raster and add 1's and 0's
land <- raster(matrix(0, 8, 10), xmn=408027.5, xmx=413027.5, ymn=4370000,
ymx=4374000)
land[4:8, 2:5] <- 1
land[2:3, 8:9] <- 1
land[1,0:10] <- 1
land[is.na(land[])] <- 0
#plot the raster
plot(land)