Python - 根据经纬度返回美国州名
有没有人知道在Python中,有什么离线的方法可以根据经纬度返回美国的州名?
因为我需要处理超过70万个经纬度对,所以使用谷歌的API不太合适。
这些经纬度值存储在一个数据框中,但在这里可以把它们看作一个列表。
举个例子:
lat_vals = [32]
lon_vals = [-109]
for lat, lon in zip(lat_vals, lon_vals):
get_state(lat, lon)
>>> NM
1 个回答
1
由于你有大量的数据,可能需要考虑使用PostGIS来对这些数据进行一些分析。其实,Python在空间分析方面的工具并不太好,即使你尝试用OGR GDAL来做。
最好的办法是搭建一个基本的PostgreSQL和PostGIS数据库,然后使用Quantum GIS把你的形状文件加载到数据库中(数据库 >> 分割 >> 导入形状文件到PostgreSQL)
接下来,你可以运行一些基本的SQL命令来提取你的数据。
SELECT states.name, points.name
FROM states, points
WHERE ST_Contains(states.geom, points.geom)
如果你想获取美国各州的形状文件数据,可以去Tiger Census Data页面。
在数据加载完后,如果你想用Python,可以使用psycopg2来连接你的数据库。
希望这些信息对你有帮助,这并不是一个简单的解决方案。