1. 程式人生 > 其它 >Google Earth Engine——基於新的Landsat SR資料集去雲處理

Google Earth Engine——基於新的Landsat SR資料集去雲處理

根據GEE官方公告,明年原來的Landsat/LT05/C01/T1_SR和Landsat/LC08/C01/T1_SR資料集將停止更新,並提供了新的地表反射率資料,就是LANDSAT/LT05/C02/T1_L2和LANDSAT/LC08/C02/T1_L2。新的資料集直接提供LST產品,方便獲取地表溫度,同時也給出官方程式碼去雲處理。

參考:USGS Landsat 5 Level 2, Collection 2, Tier 1 (google.com)

去雲程式碼如下:

 1 /****************************************L5 去雲***************************************
*/ 2 /***************************************************************************************/ 3 // 使用Landsat5 Collection 2,Level 2 QA_PIXEL波段(CFMask)去雲 4 function maskL5sr(image) { 5 // Bit 0 - fill 6 // Bit 1 - Dilated Cloud 7 // Bit 2 - Unused 8 // Bit 3 - Cloud 9 // Bit 4 - Cloud Shadow 10 var qaMask = image.select('QA_PIXEL').bitwiseAnd(parseInt('11111', 2)).eq(0);
11 var saturationMask = image.select('QA_RADSAT').eq(0); 12 13 // 將縮放係數應用於適當的波段 14 var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2); 15 var thermalBand = image.select('ST_B6').multiply(0.00341802).add(149.0); 16 17 // 用縮放後的波段替換,並應用雲掩膜 18 return image.addBands(opticalBands, null, true) 19 .addBands(thermalBand, null
, true) 20 .updateMask(qaMask) 21 .updateMask(saturationMask); 22 } 23 24 //處理一年的資料 25 var collection = ee.ImageCollection('LANDSAT/LT05/C02/T1_L2') 26 .filterDate('2010-01-01', '2011-01-01') 27 .map(maskL457sr); 28 //中值合成 29 var composite = collection.median(); 30 31 // 地圖展示 32 Map.addLayer(composite, {bands: ['SR_B3', 'SR_B2', 'SR_B1'], min: 0, max: 0.3}); 33 /***************************************************************************************/ 34 35 /****************************************L8 去雲****************************************/ 36 /***************************************************************************************/ 37 // 使用Landsat8 Collection 2,Level 2 QA_PIXEL波段(CFMask)去雲 38 39 function maskL8sr(image) { 40 // Bit 0 - Fill 41 // Bit 1 - Dilated Cloud 42 // Bit 2 - Cirrus 43 // Bit 3 - Cloud 44 // Bit 4 - Cloud Shadow 45 var qaMask = image.select('QA_PIXEL').bitwiseAnd(parseInt('11111', 2)).eq(0); 46 var saturationMask = image.select('QA_RADSAT').eq(0); 47 48 // 用縮放後的波段替換,並應用雲掩膜 49 var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2); 50 var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0); 51 52 // 用縮放後的波段替換,並應用雲掩膜 53 return image.addBands(opticalBands, null, true) 54 .addBands(thermalBands, null, true) 55 .updateMask(qaMask) 56 .updateMask(saturationMask); 57 } 58 59 // 處理一年的資料 60 var collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2') 61 .filterDate('2020-01-01', '2021-01-01') 62 .map(maskL8sr); 63 //中值合成 64 var composite = collection.median(); 65 66 // 地圖展示 67 Map.addLayer(composite, {bands: ['SR_B4', 'SR_B3', 'SR_B2'], min: 0, max: 0.3}); 68 /***************************************************************************************/