首页 > 解决方案 > Geopandas 叠加交叉点给出不正确的结果

问题描述

我想使用 gpd.overlay 相交两个地理数据框(多边形)。当我在 QGIS 中相交时,生成的 shapefile 是正确的(我将红色椭圆和黄色 shapefile 相交,结果在下图中为绿色)。

当我使用 geopandas 相交时,生成的地理数据框是空的。这是代码:

import geopandas as gpd
gdf1 = gpd.read_file('... /gdf1.shp')   
gdf2 = gpd.read_file('... /gdf2.shp')   
gdf_inter = gpd.overlay(gdf1, gdf2, how='intersection')

> len(gdf_inter)
> 0

链接到 shapefile: https ://www.dropbox.com/s/6e7frbev71phkpy/SHP_TEST.7z?dl=0

图片:图片

我想这可能与投影有关?想法?提前致谢,

标签: pythongdalqgisgeopandas

解决方案


谢谢你们俩。两个文件中的 crs 相同。我将 keep_geom_type 参数设置为 False,从而解决了问题(返回了一个由 Linestring 和多边形组成的 Geometrycollection)。

我以前没有尝试过,因为网站的信息令人困惑:“在默认设置中,叠加仅返回与 df1(左侧)具有相同几何类型的几何,其中 Polygon 和 MultiPolygon 被视为同一类型(其他类型同样地)。[...]”。我正在与两个多边形相交,但没有收到一个多边形作为回报。

无论如何,现在已经解决了。太感谢了。


推荐阅读