Математические операции с пикселями в растре в ArcGIS

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Аватара пользователя
Natalia Novoselova
Гуру
Сообщения: 3020
Зарегистрирован: 15 янв 2013, 20:14
Репутация: 69
Ваше звание: Лиса
Откуда: **
Контактная информация:

Математические операции с пикселями в растре в ArcGIS

Сообщение Natalia Novoselova » 10 апр 2014, 00:10

Разбираюсь в инструменте Raster Calculator, и в самом его меню и хелпе - не вижу возможности производить математические операции с пикселями. Может быть - не там это надо делать?


Нужно выполнить простой расчет с целью попытки выявления таким образом тепловых пятян (обсуждала здесь)

Хотя я нашла и какой-то специальный инструмент в ArcGIS для этого (и его также изучу), но с этой базовой техникой хотелось бы разобраться.


У меня есть растр. Каждый пиксель имеет своё Value (значение температуры). Этот растр получен путем загрузки в ArcGIS карты температур AST-08.

Этот растр не имеет атрибутивной таблицы, но при этом каждый пиксель имеет своё Value. Как можно задать атрибутивную таблицу?
Можно ли в ArcGIS выполнить расчет, задавая формулу для каждого пикслея по отношению к граничащим пикселям растра (в моем случае я хочу найти сумму разностей его температуры с температурой каждого из 8-ми соседних пикселей: Gi = (Ti - T1) + (Ti - T2) +(Ti - T3) + ... (Ti - T8).


Или где читать про это в хелпе? :oops:
Последний раз редактировалось Natalia Novoselova 15 апр 2014, 20:02, всего редактировалось 1 раз.

Аватара пользователя
nadiopt
Гуру
Сообщения: 4744
Зарегистрирован: 29 янв 2009, 13:27
Репутация: 495
Ваше звание: хрюкало
Откуда: Санкт-Петербург
Контактная информация:

Re: Математические операции с пикселями в растре в ArcGIS

Сообщение nadiopt » 10 апр 2014, 00:31

а уточните, в каком формате растр-то?
мне на ум приходит грид и recode, но я никогда не делала таким образом столь сложные расчеты
ин гроссен фамилен нихт клювен клац клац

swdartvader
Активный участник
Сообщения: 190
Зарегистрирован: 16 дек 2012, 09:08
Репутация: 48
Откуда: Калининград

Re: Математические операции с пикселями в растре в ArcGIS

Сообщение swdartvader » 10 апр 2014, 00:52

Есть кое-какие возможности у инструмента Focal Statistics из раздела Neighbourhood Spatial Analyst, попробуйте поковырять в ту сторону

Аватара пользователя
Natalia Novoselova
Гуру
Сообщения: 3020
Зарегистрирован: 15 янв 2013, 20:14
Репутация: 69
Ваше звание: Лиса
Откуда: **
Контактная информация:

Re: Математические операции с пикселями в растре в ArcGIS

Сообщение Natalia Novoselova » 10 апр 2014, 01:26

nadiopt писал(а):а уточните, в каком формате растр-то?
мне на ум приходит грид и recode, но я никогда не делала таким образом столь сложные расчеты

А где лучше делать такие расчеты? В ENVI?

Вообще, я до этого не подходила к этой части, если не счиать курса. В общем - сейчас, вот, дошла и стала разбираться..

Понимаю, мне и надо с самого начала разбираться. Но сразу приходиться со своих практических задач.

Тот растр (продукт ASTER - AST_08) я сначала открыла в ENVI, а потом как Tif пересохранила и открыла в ArcGIS. Помню, что не знала, как это делать правильно, открыла сначала не верно, но потом нашла этот способ, который был правильный, поскольку координаты вершин совпадали с описанием снимка. И в ArcGIS же построилась карта с диапазонами температур.
Последний раз редактировалось Natalia Novoselova 10 апр 2014, 01:41, всего редактировалось 1 раз.

Аватара пользователя
Natalia Novoselova
Гуру
Сообщения: 3020
Зарегистрирован: 15 янв 2013, 20:14
Репутация: 69
Ваше звание: Лиса
Откуда: **
Контактная информация:

Re: Математические операции с пикселями в растре в ArcGIS

Сообщение Natalia Novoselova » 10 апр 2014, 01:40

swdartvader писал(а):Есть кое-какие возможности у инструмента Focal Statistics из раздела Neighbourhood Spatial Analyst, попробуйте поковырять в ту сторону
Как мне кажется, все "Статистики" в ArcGIS делают только статистику по заданному списку видов. А у меня - это математическая операция, не статистика.

Вообще, считала, что если это есть, то именно в Raster Calculator. Но из ваших ответов вижу, что там этого нет.
Видимо, он делает операции только одинаково для всех пикселей.

Видимо - да, в ENVI или другом ДЗЗ софте это нужно делать.

Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Математические операции с пикселями в растре в ArcGIS

Сообщение novia » 10 апр 2014, 06:36

А мне кажется хватит фокального фильтра 3х3 с матрицей
-1 -1 -1
-1 8 -1
-1 -1 -1

И типом вычисления "сумма" с учетом весов с использованием этого фильтра.

Интсрумент лежит в тулбоксе spatial analyst - focal

[ Сообщение с мобильного устройства ]
понравилось? жми палец вверх :!:

swdartvader
Активный участник
Сообщения: 190
Зарегистрирован: 16 дек 2012, 09:08
Репутация: 48
Откуда: Калининград

Re: Математические операции с пикселями в растре в ArcGIS

Сообщение swdartvader » 10 апр 2014, 11:58

а вообще да, вопрос актуальный, даже неьс точки зрения цели топикстартера, а в общем виде. Сам пока ничего не накопал

[ Сообщение с мобильного устройства ]

Аватара пользователя
Natalia Novoselova
Гуру
Сообщения: 3020
Зарегистрирован: 15 янв 2013, 20:14
Репутация: 69
Ваше звание: Лиса
Откуда: **
Контактная информация:

Re: Математические операции с пикселями в растре в ArcGIS

Сообщение Natalia Novoselova » 10 апр 2014, 19:49

novia писал(а):А мне кажется хватит фокального фильтра 3х3 с матрицей
-1 -1 -1
-1 8 -1
-1 -1 -1

И типом вычисления "сумма" с учетом весов с использованием этого фильтра.

Интсрумент лежит в тулбоксе spatial analyst - focal
В Spatial Analyst – Neighborhood – у меня нет только "focal" , и по описанию близких инструментов, которые есть (Focal Flow, Focal Statistics) не нашла возможности, описанной у вас – производить гибкие расчеты с пикселями.
А у вас есть там просто “focal”, или это я не поняла, как делать?

Пока кажется, что в ArcGIS все инструменты, даже производящие мат. операции с пикселями, не позволяют задавать выражения самому и заточены под что-то одно (конкретного практического применения).

Например, tool Focal Flow - для каждого пикселя определяет, явлется ли он выше или ниже каждого из 8-ми прилегающих, и при этом делает первую часть нужной мне операции ( Zi– Z1, Zi– Z2,.. Zi– Z8). Но при этом он не дает сумму этих разностей (что мне нужно для перехода к статистике). В итоге – на выходе можно получить карту, где все пикселы "0" - это точно пятна тепла (т.е. они выше чем все ему соседние) и 255 – пятна холода (ниже, чем соседние).
На моем примере, желтым - пятна тепла (все соседние пиксели имеют T ниже), голубым - пятна холода (все соседние пиксели имеют T выше)
Изображение

То есть этот метод – выдает мне пятна тепла, но не позволяет никак их сравнить численно. А если бы я произвела суммирование (вот для этих только выделенных желтым), то я бы получила места с превышением (вокруг), н-р в 200, в 100, в 50. Чем больше этот показатель - тем больше там разница между соседними пикселями, т.е. чем выше там градиент.

Аватара пользователя
nadiopt
Гуру
Сообщения: 4744
Зарегистрирован: 29 янв 2009, 13:27
Репутация: 495
Ваше звание: хрюкало
Откуда: Санкт-Петербург
Контактная информация:

Re: Математические операции с пикселями в растре в ArcGIS

Сообщение nadiopt » 10 апр 2014, 20:05

так а может перевести в шейп и глумиться как захочется? каков размер участка?
ин гроссен фамилен нихт клювен клац клац

Аватара пользователя
Natalia Novoselova
Гуру
Сообщения: 3020
Зарегистрирован: 15 янв 2013, 20:14
Репутация: 69
Ваше звание: Лиса
Откуда: **
Контактная информация:

Re: Математические операции с пикселями в растре в ArcGIS

Сообщение Natalia Novoselova » 11 апр 2014, 00:09

nadiopt писал(а):так а может перевести в шейп и глумиться как захочется? каков размер участка?

Пытаюсь перевести в шейп инструментом Raster to Polygon, а он не хочет видеть это, как растр.
Формат - Tif, в папке выглядит так (после пересохранения число файлов почему-то увеличилось):

Изображение

Изначально, это был продукт ASTER - AST_08. Я его пересохраняла для открытия в ArcGIS через Envi, хоть по координатам вершин - всё правильно, и карту строит, но, возможно, как-то неверно сделала в смысле обработки его как растра в ArcGIS.

Что тут можно сделать?
А так да - хорошая идея! Переводить небольшими ROI в шейпы и вести обработку.

Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Математические операции с пикселями в растре в ArcGIS

Сообщение novia » 11 апр 2014, 00:33

Natalia Novoselova писал(а):В Spatial Analyst – Neighborhood – у меня нет только "focal" , и по описанию близких инструментов, которые есть (Focal Flow, Focal Statistics) не нашла возможности, описанной у вас – производить гибкие расчеты с пикселями.
А у вас есть там просто “focal”, или это я не поняла, как делать?
при всем уважении, вы не захотели потыкать по параметрам и посмотреть что вам предалагают (при этом будучи на 100% уверенным в правильности наставлений я все еще расчитываю на лайк :mrgreen: ).


итак, продолжаем тему фокальных вычислений:
Spatial Analyst - группа Neighborhood - инструмент Focal Statistics. там выбираете тип статистики weight или irregular и кормите инструменту текстовый файл с весами ячеек, как я писал ранее. выбираете тип статистики сумма и на выходе получаете растр искомой величины. :profit: :D
понравилось? жми палец вверх :!:

Аватара пользователя
Natalia Novoselova
Гуру
Сообщения: 3020
Зарегистрирован: 15 янв 2013, 20:14
Репутация: 69
Ваше звание: Лиса
Откуда: **
Контактная информация:

Re: Математические операции с пикселями в растре в ArcGIS

Сообщение Natalia Novoselova » 11 апр 2014, 03:09

novia писал(а): итак, продолжаем тему фокальных вычислений:
Spatial Analyst - группа Neighborhood - инструмент Focal Statistics. там выбираете тип статистики weight или irregular и кормите инструменту текстовый файл с весами ячеек, как я писал ранее. выбираете тип статистики сумма и на выходе получаете растр искомой величины. :profit: :D

Я сделала точно так и у меня что-то получилось.
В Focal Statisticsв поле "Kernel" я задала адрес (просто копированием) txt файла с таким выражением:

3 3
-1 -1 -1
-1 8 -1
-1 -1 -1

И тип статистики - сумма.

Почти всё понятно. Кроме одного.

3 и 3 - это размер области в которой идет расчет.
Из хелпа понятно, как задается processing cell:
Положение x,y для обрабатываемой ячейки в пределах окрестности, по отношению к верхнему левому углу окрестности, определяется следующими уравнениями:
x = (width + 1)/2
y = (height + 1)/2
Раз у меня 3 и 3, то получается ее координаты в пределах ячейки 3 на 3 - как раз середина, где стоит 8.
В прилегающих к ней - "-1" Можно предположить, что это задается вычитание из значения каждого пикселя- значение processing cell.



Итого, не понятно, почему в processing cell - вы задаете число 8? Может быть, вы ошиблись? Ведь она тогда будет для каждой прилежащей считать вычитание из processing cellх8 ?

Аватара пользователя
Natalia Novoselova
Гуру
Сообщения: 3020
Зарегистрирован: 15 янв 2013, 20:14
Репутация: 69
Ваше звание: Лиса
Откуда: **
Контактная информация:

Re: Математические операции с пикселями в растре в ArcGIS

Сообщение Natalia Novoselova » 12 апр 2014, 19:14

novia писал(а):А мне кажется хватит фокального фильтра 3х3 с матрицей
-1 -1 -1
-1 8 -1
-1 -1 -1

И типом вычисления "сумма" с учетом весов с использованием этого фильтра.
Хелп ArcGIS - безусловно, явлется одним из самых детальных и понятных хелпов встреченного мне софта, но и он имеет досадные упущения, пропущенные звенья, которые не дают возможность разобраться в логике самостоятельно!
Где искать ответ??

Вот, по данному примеру. Использование Focal Statistics, в Kernel файл - матрица, которую подсказал novia.
Я проверила расчет - всё как надо мне, считает центральный Processing pixel по форумуле:
pix proc (i) = (Ti-T1) + (Ti-T2) + … (Ti-T8)

Я проверила, произведя такой расчет.
Но - почему в центре стоит "8"??

В хелпе на указанной странице - об логике расчетов нет ничего. Всё что сказано:
Керн-файл в окрестности типа Вес:
Керн-файл для окрестности типа Вес представляет собой текстовой ASCII-файл формата, который определяет значения и форму окрестности "Вес". Файл можно создать с помощью любого текстового редактора.
Первая строка задаёт ширину высоту окрестности (количество ячеек в направлении x, затем пробел, затем количество ячеек в направлении y).
Последующие строки содержат значения для каждого положения ячейки окрестности. Значения вводятся в той же конфигурации, в которой они появляются в представляемой ими окрестности. Положительные, отрицательные и десятичные значения являются корректными опциями в качестве весов. Пробел между значениями является обязательным.
Для местоположений в окрестности, которые не участвуют в вычислениях, используйте для соответствующего местоположения в керн-файле значение, равное 0.
Дальше идет пример также без объяснений.

Нет ни слова про то, почему для такого расчета значения центрального пикселя нужно умножать на 8.

А как делать при других формах области расчёта? Чисто интуитивно - умножать что-ли на число точек в области расчета?

Кто-нибудь знает ответ, или где найти в хелпе об этом? Возможно, это раздел о логике расчета по пикселям. Но пару слов в этот хелп вставить, хоть ссылку дать - уже было бы понятно. :(

swdartvader
Активный участник
Сообщения: 190
Зарегистрирован: 16 дек 2012, 09:08
Репутация: 48
Откуда: Калининград

Re: Математические операции с пикселями в растре в ArcGIS

Сообщение swdartvader » 12 апр 2014, 20:33

Я так думаю, что это по той причине, что Вам необходимо 8 раз произвести процесс вычитания окрестности из центра, причем чтобы результат являлся суммой этих разностей
Например:
X - центральная ячейка
Y1...8 - окрестные ячейки
Если не присваивать 8, то:
X(результат) = X - Y1 - Y2 - Y3 - Y4 - Y5 - Y6 - Y7 - Y8
Если присвоить, то
X(результат) = (X - Y1) + (X - Y2) + (X - Y3) + (X - Y4) + (X - Y5) + (X - Y6) + (X - Y7) + (X - Y8)
То есть то, что Вам и необходимо
В словах своих не уверен, ибо с инструментом не довелось работать, однако ждем подтверждения\опровержения наших гуру :)

gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Математические операции с пикселями в растре в ArcGIS

Сообщение gamm » 12 апр 2014, 21:37

Natalia Novoselova писал(а):Нет ни слова про то, почему для такого расчета значения центрального пикселя нужно умножать на 8.
потому, что соседей 8. А еще в хелпе не написано, что 2*2=4, да и остальная таблица умножения тоже не приведена.

Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя