2016-10-07 1 views
0

シミュレーションの最後のステップでtraci.edge.getWaitingTime(str(-108542273))を実行すると、0という値が得られます。TraCI値が出力で集計されない

しかし、エッジベースの状態ダンプが生成されたことを確認すると、値が15であることがわかりました。なぜtraciの値はそれを反映していませんか?彼らは同じことを意味しないのですか?

<meandata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/meandata_file.xsd"> 
    <interval begin="0.00" end="602.00" id="edgebased"> 
     <edge id="-108542273" sampledSeconds="288.08" traveltime="6.77" density="8.67" occupancy="4.33" waitingTime="15.00" speed="8.15" departed="0" arrived="0" entered="39" left="39" laneChangedFrom="0" laneChangedTo="0"/> 
     ... more edge entries 
    </interval> 
</meandata> 

私はシミュレーションの非常に最後のステップに値を抽出するので、私は2が同じことを反映すべきであると考えていますか?

は、ここに私の全体のpythonコードmeandata出力が時間をかけて集計され

import os, sys 
import subprocess 

if 'SUMO_HOME' in os.environ: 
    tools = os.path.join(os.environ['SUMO_HOME'], 'tools') 
    sys.path.append(tools) 
else: 
    sys.exit("please declare environment variable 'SUMO_HOME'") 

def runTraCI(): 
    trip_outputFile = "trip.output.xml" 
    vehroute_outputFile = "vehroute.output.xml" 

    PORT = 8817 
    sumoBinary = "sumo" 
    sumoProcess = subprocess.Popen([sumoBinary, "-c", "data/tracitest.sumocfg", "--no-warnings", "true", "--remote-port", str(PORT), 
     "--tripinfo-output", trip_outputFile, "--vehroute-output", vehroute_outputFile], stdout=sys.stdout, stderr=sys.stderr) 

    import traci 
    import traci.constants as tc 
    traci.init(PORT) 
    step = 0 
    edgeList = traci.edge.getIDList() #a list of edges of the network 
    waitingTimeDict = {key: None for key in edgeList} # create an empty waitingTime dict 
    while step <= 600: 
     if (step % 300) == 0: # read reading every 300s 
      for key, value in waitingTimeDict.iteritems(): 
       waitingTimeDict[key] = traci.edge.getWaitingTime(str(-108542273)) 
     traci.simulationStep() 
     step += 1 

    print waitingTimeDict #when I print this, every value is 0. In another word, edgeID("-108542273") waitingTime was return as 0 to me. 
    traci.close() 
    sys.exit() 

runTraCI() 

答えて

1

ですので、期間中に待機している時間の合計を示しています。ただし、TraCIコールは、最後のシミュレーションステップで指定されたエッジで待機時間を返すだけです(時間の経過とともに集計は行われません)。

関連する問題