Алгоритм теплової карти для візуалізації різноманітності точок


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 / r 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)

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


1
Ваш другий підхід виглядає Гаразд, це здебільшого проблема зі статистикою, тому я б почав розглядати відповідні підпрограми R в CRAN . Хоча б експериментувати з різними розмірами сітки і шукати "офіційні" заходи щодо біорізноманіття, щоб уникнути повторного винайдення колеса.
— Мисливець на оленів

Відповіді:


4

Спробуйте зробити теплову карту для кожної окремої категорії.

Потім підсумовуйте теплові карти та нормалізуйте їх, використовуючи кількість категорій.

Це, можливо, варто вивчити.


Я додав візуалізацію до свого запитання на основі цієї пропозиції, і результат виглядає добре! Недоліком є ​​те, що якщо ви маєте справу з сотнями чи тисячами категорій, зберігання всіх цих растрових проблем стане проблемою.
— rudivonstaden

Подумайте про це, це не буде проблемою, якщо ви додавали кожну нову теплову карту до складеної теплової карти після кожної категорії. Тоді питання полягає в тому, який підхід був би обчислювально швидшим впровадити - растрові суми або розрахунок пікселів на піксель.
— rudivonstaden

Боюся, що ця відповідь не має нічого спільного з різноманітністю. У отриманій сумі (і нормалізації) дуже щільна область з декількома групами виглядатиме так само, як і область не така щільна, але з однією групою.
— Andy W
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.