SUMO入门(八) - 从Python引入TraCI接口
TraCI
TraCI/Interfacing TraCI from Python
TraCI命令分为13个部分,它们对应于各个模块: gui,lane,poi,simulation,trafficlight,vehicletype,edge,inductionloop,junction,multientryexit,polygon,route,person,vehicle
有关函数的详细列表,请参阅 pydoc generated documentation。命令的源代码可以在eclipse/sumo找到
1 在脚本中引入TraCI
要使用该库,<SUMO_HOME>/tools 目录必须位于python加载路径上。 通常如下:
import os, sys
if 'SUMO_HOME' in os.environ:
tools = os.path.join(os.environ['SUMO_HOME'], 'tools')
sys.path.append(tools)
else:
sys.exit("please declare environment variable 'SUMO_HOME'")
这假定在运行脚本之前设置了环境变量SUMO_HOME。 或者,您可以直接在行中声明 sumo/tools 的路径
sys.path.append(os.path.join('c:', os.sep, 'whatever', 'path', 'to', 'sumo', 'tools'))
2 第一步
通常,从Python接入SUMO非常容易(以下示例是 tutorial / traci_tls 的修改)
首先,编写命令行以启动 SUMO 或 SUMO-GUI:
(省略在0.28.0版本之前需要的远程端口选项 --remote-port)
sumoBinary = "/path/to/sumo-gui"
sumoCmd = [sumoBinary, "-c", "yourConfiguration.sumocfg"]
然后开始仿真并使用脚本连接到它:
import traci
traci.start(sumoCmd)
step = 0
while step < 1000:
traci.simulationStep()
if traci.inductionloop.getLastStepVehicleNumber("0") >