R Gstat计算网格上的半变异函数
R Gstat compute semivariogram on a grid
我已经使用 gstat
包生成了 3D 无条件正常分数模拟,现在想检查变差函数再现。如何指定网格上变异函数的计算?
#-- Create the grid
grd<-expand.grid(1:100,1:100,1:50)
names(grd)<-c("x","y","z")
#-- Define the variogram model
MyNug<-0.02
MySill<-0.98
MyRng<-70
MyAnis1<-1.0
MyAnis2<-0.1
vmdl<-vgm(nugget=MyNug,
psill=MySill,
range= MyRng,
model="Sph",
anis=c(90,0,0,MyAnis1,MyAnis2))
#--- Prepare the simulation pars for an unconditional simulation
SimPar<-gstat(formula=p~1,
locations=~x+y+z,
dummy=T,
beta=0,
nmin=8,
nmax=16,
model=vmdl)
#--- Run simulations
MyNsim=1
Sim<- predict(SimPar, newdata=grd, nsim=MyNsim,debug=-1)
summary(Sim)
#--- Prepare the variograms of the the simulation
#--- Convert Sim to a spatial object
SimS<-Sim
coordinates(SimS)<-~x+y+z
SimGrd<-grd
coordinates(SimGrd)<-~x+y+z
VarSim<-variogram(sim1~1,SimS,alpha=0, beta=0,grid=SimGrd)
此时报错如下
Error in variogram.default(y, locations, X, trend.beta = beta, grid = grid, :
formal argument "grid" matched by multiple actual arguments
感谢任何使用网格化数据进行变差函数计算的指导或示例(注意模拟需要一段时间才能运行,因为有 100 万个节点)
当你做一个
> gridded(SimS)=TRUE
> class(SimS)
[1] "SpatialPixelsDataFrame"
attr(,"package")
[1] "sp"
> VarSim<-variogram(sim1~1,SimS,alpha=0, beta=0)
Error: length of grid topology 9 unrecognized
这表明使用网格结构知识的高效变差函数计算仅适用于 2D 网格化数据,而非 3D。
> gridded(SimS)=FALSE
> VarSim<-variogram(sim1~1,SimS,alpha=0, beta=0)
有效,但会很慢!
我已经使用 gstat
包生成了 3D 无条件正常分数模拟,现在想检查变差函数再现。如何指定网格上变异函数的计算?
#-- Create the grid
grd<-expand.grid(1:100,1:100,1:50)
names(grd)<-c("x","y","z")
#-- Define the variogram model
MyNug<-0.02
MySill<-0.98
MyRng<-70
MyAnis1<-1.0
MyAnis2<-0.1
vmdl<-vgm(nugget=MyNug,
psill=MySill,
range= MyRng,
model="Sph",
anis=c(90,0,0,MyAnis1,MyAnis2))
#--- Prepare the simulation pars for an unconditional simulation
SimPar<-gstat(formula=p~1,
locations=~x+y+z,
dummy=T,
beta=0,
nmin=8,
nmax=16,
model=vmdl)
#--- Run simulations
MyNsim=1
Sim<- predict(SimPar, newdata=grd, nsim=MyNsim,debug=-1)
summary(Sim)
#--- Prepare the variograms of the the simulation
#--- Convert Sim to a spatial object
SimS<-Sim
coordinates(SimS)<-~x+y+z
SimGrd<-grd
coordinates(SimGrd)<-~x+y+z
VarSim<-variogram(sim1~1,SimS,alpha=0, beta=0,grid=SimGrd)
此时报错如下
Error in variogram.default(y, locations, X, trend.beta = beta, grid = grid, :
formal argument "grid" matched by multiple actual arguments
感谢任何使用网格化数据进行变差函数计算的指导或示例(注意模拟需要一段时间才能运行,因为有 100 万个节点)
当你做一个
> gridded(SimS)=TRUE
> class(SimS)
[1] "SpatialPixelsDataFrame"
attr(,"package")
[1] "sp"
> VarSim<-variogram(sim1~1,SimS,alpha=0, beta=0)
Error: length of grid topology 9 unrecognized
这表明使用网格结构知识的高效变差函数计算仅适用于 2D 网格化数据,而非 3D。
> gridded(SimS)=FALSE
> VarSim<-variogram(sim1~1,SimS,alpha=0, beta=0)
有效,但会很慢!