好的,所以我知道在gstat中不可能在垂直方向上进行变异图,因为有z坐标的东西。
但是,我想知道是否有可能在3个方面 krige 。如果不可能在垂直方向上得到变差函数,我不明白如何在3维中 krige ,因为克里金法取决于变差函数模型。这可能吗?
最后,当我执行以下操作时,kriging会抛出错误,我觉得它可能与没有足够的3d模型有关:
varY = var(training$Y) # sill of log(K) values
Ih = 60 # horizontal range
Iy = 30 # vertical range
e = Ih/Iy # anisotropy ratio (I_horizontal/ I_vertical)
mod <- vgm(psill = varY,'Exp',Ih, anis=c(0,90,0,1,e)) # axisymetric model with e*I_x = e*I_y = I_z
# define kriging domain
x <- sample(seq(0,300,by=5),10,replace=FALSE)
y <- sample(seq(0,300,by=5),10,replace=FALSE)
z <- sample(seq(0,30,by=0.5),100,replace=TRUE)
Y <- sample(seq(-3.0,-0.01,by=0.001),100*10*10,replace=TRUE)
grid = data.frame(x=rep(x,times=length(x)),y=rep(y,each=length(y)))
mydata = data.frame(x=rep(x,each=10),y=rep(y,times=10),z=z,Y=Y)
ok_3D <- krige(formula=Y~1, locations=~x+y+z, data=mydata, newdata=grid, model=mod)
但它引发了这个错误:
Error in .subset(x,j) : only 0's may be mixed with negative subscripts
这是因为在gstat中无法在垂直方向上定义变异函数吗?或者这是另一个问题吗?感谢。