对数千个坐标进行反向地理编码以仅获取国家/地区

时间:2019-06-28 14:05:43

标签: python reverse-geocoding

在我的数据中,.csv格式中有> 34.000个地理坐标,对于我需要返回的每个国家/地区而言。

我正在使用Python,即Geocoder库。 Google API的每日查询限制为2500,因此我需要两个星期的时间。

我的确切代码似乎与这个问题无关。

我想知道,考虑到我只需要一个国家而不是街道地址或其他任何信息,我是否可以完全避开Geocoder库或Google API?在某种程度上,国家坐标似乎是常识。

我能够在相对较短的时间内获得.kml格式的相同数据。

我没有找到这个问题的答案。任何输入表示赞赏。编辑,将我指向其他地方的现有答案,等等。

1 个答案:

答案 0 :(得分:2)

您可以利用geopandas库并使用其world数据集:

import geopandas as gpd

world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))

现在,您可以将坐标加载到pandas数据框中并将其转换为POINT几何:

df = pd.read_csv('my_points.csv')
gdf = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df.Longitude, df.Latitude))

上面的代码假设您的点列分别命名为LongitudeLatitude

现在,您可以加入您的积分并获得他们所居住的国家/地区:

result = gpd.sjoin(gdf, world, how='left')