ComenzarEmpieza gratis

Aplicar una operación personalizada a cada geometría

Ahora que sabemos cómo obtener el parque nacional más cercano para un único punto, hagámoslo para todos los puntos. Para ello, primero vamos a escribir una función que reciba un único punto como argumento y devuelva el resultado deseado. Luego usaremos esa función para aplicarla a todos los puntos.

Los conjuntos de datos de los yacimientos mineros (mining_sites) y de los parques nacionales (national_parks) ya están cargados. El yacimiento minero individual de los ejercicios anteriores ya está definido como single_mine.

Este ejercicio forma parte del curso

Trabajo con datos geoespaciales en Python

Ver curso

Instrucciones del ejercicio

  • Crea una función closest_national_park() que realice el análisis del ejercicio anterior: dado un único punto y todos los parques nacionales, devuelve el nombre del parque nacional más cercano.
  • Como prueba, llama a esta función con el punto individual (single_mine) e imprime el resultado. ¿Es el mismo que antes ("Virunga National park")?
  • Aplica esta función a todos los puntos de mining_sites y asigna el resultado a una columna llamada 'closest_park'.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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())
Editar y ejecutar código