Статистика индексного растра
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Статистика индексного растра
Вопрос - чем посчитать статистику пикселей в индексном растре. Растр - результат классификации 16 бит, 1 канал, формат Geotiff. Надо узнать каких пикселей сколько. Причем узнать точно по номеру цвета. Предпочтительно из командной строки.
Все, что удалось найти, пытается строить гистограмму и распределение, которые не имеют в этом случае практического смысла.
Все, что удалось найти, пытается строить гистограмму и распределение, которые не имеют в этом случае практического смысла.
-
- Гуру
- Сообщения: 2627
- Зарегистрирован: 29 мар 2007, 14:12
- Репутация: 34
- Откуда: Ukraine
Re: Статистика индексного растра
Вот это не подойдет?
-
- Гуру
- Сообщения: 4170
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Статистика индексного растра
традиионно предлагаю использовать R, который вызвать из командной строки (без GUI, там и такое есть). А скрипт для R сгененрировать с помощью echo или ПитонаBoris писал(а):Вопрос - чем посчитать статистику пикселей в индексном растре. Растр - результат классификации 16 бит, 1 канал, формат Geotiff. Надо узнать каких пикселей сколько. Причем узнать точно по номеру цвета. Предпочтительно из командной строки.

либо скрипт заготовить, а имена файлов использовать фиксированные или читать их из файла.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Статистика индексного растра
gamm, куском действующего кода не поделитесь? Многим бы пригодилось.. На примере этого вот изображения, например (сорри за тафтологиюgamm писал(а): традиционно предлагаю использовать R

Последний раз редактировалось Александр Мурый 25 сен 2011, 20:40, всего редактировалось 1 раз.
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Статистика индексного растра
Кстати, в GRASS для таких подсчётов есть спец. модуль r.report. Считает в разных единицах площади, а также кол-во пикселей и процент.
Для упомянутого выше изображения получилось: 69.35% белого, 30.65% чёрного (что подтверждает результаты IM).
Для упомянутого выше изображения получилось: 69.35% белого, 30.65% чёрного (что подтверждает результаты IM).
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Статистика индексного растра
А точно подходит? Потому как в статье сказано про бинарный растр. Но я все же попробовал и до вопроса, и после совета. Вот результат:Voltron писал(а):Вот это не подойдет?
PS
7694316: ( 0, 0, 0) #000000000000 black
9200148: ( 257, 257, 257) #010101010101 rgb(1,1,1)
Повторная проверка показала - не понят растр 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>


-
- Гуру
- Сообщения: 4170
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Статистика индексного растра
куском, который читает растр, и делает из него таблицу, я уже делился. Осталось напечатаь таблицу, код простойamuriy писал(а):gamm, куском действующего кода не поделитесь? Многим бы пригодилось.. На примере этого вот изображения, например (сорри за тафтологию)

print(table(p$Ch1))
предполагается, что растр загружен в data.frame p, и Ch1 - имя столбца с данными.
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Статистика индексного растра
IM бывает q8 и q16, второй, по идее, должен выдавать все как надо. (не могу проверить - у меня q8, а сносить-ставить не хочется).
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя