Як зробити оцінку щільності ядра за допомогою фізичного бар'єру / межі в QGIS?


18

Хтось знає про програму, яка дозволить kernelling, який враховує межу при своєму обчисленні, а не просто маскування неможливих областей?

Поки що я виявив: додавання GME для Arc10 (Hawthorne Beyer) - я отримую помилку щоразу, коли вказую графік межі. Я спробував безліч різних типів форм-файлів та складних меж тощо. Це чудово працює, коли я не вказую межу.

Пакет AdehabitatHR в R (Calange 2011) - це працює добре, але межа, яку ви вказуєте, повинна бути дуже простою - тривалість смуги ядра 3x в довжину і не надто обертальна. Для моїх даних це велике спрощення.

Тож мені цікаво, чи може це зробити будь-яке інше програмне забезпечення, GRASS або QGIS.

Спасибі


3
Недавній документ з R-кодом потенційного інтересу, зміщення кордону та зважені ядра . Весь код - це лише способи зважити спостереження, щоб виправити зміщення кордону (якщо ви зможете визначити ваги, ви можете використовувати будь-яку програму, щоб оцінити kde до тих пір, поки це буде, крім ваг).
Енді Ш

1
Точно , як ви хочете, щоб «рахунок» за кордоном? Існує багато можливих способів, починаючи від маскування до блокування розповсюдження до виправлення граничних ефектів.
whuber

1
Дякуємо @AndyW та whuber за відповіді. Я хочу пояснити межу, запобігаючи поширенню ядра по ньому. Дані - це місця морських черепах, тому я знаю, що розподіл утилізації не повинен поширюватися на сушу, але багато з цих місць знаходяться поблизу узбережжя, тому я не хочу упереджуватись цими місцями, просто замаскувавши частини ядра, які поширився в землі. Дякую за посилання на папір - це виглядає чудово, я спробую використовувати аналогічний код для своїх даних.
KimS

Відповіді:


2

В основі оцінки щільності ядра лежить поняття відстані. Найкраще мені відомо рішення - використовувати кращу метрику відстані, яка враховує межі та різні витрати на проїзд. Краще вибрати метрику відстані, яка відповідає проблемі, яку ви намагаєтеся вирішити. Тертя про місцеву місцевість чудово підходить для піших прогулянок, але не для аерозольної дисперсії. Струми вітру важливі для відстеження вітрильника, але не мають значення для напрямків руху.
Тепер, коли поняття відповідних показників відстані сподівається достатньо мотивованим, я можу порекомендувати поверхні витрат як хорошу метрику відстані загального призначення. Вони доступні у всьому, від ArcGIS, до R, до JavaScript, і їх досить просто побудувати. Наприклад, у qGIS ви можете побудувати поверхню тертя растру та використовувати її для обчислення маршрутів. Налаштуйте поверхню тертя, щоб врахувати ваші межі, і ви побачите, що маса ядер навколо ваших точок акуратно розтікається навколо перешкод.


+1 Це потенційно чудовий підхід. Застосувавши це в багатьох проблемах, я виявив, що тут не згадується основна складність: як саме ви пропонуєте розповсюдження ядер відповідно до цієї метрики? Нестандартні рішення не можуть цього зробити.
whuber

@whuber Правда, системи, які не знаходяться в коробці, зазвичай не мають можливості одночасно враховувати як поверхні витрат, так і щільність ядра. Моя пропозиція полягає в тому, щоб використовувати поверхню тертя для обчислення відстані «точка-точка», а потім безпосередньо застосувати функцію ядра для ваги. У qGIS або ArcGIS можна писати, використовуючи звичайну функцію розподілу в python, а в R - dnorm()функцію.
JasonRDalton

Я робив саме це в деяких випадках, але продумування процесу та перевірка результатів виявляють деякі притаманні проблеми. Найважче здається, як гарантувати збереження маси: ви не можете просто поширювати значення відповідно до, скажімо, фіксованої Гауссової функції, оскільки загальна отримана маса точки розвороту не буде дорівнює початковій масі. Не існує ефективного способу проведення цих обчислень.
whuber


0

Я фактично допомагаю плагіну AniMove для QGIS, який має на меті позбутися від залежності R для оцінки щільності ядра. Погляньте тут .

EDIT: Плагін фактично доступний як експериментальний в офіційному сховищі плагінів QGIS

І не соромтеся запитати у списку , якщо у вас є якісь пропозиції


-2

Я успішно зробив це за допомогою Geostatistic Analyst, який є розширенням ESRI ArcGIS. Ви можете завантажувати набір даних про рядки як бар'єри, і результати є досить пристойними. Я роблю тестові запуски, змінюючи параметри функцій, щоб отримати чітке уявлення про те, як калібрувати інструмент. Для перевірки результатів я рекомендую, якщо у вас є достатньо великий набір даних - видалити зразок точок, генерувати поверхню щільності без цих точок, а потім порівняти різницю між значеннями видалених точок із значеннями поверхні на розташування видалених точок.


2
Чи можете ви трохи поглибити цю відповідь, щоб пояснити, як GA - який реалізує методи інтерполяції - здатний обчислити оцінку щільності ядра ? Як подвійна перевірка правильності вашого рішення, чи ви переконалися, що інтеграл сітки GA приблизно дорівнює сумі всіх вхідних даних?
whuber

1
У 10.1 можна виконати інтерполяцію ядра без бар'єрів, але це не призводить до оцінки щільності. Хоча, враховуючи методи, на які посилаються оригінальні публікації, мені цікаво, чи не зацікавлені вони в оцінці ядра Гаусса, а не в оцінці щільності.
Джефрі Еванс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.