我正在尝试读取gpx文件,现在速度值在文件中不会出现常量。当我保护这些值时,我只能在完整列表中对其进行保护:
speed []
for speeds in elements:
speed.append(speeds.text)
new = int((speeds.sourceline)*0.132)
speedline.append(new)
for elevation in elements:
elevation.append(elevation.text)
问题是:例如len(hdop)= 1000而len(speed)仅700 所以我的解决方案是,创建一个新列表,其中速度位于文件-> speedline-list
现在,我尝试了一些函数来获取一个新的速度列表,该列表的长度与海拔列表相同,但是它们都不起作用,请帮助我:
这是我完整的工作脚本:
def komplettlist(speed,speedline,grenze):
i = 0
newdict = {speedline[1::],speed[1::]}
for i in range(grenze):
i = i+1
if newdict.has_key(i):
print("all good")
if newdict.has_key(i) == False:
newdict.add(i,"0")
return(newdict)
#if speedline[i] != i:
#speedline.insert(i,i)
# print(speedline[i], i)
# speedline.insert(i,i)
# i = speedline[i]
def ergänzedict(dicct, grenze):
index = 0
while index < (grenze):
index = index +1
key = dicct.keys()
value = dicct.values()
if key[index] == index:
print("das klappt")
if key[index] != index:
dicct[index] = 0
print("das nicht",key[index],index)
print(key[index])
print(index)
#for key, value in sorted(mydict.items(), key=lambda item:
item[1]):
# print("%s: %s" % (key, value))
def ergänzeliste(newlist,grenze):
indexi = 1
#print ('Index of chemistry', newlist.index(indexi))
print ('Index of C#', newlist.index(1))
while index < (grenze):
indexi = indexi+1
doubleindex = indexi*2
if (newlist[indexi]) == indexi:
print("das klappt")
if (newlist[indexi]) != indexi:
print("das nicht",newlist[indexi],indexi)
print(len(newlist))
return()
我希望有一个速度列表,其大小与hdop相同,只有0个值,其中文件没有有关速度的信息
def findewasneues(root):
#print(etree.iselement(root))
#if len(root):
# print("Root has children)")
ns1 ="{http://www.topografix.com/GPX/1/1}hdop"
ns2 ="{http://www.topografix.com/GPX/1/1}ele"
ns3 ="{http://www.topografix.com/GPX/1/1}time"
ns4 ="{http://www.topografix.com/GPX/1/1}extensions"
ns5 ="{http://www.topografix.com/GPX/1/1}speed"
wptID = []
Gesamt = []
hdop = []
ele = []
speed = []
time = []
lat = []
lon = []
speed = []
speedline = []
e= 0
for trk in root:
#print(trk.tag)
for trkseg in trk:
#print(trkseg.tag)
for trkpt in trkseg:
trkpt.get("lat")
trkpt.get("lon")
#print(trkpt.get("lat"))
#print(trkpt.get("lon"))
lat.append(trkpt.get("lat"))
lon.append(trkpt.get("lon"))
#print(trkpt.tag)
for elements in trkpt: # elements: ele,time,hdop,extenstions
#print(elements.tag)
#Gesamt = Gesamt.append(elements.text)
# print(elements.text)
#print(elements.tag)
#if elements.tag == "{http://www.topografix.com/GPX/1/1}speed" or elements.tag == "{http://www.topografix.com/GPX/1/1}extensions" :
# speed.append(elements.text)
if elements.tag == ns1 :
hdop.append(elements.text)
for speeds in elements:
e = e +1
speed.append(speeds.text)
new = int((speeds.sourceline)*0.131)
speedline.append(new)
#print(new)
#print(speeds.sourceline)
#print(speeds.text)
#print(elements.tag)
#dict = {speedline,speed}
neu =list(enumerate(speedline))
neu2 = []
neu3 = []
for e in neu:
if e not in neu2:
neu2.append(e)
neu3.append(e)
#print(neu3[0][2])
#leng = len(neu3/2)
# e = 0
list4 = []
diff = len(hdop)-len(neu3)
print(diff)
d = 0
for d in range(diff):
list4.append(0)
d = d +1
#print(list4)
#print(len(speed))#237 inhalt: speedwerte
kts = []
spl = []
for e in neu3:
kts.append(e[0])#keytospeedline
spl.append(e[1])#speedline
print(len(list4))#60 inhalt: nullen
#print(len(kts))#237 inhalt: ids zu den wptids
print(len(spl))#237 inhalt: wptids
print(kts)
print(spl)
newspeedlist =coolmethod(speed,kts,spl,list4)#insertmissingzeroelemntstospeedlistfunction
#print(newspeedlist)
#print(len(newspeedlist))
#liste1: die speed liste
def coolmethod(speed,kts,spl,list4):
nl=[]
e = 0
b = len(list4)#anzfehlendereinträge
a = len(speed)#anzspeedeinträge
einträge = a+b#anzahl gesamteinträge
print(einträge)
for e in kts:
if e < spl[e]:
nl.append("0")
#if kts[e] >= spl[e]:
nl.append(speed[e])
e = e+1
return(nl)
输出: 60 297 60 237 [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,15,16,17,18,19,20,21,22,23,24 ,25、26、27、28、29、30、31、32、33、34、35、36、37、38、39、40、41、42、43、44、45、46、47、48、49 ,50、51、52、53、54、55、56、57、58、59、60、61、62、63、64、65、66、67、68、69、70、71、72、73、74 ,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99 ,100、101、102、103、104、105、106、107、108、109、110、111、112、113、114、115、116、117、118、119、120、121、122、123、124 ,125、126、127、128、129、130、131、132、133、134、135、136、137、138、139、140、141、142、143、144、145、146、147、148、149 ,150、151、152、153、154、155、156、157、158、159、160、161、162、163、164、165、166、167、168、169、170、171、172、173、174 ,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199 ,200、201、202、203、204、205、206、207、208、209、210、211、212、213、214、215、216、217、218、219、220、221, 222、223、224、225、226、227、228、229、230、231、232、233、234、235、236] [7、12、13、14、15、16、17、18、19、20、21、22、23、24、25、26、27、28、29、31、32、33、36、37、38 ,39、40、41、42、43、44、45、46、47、48、49、50、51、52、53、55、56、57、58、59、60、61、62、63、64 ,65,66,67,68,69,70,71,72,73,74,75,77,78,79,80,81,82,83,84,85,86,87,88,89,90 ,91、92、93、94、95、96、97、99、100、101、102、103、104、105、106、107、108、109、110、111、112、113、114、115、116 ,117、118、119、121、129、131、132、133、134、135、136、137、138、139、140、141、142、143、144、145、146、147、148、149、150 ,151、153、154、155、156、157、158、159、160、161、162、163、164、165、166、167、168、169、170、171、172、173、175、176、177 ,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,196,204,206,207,208,209,211,212,213 ,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,232,233,234,235,236,237,238,239 ,240,241,242,243,244,245,246,247,248,249,250,251,252,254,255,256,257 ,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,276,277,278]