ENVI中处理图像遇到NaN时的处理方法

当图像中包含 NaN 等无效值时,在 ENVI 中进行某些处理可能会遇到类似下方的提示:

此时,可以有几种方法解决这个问题。


方法1:选择输入文件时掩膜NaN

以 PCA 变化为例,在工具箱双击 /Transform/PCA Rotation/Forward PCA Rotation New Statistics and Rotate,在弹出的对话框中,选中待处理图像,在 Mask Options 下拉列表中,如果 Mask NaNs [All Bands]Mask NaNs [Any Band] 两个菜单可用,说明图像中包含NaN像元。

根据需要进行掩膜,一般建议选择 Mask NaNs [Any Band],表示任意一个波段 DN 值为 NaN 时便掩膜掉这个像元。然后点击 OK,将自动生成掩膜文件并对输入文件进行掩膜,最后弹出 PCA 面板,设置参数便可正常进行处理了。

这种方法不需要预先对输入图像进行掩膜处理。


方法2:使用 Apply Mask 工具

可以使用 Apply Mask 工具对输入图像进行掩膜处理,将 NaN 掩膜为 0 值或其他值。

ENVI 5.4.1 及以上版本移除了这个工具,大家可以在 ENVI App Store 中安装如下工具,重启 ENVI 即可使用。

操作方法如下:

  • 在工具箱启动 Apply Mask 工具:
    • ENVI 5.4.1以下版本:Toolbox/anagement/Masking/Apply Mask
    • ENVI 5.4.1及以上版本:Toolbox/ENVI Classic/Apply Mask
      • 注:ENVI 5.4.1及以上版本需要安装扩展工具
  • 在弹出的 Apply Mask Input File 面板中,在 Mask Options 下拉列表中,如果 Mask NaNs [All Bands] Mask NaNs [Any Band] 两个菜单可用,说明图像中包含 NaN 像元。根据需要进行掩膜,一般建议选择 Mask NaNs [Any Band],表示任意一个波段DN值为NaN时即掩膜掉这个像元。然后点击 OK 继续。

  • 在弹出的面板中设置 Mask Value,即背景值。如图中所示,将会把值为 NaN 的像元掩膜为 0 值。然后再对掩膜后图像进行处理即可。


方法3:利用波段运算工具

请查看博文“ENVI扩展工具:利用波段运算修改NaN方法总结”:https://www.cnblogs.com/enviidl/p/16267337.html

posted @   ENVI-IDL技术殿堂  阅读(4471)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示