ENVI操作:GF2影像全色与多光谱融合

本文详细介绍了如何在ENVI软件中安装特定插件处理GF2影像,包括插件下载、属性设置、安装步骤,以及后续的多光谱和全色波段数据的辐射定标、大气校正、正射校正、几何校正、波段融合和背景值修改等处理过程。
摘要由CSDN通过智能技术生成

1、插件下载安装

1.1、插件下载

ENVI 处理 GF2影像需利用特定的 App 插件进行处理;进入下述官方网站,点击 下载 即可;仅支持 ENVI 5.3.1 以上版本的软件;

下载地址:https://envi.geoscene.cn/appstore/ 

1.2、属性设置

进入 ENVI 安装路径 Exelis,右键点击 属性->安全,

在弹出的文件夹属性页菜单,点击 Users->编辑;弹出 Exelis 的权限菜单,点击 Users->允许 完全控制,确定 即可;

1.3、插件安装

将下载的压缩包解压到 ENVI 的安装路径下:\Exelis\ENVI53\extensions ,如下图所示;

打开 ENVI 软件,在右侧 Toolbox 中可看到菜单中新增了 App Store;

1.4、插件配置

双击 App Store 菜单下的 App Store,弹出如下图所示的菜单项,选择 中国国产卫星支持工具V5.3,点击右侧 安装,即可;(图示已安装,安装 位置变成了 卸载)

重启 ENVI 软件,在 Toolbox 菜单栏最下边可看到 Extensions 内容,其中有 China Satellites Support,说明安装成功;

2、影像导入

点击 File->Open As->China Satellites->GF2,在弹出的选项框中选择要导入的 GF2 影像的 xml 文件,即可完成数据导入,导入的影像数据如下图所示:

其中,MSS1.xml 为低分辨率的多光谱数据;PAN1.xml为高分辨率的全色波段数据;

3、多光谱数据处理

3.1、辐射定标

在 Toolbox 菜单中双击打开 Radiometric Calibration 工具,弹出如下图所示的菜单栏,选择要定标的高光谱影像,点击 OK;

弹出如下图所示的 Radiometric Calibration 对话框,设置参数如下,选择输出文件名,OK;

  • Calibration Type: Radiance;

  • Output Interleave: BIL;

  • 单击 Apply FLAASH Settings,以适应后续的大气校正参数,此时上述的 Scale Factor 参数自动设置为 0.10;

3.2、大气校正

在 Toolbox 菜单中双击打开 FLAASH Atmospheric Correction 工具,弹出如下图所示的菜单:

3.2.1、待校正影像导入

点击 Input Radiance Image,弹出如下图所示的对话框,选择上一步得到的辐射定标后的数据,点击OK,弹出如下图所示的 Radiance Scale Factors 属性页,点击 Use single scale factor for all bands;

在 FLAASH Atmospheric Correction 属性页中,会自动填充 输出文件与FLAASH文件的存储位置,可进行自定义修改,如下图所示:

注:此处设置的输出路径均为文件夹,如设置具体的后缀文件,可能会报错

3.2.2、设置中心经纬度

导入待校正影像之后,系统会自动导入 中心经纬度 数据,如下图所示:

3.2.3、设置传感器信息

点击选择 Sensor Type,弹出的两类传感器中点击 Multispectral->ISR LISSI,传感器高度、像元大小会自动识别,如下图所示:

3.2.4、设置影像成像时间

在 Layer Manager 对话框中,右键单击多光谱数据,在弹出的菜单栏中点击 View Metadata;弹出如下图所示的对话框,点击 Time,即可得到影像的成像时间,如下图所示:

依此设置 FLAASH Atmospheric Correction 属性页中的成像时间即可,如下图所示:

3.2.5、设置大气模型

点击 FLAASH Atmospheric Correction 属性页左下角的 Help,弹出 Help 网页材料,其中描述了大气模型与后续气溶胶模型的选择依据,如下图所示:可依据温度、纬度、成像月份来选择对应的大气模型;

本次实验选择 SAS 模型,其他参数默认,设置如下图:

3.2.6、设置气溶胶模型

在 Help 页面上,气深胶模型与反演方法的选择如下图所示:

本次实验选择参数如下图:

3.2.7、Multispectral Settings

点击 Multispectral Settings,弹出如下图所示的对话框;

点击 Kaufman-Tanre Aerosol Retrieval,设置 KT Upper Channel 为 Band4,KT Lower Channel 为 Band1,其余参数为默认参数,如下图所示:

3.2.8、Advanced Settings

点击 Multispectral Settings,采用默认参数即可;

点击 Apply,进行大气校正,弹出如下图所示的运行过程:

运行完成后,自动弹出大气校正的结果,如下图所示:

3.3、正射校正

在 Toolbox 菜单中双击打开 RPC Orthorectification Workflow 工具,在弹出的对话框中,选择上述大气校正的多光谱数据,DEM数据默认,点击 Next :在弹出的 RPC Orthorectification 属性框中,点击 Advanced,将 Image Resampling 设置为 Cubic Convolution,其余参数默认,如下图所示:

点击 Export,设置输出文件格式与文件路径,Finish 即可;

4、全色波段数据处理

4.1、辐射定标

同多光谱数据处理类似,选择要定标的全色波段影像,如下图所示:

弹出下图的 Radiometric Calibration 对话框,设置参数如下,选择输出文件名,OK;

  • Calibration Type: Reflectance,全色影像定标为大气表观反射率;

  • Output Interleave: BIL;

  • Output Data Type: Uint;

  • Scale Factor: 10000;由于多光谱FLAASH大气校正的结果为扩大了10000倍的反射率数据,为了让融合图像效果好,需要将全色数据与多光谱数据的像元值变成一致。这里使用辐射定标工具将全色数据定标为大气表观反射率,并扩大10000倍。

4.2、正射校正

同多光谱数据处理类似,选择要校正的全色波段影像,如下图所示;同多光谱数据类似,采样方式也设置为 Cubic Convolution,设置 输出文件与文件位置,即可;

5、波段融合

5.1、几何校正

注:目前大多数高分辨率数据经正射校正后的多光谱和全色数据配准的均比较好,该步骤可以省略;

在 Toolbox 菜单中双击打开 Image Registration Workflow 工具,弹出如下图所示的对话框,导入待配准的两影像:其中 Base Image 为正射校正后的全色数据;Warp Image 为正射校正后的多光谱数据;点击 Next;

弹出如下图所示的 Image Registration 对话框,暂时使用默认参数即可;点击 Next 即可;

弹出如下图所示的 View and Wrap 对话框,点击 Tie Points,显示出系统自动识别的特征点的数量,如下图所示:

点击 Wraping,设置 Resampling 方式为 Cubic Convolution,点击 Next 即可;

运行结束,弹出如下图所示的对话框,选择输出文件格式与文件位置,点击 Finish 即可;

5.2、波段图像融合

在 Toolbox 菜单中双击打开 NNDiffuse Pan Sharpening 工具,弹出如下图所示的对话框,选择待融合的两影像(上述两步骤得到的经过几何校正或正射校正后的影像),选择输出文件路径,即可;

其中 Low Resolution Raster 为经几何校正或正射校正后的多光谱影像;High Resolution Raster 为经正射校正后的全色波段影像;

融合后的影像格式为 dat 格式,如下图所示,可根据需要将其转换为 tif 数据;

6、修改背景值

关闭融合后的影像,右键单击该影像的 hdr 参数文件,如下图所示,增加一行 data ignore value = 0,保存即可;

再次打开影像,其周围的黑色背景消失,如下图所示:

  • 16
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
由于多种软件和编程语言都可以用于多光谱影像全色影像融合,以下提供几种可能的代码示例: 1. 使用ENVI软件的IDL语言 ENVI软件提供了IDL语言的接口,可以通过编写IDL代码实现多光谱影像全色影像融合。以下是一个简单的IDL代码示例: ``` ; 读取多光谱影像全色影像 file1 = 'multispectral.img' file2 = 'panchromatic.img' multispectral = ENVI_OPEN_DATA(file1, /READ) panchromatic = ENVI_OPEN_DATA(file2, /READ) ; 将全色影像插值到多光谱影像的空间分辨率 panchromatic_resampled = ENVIRESAMPLE(panchromatic, multispectral) ; 将全色影像融合到多光谱影像中 fused = ENVIMULTIFUSE(multispectral, panchromatic_resampled) ; 保存融合后的影像 outfile = 'fused.img' ENVISAVE, fused, outfile, /INTERLEAVE ``` 2. 使用Python的GDAL库 GDAL是一个开源的地理信息系统库,可以用Python语言调用其API实现多光谱影像全色影像融合。以下是一个简单的Python代码示例: ``` import gdal # 读取多光谱影像全色影像 multispectral_file = 'multispectral.tif' panchromatic_file = 'panchromatic.tif' multispectral = gdal.Open(multispectral_file, gdal.GA_ReadOnly) panchromatic = gdal.Open(panchromatic_file, gdal.GA_ReadOnly) # 将全色影像插值到多光谱影像的空间分辨率 panchromatic_resampled = gdal.Warp('', panchromatic, format='VRT', outputBounds=multispectral.GetGeoTransform(), xRes=multispectral.GetGeoTransform()[1], yRes=multispectral.GetGeoTransform()[5]) # 将全色影像融合到多光谱影像中 fused = gdal.BandMerge(multispectral.GetRasterBand(1), multispectral.GetRasterBand(2), multispectral.GetRasterBand(3), panchromatic_resampled.GetRasterBand(1)) # 保存融合后的影像 driver = gdal.GetDriverByName('GTiff') outfile = 'fused.tif' outdataset = driver.Create(outfile, multispectral.RasterXSize, multispectral.RasterYSize, 4, gdal.GDT_Byte) outdataset.SetProjection(multispectral.GetProjection()) outdataset.SetGeoTransform(multispectral.GetGeoTransform()) outdataset.GetRasterBand(1).WriteArray(fused[:,:,0]) outdataset.GetRasterBand(2).WriteArray(fused[:,:,1]) outdataset.GetRasterBand(3).WriteArray(fused[:,:,2]) outdataset.GetRasterBand(4).WriteArray(fused[:,:,3]) outdataset.FlushCache() ``` 3. 使用MATLAB的图像处理工具箱 MATLAB的图像处理工具箱提供了多种图像融合算法,可以用MATLAB语言实现多光谱影像全色影像融合。以下是一个简单的MATLAB代码示例: ``` % 读取多光谱影像全色影像 multispectral_file = 'multispectral.tif'; panchromatic_file = 'panchromatic.tif'; multispectral = imread(multispectral_file); panchromatic = imread(panchromatic_file); % 将全色影像插值到多光谱影像的空间分辨率 panchromatic_resampled = imresize(panchromatic, size(multispectral), 'bilinear'); % 将全色影像融合到多光谱影像中 fused = imlincomb(0.3, multispectral(:,:,1), 0.59, multispectral(:,:,2), 0.11, multispectral(:,:,3), 0.4, panchromatic_resampled); % 保存融合后的影像 outfile = 'fused.tif'; imwrite(fused, outfile); ``` 以上代码示例仅为参考,实际应用中需要根据具体数据和需求进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值