[英]What KInd of variogram should I plot before doing Kriging in R?
我有一个名为seoul3112的csv文件,其中包含PM10浓度。 请下载。 我试图绘制样本变异函数并在其上拟合模型。
library(sp)
library(gstat)
library(rgdal)
seoul3112<-read.csv("seoul3112.csv",row.name=1)
seoul3112<-na.omit(seoul3112)
#分配CRS并重新投影
coordinates(seoul3112)=~LON+LAT
proj4string(seoul3112) = "+proj=longlat +datum=WGS84"
seoul3112<-spTransform(seoul3112, CRS("+proj=utm +north +zone=52 +datum=WGS84"))
#plot半变异函数
g<-gstat(id="PM10",formula=PM10~LON+LAT, data=seoul3112)
seoul3112.var<-variogram(g, cutoff=70000, width=6000)
seoul3112.var
plot(seoul3112.var, col="black", pch=16,cex=1.3,
xlab="Distance",ylab="Semivariance",
main="Omnidirectional Variogram for seoul 3112")
#适合模型
model.3112<- fit.variogram(seoul3112.var,vgm(700,"Gau",40000,400),fit.method = 2)
plot(seoul3112.var,model=model.3112, col="black", pch=16,cex=1.3,
xlab="Distance",ylab="Semivariance",
main="Omnidirectional Variogram for seoul 3112")
编写完这些代码后,我得到了一个半变异函数。
由于我是地统计学的新手,所以我很困惑我上面的变异函数对我的数据集是否可行。 因为在典型的方差图中,半方差值在门槛处变为水平。 但是这个变异函数会上升! 我应该在代码中进行一些更正吗?
另一件事是,实际上我的最终目标是在数据集上进行kriging插值(seoul3112)。我不明白,对于进行kriging而言,此样本方差图就足够了还是应该绘制方向方差图或其他任何东西? 有人可以详细解释吗?
如果你看看你的拟合模型,它将有一个sill
参数(即nugget
+ psill
),但它是超越你的样品的程度。
sill = sum(model.3112$psill)
您可能没有足够的点对距离来达到sill
的range
。 我不认为这不是问题,只要您使用此半变异函数来预测数据的空间域+ 60000 m(具有数据支持的距离)即可。 我之所以采取这一立场,是因为半变异函数要拟合的最重要部分是开始,并且在数据范围内,拟合良好。
需要检查的是,您有多少对点( np
)支持绘制的bins
(越多的点对越好)。
另一个建议是使用水平图寻找各向异性
seoul3112.var_map<-variogram(g, cutoff=70000, width=6000, map=TRUE)
plot(seoul3112.var_map, col.regions=terrain.colors(20))
或通过设置alpha
并绘制模型拟合来从多个方向查看拟合。 您只需检查180度,因为它是对称的(您可以在下图中看到0度和180度相同)。
seoul3112.var_angles<-variogram(g, cutoff=70000, width=6000, alpha=seq(0,180,30))
plot(seoul3112.var_angles, model=model.3112, pch=16, ylim=c(0,3000))
如果有差异定向,则可以使用模拟各向异性的长轴和短轴fit.variogram
与anis
的定义vgm()
模型。 例:
vgm(700,"Gau",40000,400, anis=c(someangle, someratio))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.