Страница 1 из 2
Математические операции с пикселями в растре в ArcGIS
Добавлено: 10 апр 2014, 00:10
Natalia Novoselova
Разбираюсь в инструменте Raster Calculator, и в самом его меню и хелпе - не вижу возможности производить математические операции с пикселями. Может быть - не там это надо делать?
Нужно выполнить простой расчет с целью попытки выявления таким образом тепловых пятян (обсуждала
здесь)
Хотя я нашла и какой-то специальный инструмент в ArcGIS для этого (и его также изучу), но с этой базовой техникой хотелось бы разобраться.
У меня есть растр. Каждый пиксель имеет своё Value (значение температуры). Этот растр получен путем загрузки в ArcGIS карты температур AST-08.
Этот растр не имеет атрибутивной таблицы, но при этом каждый пиксель имеет своё Value. Как можно задать атрибутивную таблицу?
Можно ли в ArcGIS выполнить расчет, задавая формулу для каждого пикслея по отношению к граничащим пикселям растра (в моем случае я хочу найти сумму разностей его температуры с температурой каждого из 8-ми соседних пикселей: Gi = (Ti - T1) + (Ti - T2) +(Ti - T3) + ... (Ti - T8).
Или где читать про это в хелпе?

Re: Математические операции с пикселями в растре в ArcGIS
Добавлено: 10 апр 2014, 00:31
nadiopt
а уточните, в каком формате растр-то?
мне на ум приходит грид и recode, но я никогда не делала таким образом столь сложные расчеты
Re: Математические операции с пикселями в растре в ArcGIS
Добавлено: 10 апр 2014, 00:52
swdartvader
Есть кое-какие возможности у инструмента Focal Statistics из раздела Neighbourhood Spatial Analyst, попробуйте поковырять в ту сторону
Re: Математические операции с пикселями в растре в ArcGIS
Добавлено: 10 апр 2014, 01:26
Natalia Novoselova
nadiopt писал(а):а уточните, в каком формате растр-то?
мне на ум приходит грид и recode, но я никогда не делала таким образом столь сложные расчеты
А где лучше делать такие расчеты? В ENVI?
Вообще, я до этого не подходила к этой части, если не счиать курса. В общем - сейчас, вот, дошла и стала разбираться..
Понимаю, мне и надо с самого начала разбираться. Но сразу приходиться со своих практических задач.
Тот растр (продукт ASTER - AST_08) я сначала открыла в ENVI, а потом как Tif пересохранила и открыла в ArcGIS. Помню, что не знала, как это делать правильно, открыла сначала не верно, но потом нашла этот способ, который был правильный, поскольку координаты вершин совпадали с описанием снимка. И в ArcGIS же построилась карта с диапазонами температур.
Re: Математические операции с пикселями в растре в ArcGIS
Добавлено: 10 апр 2014, 01:40
Natalia Novoselova
swdartvader писал(а):Есть кое-какие возможности у инструмента Focal Statistics из раздела Neighbourhood Spatial Analyst, попробуйте поковырять в ту сторону
Как мне кажется, все "Статистики" в ArcGIS делают только статистику по заданному списку видов. А у меня - это математическая операция, не статистика.
Вообще, считала, что если это есть, то именно в Raster Calculator. Но из ваших ответов вижу, что там этого нет.
Видимо, он делает операции только одинаково для всех пикселей.
Видимо - да, в ENVI или другом ДЗЗ софте это нужно делать.
Re: Математические операции с пикселями в растре в ArcGIS
Добавлено: 10 апр 2014, 06:36
novia
А мне кажется хватит фокального фильтра 3х3 с матрицей
-1 -1 -1
-1 8 -1
-1 -1 -1
И типом вычисления "сумма" с учетом весов с использованием этого фильтра.
Интсрумент лежит в тулбоксе spatial analyst - focal
[ Сообщение с мобильного устройства ]
Re: Математические операции с пикселями в растре в ArcGIS
Добавлено: 10 апр 2014, 11:58
swdartvader
а вообще да, вопрос актуальный, даже неьс точки зрения цели топикстартера, а в общем виде. Сам пока ничего не накопал
[ Сообщение с мобильного устройства ]
Re: Математические операции с пикселями в растре в ArcGIS
Добавлено: 10 апр 2014, 19:49
Natalia Novoselova
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. Чем больше этот показатель - тем больше там разница между соседними пикселями, т.е. чем выше там градиент.
Re: Математические операции с пикселями в растре в ArcGIS
Добавлено: 10 апр 2014, 20:05
nadiopt
так а может перевести в шейп и глумиться как захочется? каков размер участка?
Re: Математические операции с пикселями в растре в ArcGIS
Добавлено: 11 апр 2014, 00:09
Natalia Novoselova
nadiopt писал(а):так а может перевести в шейп и глумиться как захочется? каков размер участка?
Пытаюсь перевести в шейп инструментом Raster to Polygon, а он не хочет видеть это, как растр.
Формат - Tif, в папке выглядит так (после пересохранения число файлов почему-то увеличилось):
Изначально, это был продукт ASTER - AST_08. Я его пересохраняла для открытия в ArcGIS через Envi, хоть по координатам вершин - всё правильно, и карту строит, но, возможно, как-то неверно сделала в смысле обработки его как растра в ArcGIS.
Что тут можно сделать?
А так да - хорошая идея! Переводить небольшими ROI в шейпы и вести обработку.
Re: Математические операции с пикселями в растре в ArcGIS
Добавлено: 11 апр 2014, 00:33
novia
Natalia Novoselova писал(а):В Spatial Analyst – Neighborhood – у меня нет только "focal" , и по описанию близких инструментов, которые есть (Focal Flow, Focal Statistics) не нашла возможности, описанной у вас – производить гибкие расчеты с пикселями.
А у вас есть там просто “focal”, или это я не поняла, как делать?
при всем уважении, вы не захотели потыкать по параметрам и посмотреть что вам предалагают
(при этом будучи на 100% уверенным в правильности наставлений я все еще расчитываю на лайк
).
итак, продолжаем тему фокальных вычислений:
Spatial Analyst - группа Neighborhood - инструмент Focal Statistics. там выбираете тип статистики weight или irregular и кормите инструменту текстовый файл с весами ячеек, как я писал ранее. выбираете тип статистики сумма и на выходе получаете растр искомой величины.
:profit: 
Re: Математические операции с пикселями в растре в ArcGIS
Добавлено: 11 апр 2014, 03:09
Natalia Novoselova
novia писал(а):
итак, продолжаем тему фокальных вычислений:
Spatial Analyst - группа Neighborhood - инструмент Focal Statistics. там выбираете тип статистики weight или irregular и кормите инструменту текстовый файл с весами ячеек, как я писал ранее. выбираете тип статистики сумма и на выходе получаете растр искомой величины.
:profit: 
Я сделала точно так и у меня что-то получилось.
В
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 ?
Re: Математические операции с пикселями в растре в ArcGIS
Добавлено: 12 апр 2014, 19:14
Natalia Novoselova
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.
А как делать при других формах области расчёта? Чисто интуитивно - умножать что-ли на число точек в области расчета?
Кто-нибудь знает ответ, или где найти в хелпе об этом? Возможно, это раздел о логике расчета по пикселям. Но пару слов в этот хелп вставить, хоть ссылку дать - уже было бы понятно.

Re: Математические операции с пикселями в растре в ArcGIS
Добавлено: 12 апр 2014, 20:33
swdartvader
Я так думаю, что это по той причине, что Вам необходимо 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)
То есть то, что Вам и необходимо
В словах своих не уверен, ибо с инструментом не довелось работать, однако ждем подтверждения\опровержения наших гуру

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