ComeçarComece de graça

Aplicando uma operação personalizada a cada geometria

Agora que sabemos como obter o parque nacional mais próximo para um único ponto, vamos fazer isso para todos os pontos. Para isso, primeiro vamos escrever uma função que recebe um único ponto como argumento e retorna o resultado desejado. Depois, vamos usar essa função para aplicá-la a todos os pontos.

Os conjuntos de dados dos locais de mineração (mining_sites) e dos parques nacionais (national_parks) já estão carregados. O único local de mineração dos exercícios anteriores já está definido como single_mine.

Este exercício faz parte do curso

Trabalhando com Dados Geoespaciais em Python

Ver curso

Instruções do exercício

  • Crie uma função closest_national_park() que realize a análise do exercício anterior: dado um único ponto e todos os parques nacionais, retorne o nome do parque nacional mais próximo.
  • Como teste, chame essa função no ponto único (single_mine) e imprima o resultado. É o mesmo de antes ("Virunga National park")?
  • Aplique essa função a todos os pontos de mining_sites e atribua o resultado a uma coluna chamada 'closest_park'.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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 e executar o código