AI 快讯 编译自 marktechpost #图神经网络#城市计算#PyTorch Geometric

城市功能推断:用city2graph、OSMnx和PyTorch Geometric实现空间图神经网络编码教程

本文详细介绍如何用city2graph、OSMnx和PyTorch Geometric构建端到端空间图学习管道,从OpenStreetMap收集POI数据,构建多种邻近图,训练GraphSAGE模型预测城市功能类别。适合GIS和GNN开发者参考。

编译发布 2026/06/13 原文发布 2026/06/13

一句话看懂

一篇完整的编码教程,展示如何用city2graph、OSMnx和PyTorch Geometric构建空间图神经网络管道,从OSM数据到POI分类预测。

详细发生了什么

教程围绕东京涩谷区域展开。作者先从OpenStreetMap获取真实POI数据(餐饮、零售、教育、健康四类)和步行街道网络,并设计了合成数据回退机制,确保流程在任何环境下都能运行。接着,为每个POI工程化空间特征:投影坐标、局部密度(基于150米半径内的邻居数)、到最近街道的距离。然后,用city2graph库构建六种邻近图家族(KNN、Delaunay、Gabriel、RNG、EMST、Waxman),并对比它们的边数和平均度。最后,将图结构转换为PyTorch Geometric格式,构建异质图和同质图,并训练GraphSAGE模型来预测POI类别。整个过程整合了地理空间数据处理、图构建和GNN训练,形成一个完整的工作流。

中文圈视角

对中文开发者来说,这套流程有直接参考价值。city2graph库目前支持中文地理数据(如高德地图API),但教程中用的OSMnx依赖OpenStreetMap,国内访问可能不稳定。替代方案是用国产开源库如geopandas结合高德/百度地图API获取POI,或用ModelScope上的预训练图模型。教程中的合成数据回退机制值得借鉴,可确保离线或网络受限时仍能运行。另外,中文城市数据(如北京、上海)的POI分类标准与OSM不同(如“餐饮”对应“美食”),需要调整标签映射。对于智慧城市、城市规划领域的研究者,这个管道可直接用于城市功能区识别、设施布局优化等场景。

几条值得记住的细节

  • 教程使用东京涩谷中心点(35.6595, 139.7005),半径1100米,采集POI和步行网络。
  • 六种邻近图对比中,KNN (k=8) 边数最多,EMST边数最少,平均度差异显著。
  • 空间特征包括投影坐标、局部密度(150米半径内邻居数)和到最近街道距离。
  • 模型使用GraphSAGE(SAGEConv),训练目标是根据空间结构预测POI类别。
  • city2graph版本未知,但需PyTorch Geometric支持,可通过c2g.is_torch_available()检查。

一句话总结

一套可复现的空间图学习代码,帮你从地理数据直接跳到GNN模型训练,适合城市计算和GIS开发者上手。