Een aangepaste bewerking op elke geometrie toepassen
Nu we weten hoe je het dichtstbijzijnde nationale park voor één punt bepaalt, gaan we dit voor alle punten doen. Hiervoor schrijven we eerst een functie die één punt als argument neemt en het gewenste resultaat teruggeeft. Vervolgens kunnen we deze functie gebruiken om hem op alle punten toe te passen.
De gegevenssets over de mijnlocaties (mining_sites) en nationale parken (national_parks) zijn al geladen. De enkele mijnlocatie uit de vorige oefeningen is al gedefinieerd als single_mine.
Deze oefening maakt deel uit van de cursus
Werken met georuimtelijke data in Python
Oefeninstructies
- Maak een functie
closest_national_park()die de analyse uitvoert die je in de vorige oefening deed: gegeven één punt en alle nationale parken, geef de naam terug van het dichtstbijzijnde nationale park. - Roep deze functie ter test aan op het enkele punt (
single_mine) en print het resultaat. Is het hetzelfde als eerder ("Virunga National park")? - Pas deze functie toe op alle punten van
mining_sitesen sla het resultaat op in een kolom met de naam'closest_park'.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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())