上一次讲了Google Earth EngineLandsat4/5/7 SR数据除云,这次讲一下Landsat8 SR数据除云,
同样是获取QA波段,select('pixel_qa'),将cloudShadowBitMask和cloudsBitMask的值都让它等于0,两个标志都应设置为零,表示清除条件。最后这个就成了掩膜后的对象。最后通过return把他返回去波段,重新给波段赋值就行了。
除云前:
除云后:
上代码:
//先设置一个除云并且给波段重新赋值的函数 function maskL8sr(image) { // 第3位和第5位分别是云影和云。 var cloudShadowBitMask = 1 << 3; var cloudsBitMask = 1 << 5;
// 获取pixel QA band.
var qa = image.select('pixel_qa');// 明确条件,设置两个值都为0
var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
.and(qa.bitwiseAnd(cloudsBitMask).eq(0));// 更新掩膜云的波段,最后按照反射率缩放,在选择波段属性,最后赋值给影像
return image.updateMask(mask).divide(10000)
.select("B[0-9]*")
.copyProperties(image, ["system:time_start"]);
}// 加载一年的地图影像遍历写好的去云函数.
var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
.filterDate('2016-01-01', '2016-12-31')
.map(maskL8sr)
//求中位数
var composite = collection.median();
// Display the results.
Map.addLayer(composite, {bands: ['B4', 'B3', 'B2'], min: 0, max: 0.3});