GEE基础学习——EVI指数计算

利用表达式的形式计算EVI指数

// Compute Enhanced Vegetation Index (EVI) over the MODIS MOD09GA product
// using an expression.

// Load a MODIS image and apply the scaling factor.
var img = ee.Image('MODIS/006/MOD09GA/2012_03_09').multiply(0.0001);

// Compute EVI using an expression.  The second argument is a map from
// 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
    });

// Center the map.
Map.setCenter(-94.84497, 39.01918, 8);

// Display the input image and the EVI computed from it.
Map.addLayer(img.select(['sur_refl_b01', 'sur_refl_b04', 'sur_refl_b03']),
         {min: 0, max: 0.2}, 'MODIS bands 1/4/3');
Map.addLayer(evi, {min: 0, max: 1}, 'EVI');

以上这段代码的核心是img.expression('表达式',{公式中的波段名称:要选择影像的波段}...)有几个波段参与运算就通过这个形式及逆行计算即可。

这是参与运算的后的EVI灰度影像展示

这是原始的MODIS影像图像!

### 使用 Google Earth Engine 计算内蒙古地区 EVI 指数 #### 方法一:基于数学表达式的通用方法 通过 `ee.Image.expression` 函数可以直接编写数学表达式来计算EVI指数。这种方法适用于任何类型的遥感影像数据。 ```javascript // 定义研究区域(以内蒙古为例) var geometry = ee.Geometry.Polygon( [[[107.89, 46.82], [122.01, 46.82], [122.01, 50.13], [107.89, 50.13]]]); // 加载Landsat 8表面反射率产品 var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR') .filterBounds(geometry) .filterDate('2020-01-01', '2020-12-31'); // 定义EVI计算公式并应用到图像集合上 var eviExpression = '2.5 * (NIR - RED) / (NIR + 6 * RED - 7.5 * BLUE + 1)'; var addEVI = function(image){ var evi = image.expression(eviExpression,{ NIR:image.select('B5'), RED:image.select('B4'), BLUE:image.select('B2')}); return image.addBands(evi.rename('EVI')); }; // 应用函数至整个图像集合 var withEVI = collection.map(addEVI); // 可视化展示结果 Map.centerObject(geometry); Map.addLayer(withEVI.first(), {bands:['EVI'], min:-1, max:1}, "EVI"); ``` 此段代码实现了对指定区域内所有符合条件的卫星图片添加一个新的名为"EVI"的波段,用于存储对应的EVI数值[^1]。 #### 方法二:针对 MODIS 数据集的预定义函数法 对于MODIS这样的特定传感器获取的数据,则可以采用更简便的方式来获得EVI指标: ```javascript // 导入MODIS NDVI/NDWI/EVI等植被指数产品 var modisEVI = ee.ImageCollection("MODIS/006/MOD13A2") .select('EVI') .filterDate('2020-01-01','2020-12-31') .filterBounds(geometry); // 显示最终得到的结果图层 Map.setCenter(114.5, 45.5, 6); // 设置地图中心位置为内蒙古自治区中部 Map.addLayer(modisEVI.mean().clip(geometry),{min:0,max:9000},'Mean Annual EVI'); ``` 这段脚本直接选择了MODIS官方已经处理好的EVI波段,并对其进行了时间和空间上的筛选操作[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此星光明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值