SUMO使用日志——1(2021-11-08)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言


我是从这里学来的。虽然我不喜欢咖喱味的英语,但是不得不承认他们在计算机这方面确实很厉害,youtube上面好多印度人的教程

一、道路数据获取

使用Open Street Map来获取osm数据,也就是道路数据。里面可以手动选取区域。不过我不知道怎么进行简化,因为直接选取之后感觉很复杂
选取画面
我获取的是朝阳区的数据,然后我命名为chaoyang.osm,并另存在一个空的文件夹里面(这里面的py文件不用管,之后要用到)文件夹

二、文件类型转换

用以下的命令来进行转换,这个是从SUMO官方帮助文档里面找到的。
netconvert --osm-files berlin.osm.xml -o berlin.net.xml
然后将里面的第一个文件写成自己现有的osm文件,后面写成想要的名字。对我来说就是写成
netconvert --osm-files chaoyang.osm -o chaoyang.net.xml

为了能够执行,要打开命令行窗口,然后cd/ d 到自己建的新文件夹
示意图
之后输入那一长串指令
在这里插入图片描述显示Success,说明成功了,然后我们在SUMO中打开
在这里插入图片描述
我暂时还不知道怎么把这个铁路省略掉,不过现在取得了道路信息了

1. --geometry.remove指令尝试

官方解释: --geometry.remove:Simplifies the network (saving space) without changing topology
翻译:在不改变拓扑的情况下简化网络(保存空间)
输入netconvert --osm-files chaoyang.osm -o chaoyang_1.net.xml --geometry.remove
结果如下
在这里插入图片描述
看不出来哪里简化了感觉…不过还是先用着吧

代码如下(示例):

2.其他指令

–junctions.join : See #Junctions
–tls.guess-signals --tls.discard-simple --tls.join : See #Traffic_Lights
–tls.default-type actuated : Default static traffic lights are defined without knowledge about traffic patterns and may work badly in high traffic
网站,有时间我再尝试

三、加入随机车辆

现在要用到一开始我文件夹里面的那个randomTrips.py文件
他存放在SUMO安装目录下的一个地方,至于在什么具体位置,可以用Everything找一下,这个找起来挺方便的

接下来用这个指令
py C:\Users\zqf\Desktop\myBigC\randomTrips.py -n chaoyang.net.xml -r chaoyang.rou.xml -e 50 -l
在这里插入图片描述

指令

官方指令解释,我只给出几个我能看懂的

  • -n是给定的路网文件
  • -b是开始的时间
  • -e是结束的时间
  • -p是重复率每秒,代表了生成车的多少
    例子-b t0 -e t1 -p ((t1 - t0) / n)表示从to到t1时间里有n辆车出发
  • –random:随机生成,不然每次一样
  • –seed < INT >:随机的种子

官方给出的解释:“randomTrips.py” generates a set of random trips for a given network (option -n). It does so by choosing source and destination edge either uniformly at random or with a modified distribution as described below. The resulting trips are stored in an XML file (option -o, default trips.trips.xml) suitable for duarouter which is called automatically if the option (with a filename for the resulting route file) is given. The trips are distributed evenly in an interval defined by begin (option -b, default 0) and end time (option -e, default 3600) in seconds. The number of trips is defined by the repetition rate (option -p, default 1) in seconds. Every trip has an id consisting of a prefix (option --prefix, default “”) and a running number.

加入人

--pedestrians:create a person file with pedestrian trips instead of
vehicle trips
生成一个全是人的文件而不是车辆。感觉很有用,不过不知道能不能和上面的那个车辆重叠起来用…我先 生成 一个好了
总体指令如下
py C:\Users\zqf\Desktop\myBigC\randomTrips.py -n chaoyang.net.xml -r chaoyang_person.rou.xml -e 50 -p 0.25 --pedestrians
在这里插入图片描述

这里用了-p 0.25,根据上面讲的,应该是(50-0)/200,也就是有200人冒出来了

搞一个配置文件

搞不懂为什么不能直接自动生成,也许是我不知道吧,我看的油管教程里面还要自己复制上去…太麻烦了。命名为XXX.sumocfg。然后点开就可以看到小车了

<configuration>
    <input>
        <net-file value="chaoyang.net.xml"/>
        <route-files value="chaoyang.rou.xml"/>

    </input>

    <time>
        <begin value="0"/>
    </time>

</configuration>

总结

太累了。以下为未解决问题

  • 怎么把osm文件里面的铁路啥的剔除掉,简化道路
  • 怎么把车辆轨迹和人轨迹放在一起。我知道可以在源文件复制过去,但是我觉得可能会有更加直接的方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值