Ich möchte den Abstand zwischen mehreren GPS-Punkten berechnen. Ich versuchteBerechnen Sie den Abstand zwischen zwei Koordinaten in einem Koordinatensystem
distm(c(lon1,lat1), c(lon2,lat2), fun = distHaversine)
, die für einen Punkt gearbeitet, aber nicht für die Spalten in meinem Datenrahmen.
So versuchte ich, wie hier empfohlen:
Calculate distance between 2 lat longs
Aber ich unterschiedliche Ergebnisse für diese beiden Berechnungen erhalten:
df <- read.table(sep=",", col.names=c("lat1", "lon1", "lat2", "lon2"),text="
7.348687,53.36575,7.348940,53.36507
7.348940, 53.36507,7.350939,53.36484")
# as recommended in the link above
distHaversine(df[,2:1], df[,4:3])
[1] 80.18433 223.97181
# with distm
distm(c(7.348687,53.36575), c(7.348940,53.36507), fun = distHaversine)
[,1]
[1,] 77.54033
distm(c(7.348940, 53.36507), c(7.350939,53.36484), fun = distHaversine)
[,1]
[1,] 135.2317
So wie kann ich die richtigen Abstände zu berechnen (die distm (c (lon1, lat1), c (lon2, lat2), fun = distHaversine)) zwischen zwei GPS-Punkten in den Spalten meines Datenrahmens? Ich habe das mit so großen Abständen überprüft, dass ich weiß, dass ich auf diese Weise die richtigen Abstände habe.
Vielen Dank im Voraus.
Vielleicht hätte ich etwas präziser sein sollen. Mein Datenframe enthält 250 Zeilen, was das Ändern der Daten komplizierter macht. Außerdem möchte ich die Ausgabe als eine weitere Spalte bekommen. –
Antwort aktualisiert. – jRafi