среда, 3 октября 2018 г.

Показ гарей и очагов по Landsat-8

Продолжая тему, начатую в заметке Как увидеть из космоса через облака то, чего уже нет, поставим следующую задачу: показать растровое изображение, на котором красным будут пикселы активного горения и остальное - черно-белое с показом гарей. Общий смысл - визуально дешифрировать очаги и идентифицировать отношение между точками активного горения и их примерное направление движения.

Возьмем тот же снимок Landsat-8, с несколькими пожарами под облачностью.


По нему надо определиться с формированием опорной информации. На снимке надо кликнуть мышкой для увеличения. Далее полагаем что работа выполняется в Image Media Center.

Во-первых, это очаги активного горения. Их выделим индексом на каналах NIR и SWIR. Каналы отличаются по своей физике степенью собственного теплового излучения. Формула определения пикселов активного горения по индексу на каналах соответственно b6 и b7:
(b7-b6)/(b7+b6)>0.18
Во-вторых, это черно-белое изображение индекса гарей на каналах ультрафиолета и ближнего ИК, соответственно это каналы b1 и b5.
(b1-b5)/(b1+b5)
Этот индекс дает диапазон значений от -1 до 1. Поэтому для формирования выходного набора каналов также заказываем каналы с типом значения double с диапазоном от -1 до 1.

Для получения красного пиксела активного горения мы должны в красном канале поставить значение 1, а в синем и зеленом соответственно -1, поскольку именно -1 будет минимальным, а 1 максимальным. Для остальных пискелов, не соответствующих активному горению, мы берем равные яркости для красного, синего и зеленого каналов.

Поскольку формирование синего и зеленого канала у нас ничем не отличается, мы сделаем лишь два канала - один для красного цвета и один и для синего и зеленого и для этих цветовых каналов укажем один и тот же канал растра.

Формула формирования красного канала:
((b7-b6)/(b7+b6)>0.18)*1+not((b7-b6)/(b7+b6)>0.18)*(b1-b5)/(b1+b5)
Формула формирования канала для синего и зеленого цвета:
((b7-b6)/(b7+b6)>0.18)*(-1)+not((b7-b6)/(b7+b6)>0.18)*(b1-b5)/(b1+b5)
Здесь используется факт, что логические функции в калькуляторе каналов возвращают значение 0 или 1, которое мы используем в арифметических операциях.

Сгенерировав оба канала и указав их в качестве соответственно красного, синего и зеленого, получим то что надо было - черно-белое изображение гарей с красной подсветкой точек активного горения:
Здесь уже явно видно какие очаги горения являются частью большого пожара и примерно куда они движутся. Общее условное дешифрирование может выглядеть например так:
Здесь я условно обозначил примерное возможное направление движения огня. Судя по направлению дымов, примерно туда же в основном ветер и раздувает границы горения.

Комментариев нет:

Отправить комментарий