实现第一个小仿真并可视化
通过本节,你将会:1.了解Matsim仿真需要哪些输入// 2.如何利用Matsim进行一个简单的仿真// 3.如何可视化仿真结果//
1.我们需要什么作为输入
交通流的仿真需要什么?对不起!我不是专业学习交通的学生,不能很好的回答这个问题。我们不妨自己考虑一下:首先你要有一个路网——这个比较容易理解;其次你还需要有各种汽车在路上跑。小车从哪里来?整个城市有数百万辆汽车,每辆汽车在一天当中都需要经过数条道路,还会遇上堵车等突发事件...这些你如何得知?除非每个车上都装备了GPS,我们通过收集一天的信息数据,便可以掌握全市的交通情况。然而都是真实的数据,也不需要仿真了。
我们究竟需要的是什么?交通流仿真究竟需要哪些输入?Matsim提供了一个简单的思路:你只要告诉我,每个人几点在家,几点到达另一个地方,几点回来,并提供这些地点的地理坐标,剩下来的工作,就交给我吧!
因此,一个最简单的仿真系统,应该包括两个输入:第一个是本地区的路网,另一个是本地区人口的人口出行需求。Matsim的输入文件类型均为.xml,路网文件通常命名为network.xml,人口出行需求文件通常命名为plan.xml。在本节中,大家暂时不用考虑如何得到这两个文件,我们先使用Matsim自己提供的示例文件,熟悉一下Matsim的操作流程。
请参前面帖子Matsim的打开界面,却发现我们的输入仅需要一个文件,这个文件便是一个config.xml文件。我们先找到示例文件中的config.xml文件,如下图所示。从config.xml文件中可以看出,我们所需要的路网文件network.xml和出行需求文件plan.xml都配置在其中。当然config文件中还包括许多其他的设置,在此暂时不一一介绍。
若您是Jar版本用户,请打开matsim-0.8.1/examples/equil文件夹,双击打开config-with-gui.xml;如果您是Java源代码版本,请打开matsim-master/examples/scenarios/equil文件,双击打开config.xml文件。
- Tip1: 推荐使用Notpad++打开.xml文件。
- Tip2: 在仿真前,务必删除本文件夹中的output文件夹,否则运行会报错!
2.仿真结果如何显示
将config文件添加进图Matsim的打开界面中,并且点击Start MATSIM按钮,仿真便开始啦!仿真过程中会在下方的日志栏输出很多信息,不需理会。直到最后输出如下面第一幅图片所示的shutdown complete时,表示仿真完成。
此时在输出文件夹output中可以看到名字类似于output_events.xml.gz的压缩文件。此时打开Via软件,按照File-Add Data,将该文件夹中的output_events.xml.gz、output_network.xml.gz文件添加进来,然后添图层Network、Vehicles、Activities-from Events,便可以看到如下面第二幅图所示的仿真结果。
到目前为止,我们对Matsim已经有一个初步的了解。从下一节开始,笔者打算先教大家如何仿真一个真实的交通流。接着会从代码角度出发,解读Matsim的源代码,并告诉大家如何添加自己想要的功能。
感谢同道中人的支持!若有不足之处,敬请指出。希望我们可以在留言区一起讨论、学习~