geopandas包含方法不返回多边形

时间:2016-08-22 17:20:57

标签: python shapefile geopandas

我最近开始使用geopandas来处理我所在城市的shapefile。最近我发现使用来自geopandas的contains方法有问题。问题如下:

我有2个不同的shapefile,具有相同的crs投影:区域和部分。我需要获得所有带有区域的截面多边形。我读到了关于contains方法的看法,看起来它正是我所需要的,但在运行它的时候,返回的多边形是空的。这里奇怪的是当我使用intersects方法而不是包含它时返回区域内的部分以及所有相邻的部分。

以下是我的代码:

districts = GeoDataFrame.from_file('districts_WGS84.shp')
sections = GeoDataFrame.from_file('sections_WGS84.shp')

districts.crs == sections.crs #To be sure the files share the same crs

#The following line returns an empty array, but it should return all seccions within a district
print len(sections[sections.contains(districts.geometry[34]) == True])
# districts.geometry[34] is a fixed discrict in order to run a test

#The following line returns the list of all sections within the district plus adjacent ones
print len(sections[sections.intersects(districts.geometry[34]) == True])

我是如何试图获取它或者方法本身有问题吗?

这里有形状文件重复我的问题:

地区:https://ufile.io/0a6f1

章节:https://ufile.io/e2463

问候。

1 个答案:

答案 0 :(得分:0)

相交意味着如果两个多边形重叠,它将返回true,但是包含意味着只有当一个多边形完全在另一个多边形内时,它才会返回true。