CommencezCommencez gratuitement

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

Maintenant que nous savons comment obtenir le parc national le plus près pour un seul point, faisons-le pour tous les points. Pour cela, nous allons d'abord écrire une fonction qui prend un seul point en argument et retourne le résultat voulu. Ensuite, nous pourrons utiliser cette fonction pour l'appliquer à tous les 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.

Cette activité fait partie du cours

Travailler avec des données géospatiales en Python

Voir le cours

Instructions de l’exercice

  • Créez une fonction closest_national_park() qui réalise l'analyse effectuée dans l'exercice précédent : étant donné un seul point et l'ensemble des parcs nationaux, retournez le nom du parc national le plus près.
  • À titre de test, appelez cette fonction sur le point unique (single_mine) et affichez le résultat. Est-ce le même qu'avant (« Virunga National park ») ?
  • Appliquez cette fonction à tous les points de mining_sites et assignez le résultat à une colonne appelée 'closest_park'.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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