2014-03-26 40 views
1

有没有人知道在Python中用于返回美国状态的离线方法,给定一个经纬度对? 我需要运行700k +经纬度/对,所以Google的API不适合。Python - 返回给定经纬度的美国州名

纬度/经度值存储在数据帧中,但在这里可以被视为一个列表。

例子:

lat_vals = [32] 
lon_vals = [-109] 

for lat, lon in zip(lat_vals, lon_vals): 
    get_state(lat, lon) 

>>> NM 
+0

你如何在本地存储数据?你是否也可以证明这一点,因为如果你想在本地运行来确定拉特的状态,那么你应该让它们在本地。 –

回答

1

由于大金额你的数据,你可能要考虑使用PostGIS运行一些分析数据。即使您尝试将其与OGR GDAL一起使用,Python也没有任何用于进行空间分析的好工具。

最好的办法是建立一个基本的PostgreSQL & PostGIS的数据库,使用Quantum GIS加载你的shape文件在数据库(数据库>>吐>>导入Shape文件到PostgreSQL)

然后你可以运行这些基本SQL命令来提取你的数据。

SELECT states.name, points.name 
FROM states, points 
WHERE ST_Contains(states.geom, points.geom) 

要获得美国状态shapefile数据,请转到Tiger Census Data页面。

如果您想在数据全部加载后使用Python,则可以使用psycopg2连接到您的数据库。

我希望这可以帮助,而不是一个简单的解决方案。