Площа вимірювання растрових класів?


9

Чи є в ArcMap інструменти чи методи, які можуть вимірювати площу кожного рівня вихідної щільності ядра?

Зауважте, що це лише графік щільності ядра (не файл форми чи багатокутник). Аналіз щільності ядра (темно-зелений (10%) до червоний (90%) (1)

Я спробував кілька речей, але мені це потрібно, щоб бути точним.

Аналіз щільності керенеля (темно-зелений (10%) до червоний (90%)

Відповіді:


7

Я буду використовувати наступний робочий процес для обчислення площі в межах класів:

  1. Перекласифікуйте (Spatial Analyst) вихід щільності ядра до тих класів, які ви використовуєте. За замовчуванням ArcGIS створює суцільну растрову поверхню для виведення щільності ядра, але перекласифікує легенду (яка є тимчасовою). Використання інструмента перекласифікації зробить це постійним.
  2. Відкрийте таблицю атрибутів перекласифікованої щільності ядра та спостерігайте за полем "COUNT" ( рис. 1 ). Це підрахунок усіх пікселів у кожному класі. Наприклад, клас 1 (значення = 1) має кількість 620,063 пікселів. Оскільки моя система координат UTM, одиниці знаходяться в метрах, а пікселі - на 1 м просторового дозволу. Тому клас 1 дорівнює 620,063 м ^ 2.
  3. Для перетворення підрахунку в інші одиниці, такі як гектари, додайте нове поле в таблицю атрибутів.
  4. Поле обчислення ( мал. 2 )
  5. Логіка перевіряє результати, виділяючи клас ( мал. 3 )

Фігура 1

введіть тут опис зображення

Малюнок 2

введіть тут опис зображення

Малюнок 3

введіть тут опис зображення


2

Якщо ви хочете отримати аркпій рішення:

import numpy as np  #not sure how arcpy imports numpy

r = arcpy.RasterToNumPyArray('your raster name')

for val in np.unique(r):
    area = np.sum(r == val)  #multiply this by your pixel area
    print 'value ', val, ' : ', area

Ви також можете записати значення в файл csv / text.


1

Якщо припустити, що ваш графік щільності ядра - це растр, створений за допомогою інструмента щільності ядра або подібного, це лише питання використання інструменту « Растр до полігону» .

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


Я спробував це. коли я перетягую растровий файл, в ньому йдеться про те, що "один чи кілька випалих елементів недійсні". Помилка говорить про те, що текст у файлі "заважає". Чи маєте ви уявлення, чому це може бути?
Містер Ангус

1
@MrAngus Проблема полягає в тому, що щільність ядра завжди видає растровий вихід з плаваючою комою, тоді як для растру до полігону потрібен цілий растровий вхід (див. Пов'язані файли довідки). Вам потрібно спочатку перекласифікувати растр KD.
Кріс Ш

Зауважте, що Обчислити геометрію є за ознакою і не дасть загальної площі всім багатокутникам, які ділять даний клас.
matt wilkie

0

Одним із швидких рішень для цього є вирішення вручну:

  1. Відкрийте властивості растра та перейдіть на вкладку "Символогія".
  2. Імовірно, для символіки вже встановлено «Класифіковано», а кількість класів - те, що ви хочете. Натисніть кнопку Класифікувати.
  3. У правій частині діалогового вікна розміщено вікно Значення перерви. Клацніть кожне значення розриву, і внизу діалогового вікна ви побачите # Елементи в класі. Це кількість пікселів у цьому класі. Запишіть число для кожного класу або введіть його в електронну таблицю.
  4. Скасуйте назад до властивостей растру та перейдіть на вкладку Джерело. Розмір комірки вказаний там у x, y. Помножте ці два разом і у вас є площа одного пікселя.
  5. Тепер візьміть цю площу, меншу за кількість пікселів у кожному класі. Це повинно дати вам загальну площу цього класу.

Точний - відносний термін. Що стосується ваших растрових областей, це буде точно. Якщо ви використовуєте метод Фестера, область може відрізнятися залежно від того, використовуєте ви Smooth при перетворенні областей на основі пікселів у багатокутники.

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