主要内容

sharc

使用卫星超立方大气快速校正(SHARC)进行大气校正

描述

例子

newhcube= sharc (hcube通过从输入的高光谱数据中计算表面辐亮度或表面反射率值,返回经过大气校正的数据立方体。该函数实现了SHARC算法对大气校正高光谱数据的计算。

输入必须是经辐射校正的高光谱数据。输入数据立方体的像素值必须是大气(TOA)亮度或TOA反射率的顶部值。为了得到更好的结果,使用TOA反射率值。

请注意

此函数需要图像处理工具箱™高光谱成像库.您可以安装图像处理工具箱高光谱成像库从Add-On Explorer。有关安装插件的更多信息,请参见获取和管理插件

例子

newhcube= sharc (hcube名称,值还使用一个或多个名称-值对参数指定选项。使用此语法为SHARC设置参数值。

例子

全部折叠

将高光谱数据立方体读入工作空间。

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

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

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

从数据立方体中删除坏的光谱带。

input = removeBands(input,“BandNumber”, bandNumber);

方法将数字转换为亮度值dn2radiance函数。

Hcube = dn2radiance(输入);

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

hcube = radiance2反射率(hcube);

计算大气校正数据使用sharc函数。

Newhcube = sharc(hcube);

估计输入的RGB图像和大气校正输出数据。通过应用对比度拉伸来增加图像对比度。

inputImg = colorize(hcube,“方法”“rgb”“ContrastStretching”,真正的);outputImg = colorize(newhcube,“方法”“rgb”“ContrastStretching”,真正的);

显示输入的对比拉伸RGB图像和大气校正输出数据。

图(“位置”,[0 0 700 400]) subplot(“位置”,[0.1 0 0.3 0.9]) imagesc(inputImg) title(“输入辐射校正图像”)轴次要情节(“位置”,[0.5 0 0.3 0.9]) imagesc(outputImg)轴标题(“输出经大气校正的图像”

图中包含2个轴对象。标题为Input radiometric calibration Image的axis对象1包含一个类型为Image的对象。标题为Output atmoically Corrected Image的Axes对象2包含一个类型为Image的对象。

将高光谱数据立方体读入工作空间。

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

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

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

从数据立方体中删除坏的光谱带。

input = removeBands(input,“BandNumber”, bandNumber);

方法将数字转换为亮度值dn2radiance函数。

Hcube = dn2radiance(输入);

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

hcube = radiance2反射率(hcube);

计算大气校正数据使用sharc函数。指定用于计算邻接效应和初始大气参数的暗像素位置。深色像素的选择影响大气校正结果。

Newhcube = sharc(hcube,“DarkPixelLocation”, 217年[7]);

估计输入的RGB图像和大气校正输出数据。通过应用对比度拉伸来增加图像对比度。

inputImg = colorize(hcube,“方法”“rgb”“ContrastStretching”,真正的);outputImg = colorize(newhcube,“方法”“rgb”“ContrastStretching”,真正的);

显示输入的对比拉伸RGB图像和大气校正输出数据。

图(“位置”,[0 0 700 400]) subplot(“位置”,[0.1 0 0.3 0.9]) imagesc(inputImg) title(“输入辐射校正图像”)轴次要情节(“位置”,[0.5 0 0.3 0.9]) imagesc(outputImg)轴标题(“输出经大气校正的图像”

图中包含2个轴对象。标题为Input radiometric calibration Image的axis对象1包含一个类型为Image的对象。标题为Output atmoically Corrected Image的Axes对象2包含一个类型为Image的对象。

输入参数

全部折叠

输入高光谱数据,指定为a超立方体对象。的DataCube的属性超立方体对象包含高光谱数据立方体。数据立方体的像素值必须表示TOA辐亮度或TOA反射率值。

如果像素值是数字,则使用dn2radiance而且dn2reflectance分别计算TOA辐亮度和反射率值的函数。你也可以使用radiance2Reflectance函数,可直接由亮度值计算TOA反射率值。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:(“AtmosphericModel”、“热带”)

大气模型,用于计算全大气的光学厚度,指定为逗号分隔对,由“AtmosphericModel”其中一个价值观是:

  • 1962年美国标准-在较宽的温度和压力范围内为地球大气定义的标准大气参数。这是一个通用模型,可用于对不同纬度和季节获得的高光谱数据进行大气校正。

  • “热带”-热带地区的大气参数。热带的纬度范围为[-23°45',23°45']。如果高光谱数据来自热带地区,则使用该模型。

  • “中间纬度夏天”-夏季中纬度地区的大气参数。中纬度区域的纬度范围为[23°45',66°55']和[-66°55',-23°45']。如果夏季从中纬度地区收集高光谱数据,则使用该模式。您可以从存储为的获取日期确定季节AcquistionTime在元数据中。

  • “中间纬度冬天”-冬季中纬度地区的大气参数。中纬度区域的纬度范围为[23°45',66°55']和[-66°55',23°45']。如果冬季在中纬度地区收集高光谱数据,则使用该模型。您可以从存储为的获取日期确定季节AcquistionTime在元数据中。

  • “靠近北极的夏天”-夏季亚北极地区的大气参数。亚北极地区的纬度范围为[66°55',90°]和[-90°,-66°55']度。如果夏季在亚北极地区收集高光谱数据,则使用该模型。您可以从存储为的获取日期确定季节AcquistionTime在元数据中。

  • “靠近北极的冬天”-冬季亚北极地区的大气参数。亚北极地区的纬度范围为[66°55',90°]和[-90°,-66°55']度。如果冬季在亚北极地区收集高光谱数据,则使用该模型。您可以从存储为的获取日期确定季节AcquistionTime在元数据中。

暗像素的位置,指定为逗号分隔的对“DarkPixelLocation”一个1 × 2向量的形式是[xy]。x而且y是要从蓝绿色带中选择的暗像素的空间坐标。深色像素的TOA反射率值最低,而深色像素的TOA反射率值最低sharc函数用它来计算表面的光谱照度。

默认情况下,sharc函数选择蓝绿带值最小的像素作为暗像素。通常蓝绿色波段的波长范围(以微米为单位)是[0.45,0.57]。蓝绿色波段的TOA反射率受大气雾霾影响最大。因此,一般选择蓝绿色波段的深色像素作为估算大气对高光谱数据影响的候选像素。

用于计算邻接效应的窗口大小,指定为逗号分隔的对,由“AdjacencyWindow”和一个正整数标量。该值表示以暗像素为中心的窗口的大小。的sharc函数使用位于此窗口内的所有像素来估计邻接效果。

窗口大小必须小于输入高光谱数据立方体的空间维数。

输出参数

全部折叠

经大气校正的数据,返回为超立方体对象。的DataCube的属性超立方体对象包含高光谱数据立方体。输出数据立方体的像素值是取决于输入的表面辐亮度或表面反射率值。

  • 如果输入数据立方体的像素值是TOA辐射度,则在输出的大气校正数据的像素值是表面辐亮度值。

  • 如果输入数据立方体的像素值是TOA反射率,则大气校正的输出数据的像素值包含地表反射率值。

参考文献

Katkovsky, Leonid, Anton Martinov, Volha siiliuk, Dimitry Ivanov和Alexander Kokhanovsky。高光谱数据的快速大气校正方法。遥感10,不。11(2018年10月28日):1698。https://doi.org/10.3390/rs10111698。

版本历史

在R2020b中引入