simulation - Veins:在输出中获取 Tripinfo 和排放量
问题描述
我正在使用带有 omnetpp 5.1.1 的静脉 4.6,并尝试使用 .sumocfg 文件中的以下配置输出车辆的行程信息:
<input>
<net-file value="erlangen.net.xml"/>
<route-files value="erlangen.rou.xml"/>
<additional-files value="erlangen.poly.xml"/>
</input>
<time>
<begin value="0"/>
<end value="300"/>
<step-length value="0.1"/>
</time>
<report>
<no-step-log value="true"/>
</report>
<gui_only>
<start value="true"/>
</gui_only>
<emissions>
<device.emissions.probability value="1"/>
</emissions>
<output>
<tripinfo-output value="erlangen.trip_info.xml"/>
<fcd-output value="erlangen.fcd.xml"/>
</output>
我已经生成了 30 个随机行程,例如网络,设置了vType元素的EmissionClass="HBEFA3/LDV_G_EU4"属性。当我直接在 SUMO 中运行模拟时,成功完成后,它会生成所需的行程信息文件:
<tripinfo id="0" depart="0.00" departLane="4006674#0_0" departPos="5.10" departSpeed="0.00" departDelay="0.00" arrival="202.40" arrivalLane="-4006726#0_0" arrivalPos="281.67" arrivalSpeed="13.76" duration="202.40" routeLength="2214.00" waitSteps="0" timeLoss="28.90" rerouteNo="0" devices="tripinfo_0 emissions_0" vType="passenger" speedFactor="1.00" vaporized="">
<emissions CO_abs="16453.885943" CO2_abs="591255.824603" HC_abs="76.174970" PMx_abs="24.476562" NOx_abs="123.285735" fuel_abs="254.203634" electricity_abs="0"/>
</tripinfo>
...
<tripinfo id="29" depart="29.00" departLane="29900564#4_0" departPos="5.10" departSpeed="0.00" departDelay="0.00" arrival="226.10" arrivalLane="-31241838#0_0" arrivalPos="18.39" arrivalSpeed="22.13" duration="197.10" routeLength="2353.60" waitSteps="0" timeLoss="23.99" rerouteNo="0" devices="tripinfo_29 emissions_29" vType="passenger" speedFactor="1.00" vaporized="">
<emissions CO_abs="16826.605518" CO2_abs="612826.831847" HC_abs="78.478455" PMx_abs="25.328690" NOx_abs="126.946877" fuel_abs="263.477812" electricity_abs="0"/>
</tripinfo>
但是,当我调试与 OMNET++ Simulation 相同的内容时,它会以以下通知结束,并且不会生成行程信息文件。
我在.sumocfg和omnetpp.ini中将模拟时间设置为 300 秒(sim-time-limit = 300 秒),屏幕截图显示所有离开的车辆都在 285.900 秒到达,同时模拟停止并收到通知。我通过一次又一次地更改随机行程和模拟的次数多次观察到这个问题,但都是徒劳的。
这里明确指出:
一旦车辆到达目的地并从网络中删除,就会为每辆车辆生成信息。
但我的情况并非如此。请指导我做错了什么。谢谢
解决方案
您很可能通过 sumo-launchd.py 运行 SUMO,它会创建您的场景的临时副本(在 /tmp 中)。场景运行后,副本将被删除。这意味着,如果您登录到执行 SUMO 模拟的目录,您记录的数据将与临时副本一起被清除。
有以下三种方法可以防止:
使用禁用删除临时目录的命令行开关运行 sumo-launchd.py,或
配置 SUMO 以将统计信息存储在其他位置,或者
使用不同的方式启动 SUMO(手动或使用 TraCI ScenarioManagerForker)
推荐阅读
- java - XML 命名空间异常
- python - 从 groupby 熊猫中获取 MultiIndex
- javascript - Javascript 的 Math.random() 如何在幕后工作?
- java - 如何在java中调用dll文件
- php - PHP 和 MYSQLi 用于
- jenkins - 在 Jenkins 机器上需要 DevEnv 而无需安装 VS - 需要 api-ms-win-core-heap-l2-1-0.dll
- c# - Kinect C# 重载
- python-3.x - 尝试在 Windows 7 64 位(Python 3.4.4 32 位)上使用 GDAL 时出现“ImportError:DLL 加载失败”
- javascript - 遍历 JSON 树以递归方式检索父项和子项
- xml - 我应该如何根据 XSLT 中的另一列组合列的值?