我正在尝试使用python中的TRACI运行一个Sumo模拟,作为在模拟中执行某些操作的一种方式。我所做的基本上是使用netconvert来提取地图的一部分。
netconvert --keep-edges.in-boundary minX,minY,maxX,maxY -s large.net.xml -o small.net.xml
因此,基本上我尝试在原始网络(large.net.xml)中执行评估,并在模拟的某个点将车辆从原始模拟转移到我的小型网络(small.net.xml)中,选项为:
conn2.vehicle.add(vehID='0',routeID='R0',depart=time,departPos=conn1.vehicle.getLanePosition('0'),departSpeed=conn1.vehicle.getSpeed('0'))
其中时间是我的原始模拟(Conn1)中的模拟时间。这应该使车辆在模拟conn1中,并在conn2(使用small.net.xml模拟)中以与在conn1中完全相同的位置启动该车辆,但似乎我的裁剪网络对于该车道具有不同的大小,因为车辆在一个略有不同的位置开始。有没有办法避免这些车道大小的变化?我已经尝试过将车辆转移到conn2中相同的原始网络,它出现在所需的位置。
发布于 2020-06-10 00:05:25
最简单的解决方案可能是使修剪的网络稍大一些(包含直接与当前修剪的网络相邻的所有边),以确保感兴趣的边在起始节点和结束节点上仍具有相同的交叉点几何形状。
https://stackoverflow.com/questions/62240620
复制相似问题