上一次讲了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});