You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Google Earth Engine中对月最大降水影像集进行排名

Google Earth Engine中实现月降水最大值的像素排名解决方案

核心解决思路

要完成每月降水最大值的像素排名,关键是利用GEE的数组操作对每个像素的12个月数值进行排序并获取排名:

  • 将12幅单波段的月最大降水影像合并为多波段影像,便于按像素进行多值计算
  • 通过数组排序函数对每个像素的12个值进行降序排列,再定位原始值在排序结果中的位置,得到排名(数值越大排名越靠前)
  • 将排名结果拆解回12幅单波段影像,组成最终的排名影像集

完整代码实现

var startDate = '2000-06-01';
var endDate = '2021-09-01';

var im_col = 'NASA/GPM_L3/IMERG_MONTHLY_V06';
var band = 'precipitation';

// 获取原始月降水数据集
var dataset = ee.ImageCollection(im_col)
                .filterDate(startDate, endDate)
                .select(band);

// 生成12个月的最大降水影像集(改用服务器端map操作,适配GEE异步逻辑)
var monthlyMaxList = ee.List.sequence(1, 12).map(function(month) {
  return dataset
    .filter(ee.Filter.calendarRange(month, month, 'month'))
    .max()
    .set('month', month); // 添加月份属性用于后续关联
});
var monthlyMaxListCol = ee.ImageCollection.fromImages(monthlyMaxList);

// -------------------------- 排名计算核心代码 --------------------------
// 1. 将12幅单波段影像合并为多波段影像,每个波段对应一个月的最大值
var monthlyMaxStack = monthlyMaxListCol.toBands();

// 2. 转换为数组格式,支持逐像素多值运算
var arrayImage = monthlyMaxStack.toArray();

// 3. 对数组进行降序排序(默认升序,反转后实现降序,确保最大值排名为1)
var sortedArray = arrayImage.arraySort().arrayReverse();

// 4. 获取原始值在排序数组中的位置,索引从0开始,加1转为1-12的排名值
var rankArray = arrayImage.arrayPosition(sortedArray).add(1);

// 5. 将排名数组拆解回12幅单波段影像,重构为排名影像集
var rankCollection = ee.ImageCollection.fromImages(
  rankArray.arraySplit(ee.List.repeat(1, 12))
).map(function(image, idx) {
  // 给每幅排名影像添加对应月份属性,方便后续识别
  var month = ee.List.sequence(1, 12).get(idx);
  return image.set('month', month).rename('precipitation_rank');
});

// 打印结果验证
print('月最大降水影像集', monthlyMaxListCol);
print('月降水排名影像集', rankCollection);

关键代码说明

  1. 月最大影像集优化:替换原客户端for循环为服务器端ee.List.sequence().map(),避免客户端-服务器端频繁交互的性能损耗,更符合GEE异步执行逻辑
  2. 排序与排名逻辑:
    • arraySort()默认按升序排列,配合arrayReverse()转为降序,确保数值最大的月份排名为1
    • arrayPosition()定位原始值在排序后数组中的索引,加1后得到1-12的连续排名,完全匹配你示例中的规则
  3. 影像集重构:arraySplit()将多波段排名数组拆分为单波段影像,再通过map()添加月份属性,保证排名影像与原始月最大影像的月份对应关系

内容的提问来源于stack exchange,提问作者touldimos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 12:33:30