// 加载指定的 shp 范围
var geometry = table
// 选择数据集并进行波段选择
var dataset = ee.ImageCollection('ECMWF/ERA5/MONTHLY')
.filterDate('2003-01-01', '2022-12-31')
.filterBounds(geometry)
.select('total_precipitation');
// 进行年总降水量的计算
var years = ee.List.sequence(2003, 2022);
var collectYear = ee.ImageCollection(years.map(function(y) {
var start = ee.Date.fromYMD(y, 1, 1);
var end = start.advance(12, 'month');
return dataset.filterDate(start, end)
.sum() // 计算年总降水量
.set('year', y);
}));
print(collectYear); // 打印年总降水量集合
// 导出每年的总降水量
function exportImageCollection(imgCol) {
var indexList = imgCol.reduceColumns(ee.Reducer.toList(), ["year"]).get("list");
indexList.evaluate(function(indexs) {
for (var i = 0; i < indexs.length; i++) {
var image = imgCol.filter(ee.Filter.eq("year", indexs[i])).first();
image = image.clip(geometry);
// TIFF 数据下载
Export.image.toDrive({
image: image,
description: 'total_precipitation_' + indexs[i],
fileNamePrefix: 'total_precipitation_' + indexs[i],
folder: 'total_precipitation',
region: geometry,
scale: 1000,
crs: "EPSG:4326",
maxPixels: 1e13
});
}
});
}
// 调用导出函数
exportImageCollection(collectYear);