对数千个坐标进行反向地理编码以仅获取国家/地区
Reverse geocoding of thousands of coordinates to get country only
我的数据中有超过 34.000 个 .csv 格式的地理坐标,对于每个我需要 return 国家/地区的地理坐标。
我正在使用 Geocoder 库 Python。 Google API 的每日查询限制为 2500,因此我需要两周时间才能完成此操作。
我的确切代码似乎与这个问题无关。
我想知道,鉴于我只需要一个国家/地区,而不是街道地址或任何合适的东西,我是否可以避开 Geocoder 库或 Google API?不知何故,国家的坐标似乎是常识。
我能够在相对较短的时间内获得 .kml 格式的相同数据。
我还没有找到这个问题的答案。任何输入表示赞赏。编辑,将我指向其他地方的现有答案等。谢谢!
您可以利用 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))
上面的代码假定您的点列被命名为 Longitude
和 Latitude
.
现在您可以加入您的积分并获得他们居住的国家:
result = gpd.sjoin(gdf, world, how='left')
我的数据中有超过 34.000 个 .csv 格式的地理坐标,对于每个我需要 return 国家/地区的地理坐标。
我正在使用 Geocoder 库 Python。 Google API 的每日查询限制为 2500,因此我需要两周时间才能完成此操作。
我的确切代码似乎与这个问题无关。
我想知道,鉴于我只需要一个国家/地区,而不是街道地址或任何合适的东西,我是否可以避开 Geocoder 库或 Google API?不知何故,国家的坐标似乎是常识。
我能够在相对较短的时间内获得 .kml 格式的相同数据。
我还没有找到这个问题的答案。任何输入表示赞赏。编辑,将我指向其他地方的现有答案等。谢谢!
您可以利用 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))
上面的代码假定您的点列被命名为 Longitude
和 Latitude
.
现在您可以加入您的积分并获得他们居住的国家:
result = gpd.sjoin(gdf, world, how='left')