GEE中的位运算
本文参考:Working with QA Bands and Bitmasks in Google Earth Engine
下面书写的是我个人的理解,若有不对的地方,恳请您不吝赐教!
了解过MODIS产品数据后发现,它有一个QA波段用来标记其他波段的质量情况。下面用比较常用的MOD13Q1[波段信息]举例:两个QA波段,SummaryQA和DetailedQA。从BitMask详细信息中可以看出,DetailedQA是16-bits的数据类型,表示它的取值范围为,即在0到65535之间。而从DetailQA到BitMask,可以看下面这个流程图。

所以,想要获得质量较高的NDVI图像,需要满足'SummaryQA' bit0-1为0 or 'DetailQA'bit0-1为0 or ('DetailQA'bit0-1为1 and 'DetailQA'bit2-5为0)


function bitwiseExtract(value, fromBit, toBit) {
if (toBit === undefined) toBit = fromBit
var maskSize = ee.Number(1).add(toBit).subtract(fromBit)
var mask = ee.Number(1).leftShift(maskSize).subtract(1)
return value.rightShift(fromBit).bitwiseAnd(mask)
}
var modisQA_mask = function(image) {
var sqa = image.select('SummaryQA');
var dqa = image.select('DetailedQA');
var viQualityFlagsS = bitwiseExtract(sqa, 0, 1);
var viQualityFlagsD = bitwiseExtract(dqa, 0, 1);
var viUsefulnessFlagsD = bitwiseExtract(dqa, 2, 5);
var mask = viQualityFlagsS.eq(0) // Good data, use with confidence
.or(viQualityFlagsD.eq(0)) // VI produced with good quality
.or(viQualityFlagsD.eq(1).and(viQualityFlagsD.eq(0)));// VI produced, but check other QA & VI usefulness: Highest quality
// var mask = viQualityFlagsS.eq(0) // Good data, use with confidence
// .and(viQualityFlagsD.eq(0)) // VI produced with good quality
return image.updateMask(mask);
};
另一个是采用按位与的运算,参见官方给出的Landsat去云代码
参考说明见:GEE|Google Earth Engine中的位运算 - Weltㅤ - 博客园 (cnblogs.com)
关键是理解这句话:第二步中,只有'XXXX XXXX XXX0 0000'(X代表0或1)这样的像素,在进行按位与运算后的结果为0,最终的结果为1。
而bit0-4全是0,对应属性表格。

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)