Aplicarea unei operații personalizate pe fiecare geometrie
Acum că știm cum să găsim cel mai apropiat parc național pentru un singur punct, hai să facem același lucru pentru toate punctele. În acest scop, vom scrie mai întâi o funcție care primește un singur punct ca argument și returnează rezultatul dorit. Apoi putem folosi această funcție pentru a o aplica tuturor punctelor.
Seturile de date despre siturile miniere (mining_sites) și parcurile naționale (national_parks) sunt deja încărcate. Situl minier individual din exercițiile anterioare este deja definit ca single_mine.
Acest exercițiu face parte din cursul
Lucrul cu date geospațiale în Python
Instrucțiuni pentru exercițiu
- Creează o funcție
closest_national_park()care realizează analiza din exercițiul anterior: primind un singur punct și toate parcurile naționale, returnează numele celui mai apropiat parc național. - Ca test, apelează această funcție pe punctul individual (
single_mine) și afișează rezultatul. Este același ca înainte ("Virunga National park")? - Aplică această funcție tuturor punctelor din
mining_sitesși atribuie rezultatul unei coloane numite'closest_park'.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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())