主要内容

radiance2Reflectance

将辐亮度转换为反射率

描述

例子

newhcube= radiance2Reflectance (hcube将高光谱数据立方体的像素值从辐亮度转换为反射率值。函数返回一个new超立方体物体和数据立方体的像素值代表大气顶(TOA)反射率。有关更多信息,请参见TOA反射

newhcube= radiance2Reflectance (hcube“BlockSize”,blocksize通过使用名称-值对参数指定用于高光谱数据立方体的块处理的块大小“BlockSize”

该函数将输入图像分成不同的块,对每个块进行处理,然后将每个块的处理后的输出连接起来,形成输出矩阵。高光谱图像是多维数据集,可能太大而无法放入整个系统内存中。这可能会导致系统在运行radiance2Reflectance函数。如果遇到这样的问题,请使用此语法执行块处理。

例如,radiance2Reflectance (hcube BlockSize, [50 50])将输入图像分成大小为50 × 50的非重叠块,然后计算每个块中像素的反射率值。

请注意

来执行块处理“BlockSize”名称-值对参数,必须有MATLAB®R2021a或更高版本。

请注意

此函数需要图像处理工具箱™高光谱成像库.你可以安装图像处理工具箱高光谱成像库从附加的探险家。有关安装附加组件的详细信息,请参见获取和管理附加组件

例子

全部折叠

读取高光谱数据到工作区。

输入=超立方体(“EO1H0440342002212110PY_cropped.hdr”);

确定坏光谱频带数使用BadBands参数。

bandNumber =找到(~ input.Metadata.BadBands);

从数据立方体中去除坏的光谱波段。

输入= removeBands(输入,“BandNumber”, bandNumber);

将数字转换为辐射值使用dn2radiance函数。

hcube = dn2radiance(输入);

将辐亮度值转换为反射率值radiance2Reflectance函数。

newhcube = radiance2Reflectance (hcube);

读取并显示输入辐亮度和输出反射率数据中的第80个光谱波段。

radianceBand = hcube.DataCube;reflectanceBand = newhcube.DataCube;乐队= 80;图subplot(1,2,1) imagesc(radianceBand(:,:,band))轴标题(“光辉乐队”) subplot(1,2,2) imagesc(reflectanceBand(:,:,band))“反射带”) colormap(灰色)轴

图中包含2个轴对象。轴对象1的标题为亮度带包含一个类型为图像的对象。标题为“反射带”的轴对象2包含一个类型为image的对象。

输入参数

全部折叠

输入高光谱数据,指定为超立方体对象。的DataCube财产的超立方体对象存储高光谱数据立方体。数据立方体的像素值必须是辐亮度值,指定被成像表面的辐射量。您可以转换像素值在数字数字到辐射值使用dn2radiance函数。

数据块的大小,指定为正整数的2元素向量。向量中的元素分别对应于每个块中的行数和列数。数据块的大小必须小于输入图像的大小。将高光谱图像分割成更小的块,可以在不耗尽内存的情况下处理大数据集。

  • 如果blocksize值太小,函数的内存使用量会减少,但执行时间会增加。

  • 如果blocksize值较大或等于输入图像大小,则执行时间减少,但增加内存使用为代价。

例子:“BlockSize”,[20]20指定每个数据块的大小为20x20。

输出参数

全部折叠

输出高光谱数据,返回为超立方体对象。输出数据立方体中的像素值为top of atmosphere (TOA)反射率值。

更多关于

全部折叠

TOA反射

TOA反射率值指定了被地表反射的辐射与入射到地表的辐射的比例。

反射 ρ λ π d 2 l λ E 年代 U N λ θ E

d为地日距离,单位为天文单位,丰德丽λ是每个光谱波段的平均太阳辐照度,和θE为太阳仰角。

lλ为光谱辐亮度计算为:

光辉L λ D N × G 一个 n + B 一个 年代

获得偏见分别为每个光谱波段的增益和偏移值。的元数据的属性超立方体对象包含增益和偏移值。

介绍了R2020b