标题——表达式
本文分享如何单张影像计算表达式——‘Expression’
实例代码为计算MODIS地表反射率影像EVI。
上文利用GEE提供的函数便捷化计算了归一化差分指数,这里主要是计算自己的表达式。
//加载MODIS地表反射率数据其单位为*10000,所以这里需要*0.0001
var img = ee.Image('MODIS/006/MOD09GA/2012_03_09').multiply(0.0001);
// 定义自己的表达式
//是在单张影像上进行操作
// variable name to band name in the input image.
var evi = img.expression(
'2.5 * (nir - red) / (nir + 6 * red - 7.5 * blue + 1)',
{
red: img.select('sur_refl_b01'), // 620-670nm, RED
nir: img.select('sur_refl_b02'), // 841-876nm, NIR
blue: img.select('sur_refl_b03') // 459-479nm, BLUE
});
// 地图中心
Map.setCenter(-94.84497, 39.01918, 8);
// 加载影像,真彩色合成
Map.addLayer(img.select(['sur_refl_b01', 'sur_refl_b04', 'sur_refl_b03']),
{min: 0, max: 0.2}, 'MODIS bands 1/4/3');
//加载计算的EVI,会覆盖在上幅影像上
Map.addLayer(evi, {min: 0, max: 1}, 'EVI');
代码运行结果
接下来修改代码,计算Landsat8的燃烧指数BAI
var img = ee.Image('LANDSAT/LC08/C01/T1_SR/LC08_123032_20160113').multiply(0.0001);
var MyExpressionBAI='1/(sqrt(0.1-RED)+sqrt(0.06-NIR))'
var BAI = img.expression(MyExpressionBAI,
{
RED: img.select('B4'), // 620-670nm, RED
NIR: img.select('B5'), // 841-876nm, NIR
});
// Center the map.
Map.setCenter(116, 39.9, 8);
Map.addLayer(BAI, {min: 1.79, max: 3.97}, 'BAI');
运行结果