如何通过TraCI检查内部边缘?

时间:2018-06-12 13:12:46

标签: veins sumo

我想弄清楚边缘/车道是否是内部的。当SuMO创建内部边缘/通道时,它前缀为冒号[1]。目前,我exploiting this information,但是,您似乎也可以使用标记function将任意其他边注释为内部边。这也是为SuMO [1]创建的内部边缘设置的。因此,我想通过TraCI检索信息。

据我所知,没有TraCI命令来检索此信息(即function的值或边/通道是否为内部)。 MSEdge目录中的类MSLanemicrosim具有检索这两个值的方法,但是来自{{3}的类EdgeLane不要。

我还检查了function标记的值是否可能在初始化期间添加到参数映射中,我可以通过TraCI的libsumo访问该值。这似乎也不是这样。我检查了getParameter目录中的一些文件,但找不到任何令人满意的文件。

有没有其他方法可以通过TraCI检索函数/ isInternal信息而无需添加新的TraCI命令(以及 libsumo 中的上述缺失方法)?

1 个答案:

答案 0 :(得分:2)

这是网络的静态属性,因此检索信息的最简单方法是解析网络。在Python中,您可以使用sumolib:

import sumolib
net = sumolib.net.readNet("my.net.xml")
function = {}
for e in net.getEdges():
    function[e.getID()] = e.getFunction()

目前没有TraCI调用,但冒号是一个非常好的指标。主要的开发人员也有点不愿意将所有静态信息检索添加到TraCI API中,以免超载它。