Aan de slagGa gratis aan de slag

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

Cursus bekijken

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_sites en 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())
Code bewerken en uitvoeren