基于GEE平台的Landsat8、Sentinel2、MODIS“去云”处理及FUI水色指数运算
文章目录
数据集
Landsat 8 :USGS Landsat 8 Surface Reflectance Tier 1 图集详情
Sentinel-2 :Sentinel-2 MSI: MultiSpectral Instrument, Level-2A图集详情
MODIS :MOD09A1.006 Terra Surface Reflectance 8-Day Global 5图集详情
一、“去云”处理
1. Landsat 8
//“ROI”为自定义兴趣区
Map.centerObject(ROI);
// 时间序列,2018 TO 2020
// for(var i = 2018;i<=2020;i++){
// var yearn = i;
// get_yearly_FUI(yearn);
// }
//设置某一年份、月份
get(2019,10);
function get(year,month){
//设置需要提取的日期
var startDate = ee.Date.fromYMD(year, month, 1);
var endDate = ee.Date.fromYMD(year, month,30);
//去云函数
function maskL8sr(image) {
// Bits 3 and 5 are cloud shadow and cloud, respectively.
var cloudShadowBitMask = 1 << 3;
var cloudsBitMask = 1 << 5;
// Get the pixel QA band.a
var qa = image.select('pixel_qa');
// Both flags should be set to zero, indicating clear conditions.
var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
.and(qa.bitwiseAnd(cloudsBitMask).eq(0));
return image.updateMask(mask);
}
//筛选数据:数据集、研究范围、研究时间段、去云操作
var bjL8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR")
.filterBounds(ROI)
.filterDate(startDate,endDate)
//.filter(ee.Filter.lt('CLOUD_COVER', 20))
.map(maskL8sr);
//求得均值,裁剪出兴趣区
var mean = bjL8.mean()
.clip(ROI);
//配色
var viz = {
bands: ['B4', 'B3', 'B2'],
min: 0,
max:3000,
gamma: 1.4,
};
//可视化,添加mean图层
Map.addLayer(mean,viz,"BJ_RGB");
}
2. Sentinel-2
Map.centerObject(ROI);
// 时间序列,2018 TO 2020
// for(var i = 2018;i<=2020;i++){
// var yearn = i;
// get_yearly_FUI(yearn);
// }
//设置某一年份、月份
get(2019,10);
function get(year,month){
//设置需要提取的日期
var startDate = ee.Date.fromYMD(year, month, 1);
var endDate = ee.Date.fromYMD(year, month,30);
//去云函数
function maskS2(image) {
var qa = image.select('QA60');
// Bits 10 and 11 are clouds and cirrus, respectively.
var cloudBitMask = 1 << 10;
var cirrusBitMask = 1 << 11;
// Both flags should be set to zero, indicating clear conditions.
var mask = qa.bitwiseAnd(cloudBitMask).eq(0)
.and(qa.bitwiseAnd(cirrusBitMask).eq(0));
return image.updateMask(mask).divide(10000);
}
var bjS2 = ee.ImageCollection("COPERNICUS/S2_SR")
.filterBounds(ROI)
.filterDate(startDate,endDate)
//.filter(ee.Filter.lt('CLOUD_COVER', 20))
.map(maskS2);
var mean = bjS2.mean()
.clip(