Nokta çeşitliliğini görselleştirmek için bir ısı haritası oluşturmak için bir algoritma önerilebilir mi? Örnek bir uygulama, yüksek tür çeşitliliği olan alanların haritalanması için olacaktır. Bazı türler için, her bir bitki haritalanmıştır, bu da yüksek puan sayımı ile sonuçlanır, ancak alanın çeşitliliği açısından çok az anlamı vardır. Diğer alanlar gerçekten yüksek çeşitliliğe sahiptir.
Aşağıdaki giriş verilerini göz önünde bulundurun:
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
ve sonuçta ortaya çıkan harita:
Sol üst kadranda çok çeşitli bir yama bulunurken, sağ alt kadranda yüksek nokta konsantrasyonuna sahip, ancak düşük çeşitliliğe sahip bir alan vardır. Çeşitliliği görselleştirmenin iki yolu, geleneksel bir ısı haritası kullanmak veya her çokgendeki temsil edilen kategori sayısını saymak olabilir. Aşağıdaki görüntülerin gösterdiği gibi, bu yaklaşımların sınırlı kullanımı vardır, çünkü ısı haritası sağ altta en büyük yoğunluğu gösterirken, binning yaklaşımı yalnızca bir kategori olsaydı tam olarak aynı görünecektir (bu, poligon kutuları, ancak sonuç gereksiz yere parçalı hale gelir).
Bunu yapmayı düşündüğüm bir yaklaşım, geleneksel bir ısı haritası algoritmasını tanımlanmış bir yarıçap içindeki farklı kategorilerin nokta sayısına göre hazırlamak ve daha sonra bu sayıyı ısı haritası oluşturulurken nokta için ağırlık olarak kullanmak olacaktır. Bununla birlikte, bunun çok keskin sonuçlara yol açan karşılıklı takviye gibi istenmeyen eserlere eğilimli olabileceğini düşünüyorum. Ayrıca, aynı türden yakından eşlenen noktalar, aynı ölçüde değil, yüksek konsantrasyonlar olarak gösterilmeye devam edecektir.
Başka bir yaklaşım (muhtemelen daha iyi ama daha hesaplama açısından pahalı):
- Veri kümesindeki toplam kategori sayısını hesaplama
- Çıktı görüntüsündeki her piksel için:
- Her kategori için:
- en yakın temsili noktaya (r) olan mesafeyi hesaplayın [muhtemelen etkinin ihmal edilebileceği bazı yarıçaplarla sınırlandırın]
- 1 / r 2 ile orantılı bir ağırlık ekleyin
- Her kategori için:
Bunu yapmak için farkında olmadığım algoritmalar veya çeşitliliği görselleştirmenin başka yolları var mı?
Düzenle
Tomislav Muic'in önerisini takiben, her kategori için ısı haritalarını hesapladım ve aşağıdaki formülü (QGIS tarama hesaplayıcısı) kullanarak normalleştirdim:
((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)
aşağıdaki sonuçla (cevabının altındaki yorumlar):