如何从地理标记语言文件创建 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 函数加载它们。您将需要一层节点和一层边缘。然后步骤看起来像:
- 使用 ogr2ogr 将 GML 节点和边缘文件转换为 GeoPackage 图层
- 使用 GeoPandas 作为 GeoDataFrames 加载节点和边缘 GeoPackage 图层
- 确保这些 GeoDataFrame 具有 required 索引和列
- 使用 OSMnx 的
graph_from_gdfs
函数将 GeoDataFrames 转换为 NetworkX MultiDiGraph
我希望从 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
这些文件格式对我来说是全新的,所以我想问一下是否有任何方法可以将 GML 格式的 OS' Open Road 数据加载到 NetworkX/OSMnx 中,所以我可以对其进行一些网络分析吗?理想情况下,这将使用 Python.
或者,我设法直接使用 OSMnx 从 Open Street Maps 数据创建道路网络,但我想看看 OS Open Road 数据是否更完整一点.
OSMnx 旨在处理 OpenStreetMap 数据。如果您可以将输入数据转换为类似 OSM 的格式,则可以使用 graph_from_gdfs 函数加载它们。您将需要一层节点和一层边缘。然后步骤看起来像:
- 使用 ogr2ogr 将 GML 节点和边缘文件转换为 GeoPackage 图层
- 使用 GeoPandas 作为 GeoDataFrames 加载节点和边缘 GeoPackage 图层
- 确保这些 GeoDataFrame 具有 required 索引和列
- 使用 OSMnx 的
graph_from_gdfs
函数将 GeoDataFrames 转换为 NetworkX MultiDiGraph