Python 3:将带有 CRS 坐标的 Geopandas 数据框转换为图形以查找连通分量和其他图形属性?

Python 3: Geopandas dataframe with CRS coordinates into Graph to find connected components and other graph properties?

我有一个 geopandas 数据框,我发现可以在其中使用一些图论包来查找图形属性,例如连通分量。

如何使用 Geopandas 数据框方便地找到图论属性?

您可以使用pysal生成空间权重矩阵(内部图形)- http://pysal.org/notebooks/lib/libpysal/weights.html。所有权重 类 都有 from_dataframe 选项。

空间权重可以进一步导出到 networkx 图形对象以供进一步 graph-based 分析。

import libpysal
import geopandas

df = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))

W = libpysal.weights.Queen.from_dataframe(df)  # generate spatial weights

G = W.to_networkx() # get networkx.Graph

请注意,对于某些事物(如组件),您可以直接使用权重 - 请参阅文档中的属性 https://pysal.org/libpysal/generated/libpysal.weights.W.html#libpysal.weights.W