georksline中Krig的协方差参数
我有一个以mg/kg为单位的位置和苯浓度的小数据集georksline中Krig的协方差参数,r,gis,covariance,kriging,geor,R,Gis,Covariance,Kriging,Geor,我有一个以mg/kg为单位的位置和苯浓度的小数据集 WELL.ID X Y BENZENE 1 MW-02 268.8155 282.83 0.00150 2 IW-06 271.6961 377.01 0.00050 3 IW-07 251.0236 300.41 0.01040 4 IW-08 278.9238 300.37 0.03190 5 MW-10 281.4008
WELL.ID X Y BENZENE
1 MW-02 268.8155 282.83 0.00150
2 IW-06 271.6961 377.01 0.00050
3 IW-07 251.0236 300.41 0.01040
4 IW-08 278.9238 300.37 0.03190
5 MW-10 281.4008 414.15 2.04000
6 MW-12 391.3973 449.40 0.01350
7 MW-13 309.5307 335.55 0.01940
8 MW-15 372.8967 370.04 0.01620
9 MW-17 250.0000 428.04 0.01900
10 MW-24 424.4025 295.69 0.00780
11 MW-28 419.3205 250.00 0.00100
12 MW-29 352.9197 277.27 0.00031
13 MW-31 309.3174 370.92 0.17900
我试着在网格中对值进行krig(这些井所在的属性),就像这样
我明白了
对于前5000行,这些值不会更改。。。(无法查看更多内容,因为max.print=5000…也不确定如何更改,但这是一条切线..)
我意识到我的
cov.pars = c(10,3.33)
范围和门槛可能是问题所在
第19页描述了cov.PAR的期望值,但我不确定如何确定这些协方差参数需要是什么
是否有一种方法可以从现有数据中找到合适的值,或者我可以将这些值设置为通用值,其中我的输出将类似于ESRI的ArcGIS的空间分析包中执行的克里格法
锆
编辑:::
我的地理数据对象转换不正确。。。
下面是正确的方法
c <- as.geodata(b, coords.col = 2:3, data.col = 4, )
c一种方法是使用variofit
函数(也在geoR
包中)来估计协方差参数。例如,使用数据和初始值:
vario <- variog(c) # See other options here for binning, etc
# Note that the order of the cov.pars is variance, then range, (see your question)
fitted_model <- variofit(vario=vario, ini.cov.pars=c(10, 3.33), cov.model='exp')
q <- ksline(c, cov.model=fitted_model$cov.model, cov.pars=fitted_model$cov.pars,
nugget=fitted_model$nugget, locations=in_mat)
有多种方法可以估计这些参数。你看过variofit函数吗?我没有。。。你能举个例子吗?读一下这个小插曲。既然这是一个关于统计方法的问题,谢谢,我会读一读。。。感谢您的帮助,nmel和blindJesse--Zr为什么您仍然使用10和3.33作为已安装的_modelini.cov.pars?请查看variofit的帮助。您需要提供一些合理的起始值,然后从那里进行优化。我只是用了你提供的东西。
[,1] [,2]
[1,] 343.8958 10.91698
[2,] 343.8958 10.91698
[3,] 343.8958 10.91698
[4,] 343.8958 10.91698
[5,] 343.8958 10.91698
[6,] 343.8958 10.91698
[7,] 343.8958 10.91698
[8,] 343.8958 10.91698
[9,] 343.8958 10.91698
[10,] 343.8958 10.91698
cov.pars = c(10,3.33)
c <- as.geodata(b, coords.col = 2:3, data.col = 4, )
v1 <- variog(c)
length(v1$n)
v1.summary <- cbind(c(1:11), v1$v, v1$n)
colnames(v1.summary) <- c("lag", "semi-variance", "# of pairs")
v1.summary
vario <- variog(c) # See other options here for binning, etc
# Note that the order of the cov.pars is variance, then range, (see your question)
fitted_model <- variofit(vario=vario, ini.cov.pars=c(10, 3.33), cov.model='exp')
q <- ksline(c, cov.model=fitted_model$cov.model, cov.pars=fitted_model$cov.pars,
nugget=fitted_model$nugget, locations=in_mat)