sumo仿真文件是.sumcfg文件,其实质是xml语言,可以用notepad++打开。
notepad++下载地址:https://notepad-plus.en.softonic.com/
保护视力,都要从调整背景颜色开始,notepad++可在设置-语言格式设置-主题中,选择black board将背景颜色调成黑色。
通过notepad++打开.sumcfg后,代码如下:
前面两行应该就是基本信息,我也看不太懂。
可以看到,configuration,input,time等都是成对出现的。然后,重要的是input和time的内容,可以看到,input里有两个文件,一个是net文件,一个是route文件。time里的end value就是仿真运行时间,可以进行更改。
重要的部分是net文件和rou文件,首先先介绍net文件。
net文件也就是路网文件,现实生活中路网由交叉口,道路两者组成。net文件也不例外,是由nod文件和edg文件组成的。也就是说“点”和“边”文件构成了路网文件。
nod文件如下所示:
可以看出,nod文件中给出了点的名称,x轴位置和y轴位置三个属性。
edg文件如下:
可以看出,edge文件给出了边的起点,名称和终点三个属性。
既然有edg和nod文件,那我们就可以自己创造net文件。win+R进入“运行”,输入cmd进入命令行,进行如下操作(写完一行按一次回车):
C:\Users\wzh18>d:
D:\>cd sumo
D:\sumo>cd D:\sumo\bin
D:\sumo\bin>netconvert --node-files hello.nod.xml --edge-files hello.edg.xml -o hellome.net.xml
Success.
首先是指定sumo文件所在的盘符,我的在d盘,就输入d:,然后回车。
cd命令的全称为change directory,也就是改变路径的作用,第二行和第三行就是一步一步的找到netconvert.exe文件的过程。
倒数第二行就是将nod文件和edg文件转化为net文件的命令。因为遇到了不明原因的报错(告诉我找不到nod文件),所以我提前将nod文件和edg文件放到了bin里面。如果不提前放到bin文件里,则可以如下操作:
netconvert --node-files=D:\sumo\doc\tutorial\hello\data\hello.nod.xml --edge-files=D:\sumo\doc\tutorial\hello\data\hello.edg.xml --output-file=Myfirstnet.net.xml
又试了一次,居然成功了。可能是因为之前写错东西了,应该不是玄学,改天再细究一下。
既然我们生成自己的路网,那肯定要用的。直接把sumocdg文件的netfile value改成自己新路网就可以了。(记得保存)
修改原路网:
如果对路网有新想法的话,可以选择去修改路网,修改路网文件也就是要去修改edg文件和nod文件。
nod文件以前长这个样子:
那么我们想在新加入一个点,取名newnod,x=251,y=58,只需要在倒数第二行下面进行添加即可(不知道为为什么没对齐)。
我们再添加一条边连接新点和点3。
此时就得到了新的edg文件和nod文件,这时还需要新生成net文件。依旧是在命令行中进行。
在gui中打开,可以看到之前的路网如图所示:
现在的路网: