克里金插值

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

克里金插值法的公式为:

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

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

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

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

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

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

代码如下

%采样地形图绘制
clc,clear
data=xlsread('zz.xls','附件1','B4:D322');%读取文件
%获得数据
S=data(:,1:2);
Y=data(:,3);
%采用克里金插值法
theta = [10 10]; lob = [1e-1 1e-1]; upb = [20 20];%参数
%调用克里金插值算法工具箱
%进行拟合操作
[dmodel, perf] = dacefit(S, Y, @regpoly0, @corrspherical, theta, lob, upb)
m=100;
%插值计算
X = gridsamp([0 0;30000 20000], m);
[YX MSE] = predictor(X, dmodel);
%获得插值
X1 = reshape(X(:,1),m,m); X2 = reshape(X(:,2),m,m);
YX = reshape(YX, size(X1));
%作图
figure;
surf(X1, X2, YX)
hold on,
hold off
xlabel('x/m')
ylabel('y/m')
zlabel('海拔')
title('采样地形图')
figure;
contourf(X1,X2,YX)%做平面图
[C,h] = contour(X1,X2,YX);
clabel(C,h)
xlabel('x/m')
ylabel('y/m')
zlabel('海拔')
title('采样地形图') %污染物浓度分布
clc,clear
b={'As','Cd','Cr','Cu','Hg','Ni','Pb','Zn'};
nd=xlsread('zz.xls','附件2','B4:I322');%读取文件
S=xlsread('zz.xls','附件1','B4:C322');%读取文件
%循环读取数据
for i=1:8
Y=fix(nd(:,i));
%采用克里金插值法
theta = [10 10]; lob = [1e-1 1e-1]; upb = [20 20];%参数
%调用克里金插值算法工具箱
%进行拟合操作
[dmodel, perf] = dacefit(S, Y, @regpoly0, @corrspherical, theta, lob, upb)
m=100;
%插值计算
X = gridsamp([0 0;30000 20000], m);
[YX MSE] = predictor(X, dmodel);
%获得插值
X1 = reshape(X(:,1),m,m); X2 = reshape(X(:,2),m,m);
YX = reshape(YX, size(X1));
%作图
figure;
mesh(X1, X2, YX)
hold on,
hold off
xlabel('x/m')
ylabel('y/m')
zlabel('浓度')
title([b(i)])
figure;
contourf(X1,X2,YX)
%做平面图
[C,h] = contour(X1,X2,YX);
xlabel('x/m')
ylabel('y/m')
zlabel('浓度')
title([b(i)])
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. AI: 绘制图标的实例

    AI绘制矢量电影图标 http://www.fevte.com/tutorial-2299-1.html AI绘制水晶质感QUICKTIME图标 http://wenku.baidu.com/view ...

  2. sublime: javascript/css 的格式化

    Sublime Text 3 破解版 + 注册机 + 汉化包 + 教程 http://www.xiumu.org/note/sublime-text-3.shtml 1.sublime 如果控制菜单选 ...

  3. webdriver高级应用(2) - 滚动条操作

    webdriver高级应用(2) - 滚动条操作 #-*- coding:utf-8 -*- from selenium import webdriver import unittest import ...

  4. java服务器端线程体会

    一个完整的项目包括服务器和客服端 服务器端初步编写: (1) 服务器端应用窗口的编写 (服务器类Server): 包括窗口和组件的一些设置, 添加一些客服端的元素,如客服端在线用户表(Vector), ...

  5. CentOS7 Cloudera Manager6 完全离线安装 CDH6 集群

    本文是在CentOS7.4 下进行CDH6集群的完全离线部署.CDH5集群与CDH6集群的部署区别比较大. 说明:本文内容所有操作都是在root用户下进行的. 文件下载 首先一些安装CDH6集群的必须 ...

  6. django项目中使用KindEditor富文本编辑器

    先从官网下载插件,放在static文件下 前端引入 <script type="text/javascript" src="/static/back/kindedi ...

  7. 终于成功部署 Kubernetes HPA 基于 QPS 进行自动伸缩

    昨天晚上通过压测验证了 HPA 部署成功了. 所使用的 HPA 配置文件如下: apiVersion: autoscaling/v2beta2 kind: HorizontalPodAutoscale ...

  8. Windows安装MySQL免安装版

    安装环境: win7 64位 IP地址:192.168.2.37 防火墙已经关闭 一.安装MySQL5.7.14免安装版 1.解压文件 2.新建my.ini文件 data文件夹自动生成 my.ini里 ...

  9. 【HDU - 1260 】Tickets (简单dp)

    Tickets 搬中文 Descriptions: 现在有n个人要买电影票,如果知道每个人单独买票花费的时间,还有和前一个人一起买花费的时间,问最少花多长时间可以全部买完票. Input 给出 N(1 ...

  10. laravel web server设置远程访问及原理

    laravel中可以用命令行php artisan serve 启动web server,并通过localhost:8000访问项目. 但是因为开发环境为虚拟机部署项目,然后通过端口访问,所以开启服务 ...