与 geoDataFrame 相交

问题描述 投票:0回答:1

我从问题
[https://stackoverflow.com/questions/45287150/identify-intersecting-polygons-in-single-geojson-file-with-geopandas][1]中学到了解决方案

我有一个 zid 的 geoDataFrame 相交,但是,当我逐一测试时,它们不相交。为什么?
我尝试了答案1和2的解决方案,但结果相同。
区域 514、519 有共同边界

admzones = admzones[['zid', 'geometry']]
together = geopandas.sjoin(admzones, admzones.set_index('zid'))
together.loc[together.zid != together.index_right]

# zid|geometry|index_right
# 519|POLIGON()|514
#...

...

geo1 = admzones[admzones['zid']==519]
geo2 = admzones[admzones['zid']==514]
geo1['interssects'] = geo1.intersects(geo2)
geo1['interssects']
#False

geo1['intersection'] = geo1.intersection(geo2)
geo1['intersection']
#None

python pandas spatial geopandas
1个回答
0
投票

您没有分享示例,但IIUC,您需要关闭index-alignment

align=False
):

geo_519 = admzones.loc[admzones["zid"]==519]
geo_514 = admzones.loc[admzones["zid"]==514]

geo_519.intersects(geo_514, align=False).any() # True

您的代码很可能显示

UserWarning
这样的:

UserWarning
:两个GeoSeries的索引不同。

来自

intersects
intersection
文档:

使用的输入:

import geopandas as gpd
from shapely.geometry import Polygon, Point

admzones = gpd.GeoDataFrame(
    {"zid": [514, 519], "geometry":
     [Polygon([(0.25, 0.1), (0.75, 1), (1, 0.3)]),
      Point(0.5, 0.5).buffer(0.2)]})
© www.soinside.com 2019 - 2024. All rights reserved.