Обратное геокодирование тысяч координат, чтобы получить только страну - PullRequest
2 голосов
/ 28 июня 2019

У меня> 34.000 географических координат в моих данных в формате .csv, для каждого из которых мне нужно вернуть страну.

Я использую Python, библиотеку Geocoder.Ежедневный лимит запросов к API Google составляет 2500, поэтому на это у меня уйдет две недели.

Мой точный код, кажется, не имеет отношения к этому вопросу.

Мне интересно, могу ли я обойти сторонойБиблиотека геокодера или Google API в целом, учитывая, что мне нужна только страна, а не адрес или что-то в этом роде?Каким-то образом координаты стран кажутся общеизвестными.

Я могу получить те же данные в формате .kml за относительно короткое время.

Я не нашел ответа на этот вопросвопрос.Любой вклад приветствуется.Редактирует, указывает на существующие ответы где-то еще и т. Д. Спасибо!

1 Ответ

2 голосов
/ 28 июня 2019

Вы можете использовать библиотеку геопанд и использовать их world набор данных:

import geopandas as gpd

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

Теперь вы можете загрузить свои координаты в панд фрейм данных и конвертироватьих в 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')
...