Google Earth Engine(GEE)——Landsat8 SR数据除云

上一次讲了Google Earth EngineLandsat4/5/7 SR数据除云,这次讲一下Landsat8 SR数据除云,

同样是获取QA波段,select('pixel_qa'),将cloudShadowBitMask和cloudsBitMask的值都让它等于0,两个标志都应设置为零,表示清除条件。最后这个就成了掩膜后的对象。最后通过return把他返回去波段,重新给波段赋值就行了。

除云前:

除云后: 

上代码:

代码语言:javascript
复制
//先设置一个除云并且给波段重新赋值的函数
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});