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

alt*_*bei 5 python reverse-geocoding

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

我正在使用 Python,Geocoder 库。Google API 的每日查询限制为 2500,因此我需要两周时间才能完成此操作。

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

我想知道,鉴于我只需要一个国家/地区,不需要街道地址或其他任何东西,我可以完全避开地理编码器库或 Google API 吗?不知何故,国家坐标似乎是众所周知的。

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

我还没有找到这个问题的答案。任何意见都会受到赞赏。编辑,向我指出其他地方的现有答案,等等。谢谢!

zip*_*ipa 6

您可以利用geopandas库并使用它们的world数据集:

import geopandas as gpd

world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
Run Code Online (Sandbox Code Playgroud)

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

df = pd.read_csv('my_points.csv')
gdf = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df.Longitude, df.Latitude))
Run Code Online (Sandbox Code Playgroud)

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

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

result = gpd.sjoin(gdf, world, how='left')
Run Code Online (Sandbox Code Playgroud)