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
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_sitese 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())