我一直無法找到任何信息,具體到本地塊克里格與使用gstat包河還有就是免費從澳大利亞中心精準農業所謂VESPER,能夠局部變差要做到這一點,從我讀過的應該可以在R中,我可以使用一些幫助,把一個for循環,使gstat函數在本地工作。局部塊克里格與gstat本地變差函數
使用默茲數據集作爲一個例子,我已經能夠計算和適應全球變差函數的數據的集合:
library(gstat)
data(meuse)
coordinates(meuse) = ~x+y
data(meuse.grid)
gridded(meuse.grid) = ~x+y
logzinc_vgm<- variogram(log(zinc)~1, meuse)
logzinc_vgm_fit <- fit.variogram(logzinc_vgm, model=vgm("Sph", "Exp"))
logzinc_vgm_fit
plot(logzinc_vgm, logzinc_vgm_fit)
這給變差的整個數據集有一個很好的情節擬合的模型。然後,我可以用它來在整個數據集執行塊克里格:
logzinc_blkkrig <- krige(log(zinc)~1, meuse, meuse.grid, model = logzinc_vgm_fit, block=c(100,100))
spplot(logzinc_blkkrig["var1.pred"], main = "ordinary kriging predictions")
spplot(logzinc_blkkrig["var1.var"], main = "ordinary kriging variance")
這產生經內插數據的曲線圖,以及作爲方差的每個預測點的曲線圖。所以,如果我想這些功能爲我的整個數據集馬上開始工作......
但我一直無法產生一個for循環來處理在地方一級這些功能,這將是完美的。
我的目標是: 1.對於我的網格文件中的每個點(我曾嘗試作爲數據框和SpatialPointsDataFrame),我希望從給定範圍的對角距離內的數據文件點在全局變差函數(易於調用該位置(即logzinc_vgm_fit [2,3])) 2.在這個數據子集上,我想計算變差函數(如上)並擬合一個模型(如上所述) 3.基於該模型,我想執行塊克里格得到在該網格點的預測值和方差 4.生成上述三個步驟爲一個for循環在基於所述本地每個網格點來預測值每個格點周圍的變異函數
請注意:與內置於gstat包中的默認數據集一樣,我的網格和數據數據幀的尺寸也不相同
非常感謝您提供任何能夠解決此問題的信息。很高興發佈我目前正在使用的代碼,如果它會有用。
您是否對數據範圍的空間子集進行了驗證,無論局部變差函數是否與統計變異函數有統計學顯着差異?我問,因爲如果在合理的阿爾法水平上沒有不同,你可以通過使用局部塊克立格和全局變差函數來節省一些編程時間。例如,指定一個等於全局變差函數範圍的'maxdist'。 –
謝謝你的回覆,Jared。我已經用全局變差函數編寫了塊克立格代碼。其目的是將其提供給用於空間數據處理的Web平臺,因此這兩個選項都需要進行編碼。 –