GEE | 基于Sentinel-2 计算中国EVI

筛选了2023年4月1日至2023年9月10日的Sentinel 2 影像,计算全国的EVI(如果要计算其它地方直接更改研究区就好了)
Sentinel-2 的EVI计算公式:
在这里插入图片描述

// 定义研究区
var roi = ee.FeatureCollection('users/yongweicao11/China_1984');

var myImage = ee.ImageCollection("COPERNICUS/S2_HARMONIZED")
  .filterBounds(roi)
  .filterDate('2023-04-01', '2023-09-10')	// 筛选指定时间内的Sentinel 2 影像
  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20));	// 根据云量要求筛选影像

// 去云函数,GEE 中提供了Sentinel-2的去云函数
function maskS2clouds(image) {
    var qa = image.select('QA60');
    var mask = qa.bitwiseAnd(1 << 10).eq(0).and(qa.bitwiseAnd(1 << 11).eq(0));
  return image.updateMask(mask).divide(10000);
}
// 影像去云
myImage = myImage.map(maskS2clouds)
// 对影像进行中值合成并裁剪
myImage = myImage.median().clip(roi)

// 计算 EVI
var nirScaled = myImage.select('B8'); 
var redScaled = myImage.select('B4'); 
var blueScaled = myImage.select('B2'); 

var numeratorEVI = (nirScaled.subtract(redScaled)).multiply(2.5);  
var denomClause1 = redScaled.multiply(6); 
var denomClause2 = blueScaled.multiply(7.5); 
var denominatorEVI = nirScaled.add(denomClause1).subtract(denomClause2).add(1); 
var EVI = numeratorEVI.divide(denominatorEVI).rename('EVI'); 
print(EVI)
// 将EVI计算结果添加到地图
var vegPalette = ['red', 'white', 'green']; 
var visParams = {min: -1, max: 1, palette: vegPalette}; 
Map.addLayer(EVI, visParams, 'EVI'); 

上述代码利用了GEE内置的计算函数,比较繁杂,也可以通过自定义函数计算EVI

var roi = ee.FeatureCollection('users/yongweicao11/China_1984');
print('ROI:', roi);

var myImage = ee.ImageCollection("COPERNICUS/S2_HARMONIZED")
  .filterBounds(roi)
  .filterDate('2023-04-01', '2023-09-10')
  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20));
print(myImage)

function maskS2clouds(image) {
    var qa = image.select('QA60');
    var mask = qa.bitwiseAnd(1 << 10).eq(0).and(qa.bitwiseAnd(1 << 11).eq(0));
  return image.updateMask(mask).divide(10000);
}
myImage = myImage.map(maskS2clouds)
myImage = myImage.median().clip(roi)

var eviExpression = myImage.expression({ 
	// 定义计算公式
	expression: '2.5 * ((NIR - RED) / (NIR + 6 * RED - 7.5 * BLUE + 1))', 
	map: {  // 定义公式中的参数值
	'NIR': myImage.select('B8'), 
	'RED': myImage.select('B4'), 
	'BLUE': myImage.select('B2') 
	} 
}); 
var vegPalette = ['red', 'white', 'green']; 
var visParams = {min: -1, max: 1, palette: vegPalette}; 
Map.addLayer(eviExpression, visParams, 'EVI'); 

计算结果
(注意:南方部分地区存在缺失,可能是没有符合筛选条件的影像,可以尝试调节时间筛选和云量筛选,注意GEE要求图像集合不能超过5000个元素,否则会报错)
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值