def arrangeData(): """ Arranges all available Data in a file which looks like: <vehicle id=" "> <step time="(s)" source=" " speed="(km/h)" edge=" " lat=" " lon=" "/> ... </vehicle> """ fcdTuple = None rawTuple = (None, None, None, None) # read needed files print "read rawFcdDict file" rawFcdDict = readRawFCD(path.rawFcd) print "read simRawFcdDict file" simRawFcdDict = readRawFCD(path.simRawFcd, True) print "read readVtypeprobe file" readVtypeprobe() print "read fcdDict file" fcdDict = readFCDComplete(path.fcd) print "read simFcdDict file" simFcdDict = readSimFCDComplete(path.simFcd) if withoutEmptyEdges: print "read drivenEdges file" drivenEdgesSet = readRoute_EdgesMod() outputFile = open(path.analysisWEE, 'w') else: outputFile = open(path.analysis, 'w') outputFile.write("<vehicles>\n") print "write Infos" # iterate over the lowest common denominator for taxiId in simFcdDict.keys(): outputFile.write("\t<vehicle id=\"%s\">\n" % taxiId) mainId = taxiId.split("_")[0] # write vtypeprobe Infos try: for vtypeTuple in vtypeDict[taxiId]: # skip edges without traffic if withoutEmptyEdges and vtypeTuple[1] not in drivenEdgesSet: continue outputFile.write( "\t\t<step time=\"%s\" source=\"vtypeProbe\" speed=\"%s\" rawSpeed=\"%s\" edge=\"%s\" lat=\"%s\" lon=\"%s\"/>\n" % (vtypeTuple[0], vtypeTuple[4], None, vtypeTuple[1], vtypeTuple[2], vtypeTuple[3])) # write fcd Infos (enhanced with Infos of raw-FCD) for fcdTuple in fcdDict[taxiId]: # skip edges without traffic if withoutEmptyEdges and fcdTuple[1] not in drivenEdgesSet: continue # search for proper tuple in raw-FCD for tuple in rawFcdDict[mainId]: # if time is equal (+/- 5 secs) if fcdTuple[0] - 5 < tuple[0] < fcdTuple[0] + 5: rawTuple = tuple break # write results in file outputFile.write( "\t\t<step time=\"%s\" source=\"FCD\" speed=\"%s\" rawSpeed=\"%s\" edge=\"%s\" lat=\"%s\" lon=\"%s\"/>\n" % (fcdTuple[0], fcdTuple[2], rawTuple[3], fcdTuple[1], rawTuple[1], rawTuple[2])) # Reset values after write of line: rawTuple = (None, None, None, None) # write simFcd Infos (enhanced with Infos of raw-FCD) for fcdTuple in simFcdDict[taxiId]: # skip edges without traffic if withoutEmptyEdges and fcdTuple[1] not in drivenEdgesSet: continue # search for proper tuple in raw-FCD for tuple in simRawFcdDict[taxiId]: # if time is equal (+/- 5 secs) if fcdTuple[0] - 2 < tuple[0] < fcdTuple[0] + 2: rawTuple = tuple break # write results in file outputFile.write( "\t\t<step time=\"%s\" source=\"simFCD\" speed=\"%s\" rawSpeed=\"%s\" edge=\"%s\" lat=\"%s\" lon=\"%s\"/>\n" % (fcdTuple[0], fcdTuple[2], rawTuple[3], fcdTuple[1], rawTuple[1], rawTuple[2])) # Reset values after write of line: rawTuple = (None, None, None, None) except KeyError: print "Warning: taxId %s not found!" % taxiId outputFile.write("\t</vehicle>\n") outputFile.write("</vehicles>\n") outputFile.close()
def arrangeData(): """ Arranges all available Data in a file which looks like: <vehicle id=" "> <step time="(s)" source=" " speed="(km/h)" edge=" " lat=" " lon=" "/> ... </vehicle> """ fcdTuple= None rawTuple= (None,None,None,None) #read needed files print "read rawFcdDict file"; rawFcdDict=readRawFCD(path.rawFcd) print "read simRawFcdDict file"; simRawFcdDict=readRawFCD(path.simRawFcd, True) print "read readVtypeprobe file"; readVtypeprobe() print "read fcdDict file"; fcdDict=readFCDComplete(path.fcd) print "read simFcdDict file"; simFcdDict=readSimFCDComplete(path.simFcd) if withoutEmptyEdges: print "read drivenEdges file"; drivenEdgesSet=readRoute_EdgesMod() outputFile=open(path.analysisWEE,'w') else: outputFile=open(path.analysis,'w') outputFile.write("<vehicles>\n") print "write Infos" #iterate over the lowest common denominator for taxiId in simFcdDict.keys(): outputFile.write("\t<vehicle id=\"%s\">\n" %taxiId) mainId=taxiId.split("_")[0] #write vtypeprobe Infos try: for vtypeTuple in vtypeDict[taxiId]: #skip edges without traffic if withoutEmptyEdges and vtypeTuple[1] not in drivenEdgesSet: continue outputFile.write("\t\t<step time=\"%s\" source=\"vtypeProbe\" speed=\"%s\" rawSpeed=\"%s\" edge=\"%s\" lat=\"%s\" lon=\"%s\"/>\n" %(vtypeTuple[0],vtypeTuple[4],None,vtypeTuple[1],vtypeTuple[2],vtypeTuple[3])) #write fcd Infos (enhanced with Infos of raw-FCD) for fcdTuple in fcdDict[taxiId]: #skip edges without traffic if withoutEmptyEdges and fcdTuple[1] not in drivenEdgesSet: continue #search for proper tuple in raw-FCD for tuple in rawFcdDict[mainId]: if fcdTuple[0]-5<tuple[0]<fcdTuple[0]+5: #if time is equal (+/- 5 secs) rawTuple=tuple break #write results in file outputFile.write("\t\t<step time=\"%s\" source=\"FCD\" speed=\"%s\" rawSpeed=\"%s\" edge=\"%s\" lat=\"%s\" lon=\"%s\"/>\n" %(fcdTuple[0],fcdTuple[2],rawTuple[3],fcdTuple[1],rawTuple[1],rawTuple[2])) #Reset values after write of line: rawTuple= (None,None,None,None) #write simFcd Infos (enhanced with Infos of raw-FCD) for fcdTuple in simFcdDict[taxiId]: #skip edges without traffic if withoutEmptyEdges and fcdTuple[1] not in drivenEdgesSet: continue #search for proper tuple in raw-FCD for tuple in simRawFcdDict[taxiId]: if fcdTuple[0]-2<tuple[0]<fcdTuple[0]+2: #if time is equal (+/- 5 secs) rawTuple=tuple break #write results in file outputFile.write("\t\t<step time=\"%s\" source=\"simFCD\" speed=\"%s\" rawSpeed=\"%s\" edge=\"%s\" lat=\"%s\" lon=\"%s\"/>\n" %(fcdTuple[0],fcdTuple[2],rawTuple[3],fcdTuple[1],rawTuple[1],rawTuple[2])) #Reset values after write of line: rawTuple= (None,None,None,None) except KeyError: print "Warning: taxId %s not found!" %taxiId outputFile.write("\t</vehicle>\n") outputFile.write("</vehicles>\n") outputFile.close()