在GIS中很常用的一个功能就是散点面状化,简单说就是要使用插值方式将散点状的数据面状化。
常用的插值方法包括:IDW(反距离权重插值法)、克里金插值法。其实在GEE中也封装了一些插值算法
反距离权重 (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");