2017-06-17 104 views
0

我正在尝试创建无法通过最低成本路径穿过的障碍(河流)。最低成本路径障碍(R)(gdistance)

我创建了一个使用“地区”的过渡图层,其中包含陆地和河流上的过渡值。然而,障碍物周围存在“缓冲”,价值增加,而不是离散的障碍。

成本栅格和过渡层 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]]))

+0

我在这里回答了这个问题:HTTPS ://gis.stackexchange.com/questions/244364/least-cost-path-barrier-r-gdistance/244447#244447 – JacobVanEtten

回答

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