Google Earth Engine中计算影像集每日区域降水均值/总和的方法
Google Earth Engine 计算CHIRPS区域统计并生成降水统计图
1. 对影像集执行区域统计
你已经完成研究区定义、影像加载筛选和裁剪,接下来遍历每景影像,计算研究区内的降水均值与总和。用map遍历影像集,结合reduceRegion实现区域统计,同时关联影像日期方便后续绘图:
// 假设你已定义 studyArea(研究区)和 chirpsFiltered(筛选裁剪后的CHIRPS影像集) var statsCollection = chirpsFiltered.map(function(image) { // 同时计算均值和总和,共享输入提升效率 var stats = image.reduceRegion({ reducer: ee.Reducer.mean().combine({ reducer2: ee.Reducer.sum(), sharedInputs: true }), geometry: studyArea, scale: 5000, // CHIRPS分辨率为0.05度,对应约5000米尺度 maxPixels: 1e10 // 避免大区域统计时的像素超限报错 }); // 返回带日期属性的Feature,用于后续提取时间序列 return ee.Feature(null, stats).set('date', image.date().format('YYYY-MM-dd')); });
2. 提取统计数据
将统计结果(FeatureCollection)转换为数组格式,提取日期和对应降水值:
// 提取日期列表和降水均值、总和数组 var dateList = statsCollection.aggregate_array('date'); var dailyMean = statsCollection.aggregate_array('precipitation_mean'); var dailySum = statsCollection.aggregate_array('precipitation_sum');
3. 创建每日降水统计图
使用GEE内置的ui.Chart生成折线图,直观展示每日降水变化:
// 每日平均降水量折线图 var meanChart = ui.Chart.array.values({ array: dailyMean, axis: 0, xLabels: dateList }).setOptions({ title: '研究区每日平均降水量', hAxis: {title: '日期', format: 'YYYY-MM-dd', gridlines: {count: 10}}, vAxis: {title: '降水量 (mm)'}, lineWidth: 2, pointSize: 3, colors: ['#1f77b4'] }); // 每日降水总量折线图 var sumChart = ui.Chart.array.values({ array: dailySum, axis: 0, xLabels: dateList }).setOptions({ title: '研究区每日降水总量', hAxis: {title: '日期', format: 'YYYY-MM-dd', gridlines: {count: 10}}, vAxis: {title: '降水量总和 (mm)'}, lineWidth: 2, pointSize: 3, colors: ['#ff7f0e'] }); // 在控制台打印图表 print(meanChart); print(sumChart);
注意事项
scale参数需匹配CHIRPS影像分辨率(默认0.05度≈5.5km,设置为5000米即可)- 若研究区包含多个离散多边形,可使用
studyArea.union()确保统计覆盖所有区域 maxPixels值可根据研究区大小调整,确保超过实际像素数量即可
内容的提问来源于stack exchange,提问作者Kelana
相关产品推荐
相关产品推荐

