Algorithme Heatmap pour visualiser la diversité des points


18

Quelqu'un peut-il suggérer un algorithme pour générer une carte thermique pour visualiser la diversité des points? Un exemple d'application serait de cartographier des zones de grande diversité d'espèces. Pour certaines espèces, chaque plante a été cartographiée, ce qui entraîne un nombre de points élevé, mais avec très peu de signification en termes de diversité de la zone. D'autres régions ont véritablement une grande diversité.

Tenez compte des données d'entrée suivantes:

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

et la carte résultante:

tracé de la grille

Dans le quadrant supérieur gauche, il y a un patch très diversifié, tandis que dans le quadrant inférieur droit, il y a une zone avec une concentration ponctuelle élevée, mais une faible diversité. Deux façons de visualiser la diversité pourraient être d'utiliser une carte thermique traditionnelle ou de compter le nombre de catégories représentées dans chaque polygone. Comme le montrent les images suivantes, ces approches ont une utilisation limitée, car la carte thermique montre la plus grande intensité en bas à droite, tandis que l'approche de regroupement serait exactement la même s'il n'y avait qu'une seule catégorie (cela pourrait être résolu en augmentant la taille de la polygone bins, mais le résultat devient alors inutilement granuleux).

carte de chaleur entrez la description de l'image ici

Une approche à laquelle j'ai pensé pour ce faire serait d'amorcer un algorithme de carte thermique traditionnel par le nombre de points de différentes catégories dans un rayon défini, puis d'utiliser ce compte comme poids pour le point lors de la génération de la carte thermique. Cependant, je pense que cela pourrait être sujet à des artefacts indésirables, comme un renforcement mutuel conduisant à des résultats très nets. De plus, des points étroitement cartographiés du même type continueraient à apparaître comme des concentrations élevées, mais pas dans la même mesure.

Une autre approche (probablement meilleure mais plus coûteuse en termes de calcul) serait:

  1. Calculez le nombre total de catégories dans l'ensemble de données
  2. Pour chaque pixel de l'image de sortie:
    • Pour chaque catégorie:
      • calculer la distance jusqu'au point représentatif le plus proche (r) [limitant probablement d'un rayon au-delà duquel l'influence est négligeable]
      • ajouter une pondération proportionnelle à 1 / r 2

Y a-t-il déjà des algorithmes que je ne connais pas pour faire cela, ou d'autres façons de visualiser la diversité?

Éditer

Suite à la suggestion de Tomislav Muic, j'ai calculé les heatmaps pour chaque catégorie et les ai normalisés en utilisant la formule suivante (calculatrice 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)

avec le résultat suivant (commentaires sous sa réponse): somme normalisée


1
Votre deuxième approche semble OK, c'est principalement un problème de statistiques, donc je commencerais à regarder les routines R correspondantes au CRAN . Expérimenterait avec différentes tailles de grille, cependant, et chercherait des mesures «officielles» de la biodiversité pour éviter de réinventer la roue.
Deer Hunter

Réponses:


4

Essayez de créer une carte thermique pour chaque catégorie distincte.

Additionnez ensuite les cartes thermiques et normalisez-les en utilisant un certain nombre de catégories.

Cela pourrait valoir la peine d'être exploré.


J'ai ajouté une visualisation à ma question basée sur cette suggestion, et le résultat semble bon! L'inconvénient est que si vous traitez des centaines ou des milliers de catégories, le stockage de tous ces rasters sera un problème.
rudivonstaden

À bien y penser, ce ne serait pas un problème si vous ajoutiez chaque nouvelle carte thermique à la carte thermique composite après chaque catégorie. La question est alors de savoir quelle approche serait plus rapide à mettre en œuvre sur le plan du calcul - sommes raster ou calcul pixel par pixel.
rudivonstaden

Je crains que cette réponse n'a rien à voir avec la diversité. Dans la somme résultante (et normalisation), une zone très dense avec plusieurs groupes ressemblerait à une zone non aussi dense mais avec un seul groupe.
Andy W
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.