overlay - 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]) 为空,这意味着覆盖函数在该多边形内没有找到线串。
你知道应该发生什么吗?
解决方案
推荐阅读
- vb.net - 使用 Visual Studio 2012 生成唯一标识符字符串
- python - 给定两个相同长度的二进制列表,如何找到与交替列表相对应的所有索引对,而两者之间没有索引?
- python - python中的线程(多线程)
- typescript - Probot 日志不出现
- java - 使用 REST API 将文件附加到 Aconex 中的直接实际值 - 500 内部服务器错误
- p2p - 为什么在 simple-peer 中不触发连接状态?
- typescript - 递归异步生成器函数的返回类型
- dpdk - 我必须将 L2 数据包包装在 mbuf 中吗?如果是,那么如何?
- c++ - 如何调整类中动态分配的数组的大小?
- java - 结合 OneToMany + FetchType.LAZY + LazyCollection + jackson-datatype-hibernate 以 JSON 格式返回大小