WebGIS中前端JS生成等值面方法探讨

时间:2021-07-23 09:27:45

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景

在之前的博文《WebGIS中等值面展示的相关方案简析》中我提到了两种生成等值面的方法:

a.使用GP服务发布等值面生成服务,前端调用该服务生成等值面图片然后叠加至地图上。

b.使用AE开发等值面生成工具,将等值面图片瓦片化后叠加至地图上。

  WebGIS中前端JS生成等值面方法探讨

从实现方式上来说,这两种方案均是通过后台生成等值面图片,前端进行图片叠加展示。

如果项目中我们的观察值频繁变化,比如五分钟变化一次,那么我们的等值面应该及时同步变化。但是如果利用后台服务来实现,则更新频次对后台服务存在一定压力,主要体现在插值图片频繁切图等。并且由于前端展示的仅仅是图片,无法在前端实现与等值面的交互。

这里,我们探讨一种真正的在前端实现插值等值面的方法。

2.插值探讨

等值面生成的核心原理是插值。我们常用的插值算法有反距离加权法(IDW)、样条插值法、克里金法、离散平滑插值、趋势面光滑插值等。这里我们采用克里金插值。

克里金方法最早是由法国地理学家Matheron和南非矿山工程师Krige提出的,用于矿山勘探。这种方法认为在空间连续变化的属性是非常不规则的,用简单的平滑函数进行模拟将出现误差,用随机表面函数给予描述会比较恰当 (克里金中包括几个因子:变化图模型、漂移类型和矿块效应) 。

克里金方法的关键在于权重系数的确定,该方法在插值过程中根据某种优化准则函数来动态地决定变量的数值,从而使内插函数处于最佳状态。克里金方法考虑了观测的点和被估计点的位置关系,并且也考虑各观测点之间的相对位置关系,在点稀少时插值效果比反距离权重等方法要好。所以利用克里金方法进行空间数据插值往往取得理想的效果。

在地质统计学中,根据应用目标的区别,发展了多种克里格方法如:

a.简单克里格(Simple-Kriging)

b.普通克里格(Ordinary-Kriging)

c.泛克里格(Universal-Kriging)

d.对数正态克里格(Log-Normal Kriging)

e.协同克里格(Cokriging)

f.拟协克里格(Pseudo-Kriging)

g.指示克里格(Indicator-Kriging)

h.离析克里格(Disjunctive-Kriging)

在三维地质建模过程中,克里格被作为插值方法,能过最大的程度的保证地质界面与原始数据的吻合,且不依赖于网络。

3.格网化插值的实现

a.我们首先需要将待插值的范围划分成若干格网,格网的数目会影响插值的效果。

b.针对每个格网进行插值计算。

c.所有格网基于插值数值进行配色渲染。

  WebGIS中前端JS生成等值面方法探讨

4.获取真正的等值面

格网化插值展示结果已经是趋于等值面展示了,并且随着格网粒度进一步变小,展示结果将更趋于平滑,但是随之的性能开销将越来越大,而且无法规避渐变处的锯齿情况。

所以我们还得研究如何根据已有插值格网获取等值面。

这个研究类似与栅格数据转矢量数据的研究,该类型算法网上有比较多的介绍,这里我直接给出优化后的结果:

  WebGIS中前端JS生成等值面方法探讨

                

                          -----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

         如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                    WebGIS中前端JS生成等值面方法探讨