【发布时间】:2018-06-02 19:01:58
【问题描述】:
我正在尝试在 SuMO 中创建一个圈子网络。由于我需要试验半径、车道、车辆等参数,因此我希望它能够自动生成。
到目前为止,我编写了一个脚本,它使用--spider 选项利用netgenerate 生成这样一个循环网络(正如building a circular network 和driving in circles 的SuMO 教程所建议的那样):
netgenerate --spider --spider.arm-number=1024 --spider.circle-number=1 --spider.space-radius=100 --spider.omit-center --no-turnarounds --default.lanenumber 2 -o circle.net.xml --edges.join --no-internal-links --no-left-connections --junctions.corner-detail 1000
这已经给了我一个漂亮的圆圈,但是,我仍然需要手动合并所有这些边(即在本例中为 1024,这是在脚本中完成的):
netconvert -s circle.net.xml --plain-output-prefix circle
netconvert -n circle.nod.xml -e circle.edg.xml -x circle.con.xml -o circle.net.xml --geometry.remove --no-turnarounds --no-internal-links --geometry.remove.keep-edges.explicit '1/1to2/1,'512'/1to'513'/1'
netconvert -n circle.nod.xml -e circle.edg.xml -x circle.con.xml -o circle.net.xml --geometry.remove --no-turnarounds --no-internal-links --geometry.remove.keep-edges.explicit '1/1to'1024'/1'
在这些命令之后,我有以下网络:
但是,这种方法似乎是一个大技巧,因为我在我的脚本中手动计算要保留的边缘名称(在上述命令中使用)并且它缺少一些功能(例如,移除相反方向的道路,具有圈内每条道路/环只有一条边),netgenerate 无法实现。
有没有其他方便的方式来生成圈网?
【问题讨论】:
标签: sumo