【问题标题】:geoR kriging error: solve.defaultgeoR 克里金法错误:solve.default
【发布时间】:2018-08-09 01:44:37
【问题描述】:

我正在尝试在相当大的区域(约 100 万公里 ^2)的 geoR 中进行克里金法。这是为了我的论文,所以很遗憾我不能分享数据。我已经检查了坐标和实际数据中的重复项,看看这是否是求解中出现错误的原因。我尝试了不同的方式来写趋势,例如长手或“第二”。我看到过类似的错误,但它们都是回归建模示例。我的“test.geo”数据与坐标和数据一起排列,我的变异函数有效。所以我知道 .geo 数据的初始部分正在工作,我模型的克里金组件只是不想工作。

我的代码是:

    my.bdr <- map.shp2@polygons[[1]]@Polygons[[1]]@coords
    x <- my.bdr[,1]
    y <- my.bdr[,2]
    krige.grid <- expand.grid(seq(min(x), max(x), l=1000), 
                      seq(min(y), max(y), l=1000))
    test.ply <- as.matrix(cbind(x, y))   
    test <- krige.conv(test.geo, 
                 krige = krige.control(
                   type.krige = "OK",           
                   trend.d = trend.spatial(~ 1 + test.geo$coords[,1] + test.geo$coords[,2] 
                                           + I(test.geo$coords[,1]* test.geo$coords[,1]) 
                                           + I(test.geo$coords[,1]*test.geo$coords[,2])
                                           + I(test.geo$coords[,2]*test.geo$coords[,2])),    
                   trend.l = trend.spatial(~ 1 + krige.grid[,1] + krige.grid[,2] 
                                           + I(krige.grid[,1]* krige.grid[,1]) 
                                           + I(krige.grid[,1]*krige.grid[,2])
                                           + I(krige.grid[,2]*krige.grid[,2])), 
                   obj.model = test.svm),
                 locations = krige.grid, borders=test.ply)

我不断收到此错误:

    Error in solve.default(ttivtt, crossprod(ivtt, as.vector(data))) : 
    system is computationally singular: reciprocal condition number = 4.81502e-36

对于解决此问题的任何建议或帮助,我将不胜感激!谢谢!

【问题讨论】:

    标签: r kriging geor


    【解决方案1】:

    这是一个老话题,但也许有人觉得有用。 你用的是什么CRS?如果您使用的是 UTM,请尝试将坐标除以 1000。 这是包的创建者提出的解决方案。它适用于线性趋势(而不是第二个多项式趋势)

    【讨论】:

      猜你喜欢
      • 2013-11-24
      • 2020-11-15
      • 2020-09-01
      • 2015-01-26
      • 2015-12-03
      • 2015-05-19
      • 1970-01-01
      • 2021-09-15
      • 2021-01-15
      相关资源
      最近更新 更多