plot4gmns:面向通用建模网络范式(GMNS)的快速可视化【v0.1.1】

【QGIS、OSM】利用python开源工具实现指定区域的交通分配 如果从osmgnms和grid2demand得到的node.csv,我们要修改path4gnms代码中的utils.py的四处设置。利用QGIS实现可视化,得到的link_performance.csv,参数有volume和VOC。改完这四处代码,就可以运行path4gnms中的tutorial.ipynb了。 阅读详情

一款面向通用建模网络范式(GMNS)的快速可视化工具

1. 标准数据框架

制定一套标准的数据框架,可实现不同类型的交通基础设施在同一张网上进行可视化及建模、促进多样化运输服务数据的整合,为综合交通底层数据库构建与上层网络设计提供支撑。在OpenStreetMap(OSM)地图服务与Python第三方依赖包的支持下,用户可快速获取基于通用建模网络范式(GMNS)的多模式交通网络数据,开展更深层次的交通科研工作。关于表述数据框架的介绍,建议阅读下边这篇文章:
通用数据范式助力交通融合发展【结尾彩蛋附交通网络数据集】

2. 标准数据框架下的生态

目前通用建模网络范式(GMNS)下的生态产品包括但不限于以下几个层面:

2.1 数据解析

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/

2.2 数据处理

grid2demand
功能: 基于路网上或研究范围内的活动点生成小区间的出行需求
作者: AjLi, ASU Trans+AI Lab
主页: https://pypi.org/project/grid2demand/
path4gmns
功能: 在多模式交通网络中寻找最短路,执行交通分配
作者: jdlph, xzhou99
主页: https://pypi.org/project/path4gmns/

2.3 数据可视化

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/

3. 标准数据框架下的可视化

目前plot4gmns更新到了v0.1.1版本,为用户提供针对osm2gmns和grid2demand的快速可视化功能。关于osm2gmns和grid2demand的教程可参考以下文章:

【上新了】出行需求从哪来?Grid2demand六行代码帮你搞定!

【神器】你想要的交通网络数据,三行代码搞定!

这里以grid2demand的输出文件为例,介绍由plot4gmns提供的快速可视化方案。在开始前应准备好以下文件(grid2demand的输出文件夹):

在这里插入图片描述

3.1 基础语法

Step 1:安装

pip install plot4gmns

Step 2:读取并生成多模式交通网络

import plot4gmns as p4g
mnet = p4g.generate_multi_network_from_csv(r'./datasets')

参数说明:

  • input_dir:必传参数,网络数据文件路径;

返回值:

  • MultiNet:多模式网络实例,用于后续绘图。同时,在当前工作路径生成一个名为 ‘p4g_fig_results’的文件夹,并保存了一个html文件,该文件是基于 ‘keplergl’ 的web端可视化文件,双击打开后用户可探索更多操作。

在这里插入图片描述

Step 3:显示不同模式网络数据

cf = p4g.show_network_by_modes(mnet=mnet)
cf.show()

网络模式类型:‘bike’, ‘walk’, ‘auto’, ‘railway’

参数说明:

  • ment:必传参数,多模式网络实例(Step2的返回值);
  • modes:可选参数,需要展示的网络模式集合,以list形式传入,默认值为 ‘all’,表示展示所有网络模式;
  • fig_obj:可选参数,绘图画板,用于堆叠绘图,默认为 ‘None’(后续介绍具体用法);
  • isSave2png:可选参数,是否保存绘图结果,more为 ‘True’。

返回值:

  • Figure:matplotlib的figure实例,可调用show函数显示绘图结果,也可作为参数传入,用于堆叠绘图;同时,绘图结果将以png文件保存在‘p4g_fig_results’文件夹中。

bike
walk
在这里插入图片描述

Step 4:选择性展示网络node

cf = p4g.show_network_by_node_types(mnet=mnet,osm_highway=['traffic_signals','crossing'])
cf.show()

参数说明:

  • ment:同上;
  • osm_highway:必传参数,需要展示的网络节点类型集合,以list形式传入;
  • fig_obj:同上;
  • isSave2png:同上。

返回值:

  • 同上,不再赘述

在这里插入图片描述

Step 5:选择性展示网络link

cf = p4g.show_network_by_link_types(mnet=mnet,link_types=['secondary','footway'])
cf.show()

参数说明:

  • ment:同上;
  • link_types:必传参数,需要展示的网络弧类型集合,以list形式传入;
  • fig_obj:同上;
  • isSave2png:同上。

返回值:

  • 同上,不再赘述

在这里插入图片描述

Step 6:展示特定长度的网络弧

cf = p4g.show_network_by_link_length(mnet=mnet,min_length=10,max_length=50)
cf.show()

参数说明:

  • ment:同上;
  • min_length:必传参数,需要展示的最短网络弧,以int形式传入;
  • max_length:必传参数,需要展示的最长网络弧,以int形式传入;
  • fig_obj:同上;
  • isSave2png:同上。

返回值:

  • 同上,不再赘述

在这里插入图片描述

Step 7:展示特定自由流速度的网络弧

cf = p4g.show_network_by_link_free_speed(mnet=mnet,min_free_speed=10,max_free_speed=40)
cf.show()

参数说明:

  • ment:同上;
  • min_free_speed:必传参数,需要展示的网络弧最小行驶速度,以int形式传入;
  • max_free_speed:必传参数,需要展示的网络弧最大行驶速度,以int形式传入;
  • fig_obj:同上;
  • isSave2png:同上。

返回值:

  • 同上,不再赘述

在这里插入图片描述

Step 8:展示特定车道数的网络弧


cf = p4g.show_network_by_link_lanes(mnet=mnet,min_lanes=2,max_lanes=4)
cf.show()

参数说明:

  • ment:同上;
  • min_lanes:必传参数,需要展示的网络弧最少车道数,以int形式传入;
  • max_lanes:必传参数,需要展示的网络弧最多车道数,以int形式传入;
  • fig_obj:同上;
  • isSave2png:同上。

返回值:

  • 同上,不再赘述
    在这里插入图片描述

Step 9:展示网络弧车道数分布


cf = p4g.show_network_by_link_lane_distribution(mnet=mnet)
cf.show()

参数说明:

  • ment:同上;
  • fig_obj:同上;
  • isSave2png:同上。

返回值:

  • 同上,不再赘述

在这里插入图片描述

Step 10:展示网络弧容量分布


cf = p4g.show_network_by_link_capacity_distribution(mnet=mnet)
cf.show()

参数说明:

  • ment:同上;
  • fig_obj:同上;
  • isSave2png:同上。

返回值:

  • 同上,不再赘述
    在这里插入图片描述

Step 11:展示网络弧自由流速度分布

cf = p4g.show_network_by_link_free_speed_distribution(mnet=mnet)
cf.show()

参数说明:

  • ment:同上;
  • fig_obj:同上;
  • isSave2png:同上。

返回值:

  • 同上,不再赘述
    在这里插入图片描述

Step 12:展示特定的POI类型


cf = p4g.show_network_by_poi_types(mnet=mnet,poi_type=['public','industrial'])
cf.show()

参数说明:

  • ment:同上;
  • poi_type:必传参数,需要展示的POI集合,以 str/list 形式传入;
  • fig_obj:同上;
  • isSave2png:同上。

返回值:

  • 同上,不再赘述
    在这里插入图片描述

Step 13:展示网络POI需求吸引量分布

cf = p4g.show_network_by_poi_attraction_distribution(mnet=mnet)
cf.show()

参数说明:

  • ment:同上;
  • fig_obj:同上;
  • isSave2png:同上。

返回值:

  • 同上,不再赘述

在这里插入图片描述

Step 14:展示网络POI需求发生量分布

cf = p4g.show_network_by_poi_production_distribution(mnet=mnet)
cf.show()

参数说明:

  • ment:同上;
  • fig_obj:同上;
  • isSave2png:同上。

返回值:

  • 同上,不再赘述

在这里插入图片描述

Step 15:展示网络OD需求矩阵

cf = p4g.show_network_demand_matrix_heatmap(mnet)
cf.show()

参数说明:

  • ment:同上;
  • annot:可选参数,是否显示数据标签,默认为 ‘False’;;
  • isSave2png:同上。

返回值:

  • 同上,不再赘述

在这里插入图片描述

Step 16:展示网络OD需求分布

cf = p4g.show_network_by_demand_OD(mnet=mnet,load_network=True)
cf.show()

参数说明:

  • ment:同上;
  • load_zone:可选参数,是否显示网格化交通小区,默认为 ‘True’;
  • load_network:可选参数,是否显示交通网络,默认为 ‘False’;
  • isSave2png:同上。

返回值:

  • 同上,不再赘述

在这里插入图片描述

3.2 进阶语法

‘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()

在这里插入图片描述

GMNS:通用建模网络规范 通用建模网络规范(GMNS) Volpe / FHWA与合作。 通用建模网络规范(GMNS)为共享可路由的道路网络文件定义了一种通用的人机可读格式。 它设计用于多模式静态和动态运输计划和运营模型。 如何使用GMNS? 阅读以了解GMNS格式。 看一下我们的,包括高速公路立交,多式联运城市网络的一部分和小城市。 建立并测试您自己的小型网络。 我们在Python和R中提供了用于和基本工具。 GMNS概述 0.91版包含用于静态模型的以下功能: 配置信息和使用定义。 节点和链接文件,建立可路由的网络。 对于动态模型,此版本包括以下可选的附加功能: 一个段文件,其信​​息将覆盖链接的一部分的特征。 车道文件,用于分配路权的部分。 车道包括机动车辆使用的行驶车道。 它们还可以可选地包括自行车道,停车道和路肩。 一个segment_lane文件,用于指定其他车道,掉线的车道或链 立即下载

相关推荐

Path4GMNS

路径4GMNS 该代码是从采纳和修改的

Python实现基于OSM地图数据的交通需求生成——Grid2demand

Python实现基于OSM地图数据的交通需求生成。

Better.C的博客 2860

Python库 | MapMatching4GMNS-0.2.8.tar.gz

资源分类:Python库 所属语言:Python 资源全名:MapMatching4GMNS-0.2.8.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

学习GIS/OSM手札之ASU Trans+AI Lab产品使用(二)

通过研究grid2demand的说明文档https://github.com/asu-trans-ai-lab/grid2demandhttps://github.com/asu-trans-ai-lab/grid2demand 配合在ASU Trans+AI Lab平台上的实践发现 osm_gmnshttps://asu-trans-ai-lab.github.io/#/ ,输出文档中input_agents.csv是决定agent运行的关键。另外输入和输出文档的关系挂在下面以免以后找不到了:

Wang_Yizhi97的博客 453

Python库 | grid2demand-0.0.1.6-py3-none-any.whl

python库,解压后可用。 资源全名:grid2demand-0.0.1.6-py3-none-any.whl

Rasa Core开发指南

文章目录1. Rasa Core简介1.1 Rasa Core消息处理流程1.2 安装Rasa Core2. Dialogue模型训练2.1 Story样本数据2.2 Domain2.2.0 intents2.2.1 actions2.2.2 templates2.2.3 entities2.2.4 slots3 .训练和使用对话模型3.1 训练对话模型3.2 使用对话模型4. 搭建CustomA...

老蒋也疯狂 1万+

Python实现OSM地图数据解析——OSM2Rail

开源python依赖库——OSM2Rail,不仅提供了更精确的铁路网络解析结果,而且实现了OpenStreetMap地图数据包自动下载,同时在GMNS标准的基础上扩展了铁路数据字段,将解析数据输出为符合GMNS-Rail 标准的路网文件。轻松获取想要的铁路网络数据!

Better.C的博客 4144

【vLLM-性能洞察】基于Ascend Profiler的端到端推理瓶颈定位与优化实践

本文详细介绍了如何利用Ascend Profiler对vLLM-Ascend大模型推理服务进行端到端的性能瓶颈定位与优化。通过实战案例,阐述了从数据采集、可视化分析到诊断低效算子、内存管理、计算通信重叠及框架调度等常见瓶颈的全过程,为基于昇腾NPU的AI推理性能调优提供了系统性的方法论和实用工具指南。

cc789的博客 527

D3基于OSM绘制高速路网全流程 D3 + OSM +PostGreSQL

路网的数据来源来自OpenStreetMap(OSM)。 下面介绍获取数据,处理,完整绘制的流程: 1.数据获取: 获取: 进入OSM官网点击导出就可以获取数据,你可以通过选定范围获取数据(大小一般不超过一个小型城市),当数据更大时则需要点击Geofabrik下载获取。注意:OSM数据并不百分百可靠,毕竟是开放式的,请谨慎使用。 这里采用台湾数据集,因此还要点击Asian进入下级目录(大陆和台湾分成了两个数据集,没办法,国外网站) 推荐osm.pbf格式的文件,其本质就是XML文件。 数据格式: 根据OS

weixin_43978037的博客 1011

用Python爬取公众号历史所有文章,看这篇就够了

手把手教你爬取公众号历史所有文章

u010522887的专栏 1万+

TwinCAT 3 实战指南:从系统配置到高级运动控制

本文详细介绍了TwinCAT 3工业自动化控制平台的实战应用,从系统配置、PLC编程到EtherCAT总线配置和高级运动控制。通过倍福(Beckhoff)的TwinCAT 3平台,工程师可以高效实现复杂的工业自动化任务,包括运动控制、PLC编程等。文章还提供了常见问题排查和性能优化技巧,帮助用户提升系统稳定性和实时性。

weixin_30831529的博客 305

Graph Matching Networks(GMNs) 笔记

Graph Matching Networks for Learning the Similarity of Graph Structured Objects笔记摘要贡献深度图相似学习1.图嵌入模型编码器传播层聚合器3.2 图匹配网络(GMN) 摘要 文章处理了检索和匹配图结构对象的挑战性问题。文章两个贡献:1. 证明了解决各种基于结构数据的监督预测问题高效模型graph neural netwo...

weixin_40248634的博客 5563

华为od统一考试B卷【单词搜索】C++ 实现

找到它是一个小游戏,你需要在一个矩阵中找到给定的单词。假设给定单词 HELLOWORD,在矩阵中只要能找到 H->E->L->L->O->W->O->R->L->D连成的单词,就算通过。意区分英文字母大小写,并且您只能上下左右行走,不能走回头路。

MISAYAONE的博客 712

学习GIS/OSM手札之ASU Trans+AI Lab产品使用(一)

学习GIS

Wang_Yizhi97的博客 1087

基于图像形态学处理的交通灯检测识别matlab仿真

图像形态学处理是基于数学形态学的理论,利用结构元素(如矩形、圆形等)对图像进行处理,通过将结构元素与图像进行特定的逻辑运算,来提取图像中的目标特征、去除噪声、改善图像质量等。在交通灯检测识别中,主要利用交通灯的颜色、形状等特征,通过形态学操作突出这些特征,抑制背景和噪声干扰,从而实现对交通灯的准确检测和识别。图像采集与预处理采集:通过安装在车辆或道路上的摄像头获取交通场景图像。灰度化:将彩色图像转换为灰度图像,减少数据量,便于后续处理。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 160

【PCIe硬件】PCIe引脚PRSNT与热插拔

热插拔的基本目的是要让PCIe设备按照规定的顺序、原则,从系统中移除或插入到系统中来,并能正常的工作,且不影响系统的正常运行。事实上,PCIe“热插拔”的关键目的就是为前面面所提到的系统RAS服务的,是提升系统RAS能力的非常重要的手段!注意,这里有两个相关概念,前面我们讲的热插拔,其实是广义的“热插拔”。这里的Hot-Plug,为了方便,我们叫做PCIe热插拔,也就是我们现在及后面将要讨论的内容。

smartvxworks的博客 2808

【功能上新】Python实现OSM地图数据解析——OSM2Rail

一款开源的铁路网络建模工具

Better.C的博客 3206

元学习与Transformer的结合:Meta-Transformer架构解析

我们生活在一个信息爆炸的时代,每天都会产生海量的数据。在深度学习领域,如何让模型更高效地学习、更快地适应新的任务,一直是科学家们努力的方向。元学习和Transformer都是深度学习中的重要概念,它们各自有着独特的优势。本文的目的就是深入剖析将元学习和Transformer结合起来的Meta - Transformer架构,探讨它的原理、应用以及未来发展。我们会从基础概念讲起,逐步深入到架构的各个方面,让大家对Meta - Transformer有一个全面的了解。

AI智能探索者的博客 1053

admm算法_最短路问题与标号算法(label setting algorithm)研究(1) 开篇介绍

作者:崔赞扬、李崇楠指导老师:周学松教授校对:邓发珩、周航、向柯玮序言本系列推文重在从算法基本原理、复杂度分析、优缺点、代码实现、算法扩展等方面科普Label Correcting Algorithm(最短路算法重要分支),同时给出了下一步学习内容建议。本文在周学松教授的指导下完成,特别感谢周学松教授的全程指导,感谢姚宇、牛志强、张宇丰在文章结构、内容安排、内容校对等方面提出的宝贵建议。...

weixin_39891158的博客 1081

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Python实现OSM地图数据解析——OSM2GMNS

基于python语言,实现OSM开源地图数据解析,获取交通网路数据。

Better.C的博客 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

OSM道路数据下载与处理

osm即是OpenStreetMap,是一个志愿者地理信息系统,人们在上面收集数据,下载数据。 文章目录一、OSM数据的下载1、OSM的注册2、选择数据下载二、OSM数据的转换三 、数据的解释 一、OSM数据的下载 1、OSM的注册 注册很简单,用自己的qq邮箱就可以完成注册,但是发邮件验证的速度比较慢。OSM的官方网站为https://www.openstreetmap.org/export#map=12/31.2023/121.5418。 2、选择数据下载 选择导出,手动选择不同区域,然后导出ok啦,

qq_45697428的博客 9562

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

本地化部署 DeepSeek,构建单细胞与空间转录组 AI 分析平台

本地化部署 DeepSeek,构建单细胞与空间转录组 AI 分析平台

weixin_53637133的博客 177

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 425
上一篇: 【改进篇】Python实现VRP常见求解算法——蚁群算法(ACO)
下一篇: 【改进篇】Python实现VRP常见求解算法——自适应大邻域算法(ALNS)
Better.C
博客等级 码龄9年 1万+粉丝 72原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Better.C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值