SUMO文件019:匯入網路檔案(上)——OpenStreetMap
network_Import
可以通過netconvert程式將很多的第三方的路網檔案轉化為sumo可讀的檔案。以下列出了可以轉化應用的格式:
1. OpenStreetMap(一種開源的地圖引擎);
2. PTV VISUM
3. PTV VISSIM
4. OpenDRIVE
5. MATsim
6. ArcView
7. Elmar Brockfelds unsplitted andsplitted NavTeq-data;
8. RoboCup Rescue League folders
一般的轉化條件只需要兩個引數就可以完成。一個是輸入的檔案型別,另一個就是輸出的檔案。下面的命令就是將visum格式的路網轉化為sumo可讀的格式:
netconvert --visum=MyVisumNet.inp--output-file=MySUMONet.net.xml
當然還有其他的引數可以影響輸出的檔案。一般這些路網都是xml格式的變體。兩種不同的路網格式可以相互轉換,不會丟失資料。
OpenStreetMap
OpenStreetMap(簡稱OSM)是一個全世界開源的地圖,任何人都可以編輯它。有關osm資料的下載有很多不同的工具和下載方法,具體參考osm官網:http://www.openstreetmap.org/
1.快讀入門
在sumo中提供了自己的一個下載osm地圖的指令碼。可以在瀏覽器中選定區域並且制定車輛型別和數量等資訊,直接生成一個可以執行模擬的檔案(這個很實用)。檔名稱:OSMWebWizard.py。這個檔案在tools資料夾下面,直接執行就會開啟瀏覽器。關於這個檔案的詳細教程可以參考:http://sumo.dlr.de/wiki/Tutorials/OSMWebWizard。
2.匯入路網檔案
主要是上面提到的兩條命令:輸入檔案格式和輸出檔案。
netconvert --osm-files berlin.osm.xml -o berlin.net.xml
上面的命令就是將osm檔案轉化為sumo路網檔案net.xml檔案。在osm中預設使用的經緯度座標為WGS84,自動轉化後坐標不符合要求的話,需要你新增其他的引數。詳細的引數列表可以檢視netconvert頁面。
3.常見的其他引數命令
--geometry.remove --roundabouts.guess --ramps.guess --junctions.join --tls.guess-signals --tls.discard-simple --tls.join
--geometry.remove:在不改變拓撲結構的情況下簡化網路(節省空間)
--roundabouts.guess:對環形交叉口進行優化。如果沒有加這個引數,有可能會發生交通擁堵;
--ramps.guess: 在osm資料中不包含加速減速的這種坡道資訊,可以通過這個引數來進行設定,新增這些可能的資訊;
--junction.join:有關節點的。下面有詳細描述。
--tls.guess-signals/--tls.discard-simple/--tls.join.:有關訊號燈的,下面有詳細描述
4.推薦的地圖型別
不同的交通方針場景對應的地圖型別也不相同,在data/typemap資料夾下面有不同種類的場景地圖檔案。
可以通過命令—type-files filename實現。
5.匯入額外的多邊形地圖(建築/水池等)
就是將一些非路網的部分,包含到路網中去。具體用法:
polyconvert --net-file berlin.net.xml --osm-files berlin.osm --type-file typemap.xml -o berlin.poly.xml
上面的命令是生成poly檔案。其中typemap.xml檔案時上面圖中的osmPolyconvert.type.xml。
在配置檔案中的使用方法:
<configuration>
<input>
<net-file value="berlin.net.xml"/>
<additional-files value="berlin.poly.xml"/>
</input>
</configuration>
只需要加一條additional的命令即可。
6.其他匯入指令碼
這裡不描述了,較少使用。
7.高程資料
也就是z軸的資訊資料(海拔資訊)。這個一直在實驗中,程式碼完善中。
其中主要包含兩個命令。一個是跟海拔有關的(osm中出現key=”ele”),另一個是跟層有關的(osm中出現key=”layer”);其中有關高程資料的其他資訊可以參看:http://sumo.dlr.de/wiki/Networks/Elevation。
8有關其他的資訊
8.1junctiom節點
主要介紹了合併節點的引數使用;junction-join
8.2traffic light交通訊號燈
講述了訊號燈相位猜測和訊號燈合併的資訊。如果轉化後的檔案沒有紅綠燈資訊,那麼原始檔沒有這些資訊或者是轉化後丟失了資料。
後面還提到了如何刪去路網中不想要的道路種類:
--remove-edges.by-vclass hov,taxi,bus,delivery,transport,lightrail,cityrail, \
rail_slow,rail_fast,motorcycle,bicycle,pedestrian
劃重點了:
有關osm和sumo的對應關係:
- 節點是一對一的對應的;
- osm中道路不區分車道,因此5677可能被是被為5677#0/5677#1/-5677#0/-5677#1.