Повторюйте бінарний растр, щоб отримати * пропорцію * у новому вікні комірки


9

Я хотів би перейти від двійкового растру лісового / нелісового на 30m дозволу до растру на 240m з роздільною здатністю, причому значення кожної комірки буде часткою цієї ліси, що ліситься - тобто значення даних для 240m комірок піде від 0 (де всі клітини растру 30м були нульовими / нелісовими) через 0,5 (де половина 30м клітин була лісовою, половина - лісовою) до 1 (де всі клітини растру 30м були лісистими).

Хоча було запропоновано не використовувати білінеарну інтерполяцію для дискретних даних, наскільки я можу сказати, що результат із двійковими даними 0/1 міг би дати середнє значення (тобто пропорцію між 1 і 0). Це розумний спосіб зробити це чи є кращий метод?

Я можу використовувати Arc, QGIS та Idrisi.

Відповіді:


13

Використовуйте статистику блоку .

Це працює як фокальна статистика, обчислюючи статистичний підсумок (наприклад, середнє значення, яке ви бажали) в межах визначеного мікрорайону комірок (наприклад, квадрат 8 на 8, де 8 = 240 м / 30 м), за винятком того, що він виконує це лише для регулярне підрозділ сітки, а не з набором кварталів, що перекриваються, по одному в кожній комірці.

Ви також можете скористатися статистикою фокусного фокусу, якщо ви дійсно хочете: після обчислення фокусного значення понад 8 на 8 квадратів повторно прообразуйте до сітки на 240 м за допомогою перекомпонування найближчого сусіда . Коли сітки реєструються одна до одної ( тобто вони мають однакове походження), це має дати такий же результат, як і block statistics. (Я не гарантую, що: потрібно робити деякі довільні рішення, коли нові клітинні центри збігаються зі старими куточками клітин - як вони будуть тут - і якщо різні комітети закодували дві процедури, вони, можливо, зробили різний вибір: мало я боюсь в ArcGIS справді послідовним.)

Інший підхід - створити сітку зон, одну зону на квадрат, де бажане середнє значення, та виконати зональний підсумок як сітку. Зони можна обчислити математично з сіток координат рядків і стовпців (за допомогою функції floorабо intфункції, шляхом перекласифікації або приєднання відповідної таблиці до таблиці атрибутів).

Я закрию, зазначивши, що білінеарна інтерполяція, хоча вона справді дає значення в діапазоні 0..1, не є тим, що потрібно: вона працює, знаходячи щонайбільше чотири оригінальні (30 м) сітки комірки, що оточують центр нового ( 240 м) комірка і інтерполюючи лише їх значення. Таким чином, він не помітить інших 8 * 8 - 4 = 60 оригінальних комірок, що потрапляють у кожен новий блок. Я ілюструю білінеарну інтерполяцію на веб- сайті http://www.quantdec.com/SYSEN597/GTKAV/section9/map_algebra.htm : обговорення починається біля середини сторінки.


Дякую Уаубер, саме це я і зробив - використовував Block Statistics в Arc для отримання суми групи 8x8, потім використовував Raster Calculator в QGIS, щоб поділити на 64 і вирівняти походження, міру та розмір комірок з рештою моїх даних.
застрявГІС

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

4

У ArcGIS, під час якого ви перепробовуєте дані за допомогою білінеарного перекомпонування, вони розглядають лише значення центральних чотирьох комірок ( документація щодо повторної вибірки ). Таким чином, використовуючи цей метод, ви все одно втратите дані, якщо не компенсуєте втрату даних.

Зважаючи на те, що ми знаємо, що для перекомпонованих клітин ви маєте частину лісів, що ліситься, ми можемо вважати це сумою 30 м комірок, розділених на 64 (у блоці 240 м є 64 30 м комірок).

Це означає, що якщо ми можемо створити новий растр із центральними значеннями як сума навколишніх значень при роздільній здатності 30 м, пониження роздільної здатності за допомогою повторної вибірки з найближчим сусідом або білінеарною інтерполяцією дасть нам 240 м осередків, що є сумою 30 м клітин обкладинка. Це ми можемо зробити за допомогою інструмента фокусної суми на растрі 30 м.

Нарешті, як тільки у нас є растровий фокус на 240 м, розділіть на 64, щоб отримати відповідь на пропорцію.

В Idrisi я не впевнений у алгоритмах відбору зображень, як і в QGIS, але я думаю, що є щось подібне. Безумовно, в QGIS ви можете обробити растр на Python за допомогою scipy ndimage або подібного.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.