Tillämpa en anpassad operation på varje geometri
Nu när vi vet hur man hittar den närmaste nationalparken för en enskild punkt, ska vi göra samma sak för alla punkter. Vi börjar med att skriva en funktion som tar en enskild punkt som argument och returnerar det önskade resultatet. Sedan kan vi använda den funktionen på alla punkter.
Datamängderna för gruvplatser (mining_sites) och nationalparker (national_parks) är redan inlästa. Den enskilda gruvplatsen från föregående övningar är redan definierad som single_mine.
Den här övningen är en del av kursen
Arbeta med geospatial data i Python
Övningsinstruktioner
- Skapa en funktion
closest_national_park()som utför den analys du gjorde i föregående övning: givet en enskild punkt och alla nationalparker, returnera namnet på den närmaste nationalparken. - Testa funktionen genom att anropa den med den enskilda punkten (
single_mine) och skriv ut resultatet. Är det samma som tidigare ("Virunga National park")? - Tillämpa den här funktionen på alla punkter i
mining_sitesoch tilldela resultatet till en kolumn med namnet'closest_park'.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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())