Алгоритм тепловой карты для визуализации точечного разнообразия

18

Кто-нибудь может предложить алгоритм для создания тепловой карты для визуализации точечного разнообразия? Примером применения может служить картографирование районов с высоким видовым разнообразием. Для некоторых видов, каждое отдельное растение было нанесено на карту, что привело к большому количеству точек, но с очень небольшим значением с точки зрения разнообразия области. Другие области действительно имеют большое разнообразие.

Рассмотрим следующие входные данные:

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

и получившаяся карта:

участок сетки

В верхнем левом квадранте есть очень разнообразное пятно, в то время как в нижнем правом квадранте есть область с высокой концентрацией точек, но с низким разнообразием. Два способа визуализации разнообразия могут заключаться в использовании традиционной тепловой карты или в подсчете количества категорий, представленных в каждом многоугольнике. Как показывают следующие изображения, эти подходы имеют ограниченное использование, поскольку тепловая карта показывает наибольшую интенсивность в правом нижнем углу, в то время как подход биннинга выглядел бы точно так же, если бы существовала только одна категория (это можно решить, увеличив размер многоугольники, но тогда результат становится излишне гранулированным).

Тепловая карта введите описание изображения здесь

Один из подходов, о котором я подумал, заключается в том, чтобы сложить традиционный алгоритм тепловой карты числом точек разных категорий в пределах определенного радиуса, а затем использовать это количество в качестве веса для точки при создании тепловой карты. Тем не менее, я думаю, что это может привести к нежелательным артефактам, таким как взаимное усиление, приводящее к очень резким результатам. Кроме того, близко сопоставленные точки одного и того же типа будут по-прежнему отображаться как высокие концентрации, но не в той же степени.

Другой подход (возможно, лучше, но дороже в вычислительном отношении) будет:

  1. Рассчитать общее количество категорий в наборе данных
  2. Для каждого пикселя в выходном изображении:
    • Для каждой категории:
      • рассчитать расстояние до ближайшей репрезентативной точки (r) [возможно, ограничение некоторым радиусом, за пределами которого влияние незначительно]
      • добавить вес, пропорциональный 1 / г 2

Есть ли уже алгоритмы, которые я не знаю, чтобы сделать это, или другие способы визуализации разнообразия?

редактировать

Следуя предложению Томислава Муика, я рассчитал тепловые карты для каждой категории и нормализовал их, используя следующую формулу (растровый калькулятор 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)

со следующим результатом (комментарии под его ответом): нормализованная сумма

rudivonstaden
источник
1
Ваш второй подход выглядит хорошо, в основном это проблема статистики, поэтому я бы начал смотреть на соответствующие подпрограммы R в CRAN . Тем не менее, экспериментировал бы с различными размерами сетки и искал «официальные» меры биоразнообразия, чтобы избежать повторного изобретения колеса.
Охотник на оленей

Ответы:

4

Попробуйте создать тепловую карту для каждой отдельной категории.

Затем суммируйте тепловые карты и нормализуйте их, используя количество категорий.

Это может стоить изучить.

Томислав Muic
источник
Я добавил визуализацию в свой вопрос на основе этого предложения, и результат выглядит хорошо! Недостатком является то, что если вы имеете дело с сотнями или тысячами категорий, хранение всех этих растров будет проблемой.
Рудивонстаден
Если подумать, это не будет проблемой, если вы добавите каждую новую тепловую карту в составную тепловую карту после каждой категории. Тогда возникает вопрос, какой подход будет быстрее реализовать в вычислительном отношении - растровые суммы или попиксельный расчет.
Рудивонстаден,
Боюсь, этот ответ не имеет ничего общего с разнообразием. В полученной сумме (и нормализации) очень плотная область с несколькими группами выглядела бы так же, как область не такая плотная, но с одной группой.
Энди З