首页 > 解决方案 > Python Geopandas - 覆盖功能不适用于视觉证据

问题描述

我生成了两个地理数据框:

    df1=gpd.read_file("~/rede_cicloviaria.shp") # A series of Linetrings of a cycling network
    df2=gpd.read_file("~/zonas.shp") # Each line represents a traffic zone as a polygon structure

我的最终目标是计算 df2 中每条线的自行车网络的总长度。因此,我在 for 循环中使用了叠加函数来解释覆盖每个多边形 (df2) 的循环网络 (df1),然后将每个多边形的现有循环网络长度相加。

    df3={}
    for i in range(len(zonas)):
        df3[i]=geopandas.overlay(df1,df2[df2["index"]==i], how='intersection')
        df2.at[i,"cycling_length"]=df3[i]["length"].sum()

然后,我绘制了一张地图以直观地确认结果,其中蓝色表示有自行车基础设施的区域,白色表示没有可用的自行车基础设施。但是,我意识到对于一个特定区域(橙色),叠加功能不起作用。从视觉上我们可以看到存在自行车基础设施,但其对应的地理数据框 (df3[178]) 为空,这意味着覆盖函数在该多边形内没有找到线串。

在此处输入图像描述

你知道应该发生什么吗?

标签: overlaygeopandas

解决方案


推荐阅读