一款面向通用建模网络范式(GMNS)的快速可视化工具
制定一套标准的数据框架,可实现不同类型的交通基础设施在同一张网上进行可视化及建模、促进多样化运输服务数据的整合,为综合交通底层数据库构建与上层网络设计提供支撑。在OpenStreetMap(OSM)地图服务与Python第三方依赖包的支持下,用户可快速获取基于通用建模网络范式(GMNS)的多模式交通网络数据,开展更深层次的交通科研工作。关于表述数据框架的介绍,建议阅读下边这篇文章:
通用数据范式助力交通融合发展【结尾彩蛋附交通网络数据集】
目前通用建模网络范式(GMNS)下的生态产品包括但不限于以下几个层面:
osm2gmns |
---|
功能: 导出多类型交通网络数据 |
作者: Jiawei Lu, Xuesong (Simon) Zhou |
主页: https://pypi.org/project/osm2gmns/ |
osm2rail |
---|
功能: 导出铁路网络数据 |
作者: Jiawei Lu, Qian Fu, Zanyang Cui, Dr. Junhua Chen |
主页: https://pypi.org/project/osm2rail/ |
grid2demand |
---|
功能: 基于路网上或研究范围内的活动点生成小区间的出行需求 |
作者: AjLi, ASU Trans+AI Lab |
主页: https://pypi.org/project/grid2demand/ |
path4gmns |
---|
功能: 在多模式交通网络中寻找最短路,执行交通分配 |
作者: jdlph, xzhou99 |
主页: https://pypi.org/project/path4gmns/ |
NeXTA4GMNS |
---|
功能: 据根据个体出行路径实现交通仿真模拟 |
作者: xzhou99 |
主页: https://github.com/asu-trans-ai-lab/NeXTA4GMNS/tree/gh-pages/release |
plot4gmns |
---|
功能: 针对上述工具导出数据提供快速可视化方案 |
作者: Dr. Junhua Chen, Zanyang Cui, Xiangyong Luo |
主页: https://pypi.org/project/plot4gmns/ |
目前plot4gmns更新到了v0.1.1版本,为用户提供针对osm2gmns和grid2demand的快速可视化功能。关于osm2gmns和grid2demand的教程可参考以下文章:
【上新了】出行需求从哪来?Grid2demand六行代码帮你搞定!
【神器】你想要的交通网络数据,三行代码搞定!
这里以grid2demand的输出文件为例,介绍由plot4gmns提供的快速可视化方案。在开始前应准备好以下文件(grid2demand的输出文件夹):
Step 1:安装
pip install plot4gmns
Step 2:读取并生成多模式交通网络
import plot4gmns as p4g
mnet = p4g.generate_multi_network_from_csv(r'./datasets')
参数说明:
返回值:
Step 3:显示不同模式网络数据
cf = p4g.show_network_by_modes(mnet=mnet)
cf.show()
网络模式类型:‘bike’, ‘walk’, ‘auto’, ‘railway’
参数说明:
返回值:
Step 4:选择性展示网络node
cf = p4g.show_network_by_node_types(mnet=mnet,osm_highway=['traffic_signals','crossing'])
cf.show()
参数说明:
返回值:
Step 5:选择性展示网络link
cf = p4g.show_network_by_link_types(mnet=mnet,link_types=['secondary','footway'])
cf.show()
参数说明:
返回值:
Step 6:展示特定长度的网络弧
cf = p4g.show_network_by_link_length(mnet=mnet,min_length=10,max_length=50)
cf.show()
参数说明:
返回值:
Step 7:展示特定自由流速度的网络弧
cf = p4g.show_network_by_link_free_speed(mnet=mnet,min_free_speed=10,max_free_speed=40)
cf.show()
参数说明:
返回值:
Step 8:展示特定车道数的网络弧
cf = p4g.show_network_by_link_lanes(mnet=mnet,min_lanes=2,max_lanes=4)
cf.show()
参数说明:
返回值:
Step 9:展示网络弧车道数分布
cf = p4g.show_network_by_link_lane_distribution(mnet=mnet)
cf.show()
参数说明:
返回值:
Step 10:展示网络弧容量分布
cf = p4g.show_network_by_link_capacity_distribution(mnet=mnet)
cf.show()
参数说明:
返回值:
Step 11:展示网络弧自由流速度分布
cf = p4g.show_network_by_link_free_speed_distribution(mnet=mnet)
cf.show()
参数说明:
返回值:
Step 12:展示特定的POI类型
cf = p4g.show_network_by_poi_types(mnet=mnet,poi_type=['public','industrial'])
cf.show()
参数说明:
返回值:
Step 13:展示网络POI需求吸引量分布
cf = p4g.show_network_by_poi_attraction_distribution(mnet=mnet)
cf.show()
参数说明:
返回值:
Step 14:展示网络POI需求发生量分布
cf = p4g.show_network_by_poi_production_distribution(mnet=mnet)
cf.show()
参数说明:
返回值:
Step 15:展示网络OD需求矩阵
cf = p4g.show_network_demand_matrix_heatmap(mnet)
cf.show()
参数说明:
返回值:
Step 16:展示网络OD需求分布
cf = p4g.show_network_by_demand_OD(mnet=mnet,load_network=True)
cf.show()
参数说明:
返回值:
‘MultiNet’ 一定程度上支持用户根据自己的需要对图像尺寸、node、link、poi等相关绘图属性进行设置。具体参数如下表。
另外默认条件下node,link,poi都会被绘制,用户也可通过设置以下参数来取消某些网络元素,以突出感兴趣的部分:
Step 17:隐藏网络node
mnet.node_loaded = False
cf = p4g.show_network_by_link_lane_distribution(mnet=mnet)
cf.show()
Step 18:堆叠绘图
mnet.node_loaded = False
mnet.POI_loaded = False
cf = p4g.show_network_by_link_lane_distribution(mnet=mnet)
mnet.link_loaded = False
mnet.POI_loaded = True
cf = p4g.show_network_by_poi_attraction_distribution(mnet,fig_obj=cf)
cf.show()
Step 19:自定义绘图属性
mnet.style.node_style.size = 3
mnet.style.link_style.linecolor = 'blue'
mnet.style.poi_style.facecolor = 'yellow'
cf = p4g.show_network_by_modes(mnet=mnet)
cf.show()