grid下载_李想轨道

国内新闻 / 来源:李想轨道 发布日期:2021-02-20 热度:101C
敬告:本站部分内容转载于网络,若有侵权、侵害您的利益或其他不适宜之处,请联系我们,本站将立即删除。
联系邮箱:2876218132#qq.co m
本页标题:grid下载_李想轨道
本页地址:http://www.ahbbs.cc/71037-1.html
相关话题:grid下载
#grid下载# 【上新了】出行需求从哪来?Grid2demand六行代码帮你搞定!

之前向大家介绍过一款获取路网信息的python依赖库——osm2gmns(【神器】你想要的交通网络数据,三行代码搞定!)。成功获取路网数据后,交通规划应该怎么做?当然是从需求开始。
出行需求是交通规划的根基,其产生与土地性质密切相关。以校园为例,上课前的主要出行需求是从宿舍区至教学区,下课后则反之;而在承办大型赛事期间,校园场馆附近的交通量则会明显增加。
放到城市中,甚至是更大范围的区域中也是一样。一次出行总存在一个出发地 (Origin) 和一个目的地 (Destination)。在不同的出行目的下,居住、商业、工业等不同属性的用地不同的交通产生率和吸引率
为把需求进一步做细到建筑物 (Point Of Interest),近段时间与美国亚利桑那州立大学ASU Trans AI Lab团队合作开发了一款快速获取出行需求python依赖库——grid2demand。利用osm2gmns生成的poi.csv,即可根据建筑物属性和出行率表(可自定义)得到指定出行目的下的出行需求,进而利用经典重力模型即可生成OD矩阵


话不多说,这就教你怎么用

【Step 0.1】安装grid2demand

打开电脑Command Prompt或Anaconda Prompt,输入如下命令行,通过pip安装。

pip install grid2demand

【Step 0.2】下载区域路网
在OpenStreetMap (www.openstreetmap.org) 中选择指定区域,将地图数据导出。

【Step 0.3】利用osm2gmns获取路网信息和POI数据
启动Python编程环境,运行以下代码即可获取路网信息和POI数据。

输出的node.csvpoi.csv将作为grid2demand的输入。

import osm2gmns as ognet = og.getNetFromOSMFile(map.osm,network_type=(railway,aeroway,auto),POIs=True,default_lanes=True,default_speed=True)og.connectPOIWithNet(net)og.generateNodeActivityInfo(net)og.outputNetToCSV(net)

  • 若还未安装osm2gmns,可在Command Prompt或Anaconda Prompt中用pip安装(【神器】你想要的交通网络数据,三行代码搞定!)。

pip install osm2gmns


『注意』
由于OpenStreetMap为开源地图,POI信息可能存在空缺或不准的情况,需要手动修订。

poi.csv中name列为乱码,可能存在编码错误,请检查系统编码语言和读取csv的软件编码语言是否一致,或直接清空name列内容再运行grid2demand。
【Step 1】调用grid2demand并读取输入文件


install grid2demand as gdgd.ReadNetworkFiles()


【Step 2】划分网格
与传统的交通小区不同,我们将研究区域划分为方格网。用户可自定义单元格数量每个单元格的宽度和高度(米)因须与地理坐标系匹配,在给定单元格尺寸的时候还需给定研究区域的纬度


在研究区域外围还设立有虚拟小区,用于描述进出研究区域的交通量。

gd.PartitionGrid(number_of_x_blocks=None,number_of_y_blocks=None,cell_width=1000,cell_height=1000,latitude=30)



【Step 3】获取各建筑物类型的交通发生率和吸引率
不同出行目的下,同一建筑物的吸发率可能不同。用户可自定义出行率表poi_trip_rate.csv出行目的



gd.GetPoiTripRate(trip_purpose=1)

【Step 4】计算各点的交通发生量和吸引量
对于POI点,根据不同建筑物的吸发率和建筑物的占地面积(也可手动修改poi.csv中的area属性为建筑面积、停车位、人数等测量单位)可计算各点的交通发生量和吸引量。


对于进出研究范围的道路边界点(卡口),默认交通发生量和吸引为1000。

gd.GetNodeDemand()

【Step 5】计算各交通小区间的可达性
默认根据小区质心间的直线距离计算,用户也可在accessibility.csv自定义小区间的可达性为时间、费用等。


gd.ProduceAccessMatrix(latitude=30)

【Step 6】用重力模型得到交通分布

户可自定义出行目的阻抗函数的系数,得到小区间的出行分布。

gd.RunGravityModel(trip_purpose=1, a=None, b=None, c=None)


【Step 7】生成点到点的需求 (optional)
为便于后续做路径规划交通分配,根据上一步得到的小区间的OD分布,随机获取各小区内的点,生成点到点的需求。

gd.GenerateAgentBasedDemand()


【Step 8】可视化 (optional)
在QGIS中添加图层,导入输出的demand.csv,zone.csv

右键已添加的demand图层,选择“Properties”,设置“Symbology”为“Graduated”,选择“Value”为“volume”,即可实现根据出行量的可视化。

方格网边界外的需求则表示道路边界点产生、吸引的虚拟小区需求。




为什么是网格状的交通小区?

传统的交通小区通常沿铁路、河流等天然屏障划分,遵循行政区划,以便交通调查和统计资料的获取,但难以克服空间异质性
以美国国家植物园所在的交通小区为例,统计调查中的小区 (census tract) 为下图中的红色边框。传统的交通模型多是将这样的census tract作为交通小区 (Traffic Analysis Zone)进行需求分析,而忽视了小区内实际客流吸发点的分布


通过划分方格网,可以将小区的交通吸发量与实际客流吸发点很好地结合,一定程度上降低了空间异质的影响,使OD出行分布更加精准。

最后,感谢合作者Entai Wang@BJTU, Taehooie Kim@ASU近段时间的共同付出!

测试案例、最新版本及更多详细信息,请参见:
https://github.com/Anjun93/grid2demand
https://pypi.org/project/grid2demand/
本次推出的【内测版】供大家尝鲜,快动手试试自己熟悉的地方吧!
天下熙熙,皆为利来;天下攘攘,皆为利往。欢迎留言反馈!

 往  期  精  彩

轨道 航空:中国正走出一条前所未有的城镇化道路
【神器】你想要的交通网络数据,三行代码搞定!
Amazing! 一小时有51列车经中野开往新宿、74列车驶入都心!
【交通观察】度假区的交通系统可以有多厉害?
CR沪昆 VS JR东海道


论坛
  阅读原文
支持0次 | 反对0次  
  用户评论区,文明评论,做文明人!

通行证: *邮箱+888(如:123@qq.com888)