无法更新 R 栅格中的像元值

Cannot Update Cell Values in R Raster

我有一个栅格中的单元格列表,我想为其更改单元格的值(同时保留所有其他单元格)。我在下面复制了一些我已经设法开始工作的测试(可重现)代码。它生成一个测试栅格,并且对于在 vals 中定义的像元,将像元的值更改为 50。

# My List of Cells That Require Changing
vals<-c(2,4,6,10,15,27)

#Example Raster
r <- raster(ncol=6, nrow=6)
r[] <- 1:ncell(r)
plot(r)


#Change Cell Values
r[r%in%c(vals)] <- 50
plot(r)

到目前为止,还不错。但是,当我将相同的代码应用于现实生活中的数据时,我无法更改单元格值。代码运行得非常好(根本没有错误消息),但单元格值根本没有改变。

我的第一个问题是以前是否有人遇到过这个问题?我的第二个问题是:我向 Whosebug 社区提供我的真实示例的最佳方式是什么,这样也许有人可以帮助我解决问题?我担心如果不使用我的数据集,这个问题将无法解决。我读过使用 r[r%in%c(vals)] <- 50 对于大型栅格来说内存不稳定,但我不确定我的示例是否属于这种情况(我的栅格是牙买加的图像和仅包含 4185 个单元格,当 运行 代码时,我没有注意到 RAM 使用率有任何峰值。

如能提供任何帮助,我们将不胜感激。

你能试试这个替代方法吗:

rcl <- cbind(from = vals, to=50)
x <- reclassify(r, rcl)

如果这也不起作用,则表明您要替换的值实际上不在您的数据中

问题也可能是您的数据 class!我遇到了完全相同的问题,结果我想更改的值不是整数,