【发布时间】:2021-04-12 14:44:02
【问题描述】:
我正在对一个非常大的栅格(437760000 个像元)进行一些后期处理,使用相同范围/crs 的其他栅格图层进行约束。代码大部分都在工作,但我遇到了问题。
r1[r2== 6 & r3>= 40 & r3<= 60] <- sample(2:4, length(r1[r2== 6 & r3>= 40 & r3 <= 60]), replace = T)
其中 r1、r2 和 r3 是唯一的栅格图层。 r1 正在根据约束进行更新,旨在改进地图。
此代码执行没有问题,但在完成时会引发以下警告:
Warning message:
In .local(x, i, j = j, ..., value) :
the first replacement value is used for all cells
我想确保所有三个值都是随机选取的(最终我想使用 sample 中的 prob 参数来加权其中一个值)。我尝试了许多修复程序,它们都抛出了相同的警告消息,我认为这意味着只有三个值中的一个被应用于整个栅格。我正在 terra 中为此工作。
有什么想法吗?谢谢!
【问题讨论】:
-
我知道您是新用户。欢迎!现在,如果您想最大限度地提高获得答案的机会,请尝试创建一个可重现的示例。在这种情况下,创建一个大小约为 20x20 的虚假栅格并将您的代码应用到它会产生错误。在我们这边,您的目标会更容易理解,我们只需将您的代码复制粘贴到我们的 R 会话中。
标签: gis geospatial raster terra