欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 普通克里金(Kriging)法的實(shí)現(xiàn)

 更新時(shí)間:2019年12月19日 10:50:23   作者:山人青冥  
這篇文章主要介紹了python 普通克里金(Kriging)法的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

克里金法時(shí)一種用于空間插值的地學(xué)統(tǒng)計(jì)方法。

克里金法用半變異測(cè)定空間要素,要素即自相關(guān)要素。

半變異公式為:

在這里插入圖片描述

其中γ(h) 是已知點(diǎn) xixj 的半變異,***h***表示這兩個(gè)點(diǎn)之間的距離,z是屬性值。

假設(shè)不存在漂移,普通克里金法重點(diǎn)考慮空間相關(guān)因素,并用擬合的半變異直接進(jìn)行插值。

估算某測(cè)量點(diǎn)z值的通用方程為:

在這里插入圖片描述

式中,z0是待估計(jì)值,zx是已知點(diǎn)x的值,Wx是每個(gè)已知點(diǎn)關(guān)聯(lián)的權(quán)重,s是用于估計(jì)的已知點(diǎn)數(shù)目。
權(quán)重可以由一組矩陣方程得到。

在這里插入圖片描述

在這里插入圖片描述

此程序?qū)Π胱儺愡M(jìn)行擬合時(shí)采用的時(shí)最簡(jiǎn)單的正比例函數(shù)擬合

數(shù)據(jù)為csv格式

保存格式如下:

第一行為第一個(gè)點(diǎn)以此類推

最后一行是待求點(diǎn)坐標(biāo),其中z為未知值,暫且假設(shè)為0

在這里插入圖片描述

代碼如下:

import numpy as np
from math import*
from numpy.linalg import *
h_data=np.loadtxt(open('高程點(diǎn)數(shù)據(jù).csv'),delimiter=",",skiprows=0)
print('原始數(shù)據(jù)如下(x,y,z):\n未知點(diǎn)高程初值設(shè)為0\n',h_data)
def dis(p1,p2):
 a=pow((pow((p1[0]-p2[0]),2)+pow((p1[1]-p2[1]),2)),0.5)
 return a
def rh(z1,z2):
 r=1/2*pow((z1[2]-z2[2]),2)
 return r
def proportional(x,y):
 xx,xy=0,0
 for i in range(len(x)):
  xx+=pow(x[i],2)
  xy+=x[i]*y[i]
 k=xy/xx
 return k
r=[];pp=[];p=[];
for i in range(len(h_data)):
 pp.append(h_data[i])
for i in range(len(pp)):
 for j in range(len(pp)):
  p.append(dis(pp[i],pp[j]))
  r.append(rh(pp[i],pp[j]))
r=np.array(r).reshape(len(h_data),len(h_data))
r=np.delete(r,len(h_data)-1,axis =0)
r=np.delete(r,len(h_data)-1,axis =1)

h=np.array(p).reshape(len(h_data),len(h_data))
h=np.delete(h,len(h_data)-1,axis =0)
oh=h[:,len(h_data)-1]
h=np.delete(h,len(h_data)-1,axis =1)

hh=np.triu(h,0)
rr=np.triu(r,0)
r0=[];h0=[];
for i in range(len(h_data)-1):
 for j in range(len(h_data)-1):
  if hh[i][j] !=0:
   a=h[i][j]
   h0.append(a)
  if rr[i][j] !=0:
   a=rr[i][j]
   r0.append(a)
k=proportional(h0,r0)
hnew=h*k
a2=np.ones((1,len(h_data)-1))
a1=np.ones((len(h_data)-1,1))
a1=np.r_[a1,[[0]]]
hnew=np.r_[hnew,a2]
hnew=np.c_[hnew,a1]
print('半方差聯(lián)立矩陣:\n',hnew)
oh=np.array(k*oh)
oh=np.r_[oh,[1]]
w=np.dot(inv(hnew),oh)
print('權(quán)陣運(yùn)算結(jié)果:\n',w)
z0,s2=0,0
for i in range(len(h_data)-1):
 z0=w[i]*h_data[i][2]+z0
 s2=w[i]*oh[i]+s2
s2=s2+w[len(h_data)-1]
print('未知點(diǎn)高程值為:\n',z0)
print('半變異值為:\n',pow(s2,0.5))
input()

運(yùn)算結(jié)果

在這里插入圖片描述

python初學(xué),為了完成作業(yè)寫(xiě)了個(gè)小程序來(lái)幫助計(jì)算,因?yàn)槌鯇W(xué)知識(shí)有限,有很多地方寫(xiě)的很復(fù)雜,可以優(yōu)化的地方很多。 還望讀者諒解,歡迎斧正謝謝!

參考文獻(xiàn):
【1】(美)張康聰 著;陳健飛等譯. 地理信息系統(tǒng)導(dǎo)論(第三版). 北京:清華大學(xué)出版社, 2009.04.

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 用python 批量操作redis數(shù)據(jù)庫(kù)

    用python 批量操作redis數(shù)據(jù)庫(kù)

    這篇文章主要介紹了如何用python 批量操作redis數(shù)據(jù)庫(kù),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • Python繪制浪漫星空的示例代碼

    Python繪制浪漫星空的示例代碼

    Python的turtle是一個(gè)基于tkinter的Python圖形庫(kù),可以幫助初學(xué)者輕松地理解和繪制圖形,本文就來(lái)通過(guò)turtle繪制一個(gè)浪漫的星空動(dòng)畫(huà)吧
    2023-09-09
  • python實(shí)現(xiàn)關(guān)閉第三方窗口的方法

    python實(shí)現(xiàn)關(guān)閉第三方窗口的方法

    今天小編就為大家分享一篇python實(shí)現(xiàn)關(guān)閉第三方窗口的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • Django使用視圖動(dòng)態(tài)輸出CSV以及PDF的操作詳解

    Django使用視圖動(dòng)態(tài)輸出CSV以及PDF的操作詳解

    這篇文章主要介紹了Django 如何使用視圖動(dòng)態(tài)輸出 CSV 以及 PDF,我們需要用到 python 的 csv 和 reportLab 庫(kù),通過(guò)django視圖來(lái)定義輸出我們需要的 csv 或者 pdf 文件,需要的朋友可以參考下
    2024-06-06
  • Pygame實(shí)現(xiàn)游戲最小系統(tǒng)功能詳解

    Pygame實(shí)現(xiàn)游戲最小系統(tǒng)功能詳解

    這篇文章主要介紹了Pygame實(shí)現(xiàn)游戲最小系統(tǒng),Pygame是一個(gè)專門(mén)用來(lái)開(kāi)發(fā)游戲的 Python 模塊,主要為開(kāi)發(fā)、設(shè)計(jì) 2D 電子游戲而生,具有免費(fèi)、開(kāi)源,支持多種操作系統(tǒng),具有良好的跨平臺(tái)性等優(yōu)點(diǎn)
    2022-11-11
  • python繪制已知點(diǎn)的坐標(biāo)的直線實(shí)例

    python繪制已知點(diǎn)的坐標(biāo)的直線實(shí)例

    今天小編就為大家分享一篇python繪制已知點(diǎn)的坐標(biāo)的直線實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • 教你用Django將前端的數(shù)據(jù)存入Mysql數(shù)據(jù)庫(kù)

    教你用Django將前端的數(shù)據(jù)存入Mysql數(shù)據(jù)庫(kù)

    這篇文章主要給大家介紹了關(guān)于如何用Django將前端的數(shù)據(jù)存入Mysql數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過(guò)圖文以及示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-11-11
  • python遍歷路徑破解表單的示例

    python遍歷路徑破解表單的示例

    這篇文章主要介紹了python遍歷路徑破解表單的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11
  • python使用super()出現(xiàn)錯(cuò)誤解決辦法

    python使用super()出現(xiàn)錯(cuò)誤解決辦法

    這篇文章主要介紹了python使用super()出現(xiàn)錯(cuò)誤解決辦法的相關(guān)資料,對(duì)于TypeError: must be type, not classobj的錯(cuò)誤進(jìn)行處理,需要的朋友可以參考下
    2017-08-08
  • python實(shí)現(xiàn)快速文件格式批量轉(zhuǎn)換的方法

    python實(shí)現(xiàn)快速文件格式批量轉(zhuǎn)換的方法

    這篇文章主要介紹了python實(shí)現(xiàn)快速文件格式批量轉(zhuǎn)換的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評(píng)論