GIS-LAB

Географические информационные системы и дистанционное зондирование

Получение значений пикселей по полигональным профилям из многоканальных растровых данных в Arcview

Описание работы со скриптом получения данных по полигональным объектам в Arcview GIS для сравнения приводится также описание как выполнить ту же операцию в ERDAS IMAGINE.

Обсудить в форуме Комментариев — 0

Для некоторых задач, связанных со статистическим анализом тренировочных данных, таких как классификации при помощи деревьев регрессии (decision - regression trees) или метода максимального подобия (maximum likelihood) требуется извлечение данных о тренировочных (эталонных) объектах не по полигону в целом как в зональной статистике, а по каждому пикселю изображения попадающему в этот полигон. Как правило, для этих задач используются многоканальные растровые данные, и, соответственно, каждый пиксель имеет N+2 значений, N = число каналов + координата X и координата Y.

В качестве профиля используется полигон или полигоны в формате shape-файла.

получение значений по точкам

Статистика подсчитывается для растрового файла, загруженного как Image Theme в содержание вида. Для того чтобы получить данные из растров в формате ERDAS IMAGINE нужно загрузить их как Image Theme предварительно включив расширение IMAGINE Image Support.

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

В процессе работы, для каждого полигонального объекта в shape файле, для каждого канала растра, будет произведена операция получения данных из растрового слоя. Растр будет разбит поканально, каждый канал будет представлен в формате GRID, далее для каждого полигона будут определены попадающие в него ячейки растра (поканально) и полученные данные будут экспортированы в новый файл. При получении данных, если одна из точек попадает на пиксел со значением NODATA значение получено не будет. Сгенерированные в процессе работа наборы данных в формате GRID будут удалены в случае успешного выполнения операции.

Если в полигональной теме присутствует поле Id и в нем есть значения, они будут использованы как названия классов и добавлены дополнительной, последней, колонкой в результирующий файл. Рассмотрим пример: для некого изображения оцифрованы области (полигоны) представляющие из себя участки растительности типа A и участки растительности типа B. Тип растительности указан в атрибутивной таблице кодом 1 или 2. С помощью данного расширения можно для каждого полигона в наборе эталонов получить значения всех пикселей попадающих в этот полигон поканально + добавить колонку с кодом из атрибутивной таблицы темы эталонов. Такие данные потом очень просто импортировать и использовать в любом статистическом пакете, например R.

Скрипт может работать как со спроектированным, так и неспроектированным видом.

Таким образом, для получения пиксельных данных в Arcview GIS необходимо:

  1. Включить Spatial Analyst (File\Extensions\Spatial Analyst)
  2. Скачать и подключить скрипт extract-pixel-data.avx (File\Extensions\Extract pixel data...)

    z

  3. Загрузить в содержание вида одну полигональную тему и растровый слой, из которого нужно извлечь значения, например матрицы NDVI.
  4. Сделать активными полигональную тему и растровый слой (выбрать их удерживая клавишу SHIFT) и нажать на кнопку z.
  5. Операцию можно произвести для часть объектов полигональной темы, для этого нужно просто их выделить и нажать на кнопку z.

Примечания:

  1. Появление следующей ошибки означает, что географический охват полигонального слоя не совпадает с охватом растрового, что бывает если эти слои находятся в разных системах координат или используется неправильный (не соответствующий растровому географически) полигональный слой.
    z
  2. Некоторые объекты полигонального слоя могу частично или полностью не попадать в географический охват растрового, при этом общие охваты слоев должны пересекаться (см. первое примечание).
  3. Если значения пикселя во всех каналах равны 0, то данное значение пропускается. Данная ситуация возможна, когда часть эталонного полигона попадает на рамку изображения, которая обычно кодируется значением 0.
  4. При экспорте значений используемые разделители значений - пробелы.

ERDAS IMAGINE

Операцию экстракции попиксельных значений во всех каналов для набора полигонов-эталонов можно также осуществить в ERDAS IMAGINE. Utilities\Convert Pixels to ASCII...

z

По сравнению с предложенным нами способом этот инструмент обладает следующими недостатками:

  • Эталонам нельзя назначить атрибут, поэтому если классов несколько, нужно иметь несколько наборов AOI, по одному на каждый класс;
  • Как следствие, если нужно получить файл с добавленным значением кода, то их придется добавлять вручную.

Обсудить в форуме Комментариев — 0

Последнее обновление: September 09 2021

Дата создания: 06.11.2007
Автор(ы): Максим Дубинин