【发布时间】:2022-02-01 00:27:00
【问题描述】:
我想弄清楚 lat long 属于哪个州。为此,我使用US Census 和 shapely 库提供的形状文件。这是我迄今为止尝试过的:
import pandas as pd
import geopandas as gpd
from shapely.geometry import Point
df_poly = gpd.read_file("data/tl_2019_us_state.shp")
df_poly = df_poly[['GEOID', 'geometry']].set_index('GEOID')
display(df_poly.head(5))
geometry GEOID 54 POLYGON ((-81.74725 39.09538, -81.74635 39.096... 12 MULTIPOLYGON (((-86.38865 30.99418, -86.38385 ... 17 POLYGON ((-91.18529 40.63780, -91.17510 40.643... 27 POLYGON ((-96.78438 46.63050, -96.78434 46.630... 24 POLYGON ((-77.45881 39.22027, -77.45866 39.220...
p1 = Point(map(float, (29.65, -95.17)))
any(df_poly['geometry'].contains(p1))
False
但是对于我尝试的任何坐标,它都会以某种方式返回 False。例如,上面的坐标来自德克萨斯州,但它仍然返回 False,那么我在这里缺少什么?
【问题讨论】:
-
你能展示你的 df_poly.head(5) 吗?
-
@BENY 补充说。您也可以在这里找到该形状文件:census.gov/cgi-bin/geo/shapefiles/…
-
您的几何图形似乎是
(LON, LAT)格式,而您提供的是(LAT, LON)格式的点
标签: pandas geopandas shapely census