GEE 批量NDVI
时间: 2025-06-26 13:20:38 浏览: 12
### Google Earth Engine (GEE) 批量计算 NDVI 的方法
在 GEE 中,可以使用 `ImageCollection` 来处理多个影像并批量生成 NDVI 数据。以下是实现这一功能的具体代码和说明。
#### 使用 ImageCollection 进行批量 NDVI 计算
通过加载 Landsat 8 图像集合 (`ee.ImageCollection`) 并应用函数来逐图像计算 NDVI 值,最终可得到整个时间序列的 NDVI 结果集。
```javascript
// 定义研究区域(替换为实际 AOI)
var aoi = ee.Geometry.Rectangle([103.5, 24.5, 105.5, 26]);
// 加载 Landsat 8 TOA 反射率数据集
var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA')
.filterBounds(aoi)
.filterDate('2018-01-01', '2018-12-31'); // 时间范围筛选
// 定义 NDVI 函数
function calculateNDVI(image) {
var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI');
return image.addBands(ndvi);
}
// 应用 NDVI 函数到图像集合
var withNDVI = collection.map(calculateNDVI);
// 设置可视化参数
var visParams = {min: -0.2, max: 0.8,
palette: ['FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163',
'99B718', '74A901', '66A000', '529400','3E8601']};
// 显示第一个带有 NDVI 的图像
Map.centerObject(aoi, 7);
Map.addLayer(withNDVI.first().select('NDVI'), visParams, 'First NDVI');
// 导出 NDVI 集合至资产或驱动器
Export.image.toDrive({
image: withNDVI.select('NDVI').mean(), // 输出平均 NDVI
description: 'Average_NDVI_2018',
scale: 30, // Landsat 分辨率为 30 米
region: aoi,
});
```
上述代码实现了以下操作:
1. **定义感兴趣区 (AOI)**:设置地理边界用于过滤影像。
2. **加载 Landsat 8 影像集合**:指定时间和空间条件下的影像集合[^1]。
3. **创建 NDVI 计算函数**:基于近红外波段 (Band 5) 和红光波段 (Band 4),调用 `.normalizedDifference()` 方法生成 NDVI 波段。
4. **映射 NDVI 到每张影像**:使用 `.map()` 将 NDVI 添加到每一幅影像中。
5. **导出结果**:将 NDVI 集合中的均值或其他统计指标保存到云端存储或本地磁盘。
此过程适用于任何支持多时相分析的数据源,只需调整输入数据集即可扩展适用场景。
---
###
阅读全文
相关推荐


















