Применение пользовательской операции к каждой геометрии
Теперь, когда мы умеем находить ближайший национальный парк для отдельной точки, давайте сделаем это для всех точек. Для этого сначала напишем функцию, которая принимает одну точку в качестве аргумента и возвращает нужный результат. Затем применим эту функцию ко всем точкам.
Наборы данных о горнодобывающих объектах (mining_sites) и национальных парках (national_parks) уже загружены. Отдельный горнодобывающий объект из предыдущих упражнений уже определён как single_mine.
Это упражнение является частью курса
Работа с геопространственными данными в Python
Инструкции к упражнению
- Создайте функцию
closest_national_park(), которая выполняет анализ из предыдущего упражнения: принимает одну точку и все национальные парки, а возвращает название ближайшего национального парка. - В качестве проверки вызовите эту функцию для отдельной точки (
single_mine) и выведите результат. Совпадает ли он с предыдущим ("Virunga National park")? - Примените эту функцию ко всем точкам
mining_sitesи сохраните результат в столбец с именем'closest_park'.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Define a function that returns the closest national park
def closest_national_park(geom, national_parks):
dist = ____
idx = ____
closest_park = ____
return closest_park
# Call the function on single_mine
print(closest_national_park(____, ____))
# Apply the function to all mining sites
mining_sites['closest_park'] = mining_sites.geometry.____(____, ____=____)
print(mining_sites.head())