问题标签 [gstat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
59 浏览

r - 如何确保 3D 合成随机场使用 R gstat 再现其变异函数

我尝试使用 R gstat 中的无条件模拟来生成 3D 合成空间随机场;与下面的行。但是,我试图检查详尽的数据是否可以重现用于生成该字段的变异函数,但没有成功。当我使场各向同性时;变异函数模型很容易复制。但是当我让它各向异性时(如下);我注意到 90 度(主要连续性)和 0 度(次要连续性)方向产生相同的变异函数值和图;范围始终在 45 个距离单位左右。我预计 90 个距离单位为主要范围,45 个为次要范围。

我避免在变异函数调用中设置 grid = TRUE;正如在回答此 Stack Overflow 中的类似问题时指出的那样。

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
152 浏览

r - 将数据框函数传递给 gstat 公式参数

我正在尝试使用gstat()and创建反距离加权栅格raster::interpolate()。我在将列名传递给 gstat 函数的公式参数时遇到问题。

对列名进行硬编码就可以了:

在此处输入图像描述

将其包装到一个函数中,以便我可以遍历多个列名会引发错误:

0 投票
1 回答
1080 浏览

r - 带有 gstat 的克里金法:带有预测的“位置处的协方差矩阵奇异”

我正在尝试通过使用 gstat 进行克里金法进行估计,但由于协方差矩阵的问题而永远无法实现。我从来没有估计过我想要的位置,因为它们都被跳过了。对于每个位置,我都有以下警告消息:

所有的估计都是NA。

到目前为止,我已经浏览了许多相关的 StackOverflow 线程,但没有一个能解决我的问题(https://gis.stackexchange.com/questions/222192/r-gstat-krige-covariance-matrix-singular-at-location-5-88 -47-4-0-skipping ; https://gis.stackexchange.com/questions/200722/gstat-krige-error-covariance-matrix-singular-at-location-917300-3-6109e06-0 ; https:// /gis.stackexchange.com/questions/262993/r-gstat-predict-error?rq=1 )

我检查了:

  • 我的数据集中实际上有一个空间结构(参见下面的代码气泡图)

  • 没有重复的位置

  • 变异函数模型不是奇异的,并且非常适合实验变异函数(参见下面的代码图)

  • 我还尝试了 gstat 库中的 range、sill、nugget 和所有模型的几个值

  • 协方差矩阵是正定的并且具有正的特征值。根据 gstat 它是奇异的,但不是 is.singular.matrix 函数

  • 有足够的点对来做实验变异函数

如何克服这个问题?有什么技巧可以避免奇异协方差矩阵?我也欢迎任何克里金法的“最佳实践”。

代码(需要 forSO.Rdata:https ://www.dropbox.com/s/5vfj2gw9rkt365r/forSO.Rdata?dl=0 ):

0 投票
0 回答
63 浏览

r - PM10 gstat 时空克里金法的奇怪输出

在这里的第一篇文章:) 非常简单的粗体问题。我想使用 1997 年至 2012 年智利圣地亚哥 8 个静态站点的 PM10 每日数据进行克里金法,并将其放入映射不同县的 34 个质心。我解释了到目前为止我所做的事情,中间有一些问题。我仅使用 2008 年(缺失值较少)数据作为第一个实验。

描述:

数据:我有一列是从 1997 年到 2012 年的天数,还有 8 列是 PM10 站数据。我将这些数据导入到 R 中,并确定了时间: time <-as.POSIXlt(data$date)没有错误:

“ 1997-04-05 UTC 1997-04-12 UTC.... 2012-12-27 UTC”

我用它的坐标导入了车站并建立了它的投影。

为了创建 STFDF,我首先构建了包含 8 个站点的数据向量 PM10,排序为:

,最后一行,因为我正在处理丢失的数据。然后估计的变异函数及其建模(我知道它很差)是通过以下方式完成的:

结果: 变异函数

然后我以这种方式使用 KrigeST:

绘制一个站点数据和该站点县质心的克里格数据的结果是:

Cerillos 县的克里金法结果及其站点数据

这似乎是通过一组日期对时间窗口进行估计。 第一个问题:有人知道为什么这个克里金有这种形状吗?

然后我想知道如果我只是使用距离作为预测器会发生什么,所以我改为编码:

第二个问题:这是尝试将 distnace 作为预测变量的合理方法吗?如果没有,任何关于如何调整我的代码的建议我都可以做到这一点非常感谢。无论如何,这是结果:

带有 tlag=0:0 的变异函数

使用sepVgm <- vgmST("separable",space=vgm(1,"Per", 8, 700),time =vgm(200,"Exp", 15, 700), sill=100)

顺便问一下,你们怎么搭配这个?

,然后输出真的让我感到惊讶: 带有 tlags=0:0 的克里金结果

第三个问题:为什么我会得到这个结果?我知道变异函数建模很差,但即使这是真的,我也明白程序应该使用相应日期的站数据,所以至少它应该及时改变。

0 投票
0 回答
46 浏览

r - for循环中的动态变量名与gdal结合

我有以下问题试图以某种方式解决:

我使用 gstat/gdal 包创建了 10 个不同 IDW 插值数组。

现在我有以下变量,我正在尝试将其导出到我的硬盘:

总共有 10 个不同的数组,用于插值期间使用的不同功率(ipd 值)。

手动导出到硬盘就可以了:

但现在自动化是我无法找出正确解决方案的地方:

我创建了一个data.frame包含 for 循环的相关信息:

然后我尝试了:

但我总是得到这个错误:

此外,在尝试自动化时,proj4string我收到此错误:

同样,如果我手动输入“正常”变量名,它会完美运行:

我还尝试了此处显示的解决方案assign,但没有任何效果。谢谢你的帮助!

0 投票
0 回答
140 浏览

r - 为什么使用并行处理的克里金法仍然使用内存而不使用我的处理器?

我有一个区域的大型测量数据集。我想在我的研究区域上使用克里金法插入我的数据。我的最终输出应该是栅格/网格。我的电脑有 8Gb RAM 和 4 个内核。当我尝试将 predict() 与拟合的变异函数一起使用时,我的内存已满,我的电脑不再响应。我有可能在多个内核(超过 20 个!)上运行我的代码,但我的代码需要整理并在我的个人笔记本电脑上处理一个较小的子集,然后才能在超级计算机上的整个数据集上使用它。

我尝试按照 Guzmán 提供的脚本使用并行包来并行化 predict() 函数,以回答如何在 R 中实现并行克里金法以加快进程?. 但是,我遇到了和以前一样的问题,我的内存被最大限度地使用而我的处理器没有被使用。我试图减少更少数据点和更小的网格的数据集,以测试我的代码,但它仍然没有工作(使用所有内存并永远进行计算)。

我的数据是带有一些 Cu(ppm) 测量值的 SpatialPointsDataFrame。

这是我的代码:

我只是看不出错误可能来自哪里。我已经按原样使用了 Guzman 代码,为什么它不起作用?有什么提示吗?

0 投票
0 回答
107 浏览

r - 如何从克里金插值中提取值

我无法从 kri 中的预测值中提取 'var1.pred'、'var1.var',它们都显示为 NA。

我可以使用spplot为kri绘制热图,但是我无法提取kri中的预测值,例如'var1.pred','var1.var',它们都显示为NA。[ https://pan.baidu.com/s/12IF2ZNWf4a9-idZpw2jYWw] 提取码:3kch

在此处输入图像描述

0 投票
0 回答
87 浏览

r - 如何使用焦点区域函数在 R 中创建半变异函数输出的移动窗口滤波器?

我正在尝试创建一个充满半变异函数输出的栅格,例如描述空间自相关的区域的窗台和范围。我想尝试使用 R 中的焦点函数作为扫描区域的一种方式,并尝试使用 gstat 包中的变异函数来计算窗台和范围。

我尝试了以下代码,但该功能存在问题。

错误状态,“ as(x, "SpatialPixelsDataFrame") 中的错误:没有将“数字”强制转换为“SpatialPixelsDataFrame”的方法或默认值“

如果有其他方法可以创建这些新栅格,我将不胜感激,也请告诉我。

谢谢你。

0 投票
1 回答
279 浏览

r - 如何在 R 中的列表列表上应用函数?

我正在尝试编写一个循环,在其中将函数应用于列表列表。我想用 gstat 包的 idw 命令插入不同国家的温度(最高平均温度/MAXMEAN)。

idw函数需要坐标(经度、纬度)和变量MAXMEAN的信息。这些组合在数据框列表“temperatures.coordinates”(如下所示:https ://imgur.com/cr3PquB )中,该列表包含 37 个国家/地区,其中每个列表再次分为 12 个月(子列表长度为 12 )。该函数还需要来自 grd.list 数据帧的信息,该数据帧是一个长度为 37 的列表,没有子列表。

应用于单个国家和单个月份,代码如下所示:

我试过这样做:

运行循环后我收到此错误:

这在之前的类似循环中起作用,我在其中创建温度坐标的列表列表:

我不确定我是否提供了所有相关信息并且我已经坚持了一段时间 - 感谢任何帮助,谢谢!

0 投票
1 回答
290 浏览

r - 了解 gstat 的变异函数

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

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

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

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

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

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