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


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.