对于小白来说,没有一个讲解的视频真的很难看懂官网的介绍。因此,顺便把自己学习sumo可视化的曲折过程记录下来,给新入门的充当一个教程看看。借鉴了很多大佬的使用经验,在文中进行引用并在此感谢。
1、问题,sumo找不到python
由于初学时,学习的软件就是anaconda加pycharm,也因此系统中并没有python。于是
因此,在anaconda中的python调用必须从窗口进行调用python。
准备工作
①将traci安装到anaconda的python目录下,方便后续的仿真可视化调用。这里参考了关于调用sumo与python的接口TraCI的问题_sumo如何连接traci-CSDN博客,不会的可以自行去参考一下,这位 大佬介绍的很详细。
②作为可视化仿真的基础文件——fcd.xml文件的输出
参考【无标题】SUMO 数据获取及可视化、轨迹图_如何用sumo生成数据-CSDN博客
<write-license value="true"/>:此代码将在仿真运行期间生成一个名为license.txt的文件,其中包含了SUMO的许可证信息。这个文件通常用于记录SUMO的使用授权和版本信息。
<tripinfo-output value="tripinfos.xml"/>:此代码将在仿真运行结束后生成一个名为tripinfos.xml的文件,其中包含了车辆的行程信息,如车辆ID、起始时间、行驶时间、行驶距离等。这个文件可以用于分析车辆的行为和性能。
<fcd-output value="fcd.xml"/>:此代码将在仿真运行结束后生成一个名为fcd.xml的文件,其中包含了完整的车辆行驶轨迹和相关信息,如位置、速度、加速度等。FCD(Floating Car Data)是指通过GPS或其他定位设备采集到的车辆实时位置和状态数据。fcd.xml文件可以用于进一步的轨迹分析和交通流量统计。
③仿真实现——两种
一、获得时间与车辆数据的可视图
使用sumo的工具tools中python plot_trajectories.py fcd.xml -t td -o plot.png -s。由于在anaconda中实现,因此一定要将文件的基本路径写入方便python识别。
上图就是成功的一种情况,未能在指定的 fcd.xml 文件中找到数据点。(你需要数据点就把仿真文件sumocfg的仿真打开,需要多久时间的数据仿真进行多久的仿真。)
我的代码
python D:\sumo-win64extra-1.19.0\sumo-1.19.0\tools\plot_trajectories.py D:\iseal\Desktop\qing\fcd.xml -t ty -o D:\iseal\Desktop\qing\plot.png -s
正确输出类似于下图,其中-t会决定你输出的是时间与什么(距离、速度等,自行设置)的图像
二、随时间变化的所有轨迹
流程与上面基本一致,我的代码 如下
python D:\sumo-win64extra-1.19.0\sumo-1.19.0\tools\visualization\plotXMLAttributes.py -x x -y y --size 10,8 -o D:\iseal\Desktop\qing\put.png D:\iseal\Desktop\qing\fcd.xml –scatterplot
其中 -x 是 x 轴的属性;-y 是 y 轴的属性;-s是显示剧情;-o 是输出文件名;--散点图是制作散点图而不是线图。输出正确的散点图与路网结构相关,大概如下所示。
其他可视化仿真我也还在学习中……