ich habe eine Hausübung aufbekommen, habe jedoch einen Fehler in meinem Script, den ich nicht finde.
Hier die Aufgabenstellung:
Die Datei “TrackUniSeegrube.txt” enthält GPS-Koordinaten (UTM / WGS84). Die Koordinaten markieren den Weg von der Uni bis zur Hungerburg/Nordkettenbahn. Schreibe ein Programm, das aus den Koordinaten die Länge des zurückgelegten Weges berechnet!
Am Ende soll ein neues File ausgegeben werden, welches für jede Koordinatenzeile eine zusätzliche Spalte “Zurueckgelegte Distanz” beinhaltet.
Code: Alles auswählen
Mein Script schaut folgendermaßen aus:
# Uebung 1
import math
# Definition der Funktion
def Distance(x1,y1,x2,y2):
floatDist = math.sqrt(math.pow(x2-x1,2) + math.pow(y2-y1,2))
return Dist
# Definition der Variablen
fobj=open("TrackUniSeegrube.txt", "r")
Names=[]
xs=[]
ys=[]
zs=[]
i=0
for element in fobj:
if i != 0:
element=element.strip()
element=element.split("\t")
Name=element[0]
x=float(element[1])
y=float(element[2])
z=float(element[3])
Names.append(Name)
xs.append(x)
ys.append(y)
zs.append(z)
i+=1
fobj.close()
##print Names
##print xs
##print ys
##print zs
x1=xs[0]
y1=ys[0]
x2=[]
y2=[]
Zurueckgelegte Distanz=[]
for element in xs[1:]:
x2.append(element)
for element in ys[1:]:
y2.append(element)
#Funktion wird ausgefuehrt
for element in x2:
for element in y2:
Dist = Distance(x1,y1,x2,y2)
Zurueckgelegte Distanz.append(Dist)
print Zurueckgelegte Distanz
#Neues File mit Distanz-Spalte
fobj_out = open("Distanz.txt", "w")
#Neue Spalte "Zurueckgelegte Distanz"
for element in Names:
fobj_out.write(Names,xs,ys,zs,Zurueckgelegte Distanz)
fobj_out.close()
Als Fehlermeldung kommt folgendes:
Traceback (most recent call last):
File "/afs/zid1.uibk.ac.at/home/csap/csap2109/PYTHON/Übungen4_Neu_Schmid.py", line 60, in <module>
Dist = Distance(x1,y1,x2,y2)
File "/afs/zid1.uibk.ac.at/home/csap/csap2109/PYTHON/Übungen4_Neu_Schmid.py", line 7, in Distance
Dist = math.sqrt(math.pow(x2-x1,2) + math.pow(y2-y1,2))
TypeError: unsupported operand type(s) for -: 'list' and 'float'
Ich bin dankbar für jede Antwort & bitte habt Rücksicht mit meinen Programmierkenntnissen..bin Anfänger!
Lg Hannes