我认为Detector是SUMO中一个超级重要的部分,也值得我专门用一篇文章来进行介绍。
文章目录
1 E1 Detector
1.1 简介
E1 Detecor其实就是模拟我们现实生活中的感应线圈。比如在某一条车道上放一个感应线圈,就可以知道在一段时间里有多少车经过了这个感应线圈,也可以知道车辆经过这个感应线圈时的平均速度是多少等等许多信息。
1.2 添加方式
在 a d d . x m l add.xml add.xml文件里面添加相关参数。
<e1Detector id="De0" lane="e2to0_0" pos="450" freq="30" file="cross.out" friendlyPos="x"/>
里面的参数包括:
- i d id id:为你的Detector搞一个id,注意必须是唯一的。
- l a n e lane lane:说明你的这个Detector在哪一条车道上。格式为edgeID_laneIndex(我放个洋屁应该能看懂吧)
- p o s pos pos:在这条车道的哪个位置。从起点开始算在第几米。
- f r e q freq freq:频率。比如值为30时就是30秒一个周期来进行测量。比如说就是得到第n个30秒内的车辆经过数量之类的。
- f i l e file file:将测量结果保存在哪个文件里。
- f r i e n d P o s friendPos friendPos:布尔类型。如果设置,则将检测器放置在车道后面不会报告任何错误。取而代之的是,将检测器放置在距离通道末端0.1米处或0.1位置处(如果该位置为负值且大于乘以-1后的通道长度);默认值:false。
1.3 结果文件
<detector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/det_e1_file.xsd">
<interval begin="0.00" end="30.00" id="De0" nVehContrib="0" flow="0.00" occupancy="0.00" speed="-1.00" harmonicMeanSpeed="-1.00" length="-1.00" nVehEntered="0"/>
<interval begin="30.00" end="60.00" id="De0" nVehContrib="0" flow="0.00" occupancy="0.00" speed="-1.00" harmonicMeanSpeed="-1.00" length="-1.00" nVehEntered="0"/>
<interval begin="60.00" end="90.00" id="De0" nVehContrib="0" flow="0.00" occupancy="0.00" speed="-1.00" harmonicMeanSpeed="-1.00" length="-1.00" nVehEntered="0"/>
<interval begin="90.00" end="120.00" id="De0" nVehContrib="0" flow="0.00" occupancy="0.00" speed="-1.00" harmonicMeanSpeed="-1.00" length="-1.00" nVehEntered="0"/>
......
<interval begin="1620.00" end="1650.00" id="De0" nVehContrib="2" flow="240.00" occupancy="2.58" speed="12.96" harmonicMeanSpeed="12.90" length="5.00" nVehEntered="2"/>
<interval begin="1650.00" end="1680.00" id="De0" nVehContrib="1" flow="120.00" occupancy="1.26" speed="13.21" harmonicMeanSpeed="13.21" length="5.00" nVehEntered="1"/>
......
</detector>
如你所见,里面包括了开始时间、结束时间、Detector的id、在这段时间间隔内完全通过检测器的车辆数量、推算的一个小时的车辆数量、占有比(车辆在上面的时间/不在上面的时间)、所有已完全收集的车辆的速度的算术平均值(时间平均速度)、所有完全收集的车辆的速度的谐波均值(空间平均速度)、检测器长度以及有多少车辆进入了(哪怕还停在上面)。
1.4 TraCI中的使用
2 E2 Detector
2.1 简介
E2 Detector就是类似于一个摄像头了,可以监测一条车道(甚至多条车道)的一段长度的交通状况。比如可以查询在这条车道有几辆车在排队,排队排了多少米等等非常有用的信息。
2.2 添加方式
同样也是在 a d d . x m l add.xml add.xml文件里面添加相关参数,不过它的 t a g tag tag就不是e2Detector了。
<laneAreaDetector id="De1" lane="e1to0_0" pos="10" endPos="492.8" file="cr1.out" freq="30" friendlyPos="x"/>
跟E1 Detector一样。只是有个pos和endPos。
实际上,关于位置的选定有三个参数:pos、endPos和length,三个里面有任意两个就可以。
2.3 结果文件
<detector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/det_e2_file.xsd">
<interval begin="0.00" end="30.00" id="De1" sampledSeconds="43.19" nVehEntered="3" nVehLeft="0" nVehSeen="3" meanSpeed="9.11" meanTimeLoss="5.60" meanOccupancy="1.48" maxOccupancy="3.11" meanMaxJamLengthInVehicles="0.00" meanMaxJamLengthInMeters="0.00" maxJamLengthInVehicles="0" maxJamLengthInMeters="0.00" jamLengthInVehiclesSum="0" jamLengthInMetersSum="0.00" meanHaltingDuration="0.00" maxHaltingDuration="0.00" haltingDurationSum="0.00" meanIntervalHaltingDuration="0.00" maxIntervalHaltingDuration="0.00" intervalHaltingDurationSum="0.00" startedHalts="0.00" meanVehicleNumber="1.50" maxVehicleNumber="3" />
<interval begin="30.00" end="60.00" id="De1" sampledSeconds="81.92" nVehEntered="1" nVehLeft="2" nVehSeen="4" meanSpeed="13.22" meanTimeLoss="1.79" meanOccupancy="2.78" maxOccupancy="3.11" meanMaxJamLengthInVehicles="0.00" meanMaxJamLengthInMeters="0.00" maxJamLengthInVehicles="0" maxJamLengthInMeters="0.00" jamLengthInVehiclesSum="0" jamLengthInMetersSum="0.00" meanHaltingDuration="0.00" maxHaltingDuration="0.00" haltingDurationSum="0.00" meanIntervalHaltingDuration="0.00" maxIntervalHaltingDuration="0.00" intervalHaltingDurationSum="0.00" startedHalts="0.00" meanVehicleNumber="2.77" maxVehicleNumber="3" />
不想一个一个解释了,感觉看参数名字就可以看明白。
E3 Detector
还没有用到,就是区域的检测器,检测区域内车辆数以及进出情况。可以设立交通小区的感觉。