本文介绍基于ENVI软件,实现对Landsat 7遥感影像加以预处理与多种不同大气校正方法的操作。

1 数据导入与辐射定标

关于数据的下载,网络中相关资源很多,这里不再赘述。

在我们所获得的遥感影像原始数据中,每一个像素对应的像元值往往是未经明确量化、没有统一量纲的数据(DN值,即Digital Number);而当我们需要利用遥感影像的信息对地物属性进行分析时,则往往需要其辐射亮度值、反射率值等。因此,我们首先需要通过“辐射定标”操作实现上述数据之间的转换。

(1) 将图像压缩包(例如“LE71230392011231EDC00_RGF_21.rar”)解压缩;打开ENVI Classic 5.3(64-bit)软件,选择“File”→“Open Image File”,在弹出的文件选择窗口中分别选中压缩包中后缀名包含“B10”“B20”“B30”“B40”“B50”“B70”的六个“.tif”格式文件;点击“打开”。

(2) 选择“Basic Tools”→“Preprocessing”→“Calibration Utilities”→“Landsat Calibration”,在弹出的文件选择窗口中选择一个波段的图像。

(3) 在弹出的属性配置窗口中调整待定标卫星图像对应的传感器、数据获取日期、太阳高度角、对应波段数、电磁波类型(辐射或反射)、文件存储方式及地址等信息。其中,与卫星有关的信息可以由卫星图像的元数据信息中获取。

(4) 执行上述操作共六次,从而对压缩包中1、2、3、4、5、7六个波段的图像均进行辐射定标操作。

2 波段合成

如前所述,我们本次选用一幅完整遥感图像中1、2、3、4、5、7六个波段的图像进行分析操作,而上述定标操作后的结果是将各个波段的结果图像单独列出,并未连在一起;因此,为了使得后期分析时,我们可以获得一幅图像各个不同波段完整的变化曲线,我们需要对上述图像进行“波段合成”操作。

(1) 选择“Basic Tools”→“Layer Stacking”,在弹出的文件选择窗口中选择经过辐射定标后的六个波段的图像。

(2) 选择后,需要观察六幅图像在待合成文件列表中的排列顺序。由于后期我们需要对合成后的图像各个波段的信息进行折线图形式的分析操作,因此需要将待合成文件按照“中心波长值”由小至大的顺序排列。点击“Reorder Files”即可实现这一功能。

(3) 顺序排列完毕后,检查投影信息等无误后,点击“OK”即可开始合成操作。

3 编辑头文件

波段合成操作完毕后,所得结果图像中包含了原有六个波段的信息。但由于合成过程中,我们并未将每一个波段的信息“告诉”软件,因此合成后的图像中六个波段的中心波长值为默认数值(分别为“1”“2”……“6”)。为解决这一问题,我们需要手动为合成后的图像各个波段赋以其原有的波长数值。

(1) 在“Available Bands List”文件列表中右键选择波段合成后的结果文件,选择“Edit Header”功能。

(2) 选择“Edit Attributes”→“Wavelengths”,按照图像各个波段原有中心波长信息对合并后图像各个波段的波长信息进行修改,并注意将数据单位修改为“Micrometers”。

4 转换文件格式

由图可以看到,经过波段合成、编辑头文件后的结果图像“allbands”的数据存储格式为“BSQ”模式,而接下来所需要进行的大气校正中,FLAASH方法需要原始文件的数据存储结构为“BIP”或“BIL”模式,因此,我们需要对数据文件的存储格式加以转换。

(1) 选择“Basic Tools”→“Convert Data (BSQ,BIL,BIP)”,在弹出的文件选择窗口中选择经过波段合成、编辑头文件操作后的结果图像,点击“OK”。

5 QUAC快速大气校正

首先使用快速大气校正工具(QUAC)进行大气校正。这种校正方法将自动由图像中收集不同地物的波谱信息,从而获得相关经验值,以进行大气校正。值得注意的是,这一大气校正方法只可以对多光谱、高光谱图像进行处理。

QUAC快速大气校正对待处理文件数据单位、数据存储格式等并没有要求,即我们既可以使用通过上述步骤转换得来的“BIL”格式文件,亦可以使用转换前的“BSQ”格式文件。

(1) 选择“Basic Tools”→“Preprocessing”→“Calibration Utilities”→“Quick Atmospheric Correction”,在弹出的文件选择窗口中选择待处理图像文件,点击“OK”。

(2) 得到结果图像文件后,可在其上任意位置处右键,选择“Z Profile (Spectrum)”,即可查看图像中任意位置像元所对应的波谱信息;若同时打开多个窗口,则可在其中任意一个图像窗口中右键,选择“Geographic Link”,并将对应的窗口信息均调整为“ON”,即可实现同一区域的光谱信息多图像对比。下图即为经过QUAC快速大气校正后的图像与处理前图像的对比。具体对比结果将会在本文后半部分分析。

6 简化黑暗像元法大气校正

黑暗像元法基本原理为:假定待校正的遥感图像上存在黑暗像元区域,且地表为朗伯面反射、大气性质均一,则反射率或辐照亮度很小的黑暗像元由于受到大气的影响,使得这些像元的亮度值相对增加;可以认为这一部分的增加亮度是由于大气的影响造成的。在此基础上,若将全图像所有像元的亮度值都减去这一数值,得到的结果即为减少了大气影响的校正结果图像。这一方法十分简单,且其所获得的校正精度可以满足一般的遥感研究与实际应用。

(1) 选择“Basic Tools”→“Preprocessing”→“General Purpose Utilities”→“Dark Subtract”,在弹出的文件选择窗口中选择待处理图像文件,点击“OK”。

(2) 在弹出的窗口中选择校正方法。共有三种校正方法可供选择,分别为“Band Minimum”“Region Of Interest”与“User Value”。这三种方法的差异在于黑暗像元的选取方式有所不同——第一种方法将会以波段最小值作为假设中的黑暗像元,第二种方法将会以图像中我们所选取的研究区域的像素平均值作为假设中的黑暗像元,而第三种方法将会以用户输入的数值作为假设中的黑暗像元。结合情况,我们选择第一种方法进行操作。

(3) 点击“OK”,即可完成操作。

7 FLAASH大气校正

FLAASH大气校正方法适用于多光谱数据与高光谱数据,能够精确补偿大气对辐射的影响。这一方法采用MODTRAN4+ 辐射传输模型,通过影像像素光谱中的特征估计大气属性,可以有效去除水蒸气、气溶胶散射等效应带来的干扰,精度较高。

而另一方面,FLAASH方法同样对待处理数据有一定严格要求,如需要数据存储结构为“BIP”或“BIL”模式,像元值类型为经过定标后的辐射亮度或辐射率数据,数据单位为(μW)/(cm2nmsr)。

(1) 选择“Basic Tools”→“Preprocessing”→“Calibration Utilities”→“FLAASH”,在弹出的转换因子窗口中选择第二项,即单一因子适用于所有波段的情况。由于我们本次所使用数据原有光谱数值为标准单位,即(W)/m2 *μm *rad,为了将这一单位换为FLAASH方法所能利用的单位,我们需要将转换因子设定为10.00。

(2) 在随后弹出的配置对话框中,首先选择输入图像文件、输出图像文件目录及名称,同时依据遥感影像的元数据,配置其中心点经纬度、传感器类型(传感器类型一旦选定,系统将会自动匹配传感器高度与像元大小这两个参数)、航行时间;同时依据实际研究区的情况,配置平均海拔高度这一选项;其次,选择合适的地球大气模型和气溶胶模型。其中,地球大气模型需要根据一张标准查找表确定,气溶胶模型则依据研究区域实际情况加以确定。

(3) 接下来,选择“Multispectral Settings”。当基本设置中设置了水汽反演模型和气溶胶模型时,我们需要相应地将多光谱相关属性加以配置,配置完毕后点击“OK”。

(4) 全部设置完毕后,可以点击右下角的“Save”按钮,从而将本次对于FLAASH方法的全部属性配置保存;在后期若对同样的遥感数据进行同样的操作时,保存属性配置可以免去多次重复调整相关参数的工作,从而提高效率。

(5) 点击“Apply”,将会开始执行FLAASH大气校正。前期执行时,软件都在过程中停止运算,并报如下错误:

(6) 针对这一问题,尝试了网络论坛中所提供的一些方法,但错误依然存在。随后注意到,目标文件夹中包含中文字段;虽说其他操作(如QUAC快速大气校正、简化黑暗像元法大气校正等)并未出现报错的现象,但考虑到FLAASH方法较为复杂,因此将目标文件夹改为纯英文路径,发现问题得到解决。

(7) 得到结果后,同样得到一份结果日志。

8 大气校正结果与其他处理对比分析

8.1 三种大气校正方法结果与未校正结果对比分析

如上图所示,左上、右上、左下、右下四幅图分别为QUAC快速大气校正、简化黑暗像元法大气校正、波段合成后未经大气校正、FLAASH大气校正所得到的结果图像。

由图可知,QUAC快速大气校正与FLAASH大气校正所得结果为辐射率数据,数据往往在1500至2000部分;而简化黑暗像元法大气校正和波段合成后未经大气校正的结果数值则多处于80以下。请教老师后得知,不同大气校正所得到的结果数值单位有一定差异。而正由于四种图像数据单位不同,因此不能单纯比较其在数值上的差异,而是需要结合整幅波谱曲线图加以分析。

可以看出,未经大气校正的结果与简化黑暗像元法大气校正结果十分类似,二者之间的差异很不明显;我认为,这是由于这种方法仅仅为将原图减去一个作为黑暗像元,而这一幅影像中最小像素值数值较小,使得简化黑暗像元法大气校正再减去这一数值后和原有像素相差不大导致的。QUAC快速大气校正与FLAASH大气校正所得结果与未经大气校正的结果差异明显,且两种校正方法均在0.5至0.6毫米处有由低升高的趋势,随后呈现出一个较大的下降趋势,并在0.8毫米左右变得较为平缓。此外也可以看到,QUAC快速大气校正所得结果数值整体大于FLAASH大气校正所得结果。

8.2 定标前后结果对比与不同地物波谱曲线对比分析

首先,需要将原有未经过辐射定标的六个波段图像数据合成,生成一幅包含六个波段但未经过辐射定标的结果数据。其中需要注意,所得结果同样需要编辑头文件中六个波段的中心波长数值。将处理完毕的数据放在一起对比、分析。

以下每一幅大图都包含六幅小图。其中,第一排最左侧图为遥感图像,左上第二幅图为QUAC快速大气校正结果图,左上第三幅图为简化黑暗像元法大气校正结果图,最右侧图为未经辐射定标的结果图;下排第一幅图为波段合成后未经大气校正结果图,下排右侧图为FLAASH大气校正所得到结果图。

(1) 上图所示为水体的光谱曲线。可以看到经过大气校正后的水体波谱曲线在波长较低时具有较高的反射数值,而均在0.7左右出现大程度的下降,并迅速降低到零值附近;随后继续下降,但整体下降速度变得较慢。这符合水体在蓝绿波段具有较强反射,而在其它波段,尤其是近红外波段处对辐射的吸收程度最大,反射甚至达到零的结论。下图则是另一处水体的光谱信息。可以看出两处水体光谱信息在细节上有一定差异,但整体趋势与数值十分相似。

(2) 下图为一处建筑物聚集地的辐射曲线图像。可以看出其经过校正后的光谱曲线在波长较小时整体数值较低,而在0.8左右有所上升,并在1.65附近开始下降。此外,不难发现,这一建筑物的辐射曲线受到不同大气校正方法、是否进行大气校正、是否定标等影像较为强烈,五幅曲线图几乎均不一样。我认为这可能是由于住宅区受人为影响较大,地物较为复杂,从而导致不同原理、不同精度的操作方式在最终所得结果上出现较大差距。

(3) 以下两图为不同位置的两处植物的辐射曲线图像。可以看到,辐射图像在0.7至0.8附近上升快速,并在0.9左右形成一个峰值;随后曲线趋势较为平缓,达到1.5至1.6附近再次迎来一个峰值,随后明显下降。这同样较为符合植物反射的规律,即在绿色光0.5附近吸收率较高,反射率低;在可见光波段0.4至0.76处有一个反射峰值,而在近红外波段0.7至0.8处有一反射陡坡;且在1.0至1.1附近有一峰值。但是亦可以看出,这里的光谱曲线与纯正的植被光谱曲线相比,有一些细节并没有表现出来。

(4) 以下为本次对比过程中其它地区的图像和曲线。从这些图对比依然可以发现之前得到的结论,即未经大气校正的结果与简化黑暗像元法大气校正结果十分类似,二者之间的差异很不明显;QUAC快速大气校正与FLAASH大气校正所得结果与未经大气校正的结果差异明显,在曲线升降趋势方面就包含很大的不同。此外,QUAC快速大气校正虽与FLAASH大气校正所得结果趋势较为类似,但前者数值依然明显大于后者。

(5) 对比辐射定标前后结果图像的曲线图同样可以看出,在绝大多数情况下,辐射定标后光谱曲线与定标前相比,其曲线数值增长或下降趋势不变,但是变化的幅度的确发生了很大变化——辐射定标后的图像曲线由外形上看,可以看作将原有图像曲线“拉伸”,原有较为平缓的部分变得较为陡峭,曲线上的极大值或极小值较之周围数据变化较大,显得更加突出。

ENVI实现QUAC、简化黑暗像元、FLAASH方法的遥感影像大气校正的更多相关文章

  1. 《Python CookBook2》 第一章 文本 - 检查字符串中是否包含某字符集合中的字符 && 简化字符串的translate方法的使用

    检查字符串中是否包含某字符集合中的字符  任务: 检查字符串中是否出现了某个字符集合中的字符 解决方案: 方案一: import itertools def containAny(seq,aset): ...

  2. matlab calibration toolbox -- matlab标定工具的使用方法--去畸变和双目校正

    matlab calibration toolbox -- matlab标定工具的使用方法--去畸变和双目校正 2015-04-06 22:45 5407人阅读 评论(2) 收藏 举报  分类: 机器 ...

  3. Earthdata批量下载MODIS遥感影像的方法

      本文介绍在Earthdata网站中,批量下载MODIS遥感影像的方法.   首先,打开网页:https://search.earthdata.nasa.gov/search ,如果没有Earthd ...

  4. Python核对遥感影像批量下载情况的方法

      本文介绍批量下载遥感影像时,利用Python实现已下载影像文件的核对,并自动生成未下载影像的下载链接列表的方法.   批量下载大量遥感影像数据对于GIS学生与从业人员可谓十分常见.然而,对于动辄成 ...

  5. 批量下载Landsat遥感影像的方法

      本文介绍在USGS网站批量下载Landsat系列遥感影像的方法.   首先,打开EarthExplorer的官网,首先完成注册与登录.   接下来,点击左侧"Search Criteri ...

  6. Java上使用Lombok插件简化Getter、Setter方法

    Maven引入依赖: <dependencies> <dependency> <groupId>org.projectlombok</groupId> ...

  7. 简化通过classname查找 方法

    function getClass(oParent,sclass){ var aEle=oParent.getElementsByTagName('*'); var result=[]; for(va ...

  8. 《ENVI下遥感影像自然真彩色合成方法》——TM、spot5

    来源:http://blog.sina.com.cn/s/blog_764b1e9d0100tz4f.html#bsh-73-375271630

  9. 数据融合(data fusion)原理与方法

    数据融合(data fusion)原理与方法 数据融合(data fusion)最早被应用于军事领域.     现在数据融合的主要应用领域有:多源影像复合.机器人和智能仪器系统.战场和无人驾驶飞机.图 ...

  10. Landsat数据在USGS中无法下载Surface Reflectance产品的解决方法

      本文介绍在USGS官网下载Landsat遥感影像数据时,出现报错信息,无法下载地表反射率产品(Surface Reflectance)的解决办法.   最近,利用这篇文章批量下载Landsat遥感 ...

随机推荐

  1. XmlSerializer 反射类型xxx时出错,反射属性xxx时出错。

    在使用XmlSerializer将类序列化成XML时出错,看到InnerException的message可以知道是这个receiver里有错误,进入这个类查看一下代码发现有重名的类 NodeId类修 ...

  2. HOOPS Exchange助力Shapr3D产品实现了“无障碍的用户体验”

    HOOPS SDK是用于3D工业软件开发的工具包,其中包括4款工具,分别是用于 读取和写入30多种CAD文件格式的HOOPS Exchange.专注于Web端工程图形渲染的HOOPS Communic ...

  3. RDIFramework.NET Web版报表管理-助力企业高效智能图表

    功能描述 在RDIFramework.NET Web版本中全新的报表管理功能模块,非常实用的功能,重量级推荐.主要用于对日常常用的报表做定制展示.可以自动发布到模块(就可授权给指定资源访问),在报表定 ...

  4. phpcm v9 任意调用分页/phpcm v9首页调用分页不起作用或者乱码

    默认如下: {pc:content action="lists" catid="1" num="10" order="id DES ...

  5. SpringCloud Gateway 3.x 响应头添加 Skywalking TraceId

    在微服务架构中,一次请求可能会被多个服务处理,而每个服务又会产生相应的日志,且每个服务也会有多个实例.在这种情况下,如果系统发生异常,没有 Trace ID,那么在进行日志分析和追踪时就会非常困难,因 ...

  6. 前端js几种加密/解密方法

    https://www.jianshu.com/p/4c236d83ea04 https://blog.csdn.net/guxingsheng/article/details/84451573 vu ...

  7. 在循环内调用 size() 方法的开销大吗?

    for (int i = 0; i < buildings.size(); i++) {} 和 int n = buildings.size(); for (int i = 0; i < ...

  8. prism journal导航按钮的可用性探索记录

    prism使用导航功能的时候,跳了几个坑,记录一下. 1.导航记录的产生,是在区域导航过程中产生的. _regionManager.Regions[PrismManager.MainViewRegio ...

  9. AspNetCoreRateLimit应用于MVC项目求助

    AspNetCoreRateLimit应用于MVC项目求助 前言 之前发过一篇文章: .NET Core WebApi接口ip限流实践 - 妙妙屋(zy) - 博客园 (cnblogs.com) 然后 ...

  10. autojs系列-js入门1

    开头 确保 Autojs 和 adb 还有模拟器安装调试完成之后,就可以进行js的学习了 调试安装一部分步骤可以参考 https://www.cnblogs.com/c-keke/p/14919615 ...