Измерение площади растровых классов?

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 /.

user1269942
источник
1

Если предположить, что ваш график плотности ядра представляет собой растр, созданный с помощью инструмента плотности ядра или аналогичного, то это всего лишь вопрос использования инструмента Растр в полигон .

Убедитесь, что вы указали поле, которое определяет классификацию растра, и оно преобразует его в полигоны. Затем вы можете использовать инструмент Рассчитать геометрию для расчета площади.

Фезтер
источник
Я попробовал это. когда я перетаскиваю растровый файл, в нем говорится, что «один или несколько удаленных элементов были недействительными». Ошибка предполагает, что текст в файле «мешает». Есть ли у вас какие-либо идеи, почему это может быть?
Мистер Ангус
1
@MrAngus Проблема в том, что плотность ядра всегда создает растровые выходные данные с плавающей запятой, в то время как Raster to Polygon требует целочисленного растрового ввода (см. Связанные файлы справки). Сначала вам нужно будет переклассифицировать растр KD.
Крис W
Обратите внимание, что функция « Рассчитать геометрию» указана для каждого объекта и не даст общей площади всех полигонов, совместно использующих данный класс.
Мэтт Уилки
0

Одним из быстрых решений является ручное решение:

  1. Откройте свойства растра и перейдите на вкладку символов.
  2. Предположительно, символика уже установлена ​​на Классифицированное, а количество классов - то, что вы хотите. Нажмите кнопку «Классифицировать».
  3. Справа от диалогового окна находится поле «Значения разрыва». Щелкните каждое значение разрыва, и в нижней части диалогового окна вы увидите # Элементы в классе. Это количество пикселей в этом классе. Запишите число для каждого класса или введите его в электронную таблицу.
  4. Отмените возврат к свойствам растра и переключитесь на вкладку Источник. Размер ячейки указан там в х, у. Умножьте эти два вместе, и вы получите площадь в один пиксель.
  5. Теперь возьмем эту область, умноженную на количество пикселей в каждом классе. Это должно дать вам общую площадь этого класса.

Точный относительный термин. Что касается ваших растровых областей, это будет точно. Если вы используете метод Фезтера, область может отличаться в зависимости от того, используете ли вы Smooth при преобразовании областей на основе пикселей в полигоны.

Крис У
источник