CommencerCommencer gratuitement

Appliquer une opération personnalisée à chaque géométrie

Nous savons maintenant comment obtenir le parc national le plus proche pour un point donné ; faisons-le pour tous les points. Pour cela, nous allons d’abord écrire une fonction qui prend un seul point en argument et renvoie le résultat souhaité. Nous pourrons ensuite utiliser cette fonction pour l’appliquer à l’ensemble des points.

Les jeux de données sur les sites miniers (mining_sites) et les parcs nationaux (national_parks) sont déjà chargés. Le site minier unique des exercices précédents est déjà défini sous le nom single_mine.

Cet exercice fait partie du cours

Travailler avec des données géospatiales en Python

Afficher le cours

Instructions

  • Créez une fonction closest_national_park() qui réalise l’analyse effectuée dans l’exercice précédent : étant donné un point et l’ensemble des parcs nationaux, renvoyez le nom du parc national le plus proche.
  • Pour tester, appelez cette fonction sur le point unique (single_mine) et affichez le résultat. Est-ce bien le même qu’avant ("Virunga National park") ?
  • Appliquez cette fonction à tous les points de mining_sites et affectez le résultat à une colonne appelée 'closest_park'.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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())
Modifier et exécuter le code