克里金插值

克里金插值是依据协方差函数对随机过程或随机场进行空间建模和插值的回归算法。

克里金插值法的公式为:

式中为待插入的各点的重金属污染值,为已知点的重金属污染值,为每个点的权重值。

用BLUP理论求解克里金权重:

将随机场中变量的估计表示为包含随机误差的线性系统,则BLUP可表示为选择线性系统参数使估计值和真实值方差最小:

式中为未知点,{为随机场的样本,为权重系数,通常被称为克里金权重。由方差定义可知,当估计值和真实值的数学期望相同时,两者的方差最小

使用上述BLUP条件求解的权重系数包含样本点与未知点间的协方差函数。

克里金法是一种在许多领域都很有用的地址统计格网化方法,很符合本题分析污染物的浓度分布,而且克里金插值产生的结果更自然,能够有效的避免异常值的产生,也能给出标准误差,这得益于克里金插值算法考虑了被估计点的位置与已知点位置的相互之间的关系,也考虑了已知点位置之间的关系。所以,更能客观的反应污染物的分布规律,估值的精度也就相对较高。

代码如下

  1. %采样地形图绘制
  2. clc,clear
  3. data=xlsread('zz.xls','附件1','B4:D322');%读取文件
  4. %获得数据
  5. S=data(:,1:2);
  6. Y=data(:,3);
  7. %采用克里金插值法
  8. theta = [10 10]; lob = [1e-1 1e-1]; upb = [20 20];%参数
  9. %调用克里金插值算法工具箱
  10. %进行拟合操作
  11. [dmodel, perf] = dacefit(S, Y, @regpoly0, @corrspherical, theta, lob, upb)
  12. m=100;
  13. %插值计算
  14. X = gridsamp([0 0;30000 20000], m);
  15. [YX MSE] = predictor(X, dmodel);
  16. %获得插值
  17. X1 = reshape(X(:,1),m,m); X2 = reshape(X(:,2),m,m);
  18. YX = reshape(YX, size(X1));
  19. %作图
  20. figure;
  21. surf(X1, X2, YX)
  22. hold on,
  23. hold off
  24. xlabel('x/m')
  25. ylabel('y/m')
  26. zlabel('海拔')
  27. title('采样地形图')
  28. figure;
  29. contourf(X1,X2,YX)%做平面图
  30. [C,h] = contour(X1,X2,YX);
  31. clabel(C,h)
  32. xlabel('x/m')
  33. ylabel('y/m')
  34. zlabel('海拔')
  35. title('采样地形图')
  36.  
  37. %污染物浓度分布
  38. clc,clear
  39. b={'As','Cd','Cr','Cu','Hg','Ni','Pb','Zn'};
  40. nd=xlsread('zz.xls','附件2','B4:I322');%读取文件
  41. S=xlsread('zz.xls','附件1','B4:C322');%读取文件
  42. %循环读取数据
  43. for i=1:8
  44. Y=fix(nd(:,i));
  45. %采用克里金插值法
  46. theta = [10 10]; lob = [1e-1 1e-1]; upb = [20 20];%参数
  47. %调用克里金插值算法工具箱
  48. %进行拟合操作
  49. [dmodel, perf] = dacefit(S, Y, @regpoly0, @corrspherical, theta, lob, upb)
  50. m=100;
  51. %插值计算
  52. X = gridsamp([0 0;30000 20000], m);
  53. [YX MSE] = predictor(X, dmodel);
  54. %获得插值
  55. X1 = reshape(X(:,1),m,m); X2 = reshape(X(:,2),m,m);
  56. YX = reshape(YX, size(X1));
  57. %作图
  58. figure;
  59. mesh(X1, X2, YX)
  60. hold on,
  61. hold off
  62. xlabel('x/m')
  63. ylabel('y/m')
  64. zlabel('浓度')
  65. title([b(i)])
  66. figure;
  67. contourf(X1,X2,YX)
  68. %做平面图
  69. [C,h] = contour(X1,X2,YX);
  70. xlabel('x/m')
  71. ylabel('y/m')
  72. zlabel('浓度')
  73. title([b(i)])
  74. end

  需要调用工具箱文件

在我的百度云盘里有,希望对你有帮助

链接:https://pan.baidu.com/s/1O-mqKowNBJ06llEldHu90A
提取码:g4wl

克里金插值 调用matlab工具箱的更多相关文章

  1. arcgis api for js实现克里金插值渲染图--不依赖GP服务

    本篇的亮点是利用kriging.js结合arcgis api for js,实现克里金插值渲染图,截图如下: 具体实现的思路如下: 1.kriging.js开源js,可以实现针对容器canvas克里金 ...

  2. arcgis api 3.x for js 实现克里金插值渲染图不依赖 GP 服务(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  3. R语言:克里金插值

    基于空间自相关,R语言克里金插值 library(gstat) Warning message: In scan(file = file, what = what, sep = sep, quote ...

  4. openlayers4 入门开发系列之前端动态渲染克里金插值 kriging 篇(附源码下载)

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  5. leaflet 实现克里金插值功能(附源码下载)

    前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...

  6. Cesium专栏-克里金插值(全国温度为例,附源码下载)

    Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...

  7. ArcGIS JS API多线程克里金插值

        最近做关于雨量插值的项目,本来使用后台的GP工具做的,但是处理时间比较长需要十几秒钟左右,所以研究怎么通过前台来计算.     参考下克里金例子,思路是生成要计算区域的100乘以100网格,然 ...

  8. PIE SDK克里金插值法

    1.算法功能简介 克里金插值法基于一般最小二乘法的随机插值技术没用方差图作为权重函数,被应用于任何点数据估计其在地表上分布的现象,被称为空间自协方差最佳插值法,是一种最优内插法也是一种最常用的空间插值 ...

  9. python调用matlab脚本

    在MATLAB和Python之间建个接口,从Python中调用MATLAB脚本或者是MATLAB的函数.内容不是很难,毕竟现成的接口已经有了,在这儿记录一下API使用的一些事项. 注:本篇使用的是MA ...

随机推荐

  1. Codeforces 1248C Ivan the Fool and the Probability Theory(推公式)

    题意 一个n*m的网格图,每个格子可以染黑色.白色,问你每个格子最多有一个相邻颜色相同的方案数 n,m<=1e5 思路 我们先处理\(1 \times m\)的情况 设\(f[i][j]\)为前 ...

  2. Tomcat安装教程及常见错误解决方法

    目录 Tomcat安装教程及常见错误解决方法 一.安装前准备 ·熟悉自己电脑的操作系统版本(32位or64位) ·保证电脑上已经装好JDK,并且已经设置好环境变量. 二.Tomcat安装教程(以Tom ...

  3. GitBook安装部署实操手册

    前言 GitBook是一个基于Node.js的命令行工具,可使用Git和Markdown来编写文档,赞誉太多,不再赘述. Node.js 下载安装包 cd /tmp wget https://node ...

  4. 01-Maven

    今日知识 1. Maven 2. 依赖管理 2. 项目构建 Maven 1. Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 2. Ma ...

  5. 排查 Kubernetes HPA 通过 Prometheus 获取不到 http_requests 指标的问题

    部署好了 kube-prometheus 与 k8s-prometheus-adapter (详见之前的博文 k8s 安装 prometheus 过程记录),使用下面的配置文件部署 HPA(Horiz ...

  6. 微信小程序仿朋友圈功能开发(发布、点赞、评论等功能)

    微信小程序仿朋友圈功能开发(发布.点赞.评论等功能) 1.项目分析 项目整体分为三个部分 发布 展示 详情页 graph LR 朋友圈发布 --内容发布--> 内容展示 内容展示 --点击展示卡 ...

  7. 代理-cglib代理

    jdk的动态代理只可以为接口去完成操作,而cglib它可以为没有实现接口的类去做代理,也可以为实现接口的类去做代理. IDB package com.bjpowernode.proxy; /** * ...

  8. android编译/反编译常用工具及项目依赖关系

    项目依赖关系 apktool:依赖smali/baksmali,XML部分 AXMLPrinter2 JEB:dx 工具依赖 AOSP , 反编译dex 依赖 apktool dex2jar:依赖 A ...

  9. 5.Android-电话拨号器详解

    之前学习了3.Android-ADT之helloworld项目结构介绍后,本章便来写个简单的电话拨号器程序. 实现的步骤如下所示: 1.创建项目 2.写layout/activity_main.xml ...

  10. Windwos应急响应和系统加固(1)——Windwos操作系统版本介绍

    Windwos操作系统版本介绍 1. Micorsoft  Windows XP  ·Microsoft官方发布时间以及终止提供服务时间:2001.10.25-2014.4.8   产生漏洞:MS08 ...