Ich habe zwei Spalten mit Breiten- und Längenwerten. Ich muss den Abstand zwischen den Punkten in jeder Reihe berechnen. Ich versuche das zu benutzen Haversine Formel wie gesehen Hier :
Das ist die sogenannte "Großkreis" -Berechnung. Ich muss diese Berechnung mit einer großen Anzahl von Koordinaten durchführen.
Die Daten sehen so aus:
| A B C D E F G
--|-------------------------------------------
0 | LAT LON rLAT dLAT dLON a DIST
1 | 52.39964 13.04729 ... ... ... ...
2 | 52.39985 13.04802 ... ... ... ... ???
3 | 52.40116 13.04744 ... ... ... ... ???
4 | 52.40147 13.04722 ... ... ... ... ???
5 | 52.40163 13.04685 ... ... ... ... ???
6 | ... ... ... ... ... ... ...
Was ich jetzt ausprobiert habe, ist das Folgende für das Feld G2
in LibreOffice:
C2=RADIANS(A2)
D2=RADIANS(A2-A1)
E2=RADIANS(B2-B1)
F2=SIN(D2/2)*SIN(D2/2)+SIN(E2/2)*SIN(E2/2)*COS(C1)*COS(C2)
G2=2*ATAN2(SQRT(F2), SQRT(1-F2))*6371
Das Ergebnis für G2
ist 20015
was ganz ... falsch ist.
Wie berechne ich in Microsoft Excel oder LibreOffice Calc die Entfernung zwischen zwei durch Breite und Länge angegebenen Punkten? Was ist los mit meiner Formel?
Antworten:
Wie gefunden Hier durch BrianAdkins Diese Excel-Formel zur Berechnung der Entfernung zwischen zwei Breiten- und Längenpunkten funktioniert für mich sowohl in LibreOffice Calc als auch in Microsoft Excel 2013:
Das Ergebnis ist in Kilometern, für kleine Entfernungen habe ich verwendet
*1000
um die Entfernung in Metern anzuzeigen.Um Entfernungen in Meilen anzuzeigen, ersetzen Sie
*6371
mit*3958
.quelle
Die Haversine-Methode ist gut, solange Sie bereit sind, einen Fehlerfaktor zu akzeptieren, oder wenn Sie nur mit einer Arbeitsblattformel implementieren müssen. Für kurze Strecken und unkritische Situationen wird es wahrscheinlich in Ordnung sein. Aber wenn Sie Präzision benötigen, müssen Sie so etwas wie den von Thaddeus Vincenty entwickelten Algorithmus verwenden. Die Ergebnisse werden basierend auf der Genauigkeit der verwendeten Lat / Long-Paare als millimetergenau angesehen. Wie viel Unterschied zwischen den beiden? Zwischen JFK und Tokio beträgt die Differenz ca. 14,9 Meilen (kurz). Zwischen Los Angeles und Honolulu sind Sie nur ca. 5 km von der Insel entfernt.
Eine gute Implementierung des Vincenty-Algorithmus in Visual Basic (wie für Excel) finden Sie unter: http://lost-species.livejournal.com/38453.html Der Code wird in 32-Bit-Versionen von Excel im Ist-Zustand ausgeführt, schlägt jedoch mit dem Fehler "Formel zu komplex" in der 64-Bit-Version von Excel fehl. Knapp unterhalb der Veröffentlichung des gesamten Codes habe ich ein Update für dieses Problem veröffentlicht, mit dem es sowohl auf 32- als auch auf 64-Bit-Versionen der VBA-Engine ausgeführt werden kann.
Grüße, J. Latham, Microsoft MVP, Excel 2006-2014
quelle
Vollständige direkte / inverse Vincentys-Formeln Excel VBA-Implementierung (32/64 Bit-Add-In), die nicht nur die Entfernungsberechnung, sondern auch Azimut und umgekehrtes Azimut ermöglicht, ist unter verfügbar https://github.com/tdjastrzebski/VincentyExcel
quelle
Wenn Sie die folgenden Argumente umkehren:
War: G2 = 2 · ATAN2 (SQRT (F2), SQRT (1 - F2)) · 6371
Ist: G2 = 2 · ATAN2 (SQRT (1 - F2), SQRT (F2)) · 6371
Sie sollten die richtige Antwort erhalten. Ich hoffe das hilft!
quelle