sumo的traci吐槽帖

由于sumo的traci坑实在不少,本人决定将
221026 吐槽一下traci.vehicle.getNextTLS
改为
sumo traci的吐槽汇总

1、traci.vehicle.getNextTLS

https://sumo.dlr.de/pydoc/traci._vehicle.html

这个在官方文档里是这么介绍的:

getNextTLS(self, vehID)
getNextTLS(string) ->
Return list of upcoming traffic lights [(tlsID, tlsIndex, distance, state), ...]

但是!!
请看返回的第二个参数tlsIndex
是不是很容易理解成tls的index,就是每个tls对应的一个id。
实际上,它对应的是upcoming traffic lights里面,车辆通行方向的那个id。
很坑…
另外,traci.vehicle.getNextStops也是这个道理

2、traci的读取速度

traci中读取和设置一般为traci.XXX.getYYY()traci.XXX.setYYY()
但是,这两个接口的底层实现,时间复杂度应该不是 O ( 1 ) \\{O}(1) O(1)的,
因为,调用1次这个接口,居然要花费0.001s左右!!
也就是说,如果要对路网的一些部件属性进行遍历修改的话,这个接口将花费大量的时间
所以,traci.XXX.getYYY()traci.XXX.setYYY()能不用尽量不用。
后续:看到一篇帖子,用libsumo或许能提速
libsumo 知乎

3、公交车的untilarrival属性

公交时刻表文件的示例如下

<routes>
	<vehicle depart="07:06:00" id="302_W0" line="302_W" route="302_W" type="bus_302">
		<stop busStop="bs_17" duration="0" arrival="07:09:14" until="07:10:14"/>
		<stop busStop="bs_16" duration="0" arrival="07:14:26" until="07:16:51"/>
		...
	</vehicle>

arrival属性是到站时间
until属性是出站时间
sumo文档中只说明了设置until属性能让公交车在站台停靠,
arrival属性的说明却放在Further Schedule Attributes#中,搞得我以为是待开发的属性,如图:
如图

还是吃了英文不好的亏

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值