accCost() - und costDistance() - Funktionen von R gdistance erzeugen unterschiedliche Werte beim Übergang von der Quellkoordinate A zur Zielkoordinate B. Sollte der Kostenakkumulationswert bei B nicht gleich dem sein costDistance-Wert von A nach B bei einer äquivalenten anisotropen Übergangsmatrix und dass beide Funktionen den Dijkstra-Algorithmus verwenden?R: gdistance verschiedene Ergebnisse für accCost und costDistance
Wenn nicht, was ist der grundlegende Unterschied zwischen den Berechnungen? Wenn ja, was sind die unterschiedlichen Werte, die sich aus dem unten dargestellten Code ergeben? Im Beispiel A bis B costDistance = 0,13 Stunden und accCost = 0,11 Stunden bei Punkt B. Meine anderen Tests deuten darauf hin, dass accCost konsistent weniger als CostDistance ist und dies auch über weite Entfernungen. Der Code basiert auf dem Beispiel in der accCost-Dokumentation.
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)
Bitte geben Sie ein reproduzierbares Beispiel an. http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-beispiel –
Ich habe die Zeile "require (gdistance)" hinzugefügt, die das Beispiel vollständig reproduzierbar machen sollte. – RandyHaas