地理空间示例说明#
在 NetworkX <3.0 版本中提供了读写 shapefile 的函数。但是,我们建议你在处理地理空间数据(包括读写 shapefile)时使用以下库。
地理空间 Python 库#
GeoPandas 在地理空间格式和存储机制(例如,数据库)与 Pandas 数据帧之间提供了互操作性,用于对空间数据进行表格化处理,并提供了广泛的支持功能,包括空间索引、空间谓词(例如,测试几何图形是否相互交叉)、空间操作(例如,交叉多边形之间的重叠区域)等等。
请参阅以下使用 GeoPandas 的示例
PySAL 提供了一整套丰富的空间分析算法。从网络分析的角度来看,空间权重提供了……(Levi 请在此处添加更多内容)。
请参阅以下使用 PySAL 的示例
momepy 在 GeoPandas 和 PySAL 的基础上构建,提供了一系列专注于城市形态学的算法。从网络分析的角度来看,momepy 可以将你的线几何图形转换为 networkx.MultiGraph
,然后再转换回 geopandas.GeoDataFrame
,并应用一系列分析函数,旨在对(街道)网络配置进行形态描述。
请参阅以下使用 momepy 的示例
OSMnx 提供了一套工具,用于将 OpenStreetMap 街道网络(以及任何其他网络基础设施)检索、建模、投影、分析和可视化为 networkx.MultiDiGraph
对象,并将这些 MultiDiGraph 与 geopandas.GeoDataFrame
相互转换。它可以自动添加节点/边的属性:高程和坡度(使用 Google Maps Elevation API)、边的行进速度、边的遍历时间和边的方位。它还可以从 OSM 中检索任何其他空间数据(例如建筑足迹、公共公园、学校、公交车站等)作为 Geopandas GeoDataFrame。
请参阅以下使用 OSMnx 的示例
关键概念#
地理空间数据网络分析中的一个基本任务是定义空间特征(点、线或多边形)之间的空间关系。
PySAL
使用空间权重的概念提供了几种表示特征之间空间关系的方式。这些关系包括诸如 Queen
、Rook
等……(Levi 请在此处添加更多内容并简要解释每个关系)。
momepy
允许将街道网络表示为原始图和对偶图(在街道网络分析意义上)。原始方法将交叉点转换为图节点,将街道段转换为边,这种格式主要用于形态学研究。对偶方法使用街道段作为节点,使用交叉拓扑作为边,这允许编码角度信息(即,分析可以根据街道段之间的角度而不是它们的长度进行加权)。
OSMnx
将街道网络表示为原始的、非平面的有向图,可能包含自环和平行边,以模拟现实世界的街道网络形态和流。节点表示交叉点和死胡同,边表示连接它们的街道段。有关 OSMnx 建模方法的详细信息可在 https://doi.org/10.1016/j.compenvurbsys.2017.05.004 获取。
了解更多#
要了解更多信息,请参阅 Geographic Data Science with PySAL and the PyData Stack。