コード例 #1
0
ファイル: FetchData.py プロジェクト: Mob4/repo
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()
コード例 #2
0
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()