我最近开始使用 geopandas 来处理我所在城市的 shapefile。最近我使用 geopandas 的 contains 方法发现了一个问题。问题如下:
我得到了 2 个具有相同 crs 投影的不同 shapefile:区域和部分。我需要获取一个区域内的所有截面多边形。我阅读了 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])
我尝试获取它的方式有什么问题,还是方法本身有问题?
这里有重复我的问题的shapefile:
问候。