Eo1数据处理.docx
- 文档编号:23859303
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:25
- 大小:640.53KB
Eo1数据处理.docx
《Eo1数据处理.docx》由会员分享,可在线阅读,更多相关《Eo1数据处理.docx(25页珍藏版)》请在冰豆网上搜索。
Eo1数据处理
EO-1数据的处理流程。
因为老板高光谱的项目,刚进入研究生阶段就一头雾水的开始处理高光谱的影像,主要使用的数据为EO-1,才开始做的时候很迷茫,一点点查,一点点弄,最终还是一知半解,但是总归也学到了不少东西,现在总结一下,跟大家讨论讨论,希望不吝指教!
1.EO-1数据的简介
(因为篇幅问题发个链接,那里有详细的介绍在这里不作赘述1G
2.EO-1数据的处理流程(由于处理的软件是ENVI,仅限于ENVI软件):
整个流程从文献(谭炳香,李增元。
EO-1Hyperion高光谱数据的预处理)中获得,只不过加了ENVI补丁下数据波段组合,其中红色的步骤是没搞明白的,下面对各个步骤一一说明。
3.Hyperion数据的获取:
获取途径在
4.ENVI补丁下数据波段组合:
4.1Hyperion工具的用途:
设计Hyperion工具组件是为了方便hyperion数据的使用。
其最基本的功能是把L1RHDF和L1G/L1TGeoTIFF数据集转换成包含波长、最大半波宽和坏波段信息的ENVI格式文件。
特别是,对于每一个输入数据格式,还包含了一些选项,在使用Hyperion数据时将更加有用。
4.2存放方法:
把hyperion_tools.sav文件放在你的ENVI安装目录下的save_add文件夹里,然后重启ENVI。
以下面的安装程序为例(D:
\ProgramFiles\ITT\IDL71\products\envi47\save_add通过File→OpenExternalFile→EO-1→HyperionTools进入此工具。
4.3使用方法:
对于L1R数据,点击“InputHDF”选择L1R文件。
然后点击“OutputPath”为新的ENVI格式的数据选择存放文件夹。
点击“Apply”进行转换处理。
在此模式下,转换工具将会把原始辐射数据放在BIL格式的ENVI新文件里,其中包括平均波长和FWHM值。
生成的新文件和输入的HDF有相同的文件名,但扩展名是“.dat”。
L1R选项L1G/1T选项:
AttemptGeoreferencing→如果元数据文件(.MET)和L1RHDF打包在一起,即与HDF文件在相同的文件夹,并且与HDF有相同的文件名,工具包将会在新ENVI格式文件里列出四个角的地理坐标。
投影只是伪地理投影,而且,并不是所有的元数据文件都包含四个角的坐标,因此有时georeferencing不能进行。
OutputENVIMaskImage→此选项使工具包为数据集创建一个ENVI掩膜图像(1=好数据,0=坏数据)抑制在参考影像中出现的黑色背景。
此选项在用未经过flagcorrected的原始数据进行PCA变换、Fourier变换和沙漏处理时尤其有用。
掩膜图像与转换的数据文件有相同的basicrootname,但后面带有“_mask.dat”。
OutputFLAASHScaleFactors→在特定的输出文件夹里会产生一个小的文本文件,其中包含比例系数,这个系数对于正确输入Hyperion数据到FLAASH非常必要。
InterpolateDatatoCommonWavelengthSet→Hyperion的推扫阵列里每一个探测器在每个波段里有一个稍微不同的波段中心和FWHM值。
此选项对所有的探测器基于波长的正常设置(acommonsetofwavelength)通过对像元、光谱、波段进行线性插值。
在这个过程中为了保证最好的结果,坏波段列表也应该列出。
警告:
为了充分的进行,插值过程能花费一个小时才完成。
此选项接受了转换数据文件,创建了一个新的BIP输出文件。
这个新文件跟转换的数据文件有相同的根目录文件名(basicrootname),但后面带有“_interpolated.dat”。
包含的波长表示新的波段中心的正常值(commonset)。
平均值是FWHM。
L1G/1T数据:
点击“InputMTL”选择“L1G”或“L1T”元数据文件,它们和GeoTIFF文件打包在一起。
然后点击”OutputPath”为新的ENVI格式的数据选择一个存放文件夹,点击“Apply”进行转换处理。
在此模式下,转换工具将会把原始辐射数据,放在BSQ格式的ENVI新文件里,其中包括平均波长和FWHM值。
生成的新文件和输入的GeoTIFFs有相同的文件名,但扩展名是“.dat”。
要完成转换,所有242个GeoTIFF文件要和MTL元数据文件一样在相同的文件夹。
L1G/1T选项:
OutputENVIMaskImage→此选项使工具包为数据集创建一个ENVI掩膜图像(1=好数据,0=坏数据)抑制在参考影像中出现的黑色背景。
此选项对于几乎所有的ENVI处理都有用,因为背景值不属于原始数据集。
掩膜图像与转换的数据文件有相同的basicrootname,但后面带有“_mask.dat”。
ConvertBSQOutputtoBIPInterleave→由于ENVI要从输入的GeoTIFFs组合成综合的输出文件,最初的交叉方式是BSQ,FLAASH和其它波谱处理常规倾向于或需要BIL或BIP交叉形式。
此选项转换输出文件为BIP格式(在处理过程中产生新文件)然后删除原始数据。
生成的新文件与转换的数据文件有相同的basicrootname,但后面带有“_bip.dat”。
OutputFLAASHScaleFactors→在特定的输出文件夹里会产生一个小的文本文件,其中包含比例系数,这个系数对于正确输入Hyperion数据到FLAASH非常必要(此处有一不解,稍后提出)。
5.未标定及水气影响波段的去除:
这里只列出应该剔除的波段,至于原因,在文献(谭炳香,李增元。
EO-1Hyperion高光谱数据的预处理)中。
剔除后一共剩余176个波段。
被剔除的Hyperion波段
Hyperion原始波段
波长范围(nm)
1~7
355~416
58~78
936~923
121~127
1356~1426
167~178
1820~1931
224~240
2395~2577
ENVI中操作步骤:
BasicTools->ResizeData见图:
选择相应的波段后,然后选择输出就可。
6.像元值到绝对辐射值的转换:
(原因不解释了)在分析应用Hyperion数据时,必须将像元值转换为绝对辐射值。
首先,所有VNIR(1-70,356-1058nm)波段除以40,生成一个新图像文件,所有SWIR(71-242,852-2578nm)波段除以80,生成另一个新图像文件;然后将两个图像文件合并,得到绝对辐射值图像。
ENVI中操作步骤:
Spectral>SpectralMath(以前用的BandMath,那个费劲啊!
)
点击选择VNIR和SWIR分别除以40和80,分别输出,输出后需要做的就是将两个文件合在一起。
ENVI中操作步骤:
BasicTools>Layerstacking
如果选择“Inclusive”,输出图像的地理范围将包含所有输入文件的范围;如果选择“Exclusive”,输出图像的地理范围仅包含所有输入文件的重叠范围。
从列表中选择一个输出地图投影。
在“Resampling”按钮菜单中,选择一个重采样方法。
在相应的文本框中,输入所需的x和y像元尺寸。
7.坏线修复(不大明白的步骤)坏线定义为:
无数据或数据值非常小的一行或一列,通常在高光谱影像中表现为黑条,去除原理:
将坏线逐行逐波段的挑出并记录,然后用其相邻行或列的平均值修复。
ENVI中操作步骤:
BasicTools>Preprocessing>GeneralPurposeUtilities>ReplaceBadLines,输入需要去除条带的行,然后点击“Enter”键,在标有“HalfWidthtoAverage”的文本框里,键入要参与计算平均值的邻近行数。
在要替代的行周围数值应是对称的。
例如,值为“2”意味着每边各有两行将参与平均值计算。
问题:
①我得到的Hyperion数据是倾斜的,在输入坏行时,是将图像旋转成竖直后,再输入坏行?
②竖直和倾斜的都做了,但是效果不大….
③PS一下:
竖直的步骤,BasicTool>Rotate/FlipData
图中显示:
如果角度是负的,那么就是逆时针旋转,反之顺时针旋转。
对于图像旋转角度的计算,我使用了两种方法(实际是一种),
第一种:
使用ENVI打开图像,通过经纬度坐标来计算图像倾斜的角度,至于怎么计算,直接用个tanɑ就可以了吧!
但是这个方法不容易精确角度,怎么精确图像的各个角的经纬度是个问题。
第二种:
将图像导出后,导入到ArcGIS里面,将图像放大到足够大后,直接显示坐标后,再计算tanɑ。
这两种方法都可以,我旋转后的效果还行。
④有没有一种更好的方法来做坏线修复,或者说,做了和没做,对后续的处理有没有大的影响?
8.条纹去除
9.Smile效应纠正
10.大气较正:
大气校正的原理和目的,在这里不做赘述,只说处理步骤。
ENVI中操作步骤:
①BasicTool>Preprocessing>CalibrationUtilities>FLAASH
②Spectral>Preprocessing>CalibrationUtilities>FLAASH两个路径都可以打开FLAASH
ENVI大气校正模块的高光谱处理主要有以下6个方面组成:
⑴输入文件准备⑵基本参数设置⑶高光谱数据参数设置⑷高级设置⑸输出文件⑹处理结果。
⑴输入文件准备
1)支持传感器类型
高光谱包括:
HyMAP、AVIRIS、CASI、HYDICE、HYPERION(EO-1)、AISA等;多光谱包括:
ASTER,AVHRR,GeoEye-1,IKONOS,IRS,Landsat,MODIS,SeaWiFS,SPOT,QuickBird,RapidEye等,
航空:
860nm-1135nm波长范围
2)数据是经过定标后的辐射亮度(辐射率)数据,单位是:
(μW)/cm2*nm*sr)。
3)数据带有中心波长(wavelenth)值,如果是高光谱还必须有波段宽度(FWHM),这两个参数都可以通过编辑头文件信息输入(EditHeader)。
4)数据类型
支持四种数据类型:
浮点型(floating)、长整型(longinteger)、整型(integer)和无符号整型(unsignedint)。
数据存储类型:
ENVI标准栅格格式文件,且是BIP或者BIL。
PS一下:
数据经过上面绝对辐射值的转换后,数据的格式会发生改变,要先经过格式转换,转换方法:
BasicTool>ConvertData(BSQ、BIL、BIP),选择OutInterleave:
BIL,ConvertInPlace。
5)波谱范围:
flaash能够做的数据光谱范围是0.4-2500μm。
(2)基本参数设置
1)输入文件及输出路径设置,如图所示。
①点击InputRadianceImage(输入辐射亮度值文件),
PS一下:
1.在输入时用到了spatialsubset功能,需要在AdvancedSettings对话框中的SpatialSubset选项中设置一样大小的子区。
2.如果输入的图像头文件没有波长信息,会弹出对话框提示选择记录每个波段中心波长信息的文本文件,这个文件要求一列的方式记录每个波段的中心波长信息。
(取自《ENVI遥感图像处理方法》,邓书斌编著)。
选择了之后会出现下面的对话框:
这一步的作用是将输入的辐射亮度值的单位以及数据类型变成单位为μW/cm2*nm*sr的浮点型辐射亮度值。
共有两种选择,如果输入影像不同波段的辐射亮度值单位不同时,那选择第一种,反之第二种。
此处的不解和上文的4.3中的不解相对应,上文的4.3输出了一个文本文件,其中里面的比例系数:
VNIR(1-70,356-1058nm)波段均为400,SWIR(71-242,852-2578nm)波段均为800,这里涉及三个问题:
1.EO-1数据的辐射亮度值的单位怎么知道?
2.如果我选择第一项,然后将这个文本文件导入,前面的第六步(像元值到绝对辐射值的转换)是不是可以省略?
3.做了前面的第六步,是不是应该选择第二项,然后scalefactor中输入多少?
10?
在上一步我暂且输入的10,继续往下做:
②设置输出参数,包括:
OutputReflectanceFile、OutputDirectoryforFLAASHFiles(设置大气校正其他输出结果储存路径,如水汽反演结果、云分类结果、日志等)
③此处易出现错误:
没有设置输出反射率文件名。
解决方法是单击OutputReflectanceFile按钮,选择反射率数据输出目录及文件名,或者直接手动输入。
2)输入成像和传感器的参数
①Scenecenterlacation(图像中心经纬度)(Lat/Lon):
对于这个参数的定位:
我的方法(不知道对不对),打开HeaderInfo(通过EditHeader),根据总Samples和Lines,分别除以2,得到分别数值,然后回到图像上,点击PixelLocator,将得到的两个数值输入,点击Apply,图像就定位到中心经纬度。
此处易出现错误:
提示传入MODTRAN模型参数有误,常常是由于太阳高度角太小或者太大引起的。
提示这个错误之前会出现右边的提示框。
解决方法是确认填写的影像中心位置经纬度信息(西经为负数、南纬为负数)、影像成像时间(格林威治时间)是否正确。
②SensorType(传感器类型):
E0-1就是上图。
③SensorAltitude(传感器飞行高度):
选择好传感器后,数据会自动添加。
④GroundElevation(平均海拔):
所选区域,单位是km。
平均海拔高程太大。
注意:
填写影像所在区域的平均海拔高程的单位是km:
GroundElevation(Km)。
⑤PixelSize(图像像素大小)、成像日期(FlightDate)和成像时间(FlightTimeGMT)均在下载影像的说明文件中可以找到。
3)输入成像和传感器的参数
①AtmosphericModel(大气模型)
ENVI提供了6种标准的MODTRAN大气模型,下图提供了6种模型的水汽含量和表面大气温度值
根据以下表选择所校正区域的大气模型:
②WaterRetrieval(水气反演)设置,采用两种方式对水气进行去除
a. 利用水气去除模型恢复影像中每个像元的水气量
使用水气反演模型,数据必须具有15nm以上波谱分辨率,且至少覆盖以下波谱范围之一:
1050-1210nm(优先考虑),770-870nm,870-1020nm。
对于大多传感器,水气反演默认显示的是NO,因为大多数传感器没有适当的波段来补偿水气的影响,在这里,E0-1数据的波谱分辨率比较高,可以选择YES。
b.单一的水气因数用于整体影像,默认是1,多光谱数据使用水气反演模型,可以在多光谱设置中手动设置水气波段。
③AerosolRetrieval(气溶胶模型)
用气溶胶模型要求数据波段覆盖660nm和2100nm波谱。
a. 提供五种标准MODTRAN气溶胶模型
NoAerosol(无气溶胶)、Rural(乡村)、Urban(城市)、Maritime(海洋)、Tropospheric(对流层)
b. 两种气溶胶反演方法
None:
选择此项时,初始能见度(InitialVisibility)值将用于气溶胶反演模型。
2-Band(K-T)方法(类似模糊减少法),如果没有找到适应的黑值(一般是阴影区或者水体),系统将采用能见度值来计算;所以即使选择了该选项也要给。
④InitialVisibilityValue(初始能见度):
当天气晴朗时,能见度一般为40-100公里,轻微雾气时能见度为20-30公里,雾气严重时,能见度为15公里甚至更少。
⑤SpectralPolishing(光谱打磨):
这个选项针对高光谱,用相邻N个波段的均值进行平滑处理,提供两个选择:
a.Yes:
需要在Width内舒服相邻波段的数量,范围为2-11(选择奇数运算速度更快),EO-1数据的光谱分辨率是10,则选择9,分辨率越小,这个值就越小。
b.No
⑥WaelengthRecalibration(重定标波长)选择是否对高光谱数据每个波段的中心波长重新定标,因为有原始的中心波长,可以选择NO
⑦HyperspectralSettings(高光谱设置),用来选择波段用于水汽含量和气溶胶的反演,第二项为FLAASH基于光谱特征自动选择波段,一般选择这一项。
4)AdvancedSettings(高级设置)
㈠SpectiographDefinitionFile(波谱仪定义文件),还是涉及高光谱数据的中心波长的问题,因为EO-1数据的中心波长已经定义,可以不设置。
㈡MODTRAN模型参数设置
AerosolScaleHeight(气溶胶厚度系数):
用于计算邻域效应范围。
一般选择默认1.5km。
CO2MixingRatio(CO2混合比率):
默认为390×10-6.
UseSquareSlitFunction:
No
UseAdjacencyCorrrection(使用领域纠正):
YES
ReuseMODRTRANCalculations(使用以前的MODRTRAN辐射传输模型):
No:
重新计算MODRTRAN辐射传输模型,Yes:
执行上一次FLAASH运行获得的MODTRAN辐射传输模型,每次运行FLAASH后,都会在根目录和临时文件夹下生成一个acc_modroot.fla.
ModtranResolution(MODRTRAN模型的光谱分辨率):
越低的分辨率具有越快的速度但相对较低的精度,高光谱默认为5cm-1
MODRTRANMultiscatterModel(MODRTRAN多散射模型):
校正大气散射对成像的影响,提供三种模型选择:
①Isaacs模型:
计算速度较快,但精度一般
②DISORT模型:
对于短波(小于1000nm)具有较高的精度,但是速度非常慢,当薄雾大和短波图像时可以选择此方法
③ScaledDISORT:
提供在大气窗口内与DISORT类似的精度,速度与Isaacs类似,推荐选择这个,当选择DISORT或者ScaledDISORT时,需要选择streams为2、4、8或16,这个值用来估算散射的方向,值越大,速度越慢。
ENVI的FLAASH提供领域纠正功能,但是MODIS、AVHRR等图像分辨率比较低,领域效应区分不出来。
解决方法是在在高级设置里面(AdvancedSettings),将领域纠正(UseAdjacencyCorrection)设置为No。
㈢观测参数
ZenithAngle(天顶角):
是传感器直线视线方向和天顶的夹角,范围为90°——180°
AzimuthAngle(方位角):
范围为-180°——180°
㈣FLAASH处理控制
①UseTiledProcessing(分块处理):
是否分块处理,选择YES可以获得较快的处理速度,
此处易出现错误:
为了能处理大数据,ENVI采用分块计算的方式,当Tile设置太小,而且有背景值(0),就会出现一个Tile中全部为0的情况,提示这个错误信息。
在高级设置里面(AdvancedSettings),tilesize:
设置稍微大一些,如100~200M等。
②SpatialSubset(空间子集):
当输入辐射亮度值图像(InputRadianceImage)时选择了空间子集,这里必须设置一样的空间子集。
(重定义缩放比例系数):
重新选择辐射亮度值单位转换系数。
(输出反射率缩放系数):
为了降低结果储存空间,默认反射率乘以10000.输出反射率范围变为0-10000
(自动储存工程文件):
选择是否自动保存工程文件
(输出诊断文件):
选择是否输出FLAASH中间文件,便于诊断运行过程中的错误。
11.大气较正结果错误:
1.结果中某一个波段或者多个波段全部为0或者负值
主要产生的原因是输入的辐射亮度数据值偏小。
可能有以下几种情况:
(1)在传感器定标的时候选择的是表观反射率(Reflectance)而不是辐射率数据(Radiance);
(2)没有做传感器定标,即没有将DN值转换为辐射率数据;
(3)选择了错误的波谱响应函数;
(4)用BandMath做了辐射亮度的单位换算,在FLAASH中导入辐射亮度数据时,ScaleFactor选择的不是1.0000。
2.结果中极大值、极小值非常多,也就是0~10000之外的值。
当选择RGB假彩色显示的时候,出现花花绿绿的情况。
辐射定标得到的辐射率数据单位与FLAASH要求的单位不一样。
可能有以下几种情况:
(1)用BandMath做了辐射亮度的单位换算,在FLAASH中导入辐射亮度数据时,ScaleFactor选择的不是1.0000。
(2)没有做单位换算。
3.结果中部分像元为负值
这个属于正常现象。
FLAASH是采用MODTRAN辐射传输模型模拟成像中的大气过程,而且很多大气属性都是通过图像来估算,加上大气组成的非均一性,即使MODTRAN4模型精度很高,也不能完全表达大气辐射传输的真实状况。
当影像上有强吸收或者高反射地物时候,就会出现部分像元为负值(如深水、高密度)或者大于10000。
解决方法可以手动修改,如用周围的像元的平均值代替,可以使用ENVI下的TheDEMEditingTool工具。
4.结果图像以RGB显示比原图像视觉效果要差,如模糊。
这个需要了解下遥感软件RGB显示机制。
遥感软件为了让遥感图像显示更加“艳丽”,方便解译,默认会对图像进行拉伸显示,一般是2%的线性拉伸。
也就是我们常常会看到图像值有两个,一个是Scrn值,也就是拉伸之后的显示值,一个是Data值,也就是原始的图像DN值。
另外一个方面,目前我们的RGB加色法显示都是基于8bit显示,也就是0~255。
FLAASH大气校正之后的结果是16bit的整型,而且存在一些极小、极大值,这些对直
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Eo1 数据处理