Корректное преобразование мультиспектральных растров в RGB с настроенной гистограммой
Экспорт мультиспектральных растров в RGB
Как известно, в большинстве случаев растры спутниковых снимков в локальных ГИС мы просматриваем в режиме улучшения контраста путем растяжки гистограммы. ArcGIS, например, растягивает гистограмму по умолчанию, другие ГИС всегда имеют такую опцию.
Если же растр открывать в графическом редакторе (просмотровщике), то видеть мы будем совершенно иную картину, так как при этом не происходит автоматического изменения контраста.
Спутниковый снимок ETM+ (устье р. Анабар, Якутия, каналы 5-4-3) без растяжки гистограммы (вверху) и с растяжкой гистограммы на основе расчета стандартного отклонения значений отображаемых каналов растра (внизу)
При подготовке спутниковой съемки для публикации в WEB возникла задача сохранения снимка в формате обычного RGB-растра. Такая же задача возникает часто и для подготовки сников для просмотра вне ГИС-программ, но публикация в WEB имеет определенную специфику - необходимо корректное сохранение значений NoData, чтобы они, соответственно, могли быть сделаны невидимыми.
В ArcGIS имеется специальный инструмент для сохранения растра, загруженного в проект в виде отображаемого RGB - щёлкнув правой кнопкой на нужном растровом слое в TOC, и выбираем "Экспорт данных". В открывшемся диалоговом окне выбираем "Использовать метод отображения" "RGB"
Однако, как выяснилось, не все так просто как кажется - ряд НЕНУЛЕВЫХ значений экспортируемого растра после такого экспорта "сваливается" в NODATA, так что просмотр такого растра с отключенными значениями NODATA по крайней мере не эстетичен - водоемы уходят в "провал".
При помощи инструмента "Инспектор пикселов", имеющегося в ArcGIS, удалось установить причину явления и устранить ее.
Выводим на панель инструментов инструмент "Инспектор пикселов" - "Панели инструментов-Настройка-Команды-Растр" - вытягиваем обе кнопки на любую панель инструментов.
При использовании инструмента слева от TOC появится таблица со значениями каналов растра, а сам курсор примет вид "палетки". Идем в район, где у нас "провалились" значения и смотрим, переключаясь между вкладками истинные и отображаемые в RGB с учетом растяжки значения видимых на экране каналов растра, и видим, что при растяжке гистограммы методом стандартного отклонения наиболее низкие значения каналов "срезались" в 0. А отключение фона в ArcGIS происходит не по отображаемым, а по исходным значениям каналов растра, поэтому мы и не видим этих провалов в отображении.
Избежать этого, как выяснилось, можно очень просто. Идем в свойства изображения - символы - гистограма, при этом растяжка по среднеквадратичному отклонению включена, и видим, что часть значений (и значительная!) оказалась срезанной. Просто сдвигаем этот узел гистограммы влево до 0. Подтверждаем изменения и "Инспектором пикселов" смотрим значения RGB. Цветовая картина на мониторе изменится крайне незначительно для целей просто визуальной публикации.
Как видно из таблицы RGB-пикселов, теперь в районе "провала" полностью нулевых значений нет ни в одном пикселе.
Теперь экспорт произойдет корректно, и значения NODATA (0,0,0) в выходном растре будут только там, где действительно нет данных.
Правда, необходимо отметить, что, например, QGis значением NoData считает наличие значения "0" в ЛЮБОМ канале растра, поэтому, если просто выставить значение "Нет данных" как 0 - станут прозрачны пикселы, в которых есть 0 хотя бы в одном канале, а потому в этом поле настройкипрозрачности изображения надо оставить то значение, что есть, а выставить нули в значения всех 3 каналов - тогда отображение будет корректным.
Автор благодарит Д.Барышникова (Bishop) за указание правильного направления решения проблемы.