1. 程式人生 > >兩行程式碼玩轉SUMO!

兩行程式碼玩轉SUMO!

兩行程式碼玩轉SUMO!

這篇部落格很簡單,但是內容很豐富

如何生成如下所示的研究型路網結構?
這裡寫圖片描述
只需要開啟ubuntu終端輸入如下程式碼即可,grid.number代表路口數量,grid.length代表路段長度,default.speed代表路段允許車速,最後便可在當前資料夾輸出為一個名為MySUMOFile(名字自己定)的路網檔案。

netgenerate --grid --grid.number=10 --grid.length=400 --default.speed 15 --output-file=MySUMOFile.net.xml

之後使用sumo自帶的隨機車流生成工具randomTrips.py(我把它放在~/software/sumo-0.30.0/tools/,記得改成自己的路徑)即可針對此路網生成隨機交通流檔案rou.xml。

~/software/sumo-0.30.0/tools/randomTrips.py -n MySUMOFile.net.xml -b 0 -e 2000 --period 0.1 --intermediate 50 --trip-attributes="type=\"myType\"" --additional-file type.add.xml --edge-permission passenger -r MySUMOFile.rou.xml

下面開始解釋:
-b 代表開始時間,-e代表結束時間,–period 0.1間隔0.1
這裡寫圖片描述
所以有–intermediate 50

--trip-attributes
="type=\"myType\"" --additional-file type.add.xml

代表使用type.add.xml這個附加檔案對交通流裡的車輛做出更細緻的規定
add.xml檔案示例如下:

<additional>
  <vType id="myType" maxSpeed="27" vClass="passenger"/>
</additional>

這裡寫圖片描述
當使用選項–vehicle-class時,應該為選項–edge-permission設定相同的值,所以有

--edge-permission passenger