IniziaInizia gratis

Applicare un'operazione personalizzata a ogni geometria

Ora che sappiamo come ottenere il parco nazionale più vicino per un singolo punto, facciamolo per tutti i punti. Per prima cosa scriveremo una funzione che prende un singolo punto come argomento e restituisce il risultato desiderato. Poi useremo questa funzione per applicarla a tutti i punti.

Gli insiemi di dati sui siti minerari (mining_sites) e sui parchi nazionali (national_parks) sono già caricati. Il singolo sito minerario dagli esercizi precedenti è già definito come single_mine.

Questo esercizio fa parte del corso

Lavorare con i dati geospaziali in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Crea una funzione closest_national_park() che esegua l'analisi fatta nell'esercizio precedente: dato un singolo punto e tutti i parchi nazionali, restituisci il nome del parco nazionale più vicino.
  • Come prova, chiama questa funzione sul singolo punto (single_mine) e stampa il risultato. È lo stesso di prima ("Virunga National park")?
  • Applica questa funzione a tutti i punti di mining_sites e assegna il risultato a una colonna chiamata 'closest_park'.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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())
Modifica ed esegui il codice