sharc

Выполните атмосферную коррекцию с помощью спутникового гиперкуба атмосферной быстрой коррекции (SHARC)

Описание

пример

newhcube = sharc(hcube) возвращает атмосферно куб исправленных данных путем вычисления поверхностного сияния или поверхностных значений коэффициента отражения от входа гиперспектральные данные. Функция реализует алгоритм SHARC, чтобы вычислить атмосферно откорректированные гиперспектральные данные.

Вход должен быть радиометрическим образом откорректирован гиперспектральные данные. Пиксельные значения куба входных данных должны быть или сиянием верхней части атмосферы (TOA) или значениями коэффициента отражения TOA. Для лучших результатов используйте значения коэффициента отражения TOA.

Примечание

Эта функция требует Image Processing Toolbox™ Гиперспектральная Библиотека Обработки изображений. Можно установить Image Processing Toolbox Гиперспектральная Библиотека Обработки изображений из Add-On Explorer. Для получения дополнительной информации об установке дополнений, смотрите, Получают и Управляют Дополнениями.

пример

newhcube = sharc(hcube,Name,Value) также задает опции с помощью одного или нескольких аргументов пары "имя-значение". Используйте этот синтаксис, чтобы установить значения параметров для SHARC.

Примеры

свернуть все

Считайте гиперспектральный куб данных в рабочую область.

input = hypercube('EO1H0440342002212110PY_cropped.dat');

Определите плохие числа диапазона с помощью BadBands параметр в метаданных.

bandNumber = find(~input.Metadata.BadBands);

Удалите плохие диапазоны из куба данных.

input = removeBands(input,'BandNumber',bandNumber);

Преобразуйте цифровые числа в значения сияния при помощи dn2radiance функция.

hcube = dn2radiance(input);

Преобразуйте значения сияния в значения коэффициента отражения при помощи radiance2Reflectance функция.

hcube = radiance2Reflectance(hcube);

Вычислите атмосферно исправленные данные при помощи sharc функция.

newhcube = sharc(hcube);

Оцените изображения RGB входа и атмосферно откорректированных выходных данных. Увеличьте контрастность изображений путем применения контрастного протяжения.

inputImg = colorize(hcube,'Method','rgb','ContrastStretching',true);
outputImg = colorize(newhcube,'Method','rgb','ContrastStretching',true);

Отобразите расширенные от контраста изображения RGB входа и атмосферно откорректированных выходных данных.

figure('Position',[0 0 700 400])
subplot('Position',[0.1 0 0.3 0.9])
imagesc(inputImg)
title('Input Radiometrically Calibrated Image')
axis off
subplot('Position',[0.5 0 0.3 0.9])
imagesc(outputImg)
axis off
title('Output Atmospherically Corrected Image')

Figure contains 2 axes objects. Axes object 1 with title Input Radiometrically Calibrated Image contains an object of type image. Axes object 2 with title Output Atmospherically Corrected Image contains an object of type image.

Считайте гиперспектральный куб данных в рабочую область.

input = hypercube('EO1H0440342002212110PY_cropped.dat');

Определите плохие числа диапазона с помощью BadBands параметр в метаданных.

bandNumber = find(~input.Metadata.BadBands);

Удалите плохие диапазоны из куба данных.

input = removeBands(input,'BandNumber',bandNumber);

Преобразуйте цифровые числа в значения сияния при помощи dn2radiance функция.

hcube = dn2radiance(input);

Преобразуйте значения сияния в значения коэффициента отражения при помощи radiance2Reflectance функция.

hcube = radiance2Reflectance(hcube);

Вычислите атмосферно исправленные данные при помощи sharc функция. Задайте темное пиксельное местоположение для вычисления эффекта смежности и начальных атмосферных параметров. Выбор темного пикселя влияет на атмосферные результаты коррекции.

newhcube = sharc(hcube,'DarkPixelLocation',[217 7]);

Оцените изображения RGB входа и атмосферно откорректированных выходных данных. Увеличьте контрастность изображений путем применения контрастного протяжения.

inputImg = colorize(hcube,'Method','rgb','ContrastStretching',true);
outputImg = colorize(newhcube,'Method','rgb','ContrastStretching',true);

Отобразите расширенные от контраста изображения RGB входа и атмосферно откорректированных выходных данных.

figure('Position',[0 0 700 400])
subplot('Position',[0.1 0 0.3 0.9])
imagesc(inputImg)
title('Input Radiometrically Calibrated Image')
axis off
subplot('Position',[0.5 0 0.3 0.9])
imagesc(outputImg)
axis off
title('Output Atmospherically Corrected Image')

Figure contains 2 axes objects. Axes object 1 with title Input Radiometrically Calibrated Image contains an object of type image. Axes object 2 with title Output Atmospherically Corrected Image contains an object of type image.

Входные параметры

свернуть все

Введите гиперспектральные данные в виде hypercube объект. DataCube свойство hypercube объект содержит гиперспектральный куб данных. Пиксельные значения куба данных должны показать или сияние TOA или значения коэффициента отражения TOA.

Если пиксельные значения являются цифровыми числами, используйте dn2radiance и dn2reflectance функции для вычисления сияния TOA и значений коэффициента отражения, соответственно. Можно также использовать radiance2Reflectance функция для непосредственно вычислительных значений коэффициента отражения TOA от значений сияния.

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: ('AtmosphericModel','Tropical')

Атмосферная модель для вычисления оптической толщины общей атмосферы в виде разделенной запятой пары, состоящей из 'AtmosphericModel' и одно из этих значений:

  • '1962 US Standard' — Стандартные атмосферные параметры, которые заданы для атмосферы Земли по широкому спектру температуры и давления. Это - типовая модель и может использоваться для атмосферной коррекции гиперспектральных данных, полученных в различных широтах и сезоны.

  • 'Tropical' — Атмосферные параметры областей в тропической зоне. Область значений широты тропической зоны - [-23 ° 45', 23 ° 45']. Используйте эту модель, если гиперспектральные данные собраны от тропической зоны.

  • 'Midlatitude Summer' — Атмосферные параметры областей в midlatitude зоне в течение летнего сезона. Области значений широты для midlatitude зон - [23 ° 45', 66 ° 55'] и [-66 ° 55',-23 ° 45']. Используйте эту модель, если гиперспектральные данные собраны от середины зон широты в течение лета. Можно определить сезон из даты захвата, сохраненной как AcquistionTime в метаданных.

  • 'Midlatitude Winter' — Атмосферные параметры областей в midlatitude зоне в течение зимнего сезона. Области значений широты для midlatitude зон - [23 ° 45', 66 ° 55'] и [-66 ° 55', 23 ° 45']. Используйте эту модель, если гиперспектральные данные собраны от середины зон широты в течение зимы. Можно определить сезон из даты захвата, сохраненной как AcquistionTime в метаданных.

  • 'Subarctic Summer' — Атмосферные параметры областей в субарктической зоне в течение летнего сезона. Области значений широты для субарктических зон - [66 ° 55', 90 °] и [-90 °,-66 ° 55'] степени. Используйте эту модель, если гиперспектральные данные собраны от субарктических зон в течение лета. Можно определить сезон из даты захвата, сохраненной как AcquistionTime в метаданных.

  • 'Subarctic Winter' — Атмосферные параметры областей в субарктической зоне в течение зимнего сезона. Области значений широты для субарктических зон - [66 ° 55', 90 °] и [-90 °,-66 ° 55'] степени. Используйте эту модель, если гиперспектральные данные собраны от субарктических зон в течение зимы. Можно определить сезон из даты захвата, сохраненной как AcquistionTime в метаданных.

Местоположение темного пикселя в виде разделенной запятой пары, состоящей из 'DarkPixelLocation' и вектор 1 на 2 формы [x y]. x и y являются пространственными координатами темного пикселя, который будет выбран от синего неопытного работника. Темный пиксель имеет самое низкое значение коэффициента отражения TOA и sharc функционируйте использует его для вычисления спектральной освещенности поверхности.

По умолчанию, sharc функция выбирает пиксель с минимальным значением синего неопытного работника как темный пиксель. Обычно область значений длины волны (в микрометрах) для синего неопытного работника [0.45, 0.57]. Значения коэффициента отражения TOA в синем неопытном работнике больше всего затронуты атмосферным туманом. Следовательно, темный пиксель от синего неопытного работника обычно выбирается как пиксель кандидата для оценки атмосферных эффектов на гиперспектральных данных.

Размер окна для вычисления эффекта смежности в виде разделенной запятой пары, состоящей из 'AdjacencyWindow' и положительный целочисленный скаляр. Значение показывает размер окна, сосредоточенного вокруг темного пикселя. sharc функционируйте использует все пиксели, которые лежат в этом окне для оценки эффекта смежности.

Размер окна должен быть меньше пространственной размерности входа гиперспектральный куб данных.

Выходные аргументы

свернуть все

Атмосферно исправленные данные, возвращенные как hypercube объект. DataCube свойство hypercube объект содержит гиперспектральный куб данных. Пиксельные значения куба выходных данных являются поверхностным сиянием или поверхностными значениями коэффициента отражения в зависимости от входа.

  • Если пиксельные значения куба входных данных являются сияниями TOA, пиксельные значения атмосферно исправленных данных при выходе являются поверхностными значениями сияния.

  • Если пиксельные значения куба входных данных являются коэффициентами отражения TOA, пиксельные значения атмосферно исправленных данных при выходе содержит поверхностные значения коэффициента отражения.

Ссылки

[1] Katkovsky, Леонид, Антон Мартинов, Volha Siliuk, Димитрий Иванов и Александр Кохановский. “Быстро Атмосферный Метод Коррекции для Гиперспектральных Данных”. Дистанционное зондирование 10, № 11 (28 октября 2018): 1698. https://doi.org/10.3390/rs10111698.

Смотрите также

| |

Введенный в R2020b