gpt4 book ai didi

r - 如何使用 gstat 预测进行普通克里金法

转载 作者:行者123 更新时间:2023-12-02 08:49:30 25 4
gpt4 key购买 nike

我正在尝试在 R 中编写一段代码,使用 gstat 库来创建插值。我已经阅读了 gstat 手册,并根据互联网上的一些示例,我成功编写了这段代码(这只是一部分):

 g <- gstat(id="tec", formula=TEC ~ 1, data=data)  ##I create an object
v <- variogram(g) # plot the empirical variogram
plot(v)
mod<-vgm(sill=var(data$TEC),model="Sph",range=200,nugget=200) #create the variogram model

v.fit <- fit.variogram(v, model=mod,fit.method=1) #fit the empirical variogram
Theor_variogram=plot(variogram(g),v.fit,main="WLS Model") #plot the theoretical variogram
plot(Theor_variogram)
## Kriging interpolation
p <- predict.gstat(g, model=v.fit, newdata=predGrid)

我的问题是,当我运行最后一个命令(预测)而不是使用普通克里金插值得到结果时,我得到的是反距离加权(IDW)的结果。我在 gstat 手册中读到:“当没有指定变差函数时,反距离加权插值是默认操作。当指定变异函数时,默认预测方法是普通方法克里金法。”

但是,正如您在我的代码中看到的,我指定了经验变异函数和理论变异函数。你知道为什么我总是得到 IDW 而不是普通的克里金法吗?这与我拥有的坐标类型有关吗?例如,如果我的坐标彼此接近,或者感兴趣的区域太大?任何帮助都会非常有用。

提前致谢季米特里斯

最佳答案

您需要包括 gstat 对象的创建,而不是在预测阶段:

g <- gstat(id="tec", formula=TEC ~ 1, data=data, model = v.fit)

但是,我建议使用 krige 使用 gstat 的标准接口(interface)。这将 gstat 对象的构建和预测合并到一个函数中。您很少需要自己构建 gstat 对象。例如:

data(meuse)
coordinates(meuse) = ~x+y
data(meuse.grid)
gridded(meuse.grid) = ~x+y
m <- vgm(.59, "Sph", 874, .04)
# OK:
x <- krige(log(zinc)~1, meuse, meuse.grid, model = m)

您还可以使用 automap 包(我是该包的作者)并让变异函数模型自动拟合数据。例如使用 meuse 数据集:

library(automap)
kr = autoKrige(log(zinc)~1, meuse, meuse.grid)

这将自动构建样本变异函数,并将变异函数模型拟合到该样本变异函数。

关于r - 如何使用 gstat 预测进行普通克里金法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13920342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com