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

Google Earth Engine IDW插值:mean与stdDev返回空值问题排查

问题原因分析
  • 属性名称不匹配:在采样后的map处理环节,你把原图像的precipitation属性重命名为了prec(代码行:return ee.Feature(ee.Geometry.Point([lon, lat]), {prec: prec});),但后续调用reduceColumns计算统计量时,指定的selectors是['precipitation']——这个属性在最终的samples集合里根本不存在,导致reducer无法获取有效数据计算均值和标准差,最终返回空值。

  • 参数类型潜在问题:即使修复了属性名称,stats.get('mean')和stats.get('stdDev')返回的是未完成计算的服务器端对象,直接传递给inverseDistance可能引发异步计算异常,需要用ee.Number()包装确保为数值类型。

修复后的关键代码片段
// 采样时保持属性名与原图像一致,避免后续匹配错误
var samples = precipitation.addBands(ee.Image.pixelLonLat())
                           .sample({
                             region: cairu,
                             scale: 5566,
                             numPixels: 16, 
                             projection: 'EPSG:4326'
                           }).map(function(sample){
                                var lat = sample.get('latitude');
                                var lon = sample.get('longitude');
                                var prec = sample.get('precipitation');
                                return ee.Feature(ee.Geometry.Point([lon, lat]), {precipitation: prec});
                            });

// 使用正确的属性名计算统计量
var stats = samples.reduceColumns({
  reducer: combinedReducer,
  selectors: ['precipitation']
});

// 用ee.Number()包装,确保传递给IDW的是有效数值类型
var meanVal = ee.Number(stats.get('mean'));
var stdDevVal = ee.Number(stats.get('stdDev'));

var interpolated = samples.inverseDistance({
  range: 5e3,
  propertyName: 'precipitation',
  mean: meanVal,
  stdDev: stdDevVal,
  gamma: 0.3
});

内容的提问来源于stack exchange,提问作者Murillo AL Costa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 09:34:57