1. 哨兵版本:
参考https://blog.csdn.net/lidahuilidahui/article/details/102765420
2. 通用的方法
考虑到哨兵数据提供了云的分类数据,因此,整体思路就是 有云区域 对应的哨兵2影像pixel值设为0或者空值。
如果是在ENVI中操作,需要使用bandmath工具:
参考:
http://blog.sina.com.cn/s/blog_764b1e9d0100zi01.html
假设 提供的云掩模文件b1中,云的像素值定义为10,而你需要掩模的哨兵2 tif数据假设为b2
需要输入下面的公式
(b1 EQ 10) * 0 + (b1 NE 10) * b2
含义是b1 的像素如果等于10,那么赋值为0,如果b1 的像素如果不等于10,则赋值为b2的像素值。
但是这个方法针对的是单波段数据,即你的b1和b2都是单波段的数据,如果是多波段数据,那么可能该方法不适用。
如果是多波段数据,那我建议还是利用方法1或者ENVI的mask工具进行操作
考虑到你可能有很多幅影像,可以考虑镶嵌(拼接后)再进行mask操作,
需要注意的ENVI需要的mask输入数据必须是矢量数据。
具体掩模步骤参考:
https://blog.csdn.net/MY1418832640/article/details/88793132
方法3
原理和ENVI一样,也是用矢量裁剪栅格数据,只不过是在arcgis中操作,用的是clip工具。也可参考
另外,ENVI有插件叫haze-tool,是针对影像去云的,但是你这边已经有了云的分类文件,因此,不需要再使用这个软件了,
以上是一些方法。
当然matlab,python 写代码也不难,就是处理多波段可能较为繁琐。