文章目录
- 0 基础准备
-
- 0.1 知识准备
- 0.2 文件准备
- 1 生成相关数据
-
- 1.1 生成路由文件
-
- 1.1.1 生成随机车流
- 1.1.2 其他生成方式
- 1.2 对仿真结果进行处理
- 1.3 主函数
- 2 数据处理
0 基础准备
0.1 知识准备
在看这篇文章之前,你需要:
- 掌握基本的 P y t h o n Python Python 知识(链接是我的好兄弟 川 s h i t shit shit 整理的相关知识);
- 掌握基本的 N u m P y NumPy NumPy 知识;
- 掌握基本的 x m l . e t r e e . E l e m e n t T r e e xml.etree.ElementTree xml.etree.ElementTree (或者其他处理 x m l xml xml 文件的方法)知识;
- 掌握基本的 M a t p l o t l i b Matplotlib Matplotlib 知识;
- 掌握基本的 S U M O SUMO SUMO 相关文件 的知识。
0.2 文件准备
在项目文件夹中,你需要:
- 一个路 文件( . n e t . x m l .net.xml .net.xml)
- 一个仿真文件 ( . s u m o c f g .sumocfg .sumocfg)
我的路 文件名称是 c r o s s . n e t . x m l cross.net.xml cross.net.xml ,内容则是一个很简单的十字路口。

仿真文件的内容为:
(仿真了1000秒的)
完成了这些工作,我们就继续进行吧!
1 生成相关数据
在项目文件夹里新建 m a i n . p y main.py main.py ,开始编写程序吧!
1.1 生成路由文件
1.1.1 生成随机车流
这是最简单的生成路由文件的方法,一般来说就会用这种方法。
代码部分解释:
- 函数参数中的 p a t h path path 是指 S U M O SUMO SUMO 文件夹中 t o o l s tools tools 文件夹的路径。 p e r i o d period period 是指每隔多长时间生成一辆车,单位为秒,实际上也就是到达率的倒数。
- 第 2 2 2、 3 3 3行就是 S U M O SUMO SUMO 自带的一些命令,通过 o s os os 模块来模拟命令提示符的使用来输入指令。第二行就是生成随机车流,我们设定仿真时间为 1000 1000 1000 秒。第三行将其转化为路由文件。
- 后面则是对仿真文件进行转换。由于我们会调用好多次生成路由文件的函数,而每次调用的 p e r i o d period period 都不一样,我们要保留每种情况的仿真结果。于是我们让每次仿真的仿真结果保存为 c r o s s . o u t p u t + s t r ( p e r i o d ) + . x m l cross.output + str(period) + .xml cross.output+str(period)+.xml 形式。比如说我们某一次仿真的 p e r i o d
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!