克里金插值 调用matlab工具箱
克里金插值
克里金插值是依据协方差函数对随机过程或随机场进行空间建模和插值的回归算法。
克里金插值法的公式为:
式中为待插入的各点的重金属污染值,为已知点的重金属污染值,为每个点的权重值。
用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工具箱的更多相关文章
- arcgis api for js实现克里金插值渲染图--不依赖GP服务
本篇的亮点是利用kriging.js结合arcgis api for js,实现克里金插值渲染图,截图如下: 具体实现的思路如下: 1.kriging.js开源js,可以实现针对容器canvas克里金 ...
- arcgis api 3.x for js 实现克里金插值渲染图不依赖 GP 服务(附源码下载)
前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...
- R语言:克里金插值
基于空间自相关,R语言克里金插值 library(gstat) Warning message: In scan(file = file, what = what, sep = sep, quote ...
- openlayers4 入门开发系列之前端动态渲染克里金插值 kriging 篇(附源码下载)
前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...
- leaflet 实现克里金插值功能(附源码下载)
前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...
- Cesium专栏-克里金插值(全国温度为例,附源码下载)
Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...
- ArcGIS JS API多线程克里金插值
最近做关于雨量插值的项目,本来使用后台的GP工具做的,但是处理时间比较长需要十几秒钟左右,所以研究怎么通过前台来计算. 参考下克里金例子,思路是生成要计算区域的100乘以100网格,然 ...
- PIE SDK克里金插值法
1.算法功能简介 克里金插值法基于一般最小二乘法的随机插值技术没用方差图作为权重函数,被应用于任何点数据估计其在地表上分布的现象,被称为空间自协方差最佳插值法,是一种最优内插法也是一种最常用的空间插值 ...
- python调用matlab脚本
在MATLAB和Python之间建个接口,从Python中调用MATLAB脚本或者是MATLAB的函数.内容不是很难,毕竟现成的接口已经有了,在这儿记录一下API使用的一些事项. 注:本篇使用的是MA ...
随机推荐
- 12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(上)
郑重声明: 本文仅供学习使用,禁止用于非法用途,否则后果自负,如有侵权,烦请告知删除,谢谢合作! 开篇明义 本文针对自主开发的抢票脚本在抢票过程中常常遇到的请求无效等问题,简单分析了 12306 网站 ...
- java14带参的方法
public class jh_01_如何使用带参数的方法31 { public static void main(String[] args) { // 创建对象 ZhaZhiJi zzj = ne ...
- 数据结构与算法的实现(c++)之第一天
开发工具:codeblocks 17.12版本 学习视频来自b站 第一天:学习swap交换.冒泡排序 swap交换:swap是几乎所有的排序的最基础部分,代码如下: #include <iost ...
- Kittenblock画笔基础,移动留下痕迹的蝴蝶,图形化编程经验分享
Kittenblock画笔基础,移动留下痕迹的蝴蝶,图形化编程经验分享 跟很多学生聊过,很多学生不是不努力,只是找不到感觉.有一点不可否认,同样在一个教室上课,同样是一个老师讲授,学习效果迥然不同.关 ...
- Imagine— 让图片再小一点点
文章选自我的博客:https://blog.ljyngup.com/archives/267.html/ 再次祭出神奇的Github 这次给大家介绍的是一款神奇的图片压缩软件,以质量的微小损失换取大量 ...
- windows设置开机自启动的地方
2013-03-24 11:06 (分类:网络安全) 精心总结,这些都是可以放小木马的好地方,留意了 1.最简单的 开始→程序→启动它的位置 C:\Documents and Settings\*** ...
- 多图预警——从 RAID 到分布式系统中的副本分布
原文首发于个人博客「tobe的呓语」欢迎大家的访问收藏啊~ 我们知道,在面对大规模数据的计算和存储时,有两种处理思路: 垂直扩展(scale up):通过升级单机的硬件,如 CPU.内存.磁盘等,提高 ...
- 珠峰-cookie相关的东西
#### md5 #### #####
- 在React中使用WebUploader实现大文件分片上传的踩坑日记!
前段时间公司项目有个大文件分片上传的需求,项目是用React写的,大文件分片上传这个功能使用了WebUploader这个组件. 具体交互是: 1. 点击上传文件button后出现弹窗,弹窗内有选择文件 ...
- NCE L3
单词 课文