【问题标题】:Geopandas overlay intersection gives incorrect resultGeopandas 叠加交叉点给出不正确的结果
【发布时间】:2020-11-27 08:26:02
【问题描述】:

我想使用 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

图片:

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

【问题讨论】:

标签: python gdal qgis geopandas


【解决方案1】:

这是我会尝试的:


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

【讨论】:

    【解决方案2】:

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

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

    不管怎样,现在已经解决了。非常感谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-08
      • 1970-01-01
      • 2012-08-27
      • 2017-12-14
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多