Heatmap-Algorithmus zur Visualisierung der Punktevielfalt


18

Kann jemand einen Algorithmus vorschlagen, um eine Heatmap zur Visualisierung der Punktdiversität zu generieren? Eine Beispielanwendung wäre die Kartierung von Gebieten mit hoher Artenvielfalt. Bei einigen Arten wurde jede einzelne Pflanze kartiert, was zu einer hohen Punktzahl führte, die jedoch für die Vielfalt des Gebiets nur eine sehr geringe Bedeutung hatte. Andere Bereiche haben wirklich eine hohe Vielfalt.

Berücksichtigen Sie die folgenden Eingabedaten:

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

und resultierende Karte:

Gitterplot

Im oberen linken Quadranten gibt es ein sehr vielfältiges Feld, während im unteren rechten Quadranten ein Gebiet mit hoher Punktkonzentration, aber geringer Diversität vorhanden ist. Zwei Möglichkeiten, die Vielfalt zu visualisieren, könnten darin bestehen, eine herkömmliche Heatmap zu verwenden oder die Anzahl der in jedem Polygon dargestellten Kategorien zu zählen. Wie die folgenden Bilder zeigen, sind diese Ansätze nur eingeschränkt anwendbar, da die Heatmap rechts unten die größte Intensität aufweist, während der Binning - Ansatz bei nur einer Kategorie genau gleich aussehen würde (dies könnte durch Vergrößern der Polygoneimer, aber dann wird das Ergebnis unnötig körnig).

Heatmap Bildbeschreibung hier eingeben

Ein Ansatz, den ich mir vorgestellt habe, besteht darin, einen herkömmlichen Heatmap-Algorithmus mit der Anzahl der Punkte verschiedener Kategorien innerhalb eines definierten Radius zu primen und diese Anzahl dann als Gewicht für den Punkt beim Generieren der Heatmap zu verwenden. Ich denke jedoch, dass dies zu unerwünschten Artefakten führen kann, wie zum Beispiel einer gegenseitigen Verstärkung, die zu sehr scharfen Ergebnissen führt. Eng kartierte Punkte desselben Typs würden sich auch weiterhin als hohe Konzentrationen zeigen, nur nicht in gleichem Maße.

Ein anderer Ansatz (wahrscheinlich besser, aber rechenintensiver) wäre:

  1. Berechnen Sie die Gesamtzahl der Kategorien im Datensatz
  2. Für jedes Pixel im Ausgabebild:
    • Für jede Kategorie:
      • Berechnen Sie die Entfernung zum nächsten repräsentativen Punkt (r) [wahrscheinlich begrenzt durch einen Radius, ab dem der Einfluss vernachlässigbar ist]
      • Addiere eine Gewichtung proportional zu 1 / r 2

Gibt es bereits Algorithmen, die ich nicht kenne, oder andere Möglichkeiten, um Vielfalt zu visualisieren?

Bearbeiten

Gemäß dem Vorschlag von Tomislav Muic habe ich die Heatmaps für jede Kategorie berechnet und sie mit der folgenden Formel (QGIS-Raster-Rechner) normalisiert:

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

mit folgendem Ergebnis (Kommentare unter seiner Antwort): normalisierte Summe


1
Ihr zweiter Ansatz sieht in Ordnung aus. Dies ist hauptsächlich ein Statistikproblem. Daher würde ich mich bei CRAN mit entsprechenden R-Routinen befassen . Würde jedoch mit unterschiedlichen Gittergrößen experimentieren und nach "offiziellen" Maßstäben für die biologische Vielfalt suchen, um eine Neuerfindung des Rads zu vermeiden.
Deer Hunter

Antworten:


4

Erstellen Sie eine Heatmap für jede Kategorie.

Summieren Sie dann die Heatmaps und normalisieren Sie sie anhand der Anzahl der Kategorien.

Dies könnte es wert sein, erkundet zu werden.


Aufgrund dieses Vorschlags habe ich meiner Frage eine Visualisierung hinzugefügt, und das Ergebnis sieht gut aus! Der Nachteil ist, dass das Speichern all dieser Raster ein Problem darstellt, wenn Sie mit Hunderten oder Tausenden von Kategorien arbeiten.
Rudivonstaden

Denken Sie mal darüber nach, das wäre kein Problem, wenn Sie jede neue Heatmap nach jeder Kategorie zur zusammengesetzten Heatmap hinzufügen würden. Die Frage ist dann, welcher Ansatz rechenschneller zu implementieren wäre - Rastersummen oder pixelweise Berechnung.
Rudivonstaden

Ich fürchte, diese Antwort hat nichts mit Vielfalt zu tun. In der resultierenden Summe (und Normalisierung) würde ein sehr dichter Bereich mit mehreren Gruppen genauso aussehen wie ein Bereich, der nicht so dicht ist, sondern mit einer Gruppe.
Andy W
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.