【OpenDRIVE_Python】使用python脚本输出OD数据中含有信号灯地物的道路ID和信号灯信息
示例代码说明:
遍历OD数据中每条道路Road,若Road中存在信号灯地物signal,则将该道路ID和包含的所有信号灯输出到xml文件中。补充:一个Road中可能存在多个信号灯signal,这里取signal的上级标签signals,则将所有信号灯同步输出
import xml.dom.minidom from xml.dom.minidom import parse from xml.dom import Node import sys import os # 读取OpenDRIE文件路径 xml_filepath = r'E:\OpenDRIVE.xodr' # 得到文件对象 dom_obj = xml.dom.minidom.parse(xml_filepath) # 得到xml文档对象 root = dom_obj.documentElement filepath = "D:\\out.xml" if (os.path.exists(filepath)):os.remove(filepath) fp = open(filepath, 'a+') roads = root.getElementsByTagName('road') for road in roads:signals = road.getElementsByTagName("signal")if len(signals)>0:print(road.getAttribute("id"))print(road.getElementsByTagName('signals')[0].toxml())fp.write(road.getAttribute("id"))fp.write('\n')fp.write(road.getElementsByTagName('signals')[0].toxml())fp.write('\n') fp.close()
OpenDRIVE文件示例:
xml输出结果示例: