RgdistanceのaccCost()とcostDistance()関数は、ソース座標Aから目的座標Bに移動するときに異なる値を生成します。Bのコスト累積値は、等価な異方性遷移行列が与えられ、両方の関数がDijkstraアルゴリズムを使用すると、AからBまでのcostDistance値?R:accCostとcostDistanceのgdistanceの結果が異なる
もしそうでなければ、計算の根本的な違いは何ですか?そうであれば、以下に示すコードから得られたさまざまな値をどのように説明しますか?この例では、AからBのcostDistance = 0.13時間で、accCost = 0.11時間のB点で実行されます。私の他のテストでは、accCostは一貫してcostDistanceより小さく、そのまま維持しています。コードは、accCostのドキュメントに記載されている例に基づいています。
require(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 * 1000 * exp(-3.5 * abs(slope[adj] + 0.05))#1000 to convert to a common spatial unit of meters
Conductance <- geoCorrection(speed)
A <- matrix(c(2667670, 6479000),ncol=2)
B <- matrix(c(2667800, 6479400),ncol=2)
ca <- accCost(Conductance,fromCoords=A)
extract(ca,B)
costDistance(Conductance,fromCoords=A,toCoords=B)
再現可能な例を示してください。 http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –
"require(gdistance)"という行を追加しました。この例では、完全に再現可能な例にする必要があります。 – RandyHaas