克里金插值也称作空间局部插值法,或空间自协方差最佳插值法,它以变异函数理论和结构分析为基础, 在特定区域内对区域化变量进行无偏最优估计,被广泛应用于土壤制图领域,是一种非常重要的地统计学方法。
克里金算法已有开源的实现。克里金算法中有三个重要函数:
(1)kriging.train(t,x,y,model,sigma2,alpha)。使用gaussian、exponential或spherical模型对数据集进行训练,返回的是一个variogram对象。
(2)kriging.grid(polygons,variogram,width)。使用刚才的variogram对象使polygons描述的地理位置内的格网元素具备不一样的预测值。
(3)kriging.plot(canvas,grid,xlim,ylim,colors)。将得到的格网grid渲染至canvas上。
本文介绍openlayer结合kriging和turf实现空间的克里金插值。使用turf来处理网格数据,生成等值面,提升交互性能,效果会更好。
(1)定义插值参数、矢量数据源和矢量图层,并添加到地图容器中。
let params = {
mapCenter: [121.483101, 31.227036], maxValue: 100, krigingModel: 'spherical', //model还可选'gaussian','spherical',exponential krigingSigma2: 0, krigingAlpha: 100, canvasAlpha: 0.75, //canvas图层透明度 colors: ['#006837', '#1a9850', '#66bd63', '#a6d96a', '#d9ef8b', '#ffffbf', '#fee08b', '#fdae61', '#f46d43', '#d73027', '#a50026'] }; var map = new ol.Map ({
target: 'map', layers: [ new ol.layer.Tile({
title: '天地图矢量图层', source: new ol.source.XYZ({
url: 'http://t0.tianditu.com