ENVI扩展补丁:快速坏点修复工具

更新日志

2022.06.30 —— 带来重大更新

  • 自动获取数据覆盖区矢量,无需手动绘制,提高坏点修复效率,真正实现批处理
  • 工具将进行多次尝试直至修复所有坏点
  • 显示清晰日志消息,可了解修复进度、每一个波段的坏点个数等信息
  • 修改使用窗口内有效像元的中值进行坏点填充,更合理
  • 建议仔细阅读使用说明/重要提醒/负值处理章节内容,再使用此工具

旧版修复工具可参考博文:https://www.cnblogs.com/enviidl/p/16267249.html


几条坏消息

  • 本工具仅支持ENVI标准格式数据。

  • 本工具每次循环需读取1个波段数据到内存中,所以数据量有限制

    • 注:比如数据量 4GB,4个波段,每次读取数据量1GB,内存至少2倍以上。

  • 本工具支持 ENVI 5.3 及更高版本。

几条好消息

  • 本工具坏点修复堪称光速(对原始数据进行更新,不需要重新写出数据)。

    • 注:如果原始数据有其他用处,请提前备份

  • 本工具可以进行批处理

  • 本工具支持输入矢量作为掩膜文件(当背景值较多时,一定要输入矢量掩膜文件)。

  • 可同时处理0值、NaN、Inf等异常值。


 效率对比

  • 测试数据:3.34GB

  • 数据类型:UINT

  • 数据维度:21144×21256×4

  • 旧版工具:60分钟

  • 新版工具:3分钟

注:工具测试时设置参数相同,窗口大小均为3,均使用了掩膜文件。


安装方法

方法1使用 ENVI App Store 进行 ENVI 扩展工具的安装与管理。

App Store 下载地址:envi.geoscene.cn/appstore

方法2手动下载 https://envi.geoscene.cn/appstore/repabpeast

下载 zip 压缩包并解压,将得到的 extensionscustom_code 文件夹拷贝到如下 ENVI 安装路径,覆盖同名文件夹即可:

  • ENVI 5.3 - C:\Program Files\Exelis\ENVI53\

  • ENVI 5.4 及以上 - C:\Program Files\Harris\ENVI5x\

重启 ENVI 即可使用。  


使用说明

1)重新启动 ENVI,选择工具箱 /Extensions/Replace Bad Pixels [Fast]

2)第一次启动工具时,会弹出如下提示:

3)在弹出的对话框中设置如下参数,单击 OK。

  • Input Rasters:支持多选栅格数据,即批处理。只支持 ENVI 标准格式(即dat+hdr)

  • Kernel Size:修复窗口大小。若坏洞较大,建议适当调大窗口,可提高修复效率,减少修复次数

  • Fill Value:填充值。若不设置,将只使用窗口内有效像元均值进行填充,如果窗口内无有效像元,则不修复此坏点;若设置为 2,在窗口内无有效像元时,将使用 2 填充坏点
  • Data Ignore Value:设定背景值(或需要修复的值)。以数据自带 Data Ignore Value 为优先,若数据不含 DIV,则以输入值为准;若不设置,则默认为 0

  • Mask Vector:矢量掩膜文件。新版工具已支持自动生成此矢量(当图像只包含一个区域时可精确自动生成矢量,若图像中存在不相邻的几个区域时,请手动绘制矢量,因为自动生成的矢量会包含几个区域之间的背景区域

  • Inverse Mask:是否反转掩膜(仅在手动设置 Mask Vector 时有效)

  • Display Results:是否显示结果

 

4)将显示详细的日志消息,如下图所示:

5)修复效果如下:


重要提醒

当图像中存在多个不相邻的区域时(如下图所示),请手动绘制有效范围矢量,并设置为 Mask Vector 参数。


负值处理

若错误提示为“多次修复无效,请检查图像中是否存在负值”,请检查图像中是否存在负值。有可能因为窗口有效像元均值正好为0,导致无法修复。

此时需要对原始数据进行负值去除。

下面方法仅适用于背景值为0、负值为异常值的情况。可以将负值像元赋值于特定值,比如2

步骤如下:

1)在工具箱打开波段运算工具,Toolbox/Band Algebra/Band Math

2)输入公式:(b1 lt 0)*2+(b1 ge 0)*b1

此公式可以将负值像元赋值为2,若有其他需求请自行修改公式

3)点击 Add to List,点击 OK

4)在弹出的对话框中点击 Map Variable to Input File,可以对整个文件所有波段进行处理。在弹出对话框中选择输入文件即可

5)回到波段运算界面后,设置输出文件路径,点击 OK 即可

6)然后再使用坏点修复工具对波段运算结果进行修复。

posted @ 2022-06-01 14:47  ENVI-IDL技术殿堂  阅读(1558)  评论(0编辑  收藏  举报