我想弄清楚边缘/车道是否是内部的。当SuMO创建内部边缘/通道时,它前缀为冒号[1]。目前,我exploiting this information,但是,您似乎也可以使用标记function
将任意其他边注释为内部边。这也是为SuMO [1]创建的内部边缘设置的。因此,我想通过TraCI检索信息。
据我所知,没有TraCI命令来检索此信息(即function
的值或边/通道是否为内部)。
MSEdge
目录中的类MSLane
和microsim具有检索这两个值的方法,但是来自{{3}的类Edge
和Lane
不要。
我还检查了function
标记的值是否可能在初始化期间添加到参数映射中,我可以通过TraCI的libsumo访问该值。这似乎也不是这样。我检查了getParameter
目录中的一些文件,但找不到任何令人满意的文件。
有没有其他方法可以通过TraCI检索函数/ isInternal信息而无需添加新的TraCI命令(以及 libsumo 中的上述缺失方法)?
答案 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中,以免超载它。