Как проверить внутренний край через TraCI? - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь выяснить, является ли край / полоса внутренней.Когда SuMO создает внутренние ребра / дорожки, он ставит перед ними двоеточие [ 1 ].В настоящее время я использую эту информацию , однако кажется, что вы также можете аннотировать произвольные другие ребра как внутренние, используя тег function.Это также устанавливается для внутренних ребер, созданных SuMO [ 1 ].Поэтому я хочу получить информацию через TraCI.

Насколько мне известно, нет команды TraCI для извлечения этой информации (т. Е. Либо значение function, либо внутренняя граница / полоса движения).Классы MSEdge и MSLane в каталоге microsim имеют методы для получения обоих этих значений, однако классыEdge и Lane от libsumo нет.

Я также проверил, является ли значениеТег function может быть добавлен к карте параметров во время инициализации, к которой я могу получить доступ через TraCI getParameter.Это также не похоже на случай.Я проверил некоторые файлы из каталога netimport , но не смог найти ничего удовлетворительного.

Есть ли другой способ получения информации о функции / isInternal через TraCI без добавленияновая команда TraCI (и вышеупомянутые недостающие методы в libsumo )?

1 Ответ

0 голосов
/ 12 июня 2018

Это статическое свойство сети, поэтому самый простой способ получения информации - это анализ сети.В 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, чтобы не перегружать ее.

...