ArcGIS空间插值示例
空间插值,是GIS空间分析中较为重要的一种空间分析功能。先来一波科普:空间插值常用于将离散点的测量数据转换为连续的数据曲面,以便与其它空间现象的分布模式进行比较,它包括了空间内插和外推两种算法。 空间内插算法:通过已知点的数据推求同一区域未知点数据。 空间外推算法:通过已知区域的数据,推求其它区域数据。空间插值方法分为两类:一类是确定性方法,另一类是地质统计学方法。确定性插值方法是基于信息点之间的相似程度或者整个曲面的光滑性来创建一个拟合曲面,比如反距离加权平均插值法(IDW)、趋势面法、样条函数法等;地质统计学插值方法是利用样本点的统计规律,使样本点之间的空间自相关性定量化,从而在待预测的点周围构建样本点的空间结构模型,比如克立格(Kriging)插值法。确定性插值方法的特点是在样本点处的插值结果和原样本点实际值基本一致,若是利用非确定性插值方法的话,在样本处的插值结果与样本实测值就不一定一致了,有的相差甚远。
先上一张图:
其实使用ArcMap进行空间插值,非常简单。
1.准备数据
准备一些点图层
2.打开ArcToolBox
打开ArcToolBox->Spatial Analyst Tools->Interpolation,下面有好几种插值方法,每种方法适用于不同的情境下,具体根据自己需要采用。
3.输入参数
这里我选择了IDW(反距离权重插值方法),选择一个点图层,选择要插值的属性值,然后选择输出的位置,点击确定就好了。
4.生成结果
生成的结果,是栅格图形,会自动加入到当前视图中的。
1.空间分析之插值分析 (这篇文章有有对各种插值算法的简要分析,什么情况适合什么样的插值运算)
2.arcgis空间内插值教程
3.ArcGIS绘图—空气质量站点数据插值绘制等值线图
4.ArcGIS里做空间插值分析
小技巧:
我在执行地理处理操作的时候,始终看不到运行的结果,也看不到正在进行中的提示框,如果你也出现这种情况,就将后台运行地理处理关闭。打开菜单->地理处理(Geoprocessing)—>地理处理选项(Geoprocessing Options)—>关掉后台处理(Background Processing下的Enable前的钩号去掉)
5.前端插值算法
使用ArcMap可以很方便的实现idw插值,但是要在浏览器端显示该如何做呢?使用js计算插值,当然会很慢,但是使用后端计算,生成的栅格图片的传输也需要一定的带宽和时间,如何使用后台服务进行空间插值的计算,也是一个很大的问题,如何平衡js的worker多线程以及后台GP服务,比如像arcgis server的GP服务等的复杂度,找到一个合理的解决方案,需要进一步的探讨。
有人用d3是实现了idw插值计算,使用D3-contour基于idw插值算法前端实现等值线色斑图(参考文章5),先研究一下。
1.前端基于Canvas生成等值面的方案
2.一种改进后的turf.idw算法
3.jk3d的使用方法详解——克里金插值的java实现
4.arcgis js多线程克里金插值初体验
5.使用D3-contour基于idw插值算法前端实现等值线色斑图
6.Matplotlib
还有一些其他的技术方案,比如Python端,nodejs端的,有人(公瑾)用nodejs实现了插值然后生成了geojson传到了前端,通过前端进行了渲染和绘制,没有找到相关的文章。还有一种技术是使用matplotlib,这个也需要好好的参考一下。
Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。这里将会探索 matplotlib 的常见用法。
1.Python绘制气象实用地图(附代码和测试数据)
2.arcgis js多线程克里金插值初体验
3.克里金插值法的java实现
4.OpenLayers 静态图(雷达拼图)叠加
5.Contours 等高线图
7.最终方案
今天继续探索插值运算的前后端合适的方法。最后终于根据 Liquid泉 的文章和github ,经过自己的改造,实现了前端插值的展示。效果如图:
这个单独出一篇文章吧。