克里金插值渲染图-Kriging
0.OpenLayers
OpenLayers
是一个开源的Javascript库,用来在Web浏览器显示地图。它提供API接口创建类似于Google Maps
和Bing Maps
的基于web的地理应用。
1.克里金插值
克里金插值也称作空间局部插值法,或空间自协方差最佳插值法,它以变异函数理论和结构分析为基础, 在特定区域内对区域化变量进行无偏最优估计,被广泛应用于土壤制图领域,是一种非常重要的地统计学方法。
具体算法解释见xg1990的文章《克里金(Kriging)插值的原理与公式推导》(https://zhuanlan.zhihu.com/p/25377842)
2.算法实现
克里金插值算法有开源的实现,项目的GitHub地址:kriging.js(https://github.com/oeo4b/kriging.js)
这里重点介绍其中的三个函数:
- kriging.train(t, x, y, model, sigma2, alpha):使用
gaussian
、exponential
或spherical
模型对数据集进行训练,返回的是一个variogram
对象; - kriging.grid(polygons,variogram,width);使用刚才的
variogram
对象使polygons描述的地理位置内的格网元素具备不一样的预测值; - kriging.plot(canvas,grid,xlim,ylim,colors);将得到的格网
grid
渲染至canvas上。
3.使用ImageCanvas
上面说到,使用kriging.plot
可以将格网数据渲染至canvas上。但是要将canvas叠加到地图上,还是需要借助OpenLayers的ImageCanvas组件(https://openlayers.org/en/latest/apidoc/module-ol_source_ImageCanvas-ImageCanvasSource.html)。
效果预览