我正在努力创造一条无法通过最低成本路径穿越的障碍(河流)。
我使用“区域”创建了一个过渡层,其中包含陆地和河流上的过渡值。然而,屏障周围有一个“缓冲区”,值越来越大,而不是一个独立的屏障。
成本栅格和过渡层 可以看出,过渡层中的屏障周围有一个“缓冲区”。
关于如何创建离散边界的任何想法?优选地,屏障为值1000,其他地方的值为1。
谢谢!
代码:
library(gdistance)
## Create cost surface where "land" exists in the middle
cost <- raster(nrow=100, ncol=100,
xmn=0, xmx=100, ymn=0, ymx=100, crs="+proj=utm")
cost[] <- 10
cost[cellFromRowColCombine(cost, 50:55,20:80)] <- 1000
costf <- asFactor(cost < 100)
## Produce transition matrices, and correct because 8 directions
trCost <- transition(costf, "areas", directions=16)
trCost1 <- geoCorrection(trCost[[2]], type="c")
plot(cost)
plot(raster(trCost[[1]]))
答案 0 :(得分:0)
我建议你将真正的障碍定义为NA
值,而不是高值,因为概率总是可能的:
library(gdistance)
## Create cost surface where "land" exists in the middle
cost <- raster(nrow=100, ncol=100,
xmn=0, xmx=100, ymn=0, ymx=100, crs="+proj=utm")
cost[] <- 10
cost[cellFromRowColCombine(cost, 50:55,20:80)] <- NA
costf <- asFactor(cost < 100)
## Produce transition matrices, and correct because 8 directions
trCost <- transition(costf, "areas", directions=16)
plot(cost)
plot(raster(trCost))