【问题标题】:How to check for an internal edge via TraCI?如何通过 TraCI 检查内部边缘?
【发布时间】:2018-06-14 23:18:30
【问题描述】:

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

据我所知,没有 TraCI 命令可以检索此信息(即 function 的值或边缘/通道是否是内部的)。 microsim 目录中的 MSEdgeMSLane 类具有检索这两个值的方法,但是 libsumo 中的 EdgeLane 类没有。

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

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

【问题讨论】:

    标签: veins sumo


    【解决方案1】:

    这是网络的静态属性,因此检索信息的最简单方法是解析网络。在 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 中,以免使其过载。

    【讨论】:

    • 感谢您的回答。实际上,我不想自己解析网络,因为 SuMO 正在这样做并且已经在内部维护有关边缘的信息。因此,我想我将自己实现缺少的方法和 TraCI 调用。
    猜你喜欢
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    相关资源
    最近更新 更多