2017-12-31 53 views
1

Ich suche Lösung, wie Sie die Ausgabe, das Ergebnis von Python für Schleife suchen Abstand von vielen Koordinaten an einem Ort zu speichern. Das Skript wie folgt verwendet:Speichern der Ausgabe Entfernung von vielen Koordinaten mit Python für Schleife

import gpxpy.geo 
import numpy as np 

# Reference Point 
lat1 = 8.1 
lon1 = 108.9 

# Range Points for Distance Determination Subject to Reference Point 
lat2 = [3.120,5.933,1.490] 
lon2 = [113.025,116.048,110.353] 

dist = [] 
for i in range(len(lat2)): 
    dist = gpxpy.geo.haversine_distance(lat1, lon1, lat2[i], lon2[i])/1000 
    print dist 

data=np.zeros((np.size(lon2),3)) 
# 
data[:,0]=lat2 
data[:,1]=lon2 
data[:,2]=dist 

np.savetxt('distant.dat',data,fmt='%9.3f') 

Das aktuelle Ergebnis, das ich aus der erzeugten Datei zu erhalten ist wie folgt:

3.120 113.025 752.406 
5.933 116.048 752.406 
1.490 110.353 752.406 

Tatsächliches Ergebnis sollte mehrere Werte in Spalte drei wie diese haben zu durchlaufen:

3.120 113.025 717.551 
5.933 116.048 824.794 
1.490 110.353 752.406 

Antwort

1

In Ihrem for Schleife ist dist keine Liste. Ersetzen Sie die Schleife mit:

dist = [ 
    gpxpy.geo.haversine_distance(lat1, lon1, lat2[i], lon2[i])/1000 
    for i in range(len(lat2))] 
+0

danke für die Lösung. Ich dachte, wenn wir die Liste (dist = []) deklarieren, reicht für die Aussage in der Iteration genug aus. Das Seltsame war, das Ergebnis in der Konsole war korrekt, aber anders in der Ausgabedatei. – Azam

+0

Sie hätten Ihre Schleife mit 'dist.append (...' fixieren können, um das Ergebnis in die Liste einzufügen. Aber Verständnis ist besser. –

+0

Nochmals vielen Dank. Ich werde dist.append (..) in meinem vorherigen Skript anwenden . Hoffe, es funktioniert. – Azam

Verwandte Themen