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

时间:2016-02-11 10:19:28

标签: r raster 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)

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

我的第一个问题是,是否有其他人之前遇到过这个问题?我的第二个问题是:我向StackOverflow社区提供现实世界示例的最佳方式是什么,以便有人可以帮我解决问题?我担心如果不使用我的数据集,这个问题仍然无法解决。我已经读过使用r [r%in%c(vals)]&lt; -50对于大型栅格来说可能是内存不稳定但我不确定这是我的例子(我的栅格是牙买加的图像)并且只包含4185个单元格,在运行代码时,我没有注意到RAM的使用有任何高峰。)

非常感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

你能尝试这种替代方法吗?

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

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