平均累计成本曲面/最短路径[R] [gdistance]

时间:2017-07-04 20:59:08

标签: r gis

我试图找到一种能够平均两个累积成本曲面的方法,这样我就可以找到从A到B和B到A的最佳路线。虽然差异是成本表面是由于旅行方向,出发路线与起点和目标点相同,因此我需要平均这些。

可以看出,累计成本曲面根据行程是从A到B还是从B到A而不同。因此,计算出的最佳路径不同。

enter image description here

有没有办法平均两个累计成本曲面来创建一个基于两个旅行的新成本曲面?

可重现的代码:

library(gdistance)
r <- raster(system.file("external/maungawhau.grd", package="gdistance"))

altDiff <- function(x){x[2] - x[1]}
hd <- transition(r, altDiff, 8, symm=FALSE)

slope <- geoCorrection(hd)

adj <- adjacent(r, cells=1:ncell(r), pairs=TRUE, directions=8)
speed <- slope
speed[adj] <- 6 * exp(-3.5 * abs(slope[adj] + 0.05))

Conductance <- geoCorrection(speed)

A <- c(2667670, 6479000)
B <- c(2667800, 6479400)
AtoB <- shortestPath(Conductance, A, B, output="SpatialLines")
BtoA <- shortestPath(Conductance, B, A, output="SpatialLines")

AtoBacc <- accCost(Conductance, A)
BtoAacc <- accCost(Conductance, B)

par(mfrow=c(1,3))
plot(AtoBacc, main="A to B")
plot(BtoAacc, main="B to A")

plot(r, xlab="x coordinate (m)", ylab="y coordinate (m)", legend.lab="Altitude (masl)", main="Both")
lines(AtoB, col="red")
lines(BtoA, col="blue")
text(A[1] - 10, A[2] - 10, "A")
text(B[1] + 10, B[2] + 10, "B")

谢谢!

编辑:

据我所知,累计成本曲面是栅格图层,因此我可以进行栅格计算。但是,我需要将其转换回过渡层,这将改变值。

0 个答案:

没有答案