如何从地理标记语言文件创建 NetworkX 图形?

How to create a NetworkX graph from a Geographic Markup Language file?

我希望从 Ordinance Surveys' (OS') Open Roads dataset which I have downloaded as a Geographic Markup Language (GML) file. After an embarrassingly long time, and thanks to 中创建一个道路网络图 NetworkX/OSMnx,我意识到这种 GML 文件格式与 NetworkX/OSMnx 接受的图形建模语言不同并且有一个内置函数 for.

这些文件格式对我来说是全新的,所以我想问一下是否有任何方法可以将 GML 格式的 OS' Open Road 数据加载到 NetworkX/OSMnx 中,所以我可以对其进行一些网络分析吗?理想情况下,这将使用 Python.

或者,我设法直接使用 OSMnx 从 Open Street Maps 数据创建道路网络,但我想看看 OS Open Road 数据是否更完整一点.

OSMnx 旨在处理 OpenStreetMap 数据。如果您可以将输入数据转换为类似 OSM 的格式,则可以使用 graph_from_gdfs 函数加载它们。您将需要一层节点和一层边缘。然后步骤看起来像:

  1. 使用 ogr2ogr 将 GML 节点和边缘文件转换为 GeoPackage 图层
  2. 使用 GeoPandas 作为 GeoDataFrames 加载节点和边缘 GeoPackage 图层
  3. 确保这些 GeoDataFrame 具有 required 索引和列
  4. 使用 OSMnx 的 graph_from_gdfs 函数将 GeoDataFrames 转换为 NetworkX MultiDiGraph