最低成本路径障碍(R)(gdistance)

时间:2017-06-17 11:01:47

标签: r gis r-raster

我正在努力创造一条无法通过最低成本路径穿越的障碍(河流)。

我使用“区域”创建了一个过渡层,其中包含陆地和河流上的过渡值。然而,屏障周围有一个“缓冲区”,值越来越大,而不是一个独立的屏障。

成本栅格和过渡层 cost raster Transition layer 可以看出,过渡层中的屏障周围有一个“缓冲区”。

关于如何创建离散边界的任何想法?优选地,屏障为值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]]))

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))