【SUMO学习记录 |
您所在的位置:网站首页 › 路段平均速度怎么算的 › 【SUMO学习记录 |
目录 仿真示例 平均数据的定义方法 生成的输出 基于边缘的网络状态 基于车道的网络状态 值的说明 如何聚合/导出更多值 注意 也可以看看 这项输出的值通过给出诸如平均车速、平均密度等宏观值来描述路网内的交通科学情况。这项输出可以针对车道、边缘或边缘组来生成。 下面将要描述的是,如何生成这两个输出以及它们包含哪些值。之后给出的是值的含义以及对于时间间隔(intervals)的描述。最后给出了一些约束输出的其他可能性。 !注意: 请注意这些输出也可以被称作“聚合的车道/边缘状态(aggregated lane/edge states)”“平均数据(meandata)”或“edge/lane-dumps”。 仿真示例 平均数据的定义方法基于边的状态转储可以通过在sumo config(即仿真文件)中加入一个 additional-file 来定义,例如: 基于车道的转储则是这样的: !注意: 属性“id”仅用于区分有多个edgeData定义的输出。该值是任意的,不影响输出。 有关附加属性的更多信息可以参考下面的表格。 属性名称值类型描述id ID id (string)所监测内容的ID。需要通过用户定义的ID来区分单个输出文件中的多组监测值。 file 文件 filename输出文件的路径。这一路径可以是相对的。freq 频率 int (time)聚合周期(The aggregation period)内检测器收集到的值应被相加。如果没有被定义,从开始到结束之间的所有时间间隔都会被聚合。 begin 开始时间 int (time)开始将数据写入输出文件的时间,此时间之前的时间间隔将不会被记录。如果未给定则默认为模拟开始时间。end 结束时间 int (time)停止写入时间,此时间之后的时间间隔将不会被记录。如果未给定则默认为模拟结束时间。excludeEmpty 排除空(车道) string (true, false, defaults)如果设置为 true,则不会写入在此期间未被车辆使用的边缘/车道;默认值是false。如果设置为“default”,取决于边缘长度和最大速度的 行程时间和速度的默认值 将被打印出来。 withInternal 加上内部 bool如果设置为true,连接点内部的边/车道的相关信息(junction internal edges/lanes)也将被写入。默认为false。 (这句话的主语并不是很理解) maxTraveltime 最长旅行时间 float (time)如果仅发生非常小的运动,则以秒为单位的最大行程时间;默认为100000。minSamples 最小样本 float (time)车辆必须在边缘/车道上运行(才能确定其为非空)的最小总秒数,默认>0。 speedThreshold 速度阈值 float (m/s)认为车辆停止(状态)的最大车速,默认0.1。 The maximum speed to consider a vehicle halting; default 0.1. vTypes 车辆种类 string(输出)要考虑的车辆类型ID的用空格分隔的列表,""表示全部,默认为""。 trackVehicles 跟踪车辆 bool是否要对聚合时间间隔中进入边缘/车道的所有车辆进行聚合检测。 whether aggregation should be performed over all vehicles that entered the edge/lane in the aggregation interval detectPersons 监测人员 string list是否记录行人而非车辆。允许的值是 walk。 注意:更多的模式在计划中。 writeAttributes 写入的属性 string list应被写入的属性名称组成的列表(默认为全部属性) edges 边缘 string list限制输出到给定的边id列表 edgesFile 边缘文件 filename将输出限制为给定的文件中给定的边列表(每行一个 edgeID 或以“edge:”为前缀的 id,就像在selection file中) aggregate 聚合的 bool是否将所有边缘的交通数据聚合为一个值(边缘ID将为AGGREGATE) 生成的输出 基于边缘的网络状态对于基于边缘的状态转储,输出文件如下列所示: ... more edges ... ... further intervals ...请注意,与上面的示例不一样的是,对于每个边缘,所有的值都在一行中报告。 基于车道的网络状态生成的输出如下所示: ... more lanes... ... more edges ... ... further intervals ...请注意,与上面的示例不一样的是,对于每个边缘,所有的值都在一行中报告。 值的说明基于边缘的转储与基于车道的转储都以相同的方式进行值的计算:每辆车的移动——即使速度为0——都在间隔中被记录和保存。间隔后,这些值将会在归一化之后写入文件。在边缘转储的情况下,这些值不仅通过所收集的车辆移动次数与车道长度进行归一化,还通过边缘的车道数归一化。 写入的值的含义如下表所示: 名称类型/单位描述begin 开始 (simulation) seconds开始记录数据的第一个时间步长 end 结束 (simulation) seconds记录数据的最后一个时间步长 + DELTA_T edge@id 边缘的ID (edge) id所报告的边缘的名称lane@id 车道的ID (lane) id所报告的车道的IDsampledSeconds 采样秒数 s在测量间隔内,每秒钟出现在边缘/车道上的车辆数相加(如果一辆车进入/离开边缘/车道,则可能是亚秒级别)(不是很理解,单位不是s吗) traveltime 旅行时间 s通过边缘/车道所需要的时间,请注意,这只是基于平均速度的估计值,而非车辆所需的准确时间。这个值基于车头部位通过边缘的时间。 overlapTraveltime 重叠的行程时间 s完全通过边缘/车道所需的时间,请注意,这只是基于平均速度的估计,而不是车辆所需的确切时间。该值基于车辆的任何部分处于边缘的时间。density 密度 #veh/km边缘的车辆密度laneDensity 车道密度 #veh/km/lane边缘中每条车道的车辆密度occupancy 占用率 %边缘或车道的占用率,以%为单位。100%则表示车辆在边缘上一个接一个的排列(最小间隔为0) Occupancy of the edge/lane in %. A value of 100 would indicate vehicles standing bumper to bumper on the whole edge (minGap=0). waitingTime 等待时间 s车辆被视为停止(低于速度阈值speedThreshold)的总时长(所有车辆的总合) timeLoss 时间损失 s车辆因行驶速度低于预期而损失的总秒数(所有车辆的总和) speed 速度 m/s所报告的时间间隔内边缘/车道上的平均速度。 注意:这是关于时间和空间的平均值(空间平均速度),而不是车辆的平均速度(时间平均速度)。由于慢速车辆会在边缘上花费更多时间,他们对于平均速度的影响会成比例性的增大。 Caution: This is an average over time and space (space-mean-speed), rather than a local average over the vehicles (time-mean-speed). Since slow vehicles spend more time on the edge they will have a proportionally bigger influence on average speed. departed 出发 #veh在所述时间间隔内从边缘/车道出发的车辆数量 arrived 到达 #veh在边缘车道上完成路线的车辆数量 entered 进入 #veh从上游进入边缘/车道的车辆数量left 离开的 #veh通过向下游移动而离开边缘/车道的车辆数量 laneChangedFrom 从此变道的车辆数 #veh从当前车道变道的车辆数量 laneChangedTo 变道至此的车辆数 #veh变道至当前车道的车辆数量vaporized 汽化(消失?) #veh在此边缘蒸发的车辆数量(仅在 #veh > 0 时出现) The number of vehicles vaporized on this edge (only present if #veh > 0) teleported 传送 #veh从此边缘传送的车辆数量(仅在 #veh > 0 时出现) The number of vehicles teleported from this edge (only present if #veh > 0) (上述两个属性可能是死锁现象出现时的属性) 请注意,在统计车道平均数值的情况下,两个换道条目(的数值)与该边缘上的换道次数总和相等。此外,每条车道上的换道是分别独立计算的,这意味着,如果一辆车从车道1换至车道3,则会进行两次换道计数。 如何聚合/导出更多值为了在更长的时间段内聚合相同边缘/车道的输出,可以将车辆计数结果简单相加,密度和占用率可以被简单地取平均值(如果时间间隔的长度是相等的话),速度则应当以sampledSecond的加权平均值作为权重。为了进一步整合旅行时间,需要首先计算平均速度,然后用边缘/车道的长度除以速度值。 对于多个边缘/车道的空间整合并没有这么容易,尤其是当他们是连续的时候,因为每个车辆都会在他所在的每一条车道上生成数据,即使他在多车道上行驶过也是如此。对于有许多小而快速移动的车辆的情况,这种误差可以忽略不计。但是如果你的仿真中有许多长而慢的车辆,你就不能想上面那样简单地整合。 从给定的数值中,可以得到以下测量值(period 表示聚合时间间隔的长度): 边缘车辆的平均数(#) Average number of vehicles on the edge (#) = sampledSeconds / period平均交通量(#/h) Average traffic volume (#/h) = speed * 3.6 * density边缘/车道起点的平均交通量(#/h) Traffic volume at the begin of the lane / edge (#/h) = 3600 * entered / period边缘/车道起末端平均交通量(#/h) Traffic volume at the end of the lane / edge (#/h) = 3600 * left / period总行驶距离(m) Total distance travelled (m) = speed * sampledSeconds边缘长度 Edge length = sampledSeconds / period * 1000 / density以下的边缘数据都是合理的计数,因为他们只计算每辆车一次,但他们包括/派出了一些特殊情况。 entered(进入) entered + departed(进入+出发) left(离开)left + arrived(离开+到达)!注意: 当使用车道数据时,离开+到达 的总和包括了所有因换道而驶出该车道的车辆。而离开+到达+从此换道(left + arrived + laneChangedFrom)的总和,可能计算一个车辆多次。如果需要单条车道上的总计数,最好使用检测器 detector。 注意 默认情况下,所有边缘都被写入,即使是那些没有车辆行驶的边缘。如果车道/边缘没有收集到数据,则不会写入属性速度、行驶时间、密度、占用率和等待时间。可以通过将excludeEmpty属性设置为 true来禁止写入未使用的边缘/车道 。即使在有sampledSeconds="0.00" 的边缘/车道上,由于 sampledSeconds的实际值可能是 0.001 并且在输出中被切断。为了在您考虑数据有效性之前定义最小样本数,请使用 minSamples来定义平均数值。即使没有收集到数据 (sampledSeconds="0") ,出发(depart)和换道至此(laneChangedTo) 也可能并不是0,因为内部车道更改和出发发生在时间步的末尾。(这里不太理解)间隔末尾是是间隔开始 + 聚合时间(interval begin + aggregation time),这意味着在这些步骤中收集的值不包括时间间隔末尾本身。如果模拟在最后一个间隔结束之前结束,则该间隔将被修剪。输出文件将会生成,不必早先存在,如果存在则将被覆盖且无任何警告。生成输出文件的文件夹必须存在。如果您只需要有关特定时间段内网络状态的信息,您可以通过创建具有属性 begin=""和end=""的多个转储来限制转储的生成。它们都可能具有相同的 id 并写入相同的输出文件。 也可以看看 基于边缘/车道的车辆污染物排放输出 和基于边缘/车道的车辆噪声排放输出 具有相似的格式mpl_dump_onNet.py脚本mpl_dump_onNet.py可以将此输出的值显示为彩色网络(并且存在进一步的可视化工具 )。您可以自动生成平均数据定义。有关详细信息,请参阅输出工具。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |