【问题标题】:R: error with autofitVariogram (automap package)R:autofitVariogram 错误(automap 包)
【发布时间】:2017-06-15 21:52:39
【问题描述】:

使用 automap 包中的 autofitVariogram() 函数我产生了以下错误:

vgm_list[[which.min(SSerr_list)]] 中的错误:尝试选择更少 get1index 中的一个元素以上

示例代码:

model <- as.formula(Value ~ Elevation)
data <- matrix(c(11.07,42.75,5,62.5,
                 8.73,45.62,234,75,
                 12.62,44.03,12,75,
                 10.87,45.38,67,75,
                 8.79,42.53,64,75),
               nrow = 5, byrow = TRUE)
data <- as.data.frame(data)
names(data) <- c('Lon', 'Lat', 'Elevation', 'Value')
library('sp')
coordinates(data) = ~Lon+Lat
library('automap')
autofitVariogram(model, data)

是什么导致了这个错误?插值会导致某种“奇点”吗?

谢谢!

【问题讨论】:

  • 这里是自动地图的开发者。我认为这与自动地图中的一个怪癖更相关,而不是与一些更普遍的静态问题有关。我会在接下来的几天里尝试调查它。

标签: r runtime-error automap


【解决方案1】:

最近,我也遇到了这个问题。我发现原因是我的数据中有一些Inf 值,如果我删除它们,包运行良好。希望这可以帮助你。

【讨论】:

    【解决方案2】:

    这个错误是由于gstat 无法在给定观察数量的情况下生成实验变异函数:

    library(gstat)
    library(sp)
    
    data <- matrix(c(11.07,42.75,5,62.5,
                     8.73,45.62,234,75,
                     12.62,44.03,12,75,
                     10.87,45.38,67,75,
                     8.79,42.53,64,75),
                   nrow = 5, byrow = TRUE)
    data <- as.data.frame(data)
    names(data) <- c('Lon', 'Lat', 'Elevation', 'Value')
    coordinates(data) = ~Lon+Lat
    variogram(Value ~ Elevation, data)
    ## NULL
    

    如果观察结果不充分,gstat::variogram 将返回 NULL。这反过来会导致 autofitVariogram 失败。

    如果您想使用克里金法,解决方案就是拥有更多数据。一条经验法则是,您需要大约 30 个观测值来生成有意义的变异函数以拟合变异函数模型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-03
      • 2016-04-27
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多