Більше

Створення таблиці атрибутів у 3-смуговому растрі за допомогою ArcGIS Desktop?

Створення таблиці атрибутів у 3-смуговому растрі за допомогою ArcGIS Desktop?


У мене є 3-смуговий (RGB) растровий файл від CORINE, і таблиця атрибутів не побудована. Коли я намагаюся виконати команду BuildRasterAttributeTable, я отримую повідомлення про помилку, що дозволено використовувати лише односмугові растри. Що мені робити, щоб отримати атрибут із землекористуванням?

Повідомлення про помилку:

ПОМИЛКА 000423 Допустимим входом є лише односмуговий цілочисельний растровий набір даних


Як зазначено в повідомленні про помилку, ви не можете мати таблицю атрибутів для багатосмугового растру. Атрибут буде прив'язаний до комбінація усіх трьох діапазонів, а не лише одне значення. Я також зазначу, що растр повинен мати цілі значення - float або double не буде працювати. Будьте обережні з типами вхідних даних (можливо, доведеться їх перетворити) та будь-яким рішенням, зробленим на шляху під час додавання чи експортування.

Ідеальним рішенням буде пошук оригінальних даних CORINE. Це повинен бути односмуговий растр, де кожна клітинка має числове значення, яке відповідає типу покриття землі - наприклад, 2, 15 або 7. Це, ймовірно, вже мати таблицю атрибутів і включати атрибут опису разом із значенням.

У вас є RGB перетворення цього растру через візуалізацію. Кольори були присвоєні кожному класу та колір, а не клас, зберігається в растрі RGB. Замість однієї комірки зі значенням 15 тепер у кожній з трьох смуг є одна комірка, що представляє кількість кольору з цієї смуги. 255 R, 0 G, 0 B комбіновані стати червоним пікселем. Щоб повернутися до односмугового растру, потрібно об’єднати всі три смуги. На жаль, з RGB ви не можете просто скласти їх разом і отримати справжнє унікальне значення.255, 0, 0(червоний) і0, 0, 255(синій) обидва підсумовують до 255. При переведенні в градації сірого можна взяти середнє з трьох значень і отримати середнє значення, яке буде використано як яскравість, але в цьому випадку вам потрібні унікальні кольори категорії та легенда, яка повідомляє вам, який клас кожен колір є.

Увага: Завжди робіть резервну копію перед обробкою растру, якщо щось піде не так. У будь-якому з наведених нижче рішень існує дві потенційні проблеми з вашим растром. По-перше, якщо у вашому RGB між класами земельного покриву є межі іншого кольору, ці пікселі матимуть свої власні унікальні значення кольору, які не потрапляють у клас. По-друге, якщо RGB має формат, який дозволяє і був збережений з втратами стиснення (наприклад, jpg) на кордонах між класами можуть бути значні артефакти. Наприклад, три пікселі, які здаються червоними (255, 0, 0) насправді вийшов254, 2, 0,255, 10, 1, або253, 0, 0(це є зокрема важливо у другому способі нижче). Там, де зустрічаються істотно різні кольори, ви можете отримати абсолютно різні значення кольорів - наприклад, фіолетові пікселі біля червоно-синіх меж. Для цього потрібно буде провести чистку чи інші методи, не охоплені цією відповіддю.

Метод перший полягає в тому, щоб додати смуги RGB окремо (не всі одночасно, або складені, додавши ім'я файлу, але перейти до імені файлу та додати окремий діапазон) до ArcMap та вивчити їх. Незважаючи на те, що всі відображатимуться у градаціях сірого, ви можете знайти одну смугу, де всі класи легко ідентифікуються (тобто для цієї смуги кольорів кожен клас має досить відмінне значення). Якщо так, ви можете клацнути правою кнопкою миші на цій смузі та «Дані»> «Експортувати» її в окремий растр, а потім запустіть «Перекласифікація», щоб змінити значення на щось більш логічне, таке як менші, послідовні значення. Однак цілком можливо, що в одній смузі два різні класи матимуть одне і те ж значення - наприклад, блакитний і жовтий мають зелене значення 255, тому ці кольори / класи в зеленій смузі неможливо розрізнити. ти могли вивчіть та експортуйте всі смуги, запустіть Reclassify, щоб отримати ті, які ви можете ідентифікувати в кожному, а потім додайте всі результати разом із калькулятором растру, щоб врешті-решт отримати один класифікований растр.

Спосіб другий використовує деяку обробку за допомогою растрового калькулятора. Почніть з додавання кожної смуги окремо, як зазначено вище, та експортуйте їх у свій власний растр. Візьміть червону смугу зображення і помножте значення на 1000000. Потім візьміть свою зелену смужку і помножте її на 1000. Тепер ви можете додати всі три смуги разом. Раніше червоний піксель міг би отримати 255. Тепер він отримає 255 000 000. Це один із способів об’єднати числа в унікальні значення, кожна з яких представляє колір. Теоретично кожен з ваших класів земельного покриву матиме однакову унікальну цінність. Знову ж таки, ви використовуєте Reclassify, щоб змінити значення на щось простіше.

Метод третій використовує панель інструментів "Класифікація зображень" (яку вам, мабуть, доведеться додати - Налаштувати> Панелі інструментів). На панелі інструментів виберіть другу кнопку праворуч - Намалювати багатокутник. Тепер намалюйте фігуру, що охоплює декілька пікселів, які однозначно належать до одного класу (скажімо, середини певної області). Зробіть це для кожного кольору / класу у вашому RGB. Потім натисніть крайню ліву кнопку на панелі інструментів Класифікація та виберіть перший варіант - Інтерактивна контрольована класифікація. Крім того, без малювання полів і якщо ви знаєте, скільки класів у вас є (плюс один для будь-яких областей без даних), ви можете спробувати спершу класифіковану класифікацію Iso Claster. Ви повинні закінчити з тимчасові, односмуговий, класифікований растр, який потім можна клацнути правою кнопкою миші та експортувати.

Результати будь-якого з цих трьох методів були б придатними для побудови таблиці растрових атрибутів. Зверніть увагу, що ці рішення відновляться лише категоричний або тематичні класифіковані дані. Вихідні значення даних класифікуються на діапазони або навіть унікальні значення, такі як DEM, не можуть бути відновлені.