Adakah yang bisa menyarankan algoritma untuk menghasilkan peta panas untuk memvisualisasikan keragaman titik? Contoh aplikasi adalah untuk memetakan area dengan keanekaragaman spesies yang tinggi. Untuk beberapa spesies, setiap tanaman tunggal telah dipetakan, menghasilkan jumlah poin yang tinggi, tetapi dengan makna yang sangat sedikit dalam hal keragaman area. Daerah lain benar-benar memiliki keanekaragaman yang tinggi.
Pertimbangkan input data berikut:
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
dan peta yang dihasilkan:
Di kuadran kiri atas, ada tambalan yang sangat beragam, sedangkan di kuadran kanan bawah, ada area dengan konsentrasi titik tinggi, tetapi keragaman rendah. Dua cara untuk memvisualisasikan keragaman bisa dengan menggunakan peta panas tradisional, atau untuk menghitung jumlah kategori yang diwakili dalam setiap poligon. Seperti yang ditunjukkan gambar berikut, pendekatan ini memiliki penggunaan terbatas, karena peta panas menunjukkan intensitas terbesar di kanan bawah, sedangkan pendekatan binning akan terlihat persis sama jika hanya ada satu kategori (ini dapat diatasi dengan meningkatkan ukuran nampan poligon, tetapi hasilnya menjadi butiran yang tidak perlu).
Salah satu pendekatan yang saya pikir untuk melakukan ini adalah untuk prima algoritma peta panas tradisional dengan jumlah poin dari berbagai kategori dalam radius yang ditentukan, dan kemudian menggunakan hitungan itu sebagai bobot untuk titik ketika menghasilkan peta panas. Namun, saya pikir ini mungkin rentan terhadap artefak yang tidak diinginkan, seperti penguatan timbal balik yang mengarah ke hasil yang sangat tajam. Juga, titik-titik yang dipetakan dari jenis yang sama akan terus muncul sebagai konsentrasi tinggi, hanya saja tidak pada tingkat yang sama.
Pendekatan lain (mungkin lebih baik tetapi lebih mahal secara komputasi) adalah:
- Hitung jumlah total kategori dalam dataset
- Untuk setiap piksel dalam gambar output:
- Untuk setiap kategori:
- menghitung jarak ke titik representatif terdekat (r) [mungkin dibatasi oleh beberapa radius di luar yang pengaruhnya dapat diabaikan]
- tambahkan bobot yang proporsional dengan 1 / r 2
- Untuk setiap kategori:
Apakah sudah ada algoritma yang tidak saya sadari untuk melakukan ini, atau cara lain untuk memvisualisasikan keragaman?
Edit
Mengikuti saran Tomislav Muic, saya telah menghitung heatmap untuk setiap kategori, dan menormalkannya menggunakan rumus berikut (kalkulator 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)
dengan hasil berikut (komentar di bawah jawabannya):