Статистика индексного растра

Вопросы по нескольким пакетам сразу, или вопросы, которые непонятно к какой ГИС отнести
Ответить
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Статистика индексного растра

Сообщение Boris » 25 сен 2011, 19:19

Вопрос - чем посчитать статистику пикселей в индексном растре. Растр - результат классификации 16 бит, 1 канал, формат Geotiff. Надо узнать каких пикселей сколько. Причем узнать точно по номеру цвета. Предпочтительно из командной строки.
Все, что удалось найти, пытается строить гистограмму и распределение, которые не имеют в этом случае практического смысла.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Статистика индексного растра

Сообщение Voltron » 25 сен 2011, 19:37

Вот это не подойдет?

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

Re: Статистика индексного растра

Сообщение gamm » 25 сен 2011, 19:54

Boris писал(а):Вопрос - чем посчитать статистику пикселей в индексном растре. Растр - результат классификации 16 бит, 1 канал, формат Geotiff. Надо узнать каких пикселей сколько. Причем узнать точно по номеру цвета. Предпочтительно из командной строки.
традиионно предлагаю использовать R, который вызвать из командной строки (без GUI, там и такое есть). А скрипт для R сгененрировать с помощью echo или Питона :-)

либо скрипт заготовить, а имена файлов использовать фиксированные или читать их из файла.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: Статистика индексного растра

Сообщение Александр Мурый » 25 сен 2011, 20:17

gamm писал(а): традиционно предлагаю использовать R
gamm, куском действующего кода не поделитесь? Многим бы пригодилось.. На примере этого вот изображения, например (сорри за тафтологию :))
Последний раз редактировалось Александр Мурый 25 сен 2011, 20:40, всего редактировалось 1 раз.
Редактор материалов, модератор форума

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: Статистика индексного растра

Сообщение Александр Мурый » 25 сен 2011, 20:39

Кстати, в GRASS для таких подсчётов есть спец. модуль r.report. Считает в разных единицах площади, а также кол-во пикселей и процент.
Для упомянутого выше изображения получилось: 69.35% белого, 30.65% чёрного (что подтверждает результаты IM).
Редактор материалов, модератор форума

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Статистика индексного растра

Сообщение Boris » 26 сен 2011, 04:46

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

7694316: ( 0, 0, 0) #000000000000 black
9200148: ( 257, 257, 257) #010101010101 rgb(1,1,1)
PS
Повторная проверка показала - не понят растр Int16. 8-битный растр прочитан и почти правильно выведен. Единственно, что он, как и результате выше, распознан как RGB - 3 одинаковых значения на цвет. Хотя проверяемый растр в один канал.
PPS
Если уж дело опять дойдет до скриптов, то один из результатов gdalinfo выдает таблицу в 256(?) значений:
<PAMDataset>
<PAMRasterBand band="1">
<Histograms>
<HistItem>
<HistMin>-0.56640625</HistMin>
<HistMax>290.56640625</HistMax>
<BucketCount>256</BucketCount>
<IncludeOutOfRange>1</IncludeOutOfRange>
<Approximate>0</Approximate>
<HistCounts>16468|7677848|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|2586240|2399|0|0|0|0|0|0|5232262|0|0|0|0|0|0|0|0|747096|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|402447|0|0|0|0|0|0|0|0|229704</HistCounts>
</HistItem>
</Histograms>
<Metadata>
<MDI key="STATISTICS_MINIMUM">0</MDI>
<MDI key="STATISTICS_MAXIMUM">290</MDI>
<MDI key="STATISTICS_MEAN">120.69077526844</MDI>
<MDI key="STATISTICS_STDDEV">111.20217906962</MDI>
</Metadata>
</PAMRasterBand>
</PAMDataset>
но задача то типичная... Опять скрипт писать :( на питоне :cry:

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

Re: Статистика индексного растра

Сообщение gamm » 26 сен 2011, 07:25

amuriy писал(а):gamm, куском действующего кода не поделитесь? Многим бы пригодилось.. На примере этого вот изображения, например (сорри за тафтологию :))
куском, который читает растр, и делает из него таблицу, я уже делился. Осталось напечатаь таблицу, код простой :-)

print(table(p$Ch1))

предполагается, что растр загружен в data.frame p, и Ch1 - имя столбца с данными.

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Статистика индексного растра

Сообщение ericsson » 26 сен 2011, 12:06

IM бывает q8 и q16, второй, по идее, должен выдавать все как надо. (не могу проверить - у меня q8, а сносить-ставить не хочется).

Ответить

Вернуться в «Общий - ПО»

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

Сейчас этот форум просматривают: Bing [Bot] и 1 гость