我是python和qgis的初学者。在
我试图用交集使两个shapefile相交。(多边形)
首先,我尝试了与QGIS的交集,它是有效的。(EPSG:4326) QGIS picture
但问题是,当我试图在python上相交时,只返回一个值。 怎么了??在
这是我的密码
sb_4326 = buildings polygon
sg_4326 = city_polygon
import geopandas as gpd
###
###
sg4326 = gpd.read_file('sg_4326/sg4326.shp')
sb4326 = gpd.read_file('sb_4326/sb4326.shp')
mm = sb4326.intersects(sg4326)
Out[35]:
0 False
1 False
2 False
3 False
4 False
5 False
6 False
7 False
8 False
9 False
10 False
11 False
12 False
13 False
14 False
15 False
16 False
17 False
18 False
19 True
20 False
21 False
22 False
23 False
24 False
25 False
26 False
27 False
28 False
29 False
有27000个值。在
您可能需要像这样使用overlay:
这将返回由两个数据帧的交集形成的所有几何图形。在
或者sjoin做你想做的事情:
^{pr2}$这会将一个
index_right
列添加到sb4326,用于从sg4326相交的所有几何图形。在我不确定
geopandas
被两个大小不等的GeoSeries
的行为是什么。在你可能想要:
这将一次一个针对整个区域测试每个建筑,如果交叉点的
any
是True
,则返回True
。在请注意,这将运行得相当缓慢。有一些技巧可以让它运行得更快(QGIS可能会使用这些技巧),但这只是一个起点。在
相关问题 更多 >
编程相关推荐