网站大量收购闲置独家精品文档,联系QQ:2885784924

克里金插值法详细介绍kriging.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
?kriging 插值作为地统计学中的一种插值方法由南非采矿工程师D.G.Krige于1951年首次提出,是一种求最优、线形、无偏的空间内插方法。在充分考虑观测资料之间的相互关系后,对每一个观测资料赋予一定的权重系数,加权平均得到估计值。? 这里介绍普通Kriging插值方法的基本步骤:1.该方法中衡量各点之间空间相关程度的测度是半方差,其计算公式为: ?h为各点之间距离,n 是由h 分开的成对样本点的数量,z 是点的属性值。 HYPERLINK /photo/uDizsWNdcMEU_o9lZgxe6A==/3989063369943810404.jpg \t _blank ? 2.在不同距离的半方差值都计算出来后,绘制半方差图,横轴代表距离,纵轴代表半方差。半方差图中有三个参数nugget(表示距离为零时的半方差),sill(表示基本达到恒定的半方差值),range(表示一个值域范围,在该范围内半方差随距离增加,超过该范围,半方差值趋于恒定)。利用做出的半方差图找出与之拟合的最好的理论变异函数模型(这是关键所在),可用于拟合的模型包括高斯模型、线性模型、球状模型、指数模型、圆形模型。  HYPERLINK /photo/pp4BEErnYEZwv8GXKMl-9A==/3989063369943810491.jpg \t _blank  ----球状模型,球面模型空间相关随距离的增长逐渐衰减,当距离大于球面半径后,空间相关消失。? 3.用拟合的模型计算出三个参数。例如球状模型中nugget为c0,range为a,sill为c。 4.利用拟合的模型估算未知点的属性值,方程为: ,z0为估计值,zx是已知点的值,wx为权重,s是用来估算未知点的已知点的数目。 假如用三个点来估算,则有  HYPERLINK /photo/F8X1KE6hj2Wx2DFqN8h1fw==/5426837550982004776.jpg  HYPERLINK /photo/F8X1KE6hj2Wx2DFqN8h1fw==/5426837550982004776.jpg \t _blank  HYPERLINK /photo/UQyO2r2rVk1HodOnm2bkrA==/4555953973039234703.jpg \t _blank  这样权重就可以求出,然后估算未知点。 (上述内容根据《地理信息系统导论》(Kang-tsung Chang著;陈健飞等译,科学出版社,2003)第十三章内容进行总结,除球状模型公式外其余公式皆来自此书) 下面是本人自己编写的利用海洋中断面上观测站点的实测温度值来估算未观测处的温度的Fortran程序,利用距离未知点最近的五个观测点来估算未知点的温度,选用模型为球状模型。 ?do ii=1,nx ?????? ?if(tgrid(ii,1)==0.)then ????????do i=1,dsite(ii) !首先寻找距离最近的五个已知点位置 do j=1,nh ??? if(d(mm(ii),j).ne.0.or.j==1)then ???hmie(j)=d(mm(ii),j)-dgrid(i) ?? else ?? hmie(j)=9999 ?? end if ?? hmid(j)=abs(hmie(j)) ? end do ? do j=1,nh ? do k=j,nh ? if(hmid(j)hmid(k))then ? else ?m1=hmid(j) ?hmid(j)=hmid(k) ?hmid(k)=m1 ? end if ? end do ? end do ? ? do j=1,5 ?? do k=1,nh ?? if(abs(hmie(k))==hmid(j))then ?? locat(j)=k????????????? ?? end if ?? end do ? end do ? do j=1,4 ? do k=j+1,5 ? if(locat(j)==locat(k))then ?? do i3=1,nh ?? if(abs(hmie(i3))==abs(hmie(locat(j))).and.i3.ne.locat(j))then ?locat(j)=i3 ?? exit ?? end if ?? enddo ? endif ? enddo ? enddo !然后求各点间距离,并求半方差? ?do j=1,5 ?? do k=1,5 ?hij(j,k)=abs(d(mm(ii),locat(j))-d(mm(ii),locat(k)))/1000.? ?? end do ? end do ? do j=1,5 ?hio(j)=sqrt(hmid

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档