首页 > 解决方案 > Shapely 点对象和 Geopandas 数据框产生空输出

问题描述

我有巴黎所有地区的 Geopandas df 'districts' 和埃菲尔铁塔的 shapley 点对象 'eiffel_tower'。当我执行

mask=districts.contains(eiffel_tower)
districts[mask]

谢谢。我试过 Districts.geometry.contains(eiffel_tower); 但没有运气。'eiffel_tower' 和地区如下:

from shapely.geometry import Point
eiffel_tower = Point(255422.6, 6250868.9)
      
districts=geopandas.read_file('Paris/paris_districts_utm.geojson')

Districts.head(2) 显示:id District_name 人口几何结构 0 1 St-Germain-l'Auxerrois 1672 POLYGON ((451922.133 5411438.484,... 1 2 Halles 8984 POLYGON ((452278.419 5412160.893,...

我得到一个空输出。有什么问题?

TIA 雪莉

标签: pythonpandasshapely

解决方案


您对埃菲尔铁塔的地理位置似乎与地区不匹配。第一个值 (255422) 比其中一个 dirstricts (451922, ...) 小得多。

为了确定这一点,执行district.geometry.bounds,这将返回minx、和,然后您可以手动检查miny,您可能会看到埃菲尔铁塔的位置不在此区域内。maxxmaxy

猜测: 我的第一个想法是,你有一个错字eiffel_tower = Point(255422.6, 6250868.9),它应该是eiffel_tower = Point(455422.6, 6250868.9)


推荐阅读