LoslegenKostenlos loslegen

Eine benutzerdefinierte Operation auf jede Geometrie anwenden

Jetzt, da wir wissen, wie wir den nächstgelegenen Nationalpark für einen einzelnen Punkt ermitteln, machen wir das für alle Punkte. Dafür schreiben wir zuerst eine Funktion, die einen einzelnen Punkt als Argument nimmt und das gewünschte Ergebnis zurückgibt. Dann können wir diese Funktion auf alle Punkte anwenden.

Die Datensätze zu den Bergbaustandorten (mining_sites) und den Nationalparks (national_parks) sind bereits geladen. Der einzelne Bergbaustandort aus den vorherigen Übungen ist bereits als single_mine definiert.

Diese Übung ist Teil des Kurses

Arbeiten mit Geodaten in Python

Kurs anzeigen

Anleitung zur Übung

  • Erstelle eine Funktion closest_national_park(), die die Analyse aus der vorherigen Übung durchführt: Für einen einzelnen Punkt und alle Nationalparks den Namen des nächstgelegenen Nationalparks zurückgeben.
  • Rufe diese Funktion als Test mit dem einzelnen Punkt (single_mine) auf und gib das Ergebnis aus. Ist es dasselbe wie zuvor ("Virunga National park")?
  • Wende diese Funktion auf alle Punkte von mining_sites an und speichere das Ergebnis in einer Spalte mit dem Namen 'closest_park'.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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 bearbeiten und ausführen