0

我是使用gstat和变异函数的新手,希望有人可以帮助向我解释一些细节,这些细节似乎不在文档中。

我使用了默认数据和帮助页面之一的示例来拟合球形变异函数 https://gisgeography.com/semi-variogram-nugget-range-sill/和许多其他网站统计以下定义:

  • SILL:模型第一次变平的值。
  • RANGE:模型第一次变平的距离。
  • NUGGET:半变异函数(几乎)截取 y 值的值。

这一切都说得通。在示例数据中,拟合的变异函数给出了这个 data.frame:

v.fit
#>   model      psill    range
#> 1   Nug 0.08234213    0.000
#> 2   Sph 0.38866509 1098.571

我对此的解释是金块为 0.082,门槛为 0.388,范围为 1098.6,但在下图中,当金块和范围排列时,门槛似乎更接近 0.45。谁能解释这些数字?

library(gstat)
library(sp)
library(lattice)

data(meuse)
coordinates(meuse) = ~x+y
v = variogram(log(zinc)~x+y, meuse)
v.fit = fit.variogram(v, vgm(1, "Sph", 700, 1))
v.fit
#>   model      psill    range
#> 1   Nug 0.08234213    0.000
#> 2   Sph 0.38866509 1098.571

testplot<-  plot(v, v.fit,
          panel = function(x, ...) {
            panel = vgm.panel.xyplot(x, ...);
            panel.abline(h = v.fit$psill[1:2], v = v.fit$range[2])})
print(testplot)

reprex 包(v0.3.0)于 2019 年 10 月 3 日创建

4

1 回答 1

0

好的,我刚刚意识到这两个 psill 值加起来就是最高值。这对其他人来说可能很明显,但我会在这里回答而不是删除,以防将来其他人像我一样感到困惑。

    plot(thisvgm, fitvgm2, main = paste0(Reduce(paste, deparse(FORMULAS[[MOD]] )), " range = 15"), ylim = c(0,1500),
         panel = function(x, ...) {
           panel = vgm.panel.xyplot(x, ...);
           panel.abline(h = c(fitvgm2$psill[1],sum(fitvgm2$psill)), v = fitvgm2$range[2])})
于 2019-10-03T00:56:59.410 回答