Czy ktoś może zasugerować algorytm do wygenerowania mapy cieplnej do wizualizacji różnorodności punktów? Przykładem zastosowania byłoby mapowanie obszarów o dużej różnorodności gatunków. W przypadku niektórych gatunków każda roślina została zmapowana, co daje dużą liczbę punktów, ale ma bardzo małe znaczenie pod względem różnorodności obszaru. Inne obszary rzeczywiście mają dużą różnorodność.
Rozważ następujące dane wejściowe:
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
i wynikowa mapa:
W lewym górnym kwadrancie znajduje się bardzo zróżnicowana łatka, podczas gdy w prawym dolnym kwadrancie znajduje się obszar o wysokiej koncentracji punktowej, ale niskiej różnorodności. Dwa sposoby wizualizacji różnorodności mogą polegać na użyciu tradycyjnej mapy cieplnej lub policzeniu liczby kategorii reprezentowanych w każdym wielokącie. Jak pokazują poniższe zdjęcia, podejścia te mają ograniczone zastosowanie, ponieważ mapa cieplna pokazuje największą intensywność w prawym dolnym rogu, podczas gdy podejście grupowania wyglądałoby dokładnie tak samo, gdyby istniała tylko jedna kategoria (można to rozwiązać, zwiększając rozmiar pojemniki wielokątne, ale wtedy wynik staje się niepotrzebnie ziarnisty).
Jednym podejściem, o którym pomyślałem, byłoby zalanie tradycyjnego algorytmu mapy cieplnej liczbą punktów różnych kategorii w określonym promieniu, a następnie wykorzystanie tej liczby jako wagi punktu podczas generowania mapy cieplnej. Myślę jednak, że może to być podatne na niepożądane artefakty, takie jak wzajemne wzmocnienie prowadzące do bardzo ostrych rezultatów. Również ściśle odwzorowane punkty tego samego typu nadal będą się wyświetlać jako wysokie stężenia, ale nie w tym samym stopniu.
Innym podejściem (prawdopodobnie lepszym, ale droższym obliczeniowo) byłoby:
- Obliczyć całkowitą liczbę kategorii w zbiorze danych
- Dla każdego piksela obrazu wyjściowego:
- Dla każdej kategorii:
- obliczyć odległość do najbliższego reprezentatywnego punktu (r) [prawdopodobnie ograniczając się o pewien promień, powyżej którego wpływ jest znikomy]
- dodaj współczynnik proporcjonalny do 1 / r 2
- Dla każdej kategorii:
Czy istnieją już algorytmy, których nie jestem świadomy, lub inne sposoby wizualizacji różnorodności?
Edytować
Zgodnie z sugestią Tomislava Muica obliczyłem mapy cieplne dla każdej kategorii i znormalizowałem je za pomocą następującej formuły (kalkulator rastrowy 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)
z następującym wynikiem (komentarze pod jego odpowiedzią):