【发布时间】:2023-04-06 15:22:01
【问题描述】:
我有 5 个多边形的 shapefile,我用 geopandas 加载。我想检查这些多边形是否相互重叠。
我想识别所有重叠的多边形。我在 shapely 手册中读到 is_valid 工具可以检测到:
object.is_valid 如果特征在某种意义上是“有效的”,则返回 True 1.
注意
有效性测试仅对多边形和多多边形有意义。 对于其他类型的几何图形,始终返回 True。
有效的多边形不得具有任何重叠的外部或内部 戒指。有效的 MultiPolygon 可能不会收集任何重叠的多边形。 对无效特征的操作可能会失败。
所以我已经在我的多边形上尝试过:
imprt geopandas as gpd
import shapely as sh
shapes = gpd.read_file(r'test.shp')
shapes.head()
>>>
id geometry
0 1 POLYGON ((15.49457 7.61388, 15.71412 7.59753, ...
1 3 POLYGON ((15.60721 7.70417, 15.91074 7.71807, ...
2 2 POLYGON ((15.86208 7.28826, 16.07873 7.31838, ...
3 5 POLYGON ((15.34075 7.85246, 15.46587 7.85362, ...
4 4 POLYGON ((15.84123 7.48057, 16.03354 7.48405, ...
shapes['validation']=shapes['geometry'].is_valid
shapes.head()
>>>id geometry validation
0 1 POLYGON ((15.49457 7.61388, 15.71412 7.59753, ... True
1 3 POLYGON ((15.60721 7.70417, 15.91074 7.71807, ... True
2 2 POLYGON ((15.86208 7.28826, 16.07873 7.31838, ... True
3 5 POLYGON ((15.34075 7.85246, 15.46587 7.85362, ... True
4 4 POLYGON ((15.84123 7.48057, 16.03354 7.48405, ... True
正如你所见,即使 1,3,4 重叠,所有多边形都为 True。为什么会这样?正如我从手册中了解到的那样,如果多边形来自同一层,它也应该显示?
我的最终目标:将重叠多边形分类为假/重叠
【问题讨论】:
标签: python geometry overlap geopandas shapely