Stosowanie własnej operacji do każdej geometrii
Skoro już wiesz, jak znaleźć najbliższy park narodowy dla pojedynczego punktu, czas zrobić to samo dla wszystkich punktów. Najpierw napiszemy funkcję, która przyjmuje pojedynczy punkt jako argument i zwraca oczekiwany wynik. Następnie zastosujemy ją do wszystkich punktów.
Zbiory danych o miejscach wydobycia (mining_sites) i parkach narodowych (national_parks) są już wczytane. Pojedyncze miejsce wydobycia z poprzednich ćwiczeń jest już zdefiniowane jako single_mine.
To ćwiczenie jest częścią kursu
Praca z danymi geoprzestrzennymi w Pythonie
Instrukcje do ćwiczenia
- Utwórz funkcję
closest_national_park(), która wykonuje analizę z poprzedniego ćwiczenia: dla podanego punktu i wszystkich parków narodowych zwraca nazwę najbliższego parku. - Jako test wywołaj tę funkcję dla pojedynczego punktu (
single_mine) i wydrukuj wynik. Czy jest taki sam jak poprzednio ("Virunga National park")? - Zastosuj tę funkcję do wszystkich punktów ze zbioru
mining_sitesi przypisz wynik do kolumny o nazwie'closest_park'.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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())