Algoritmo de mapa de calor para visualizar a diversidade de pontos

18

Alguém pode sugerir um algoritmo para gerar um mapa de calor para visualizar a diversidade de pontos? Um exemplo de aplicação seria o mapeamento de áreas com alta diversidade de espécies. Para algumas espécies, todas as plantas foram mapeadas, resultando em uma contagem alta de pontos, mas com muito pouco significado em termos da diversidade da área. Outras áreas genuinamente têm alta diversidade.

Considere os seguintes dados de entrada:

x    y      cat
0.8  8.1    B
1.1  8.9    A
1.6  7.7    C
2.2  8.2    D
7.5  0.9    A
7.5  1.2    A
8.1  1.5    A
8.7  0.3    A
1.9  2.1    B
4.5  7.0    C
3.8  4.0    D
6.6  4.8    A
6.2  2.4    B
2.2  9.1    B
1.7  4.7    C
7.5  7.3    D
9.2  1.2    A

e mapa resultante:

gráfico de grade

No quadrante superior esquerdo, há uma área altamente diversificada, enquanto no quadrante inferior direito, há uma área com alta concentração de pontos, mas baixa diversidade. Duas maneiras de visualizar a diversidade podem ser usar um mapa de calor tradicional ou contar o número de categorias representadas em cada polígono. Como as imagens a seguir mostram, essas abordagens têm uso limitado, uma vez que o mapa de calor mostra a maior intensidade no canto inferior direito, enquanto a abordagem de bineamento seria exatamente a mesma se houvesse apenas uma categoria (isso poderia ser resolvido aumentando o tamanho do caixas de polígonos, mas o resultado se torna desnecessariamente granular).

mapa de calor insira a descrição da imagem aqui

Uma abordagem que pensei em fazer isso seria preparar um algoritmo tradicional de mapa de calor pelo número de pontos de categorias diferentes dentro de um raio definido e, em seguida, usar essa contagem como o peso do ponto ao gerar o mapa de calor. No entanto, acho que isso pode ser propenso a artefatos indesejados, como reforço mútuo, levando a resultados muito nítidos. Além disso, pontos mapeados de perto do mesmo tipo continuariam aparecendo como altas concentrações, mas não na mesma extensão.

Outra abordagem (provavelmente melhor, mas mais cara em termos de computação) seria:

  1. Calcular o número total de categorias no conjunto de dados
  2. Para cada pixel na imagem de saída:
    • Para cada categoria:
      • calcule a distância ao ponto representativo mais próximo (r) [provavelmente limitando por algum raio além do qual a influência é desprezível]
      • adicione uma ponderação proporcional a 1 / r 2

Já existem algoritmos que não conheço para fazer isso ou outras maneiras de visualizar a diversidade?

Editar

Seguindo a sugestão de Tomislav Muic, calculei os mapas de calor para cada categoria e os normalizei usando a seguinte fórmula (calculadora raster QGIS):

((heatmap_A@1 >= 1) + (heatmap_A@1 < 1) * heatmap_A@1) +
((heatmap_B@1 >= 1) + (heatmap_B@1 < 1) * heatmap_B@1) +
((heatmap_C@1 >= 1) + (heatmap_C@1 < 1) * heatmap_C@1) +
((heatmap_D@1 >= 1) + (heatmap_D@1 < 1) * heatmap_D@1)

com o seguinte resultado (comentários sob sua resposta): soma normalizada

rudivonstaden
fonte
1
Sua segunda abordagem parece OK, isso é principalmente um problema estatístico, então eu começaria a olhar para as rotinas R correspondentes no CRAN . Porém, experimentaria diferentes tamanhos de grade e procuraria medidas 'oficiais' da biodiversidade para evitar reinventar a roda.
Deer Hunter

Respostas:

4

Tente fazer um mapa de calor para cada categoria separada.

Soma os mapas de calor e normalize-os usando o número de categorias.

Vale a pena explorar isso.

Tomislav Muic
fonte
Eu adicionei uma visualização à minha pergunta com base nessa sugestão, e o resultado parece bom! A desvantagem é que, se você estiver lidando com centenas ou milhares de categorias, o armazenamento de todos esses rasters será um problema.
Rudivonstaden 26/03
Pense bem, isso não seria um problema se você adicionasse cada novo mapa de calor ao mapa de calor composto após cada categoria. A questão é saber qual abordagem seria computacionalmente mais rápida de implementar - somas rasterizadas ou cálculo pixel por pixel.
Rudivonstaden 26/03
Receio que esta resposta não tenha nada a ver com diversidade. Na soma resultante (e na normalização), uma área muito densa com vários grupos pareceria igual a uma área não tão densa, mas com um grupo.
Andy W