Algoritmo de mapa de calor para visualizar la diversidad de puntos

18

¿Alguien puede sugerir un algoritmo para generar un mapa de calor para visualizar la diversidad de puntos? Un ejemplo de aplicación sería para mapear áreas de alta diversidad de especies. Para algunas especies, cada planta ha sido mapeada, lo que resulta en un recuento de puntos alto, pero con muy poco significado en términos de la diversidad del área. Otras áreas realmente tienen una gran diversidad.

Considere los siguientes datos 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

y mapa resultante:

trama de cuadrícula

En el cuadrante superior izquierdo, hay un parche muy diverso, mientras que en el cuadrante inferior derecho, hay un área con alta concentración de puntos, pero baja diversidad. Dos formas de visualizar la diversidad podrían ser usar un mapa de calor tradicional o contar el número de categorías representadas en cada polígono. Como muestran las siguientes imágenes, estos enfoques tienen un uso limitado, ya que el mapa de calor muestra la mayor intensidad en la esquina inferior derecha, mientras que el enfoque de agrupamiento se vería exactamente igual si hubiera una sola categoría (esto podría abordarse aumentando el tamaño de contenedores de polígonos, pero luego el resultado se vuelve innecesariamente granular).

mapa de calor ingrese la descripción de la imagen aquí

Un enfoque que pensé para hacer esto sería preparar un algoritmo tradicional de mapa de calor por el número de puntos de diferentes categorías dentro de un radio definido, y luego usar esa cuenta como el peso para el punto al generar el mapa de calor. Sin embargo, creo que esto podría ser propenso a los artefactos no deseados, como el refuerzo mutuo que conduce a resultados muy agudos. Además, los puntos del mismo tipo estrechamente mapeados continuarían apareciendo como altas concentraciones, pero no en la misma medida.

Otro enfoque (probablemente mejor pero más costoso computacionalmente) sería:

  1. Calcular el número total de categorías en el conjunto de datos
  2. Para cada píxel en la imagen de salida:
    • Para cada categoria:
      • calcular la distancia al punto representativo más cercano (r) [probablemente limitado por un radio más allá del cual la influencia es insignificante]
      • agregar una ponderación proporcional a 1 / r 2

¿Existen algoritmos que no conozco para hacer esto u otras formas de visualizar la diversidad?

Editar

Siguiendo la sugerencia de Tomislav Muic, calculé los mapas de calor para cada categoría y los normalicé usando la siguiente fórmula (calculadora ráster 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)

con el siguiente resultado (comentarios bajo su respuesta): suma normalizada

rudivonstaden
fuente
1
Su segundo enfoque se ve bien, esto es principalmente un problema de estadísticas, por lo que comenzaría a buscar las rutinas R correspondientes en CRAN . Sin embargo, experimentaría con diferentes tamaños de cuadrícula y buscaría medidas 'oficiales' de biodiversidad para evitar reinventar la rueda.
Deer Hunter

Respuestas:

4

Intente hacer un mapa de calor para cada categoría separada.

Luego, sume los mapas de calor y normalícelos usando varias categorías.

Vale la pena explorar esto.

Tomislav Muic
fuente
He agregado una visualización a mi pregunta basada en esta sugerencia, ¡y el resultado se ve bien! La desventaja es que si se trata de cientos o miles de categorías, almacenar todos esos rásteres será un problema.
rudivonstaden
Ahora que lo pienso, eso no sería un problema si agregara cada nuevo mapa de calor al mapa de calor compuesto después de cada categoría. La pregunta es entonces qué enfoque sería computacionalmente más rápido de implementar: sumas ráster o cálculo píxel por píxel.
rudivonstaden
Me temo que esta respuesta no tiene nada que ver con la diversidad. En la suma resultante (y normalización), un área muy densa con múltiples grupos se vería igual que un área no tan densa sino con un grupo.
Andy W