LoslegenKostenlos starten

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

<Kurs>Arbeiten mit Geodaten in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • 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 praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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