GEE学习笔记 十:反距离权重 (IDW) 插值

日期:

在GIS中很常用的一个功能就是散点面状化,简单说就是要使用插值方式将散点状的数据面状化。常用的插值方法包括:IDW(反距离权重插值法)、克里金插值法等。

我们在使用Arcgis等专业软件时候,其内部已经封装好了具体的算法,我们只要调节相关参数就可以。其实在GEE中也封装了一些插值算法,这一篇主要讲一下在GEE中如何使用IDW插值方法。

首先说一下IDW,参考网上的定义:

反距离权重 (IDW) 插值显式假设:彼此距离较近的事物要比彼此距离较远的事物更相似。当为任何未测量的位置预测值时,反距离权重法会采用预测位置周围的测量值。与距离预测位置较远的测量值相比,距离预测位置最近的测量值对预测值的影响更大。反距离权重法假定每个测量点都有一种局部影响,而这种影响会随着距离的增大而减小。由于这种方法为距离预测位置最近的点分配的权重较大,而权重却作为距离的函数而减小,因此称之为反距离权重法。

具体代码如下

//IDW Demo
var point = ee.FeatureCollection([
 ee.Feature(ee.Geometry.Point(116.478112,    39.647680), {value: 15.98}),
 ee.Feature(ee.Geometry.Point(116.439615,    39.651196), {value: 57.15}),
 ee.Feature(ee.Geometry.Point(116.405094,    39.656615), {value: 63.94}),
 ee.Feature(ee.Geometry.Point(116.402833,    39.678339), {value: 26.56})
]);

// get mean
var mean_value = point.reduceColumns({
 reducer: 'mean',
 selectors: ['value']
});

// get stdev
var sd_value = point.reduceColumns({
 reducer: 'stdDev',
 selectors: ['value']
});

// interpolation, valid to 10 kilometers.
var area = point.inverseDistance({
 range: 10000,
 propertyName: 'value',
 mean: mean_value.get('mean'),
 stdDev: sd_value.get('stdDev'),
});

var viz = {min:0, max:80, palette:'ff0000,00ff00,0000ff,ffff00'};
Map.centerObject(point,10);
Map.addLayer(area,viz,"area");
Map.addLayer(point,{},"point");

 

运行结果

 

 

代码主要的部分是 point.inverseDistance()

这个函数的定义如下,可以看到使用GEE做插值还是非常简单的