exponenta event banner

dn2reflectance

Преобразование цифрового номера в коэффициент отражения

Описание

пример

newhcube = dn2reflectance(hcube) преобразует значения пикселей гиперспектрального куба данных из цифрового номера (DN) в значения отражательной способности. Функция возвращает новый hypercube объект и пиксельные значения куба данных являются верхними значениями отражательной способности атмосферы (TOA). Дополнительные сведения о значениях отражательной способности TOA см. в разделе Вычисление значений отражательной способности TOA из DN.

newhcube = dn2reflectance(hcube,'BlockSize',blocksize) задает размер блока для обработки блока гиперспектрального куба данных с помощью аргумента пары имя-значение 'BlockSize'.

Функция делит входное изображение на отдельные блоки, обрабатывает каждый блок, а затем объединяет обработанные выходные данные каждого блока для формирования выходной матрицы. Гиперспектральные изображения - это многомерные наборы данных, которые могут быть слишком большими, чтобы поместиться в системную память целиком. Это может привести к нехватке памяти во время работы dn2reflectance функция. Если возникает такая проблема, выполните обработку блоков с помощью этого синтаксиса.

Например, dn2reflectance(hcube,'BlockSize',[50 50]) делит входное изображение на неперекрывающиеся блоки размером 50 на 50 и затем вычисляет значения отражательной способности для пикселей в каждом блоке.

Примечание

Выполнение обработки блоков путем указания 'BlockSize' аргумент пары имя-значение, необходимо иметь R2021a MATLAB или более позднюю версию.

Примечание

Для выполнения этой функции требуется библиотека гиперспектральных изображений Toolbox™ обработки изображений. Можно установить библиотеку гиперспектральных изображений панели инструментов обработки изображений из проводника надстроек. Дополнительные сведения об установке надстроек см. в разделе Получение надстроек и управление ими.

Примеры

свернуть все

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

hcube = hypercube('EO1H0440342002212110PY_cropped.hdr');

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

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

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

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

Преобразование цифровых чисел в отражательную способность верхней части атмосферы (TOA). Значения пикселей в кубе выходных данных являются отражениями ТОА.

newhcube = dn2reflectance(hcube);

Считывание и отображение 80-го изображения спектральной полосы во входном и выходном кубах данных отражения.

inputBand = hcube.DataCube;
reflectanceBand = newhcube.DataCube;
band = 80;
figure
subplot(1,2,1)
imagesc(inputBand(:,:,band))
title('Input Band')
axis off
subplot(1,2,2)
imagesc(reflectanceBand(:,:,band))
title('Reflectance Band')
axis off
colormap gray   

Figure contains 2 axes. Axes 1 with title Input Band contains an object of type image. Axes 2 with title Reflectance Band contains an object of type image.

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

свернуть все

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

Размер блоков данных, определяемый как 2-элементный вектор положительных целых чисел. Элементы вектора соответствуют количеству строк и столбцов в каждом блоке соответственно. Размер блоков данных должен быть меньше размера входного изображения. Разделение гиперспектральных изображений на меньшие блоки позволяет обрабатывать большие наборы данных без нехватки памяти.

  • Если blocksize значение слишком мало, использование памяти функции уменьшается за счет увеличения времени выполнения.

  • Если blocksize значение велико или равно размеру входного изображения, время выполнения уменьшается за счет увеличения использования памяти.

Пример: 'BlockSize',[20 20] задает размер каждого блока данных 20 на 20.

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

свернуть все

Вывод гиперспектральных данных, возвращаемых в виде hypercube объект. Значения пикселей куба данных, возвращаемые на выходе, определяют значения отражательной способности верхней части атмосферы (TOA).

Подробнее

свернуть все

Вычисление значений отражательной способности TOA из DN

Учитывая цифровое число (DN), коэффициент отражения ТОА вычисляется с использованием коэффициента усиления отражения (RGain) и сдвига отражения (ROffset) каждого спектрального диапазона в кубе данных.

Отражательная способность λ = (DN × RGain) + ROffset

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

Альтернативно, значения коэффициента отражения ТОА могут быть оценены по цифровым числам (DN) с использованием этих двух этапов:

  1. Вычислите значения излучения по цифровому номеру (DN).

    Яркость = (DN × коэффициент усиления) + смещение

    Gainλ и Biasλ являются значениями коэффициента усиления и смещения для каждой спектральной полосы (λ) соответственно. Metadata имущество hypercube объект содержит значения коэффициента усиления и смещения.

  2. Вычислите значения отражения ТОА на основе значений излучения.

    Отражательная способность λ = πd2LλESUNλ

    d - расстояние земного солнца в астрономических единицах, ESUNλ - средняя освещенность солнечного излучения для каждого диапазона, и θE - угол возвышения солнца.

Представлен в R2020b