gee下载ndvi逐月
时间: 2025-02-19 13:23:42 浏览: 119
### 使用 Google Earth Engine (GEE) 下载逐月 NDVI 数据
#### 准备工作
在开始之前,确保已经安装并配置好 GEE 的 Python API 或者熟悉 GEE Code Editor 环境。如果选择使用 Python API,则需先完成认证过程。
#### 定义函数与参数设置
创建用于计算 NDVI 和处理影像集合的基础函数。对于 Landsat 8 影像而言,通常会涉及到去除云层影响以及应用特定区域的兴趣范围(AOI)。这里给出一个简单的例子来展示如何构建这样的流程:
```javascript
// 设置研究区边界
var aoi = ee.Geometry.Polygon(
[[[116.0, 39.5],
[116.5, 39.5],
[116.5, 40.0],
[116.0, 40.0]]]);
// 加载Landsat 8 表面反射率产品,并过滤日期和地理范围
function maskL8sr(image) {
var cloudShadowBitMask = (1 << 3);
var cloudsBitMask = (1 << 5);
var qa = image.select('pixel_qa');
// 只保留无云像素
var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
.and(qa.bitwiseAnd(cloudsBitMask).eq(0));
return image.updateMask(mask).divide(10000); // 将DN值转换为表面反射率
}
var dataset = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
.filterDate('2021-01-01', '2021-12-31') // 设定年份区间
.filterBounds(aoi)
.map(maskL8sr);
// 计算NDVI
var addNdvi = function(image){
var ndvi = image.normalizedDifference(['B5','B4']).rename('NDVI');
return image.addBands(ndvi);
};
dataset = dataset.map(addNdvi);
```
上述代码片段展示了如何加载 Landsat 8 SR 数据集、移除受云污染的数据点,并添加一个新的波段表示 NDVI 值[^2]。
#### 批量导出每月 NDVI 图像
接下来的部分将介绍怎样按照每个月的时间间隔提取 NDVI 并将其保存到用户的谷歌驱动器上。这可以通过循环遍历每一对起始时间和结束时间之间的所有图像来进行操作。
```javascript
for(var month=1;month<=12;month++){
var start_date = ee.Date.fromYMD(year, month, 1);
var end_date = start_date.advance(1,'month');
var monthlyDataset = dataset.filterDate(start_date,end_date);
Export.image.toDrive({
image:monthlyDataset.median().select('NDVI'),
description:'Monthly_NDVI_' + year.toString()+'_'+month,
scale:30,
region:aoi,
maxPixels:1e13
});
}
```
这段脚本实现了按月度周期获取 NDVI 中位数,并自动执行向云端存储空间上传文件的任务。注意 `scale` 参数决定了输出栅格的空间分辨率;而 `maxPixels` 则用来控制单次请求的最大像素数量以避免超出配额限制[^4]。
阅读全文
相关推荐

















