НачатьНачать бесплатно

Применение пользовательской операции к каждой геометрии

Теперь, когда мы умеем находить ближайший национальный парк для отдельной точки, давайте сделаем это для всех точек. Для этого сначала напишем функцию, которая принимает одну точку в качестве аргумента и возвращает нужный результат. Затем применим эту функцию ко всем точкам.

Наборы данных о горнодобывающих объектах (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())
Редактировать и запускать код