信号灯输出 =============== 在 `TransSimHub` 中提供了 `generate_traffic_lights_additions` 的工具,来生成 `.add.xml` 文件,从而在模拟过程中保存交通灯状态的一些可能性。 这些保存的结果主要用于评估自适应交通灯算法。 详细内容可以参考 `Traffic Lights Output `_。 信号灯 addition 生成 ~~~~~~~~~~~~~~~~~~~~~ 我们使用 `sumo_tools` 中的 `generate_traffic_lights_additions` 工具可以生成自定义的 `.add.xml` 文件。 下面是整体的流程,完成的代码见 `Traffic Lights Output Example `_。 .. code-block:: python from tshub.sumo_tools.additional_files.traffic_light_additions import generate_traffic_lights_additions generate_traffic_lights_additions( network_file='xxx.net.xml', output_file='./tls.add.xml' ) 运行上面的代码,可以生成如下的配置文件。 我们只需要在运行仿真的时候,带上这个配置文件即可, 或是在 `.sumocfg` 中的 `additional-files` 指定这个文件即可。 .. code-block:: xml 输出结果例子 ~~~~~~~~~~~~~~~~ TLS States ------------- 每一个 `step` 记录一次每一个信号灯的状态。输出格式如下: .. code-block:: xml ... further states ... 下面是一个输出的例子: .. code-block:: xml ... TLS Switches --------------- 记录每一个 `connection` 绿灯的信息。包含开始和结束时间,`connection` 的 `fromLane` 和 `toLane` 等信息。 .. code-block:: xml ... further switch points ... 下面是一个输出的例子: .. code-block:: xml ... TLS Switch States ------------------- 记录每一个 `phase` 的改变。每一个 `phase` 的开始时间,和对应的 `state`。 .. code-block:: xml ... further states ... 下面是一个输出的例子: .. code-block:: xml ... TLS Programs ------------- 记录信号灯的 `program`,包含 `state` 和持续时间。 .. code-block:: xml ...