TripInfo

在仿真中实例化#

通过在命令行/配置文件中使用选项 --tripinfo-output <FILE>,可以强制仿真生成此输出。该输出包含每辆车的出发时间、车辆计划出发时间(可能早于实际出发时间)以及车辆到达时间。信息会在每辆车到达目的地并从路网中移除时生成。

生成的输出#

格式如下:

<tripinfos>
    <tripinfo id="<VEHICLE_ID>" \
            depart="<DEPARTURE_TIME>" departLane="<DEPARTURE_LANE_ID>" \
            departPos="<DEPARTURE_POSITION>" departSpeed="<DEPARTURE_SPEED>" \
            departDelay="<DEPARTURE_DELAY>" \
            arrival="<ARRIVAL_TIME>" arrivalLane="<DEPARTURE_LANE_ID>" \
            arrivalPos="<ARRIVAL_POSITION>" arrivalSpeed="<ARRIVAL_SPEED>" \
            duration="<TRAVEL_TIME>" routeLength="<ROUTE_LENGTH>" \
            waitingTime="<SECONDS_WAITING_FOR_TRAFFIC>"
            waitingCount="<NUMBER_OF_WAITING_EPISODES>" \
            rerouteNo="<REROUTE_NUMBER>" \
            devices="<DEVICE_LIST>" vtype="<VEHICLE_TYPE_ID>"/>

    ... 其他车辆的信息 ...

</tripinfos>

请注意,与上面的示例不同,在每个时间步长中,所有这些值都在一行中报告。每当车辆到达目的地时,就会写入一条记录。在此之前,写入的值是未知的。

名称 类型 描述
id (车辆) id 该条目描述的车辆名称
depart (仿真) 秒 实际出发时间(车辆插入路网的时间)
departLane (车道) id 车辆开始行程的车道 id
departPos 车辆开始行程时在车道上的位置
departSpeed 米/秒 车辆开始行程时的速度
departDelay (仿真) 秒 车辆在开始行程前必须等待的时间
arrival (仿真) 秒 车辆到达目的地的时间
arrivalLane (车道) id 车辆到达目的地时所在的车道 id
arrivalPos 车辆到达目的地时在车道上的位置
arrivalSpeed 米/秒 车辆到达目的地时的速度
duration (仿真) 秒 车辆完成路线所需的时间
routeLength 车辆路线的长度
waitingTime 车辆速度低于或等于 0.1 米/秒的时间(计划的停靠不计入)
waitingCount # 车辆速度低于或等于 0.1 米/秒的次数
stopTime 车辆进行计划停靠的时间
timeLoss 由于低于理想速度行驶而损失的时间。(理想速度包括个体 speedFactor;交叉口等造成的减速会产生 timeLoss,计划的停靠不计入)
rerouteNo # 车辆重新规划路线的次数
devices [ID]* 车辆拥有的设备列表。每个设备之间用 ';' 分隔。
vtype ID 车辆的类型
speedFactor float 车辆的个体速度因子(可能在仿真开始时从速度分布中抽取)
vaporized bool 车辆是否在到达目的地之前从仿真中移除

设备#

单个设备可以选择向 tripinfo 文件添加更多输出。

排放#

使用选项 --device.emissions.probability <FLOAT>--device.emissions.explicit <ID>[,<ID>]* 实例化的 "emissions" 设备。写入的排放量取决于车辆选择的排放等级(参见车辆、车辆类型和路线的定义模型/排放)。它提供了车辆在行程期间产生/消耗的所有排放/消耗的总和。

这将添加以下行:

<tripinfos>
    <tripinfo id="<VEHICLE_ID>" ... vtype="<VEHICLE_TYPE_ID>">
        <emissions CO_abs="..." CO2_abs="..." HC_abs="..." PMx_abs="..." NOx_abs="..." fuel_abs="..."/>
    </tripinfo>
    ... 其他车辆的信息 ...

</tripinfos>

单位如下:

名称 类型 描述
CO_abs mg 车辆在行程期间排放的 CO 总量
CO2_abs mg 车辆在行程期间排放的 CO2 总量
HC_abs mg 车辆在行程期间排放的 HC 总量
PMx_abs mg 车辆在行程期间排放的 PMx 总量
NOx_abs mg 车辆在行程期间排放的 NOx 总量
fuel_abs mg 车辆在行程期间消耗的燃料总量
electricity_abs Wh 车辆在行程期间消耗的电量总量

电池#

"battery" 设备 向 tripinfo 输出贡献车辆在行程期间电池耗尽的次数。车辆可能因能量不足而被迫停止(使用 "stationfinder" 设备),或者可能在制动时回收能量,然后再次耗尽电池。

这将添加以下行:

<tripinfos>
    <tripinfo id="<VEHICLE_ID>" ... vtype="<VEHICLE_TYPE_ID>">
        <battery depleted="..." actualBatteryCapacity="..." totalEnergyConsumed="..." totalEnergyRegenerated="..."/>
    </tripinfo>
    ... 其他车辆的信息 ...

</tripinfos>

属性如下:

名称 类型 描述
depleted - 车辆想要消耗的能量超过电池所能提供的次数
actualBatteryCapacity Wh 车辆完成路线后的电池容量
totalEnergyConsumed Wh 完成路线后消耗能量的累积总和
totalEnergyRegenerated Wh 完成路线后回收能量的累积总和

仿真结束时未到达车辆的输出#

默认情况下,tripinfo-output 仅在车辆到达时写入。这意味着仿真结束时(即由于选项 --end)未到达的车辆不会生成输出。 要更改此行为,可以使用选项 --tripinfo-output.write-unfinished

仅输出选定车辆或车辆类型#

默认情况下,所有车辆都会生成 tripinfo-output。通过为选定车辆或类型分配 tripinfo 设备,可以更改此行为。

示例: 设置 SUMO 选项 --device.tripinfo.probability 0 将默认禁用所有车辆的设备。 以下定义覆盖此默认值并为公交车启用设备:

<vType id="bus">
  <param key="has.tripinfo.device" value="true"/>
</vType>

人员和集装箱输出#

如果仿真包含人员或集装箱,以下元素将添加到输出中:

<personinfo id="person0" depart="0.00">
 <walk depart="0.00" arrival="47.00" arrivalPos="55.00"/>
 <ride waitingTime="74.00" vehicle="train0" depart="121.00" arrival="140.00" arrivalPos="92.00"/>
 <stop duration="20.00" arrival="160.00" arrivalPos="45.00" actType="singing"/>
</personinfo>
<containerinfo id="container0" depart="0.00">
  <tranship depart="0.00" arrival="54.00" arrivalPos="55.00"/>
  <transport waitingTime="103.00" vehicle="train0" depart="157.00" arrival="176.00" arrivalPos="92.00"/>
  <stop duration="20.00" arrival="196.00" arrivalPos="40.00" actType="waiting"/>
</containerinfo>

当设置选项 --personinfo-output FILE 时,上述元素将写入给定的文件名,而不是与车辆的 <tripinfo> 元素一起写入。

<personinfo> / <containerinfo> 属性具有以下含义:

名称 类型 描述
id (车辆) id 该条目描述的人员/集装箱名称
depart (仿真) 秒 出发时间

阶段内的属性具有以下含义:

名称 类型 描述
depart (仿真) 秒 此阶段的出发时间。对于 <ride>,<transport>,这是进入车辆的时间。(如果未进入车辆则为 -1)
arrival (仿真) 秒 此阶段的到达时间。注意:在停靠阶段,这是阶段结束的时间,即持续时间周期之后(如果阶段未开始则为 -1)
arrivalPos 此阶段在目标边缘上的到达位置
duration (仿真) 秒 对于步行和停靠,这是在该阶段花费的时间。对于乘车阶段,这是车内花费的时间。(如果阶段未开始或人员未进入车辆则为 -1)
actType string 停靠的活动描述
waitingTime (仿真) 秒 等待车辆所花费的时间
routeLength 该阶段行驶的距离
timeLoss 由于以低于该阶段最大速度行驶而损失的时间。对于 <ride>,这是乘车期间车辆的 timeLoss
maxSpeed 该阶段允许的最大速度

聚合输出#

可以通过设置选项 --statistic-output 来获取关键 tripinfo-output 属性的聚合输出。

有关进一步的聚合,请参见 attributeStats.pyTools/Xml#xml2csv.py

可视化示例#

TripInfo 输出可用作 SUMO 附带的几个可视化工具的输入。下面展示了一些示例图。

随时间变化的出发延迟#

使用 plotXMLAttributes.py 生成。

停靠次数直方图#

使用 plot_tripinfo_distributions.py 生成。