Страница 1 из 1

Как вручную править значения пикселей растра?

Добавлено: 15 апр 2013, 12:58
dime1
Есть растр высот в формате .tif, который в одном месте имеет отрицательную дыру. Высоты соседних с ней ячеек около 200м. Каким образом можно вручную исправить?
Арка 10.1

P.S.: вариант с созданием заплатки из constant raster и накладыванием его значений на существующий методом mosaic to new raster не подходит. Слишком большой квадрат получается, бросается в глаза.

Re: Как вручную править значения пикселей растра?

Добавлено: 15 апр 2013, 13:02
nadiopt
так создать шейп, заделать дырку, присвоить атрибуту GridID значение 200, перегнать в растр и сделать мозаику
как вариант, сделать экстракт этой дырки по значению и сделать реклассифай этому куску в 200 и мозаику

Re: Как вручную править значения пикселей растра?

Добавлено: 15 апр 2013, 13:35
dime1
Шейп со значением в растр - гениально!
Но в атрибутивной таблице результирующего растра (после мозаики) остаётся только одна строка - Value(200), Count(2701).
Мне ж его потом еще раскрасить нужно по значениям :)

Re: Как вручную править значения пикселей растра?

Добавлено: 15 апр 2013, 13:50
nadiopt
дык кусочек гадо мааасенький нарисовать, заплаточку:)

Re: Как вручную править значения пикселей растра?

Добавлено: 15 апр 2013, 14:00
dime1
Всё, понял в чём проблема! Нужно просто к результирующему растру перестроить атрибутивную таблицу. Сейчас напишу алгоритм действий. Спасибо, nadiopt :idea:
P.S.: nadiopt, оно подсчитывает значения не только в моей заплатке, но и по всему растру, потому такое большое Count.

1) Создаём новый слой (заплатку) и обводим область, которую хотим убрать.
2) В атрибутивной таблице заплатки создаём поле GridID и вписываем нужное значение пикселя.
3) Конвертируем Feature to Raster, где в Field - GridID, а в Output cell size выбираем растр для которого мы создаём заплатку.
4) Экспортируем получившуюся заплатку указывая значение nodata как и в основном растре (чтоб pixel depth получились идентичные). nodata обязательно должны быть "-n" (-32767), а то можете получить при экспорте 16bit ubsigned, в то время как основной растр будет в формате 16bit signed.
5) Mosaic to new raster, первой добавляем заплатку, потом основной растр. Устанавливаем pixel depth и выбираем mosaic operator - first.
6) Build raster attribute table на полученном растре.

Re: Как вручную править значения пикселей растра?

Добавлено: 15 апр 2013, 14:14
Александр Мурый
dime1 писал(а):Всё, понял в чём проблема! Нужно просто к результирующему растру перестроить атрибутивную таблицу. Сейчас напишу алгоритм действий
dime1, лювлю на слове: нельзя ли это оформить в виде небольшой заметки на вики? Сделаем статейку для народа :)

Re: Как вручную править значения пикселей растра?

Добавлено: 15 апр 2013, 14:39
dime1
Александр Мурый писал(а):dime1, лювлю на слове: нельзя ли это оформить в виде небольшой заметки на вики? Сделаем статейку для народа :)
Александр, тут еще не всё так просто. Я в итоге получаю растр с хаотически разбросанными значениями noData, коих в исходных данных не было...
Еще немного разберусь и на неделе отпишу Вам в ЛС по заметке заплатки)

Re: Как вручную править значения пикселей растра?

Добавлено: 15 апр 2013, 14:45
Александр Мурый
dime1 писал(а): Еще немного разберусь и на неделе отпишу Вам в ЛС по заметке заплатки)
Ок, но лучше всё-таки на вики (там другие править могут).

Re: Как вручную править значения пикселей растра?

Добавлено: 15 апр 2013, 18:13
nadiopt
а там где-то есть галка про ноу дата
я делаю обычно экстракт бай атрибут - смотрю все явно левые значения - выбираю КРОМЕ них, имею дырку. И выбираю ИХ - рекласс как мне надо. Соединяю гриды

Re: Как вручную править значения пикселей растра?

Добавлено: 15 апр 2013, 19:39
dime1
nadiopt, там прикол был в том, что нельзя применять mosaic to new raster для данных с разными pixel depth и nodata value, а то появятся артефакты в виде nodata по растру.
При Feature to Raster создается растр с pixel depth 8bit unsigned и nodata value: 255. А основной растр у меня был в 16bit signed и nodata value: 32767.
Потому и добавил обязательным пункт:
4) Экспортируем получившуюся заплатку указывая значение nodata как и в основном растре (чтоб pixel depth получились идентичные).

Re: Как вручную править значения пикселей растра?

Добавлено: 06 авг 2013, 13:43
dime1
Выпустили новый тулбокс
http://blogs.esri.com/esri/arcgis/2013/ ... tal-tools/

Erase Raster Values

Have you ever wanted to just replace certain cells in a raster without having to go through a sequence of Con, SetNull and other operations? With the new Erase Raster Values tool, you can simply provide an input (feature or raster) that defines the areas of cells you want to change, and then specify if you want those cells to become NoData or some other value in the output raster.

Re: Как вручную править значения пикселей растра?

Добавлено: 17 сен 2013, 12:37
dime1
Инструмент Erase Raster Values - не очень... Он, как обычно "раздувает" растр в 2 раза (32bit floating point). Потому моя инструкция все еще в силе. Иногда, другие инструменты не принимают растры более 1Gb.
Единственное, что нужно получать nodata value минусовым, а то при экспорте закладки, она может стать 16bit unsigned (потому что формат поддерживает значения от 0 до 65,535) и мозаика не получиться, т.к. SRTM-растр в формате 16 bit signed (– 32,768 до 32,767).