- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
本文介绍基于 ENVI 软件,实现对 Landsat 7 遥感影像加以 预处理 与多种不同 大气校正 方法的操作.
关于数据的下载,网络中相关资源很多,这里不再赘述.
在我们所获得的遥感影像原始数据中,每一个像素对应的像元值往往是未经明确量化、没有统一量纲的数据(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六个波段的图像均进行辐射定标操作.
如前所述,我们本次选用一幅完整遥感图像中1、2、3、4、5、7六个波段的图像进行分析操作,而上述定标操作后的结果是将各个波段的结果图像单独列出,并未连在一起;因此,为了使得后期分析时,我们可以获得一幅图像各个不同波段完整的变化曲线,我们需要对上述图像进行“波段合成”操作.
(1) 选择“Basic Tools”→“Layer Stacking”,在弹出的文件选择窗口中选择经过辐射定标后的六个波段的图像.
(2) 选择后,需要观察六幅图像在待合成文件列表中的排列顺序。由于后期我们需要对合成后的图像各个波段的信息进行折线图形式的分析操作,因此需要将待合成文件按照“中心波长值”由小至大的顺序排列。点击“Reorder Files”即可实现这一功能.
(3) 顺序排列完毕后,检查投影信息等无误后,点击“OK”即可开始合成操作.
波段合成操作完毕后,所得结果图像中包含了原有六个波段的信息。但由于合成过程中,我们并未将每一个波段的信息“告诉”软件,因此合成后的图像中六个波段的中心波长值为默认数值(分别为“1”“2”……“6”)。为解决这一问题,我们需要手动为合成后的图像各个波段赋以其原有的波长数值.
(1) 在“Available Bands List”文件列表中右键选择波段合成后的结果文件,选择“Edit Header”功能.
(2) 选择“Edit Attributes”→“Wavelengths”,按照图像各个波段原有中心波长信息对合并后图像各个波段的波长信息进行修改,并注意将数据单位修改为“Micrometers”.
由图可以看到,经过波段合成、编辑头文件后的结果图像“allbands”的数据存储格式为“BSQ”模式,而接下来所需要进行的大气校正中,FLAASH方法需要原始文件的数据存储结构为“BIP”或“BIL”模式,因此,我们需要对数据文件的存储格式加以转换.
(1) 选择“Basic Tools”→“Convert Data (BSQ,BIL,BIP)”,在弹出的文件选择窗口中选择经过波段合成、编辑头文件操作后的结果图像,点击“OK”.
首先使用快速大气校正工具(QUAC)进行大气校正。这种校正方法将自动由图像中收集不同地物的波谱信息,从而获得相关经验值,以进行大气校正。值得注意的是,这一大气校正方法只可以对多光谱、高光谱图像进行处理.
QUAC快速大气校正对待处理文件数据单位、数据存储格式等并没有要求,即我们既可以使用通过上述步骤转换得来的“BIL”格式文件,亦可以使用转换前的“BSQ”格式文件.
(1) 选择“Basic Tools”→“Preprocessing”→“Calibration Utilities”→“Quick Atmospheric Correction”,在弹出的文件选择窗口中选择待处理图像文件,点击“OK”.
(2) 得到结果图像文件后,可在其上任意位置处右键,选择“Z Profile (Spectrum)”,即可查看图像中任意位置像元所对应的波谱信息;若同时打开多个窗口,则可在其中任意一个图像窗口中右键,选择“Geographic Link”,并将对应的窗口信息均调整为“ON”,即可实现同一区域的光谱信息多图像对比。下图即为经过QUAC快速大气校正后的图像与处理前图像的对比。具体对比结果将会在本文后半部分分析.
黑暗像元法基本原理为:假定待校正的遥感图像上存在黑暗像元区域,且地表为朗伯面反射、大气性质均一,则反射率或辐照亮度很小的黑暗像元由于受到大气的影响,使得这些像元的亮度值相对增加;可以认为这一部分的增加亮度是由于大气的影响造成的。在此基础上,若将全图像所有像元的亮度值都减去这一数值,得到的结果即为减少了大气影响的校正结果图像。这一方法十分简单,且其所获得的校正精度可以满足一般的遥感研究与实际应用.
(1) 选择“Basic Tools”→“Preprocessing”→“General Purpose Utilities”→“Dark Subtract”,在弹出的文件选择窗口中选择待处理图像文件,点击“OK”.
(2) 在弹出的窗口中选择校正方法。共有三种校正方法可供选择,分别为“Band Minimum”“Region Of Interest”与“User Value”。这三种方法的差异在于黑暗像元的选取方式有所不同——第一种方法将会以波段最小值作为假设中的黑暗像元,第二种方法将会以图像中我们所选取的研究区域的像素平均值作为假设中的黑暗像元,而第三种方法将会以用户输入的数值作为假设中的黑暗像元。结合情况,我们选择第一种方法进行操作.
(3) 点击“OK”,即可完成操作.
FLAASH大气校正方法适用于多光谱数据与高光谱数据,能够精确补偿大气对辐射的影响。这一方法采用MODTRAN4+ 辐射传输模型,通过影像像素光谱中的特征估计大气属性,可以有效去除水蒸气、气溶胶散射等效应带来的干扰,精度较高.
而另一方面,FLAASH方法同样对待处理数据有一定严格要求,如需要数据存储结构为“BIP”或“BIL”模式,像元值类型为经过定标后的辐射亮度或辐射率数据,数据单位为(μW)/(cm2 nm sr).
(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) 得到结果后,同样得到一份结果日志.
如上图所示,左上、右上、左下、右下四幅图分别为QUAC快速大气校正、简化黑暗像元法大气校正、波段合成后未经大气校正、FLAASH大气校正所得到的结果图像.
由图可知,QUAC快速大气校正与FLAASH大气校正所得结果为辐射率数据,数据往往在1500至2000部分;而简化黑暗像元法大气校正和波段合成后未经大气校正的结果数值则多处于80以下。请教老师后得知,不同大气校正所得到的结果数值单位有一定差异。而正由于四种图像数据单位不同,因此不能单纯比较其在数值上的差异,而是需要结合整幅波谱曲线图加以分析.
可以看出,未经大气校正的结果与简化黑暗像元法大气校正结果十分类似,二者之间的差异很不明显;我认为,这是由于这种方法仅仅为将原图减去一个作为黑暗像元,而这一幅影像中最小像素值数值较小,使得简化黑暗像元法大气校正再减去这一数值后和原有像素相差不大导致的。QUAC快速大气校正与FLAASH大气校正所得结果与未经大气校正的结果差异明显,且两种校正方法均在0.5至0.6毫米处有由低升高的趋势,随后呈现出一个较大的下降趋势,并在0.8毫米左右变得较为平缓。此外也可以看到,QUAC快速大气校正所得结果数值整体大于FLAASH大气校正所得结果.
首先,需要将原有未经过辐射定标的六个波段图像数据合成,生成一幅包含六个波段但未经过辐射定标的结果数据。其中需要注意,所得结果同样需要编辑头文件中六个波段的中心波长数值。将处理完毕的数据放在一起对比、分析.
以下每一幅大图都包含六幅小图。其中,第一排最左侧图为遥感图像,左上第二幅图为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方法的遥感影像大气校正的文章就讲到这里了,如果你想了解更多关于ENVI实现QUAC、简化黑暗像元、FLAASH方法的遥感影像大气校正的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我想了解 Ruby 方法 methods() 是如何工作的。 我尝试使用“ruby 方法”在 Google 上搜索,但这不是我需要的。 我也看过 ruby-doc.org,但我没有找到这种方法。
Test 方法 对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否找到匹配的模式。 object.Test(string) 参数 object 必选项。总是一个
Replace 方法 替换在正则表达式查找中找到的文本。 object.Replace(string1, string2) 参数 object 必选项。总是一个 RegExp 对象的名称。
Raise 方法 生成运行时错误 object.Raise(number, source, description, helpfile, helpcontext) 参数 object 应为
Execute 方法 对指定的字符串执行正则表达式搜索。 object.Execute(string) 参数 object 必选项。总是一个 RegExp 对象的名称。 string
Clear 方法 清除 Err 对象的所有属性设置。 object.Clear object 应为 Err 对象的名称。 说明 在错误处理后,使用 Clear 显式地清除 Err 对象。此
CopyFile 方法 将一个或多个文件从某位置复制到另一位置。 object.CopyFile source, destination[, overwrite] 参数 object 必选
Copy 方法 将指定的文件或文件夹从某位置复制到另一位置。 object.Copy destination[, overwrite] 参数 object 必选项。应为 File 或 F
Close 方法 关闭打开的 TextStream 文件。 object.Close object 应为 TextStream 对象的名称。 说明 下面例子举例说明如何使用 Close 方
BuildPath 方法 向现有路径后添加名称。 object.BuildPath(path, name) 参数 object 必选项。应为 FileSystemObject 对象的名称
GetFolder 方法 返回与指定的路径中某文件夹相应的 Folder 对象。 object.GetFolder(folderspec) 参数 object 必选项。应为 FileSy
GetFileName 方法 返回指定路径(不是指定驱动器路径部分)的最后一个文件或文件夹。 object.GetFileName(pathspec) 参数 object 必选项。应为
GetFile 方法 返回与指定路径中某文件相应的 File 对象。 object.GetFile(filespec) 参数 object 必选项。应为 FileSystemObject
GetExtensionName 方法 返回字符串,该字符串包含路径最后一个组成部分的扩展名。 object.GetExtensionName(path) 参数 object 必选项。应
GetDriveName 方法 返回包含指定路径中驱动器名的字符串。 object.GetDriveName(path) 参数 object 必选项。应为 FileSystemObjec
GetDrive 方法 返回与指定的路径中驱动器相对应的 Drive 对象。 object.GetDrive drivespec 参数 object 必选项。应为 FileSystemO
GetBaseName 方法 返回字符串,其中包含文件的基本名 (不带扩展名), 或者提供的路径说明中的文件夹。 object.GetBaseName(path) 参数 object 必
GetAbsolutePathName 方法 从提供的指定路径中返回完整且含义明确的路径。 object.GetAbsolutePathName(pathspec) 参数 object
FolderExists 方法 如果指定的文件夹存在,则返回 True;否则返回 False。 object.FolderExists(folderspec) 参数 object 必选项
FileExists 方法 如果指定的文件存在返回 True;否则返回 False。 object.FileExists(filespec) 参数 object 必选项。应为 FileS
我是一名优秀的程序员,十分优秀!