【发布时间】:2020-03-22 09:40:15
【问题描述】:
我想使用循环修改一些栅格。
rasters<-list(rast1,rast2,rast3,rast4)
for(i in rasters){
i[[1]]<-i[[1]]/10000
i[[2]]<-(i[[2]]+100)/9000
}
堆栈的波段 1 需要将其值除以 10000,波段 2 需要是 (+100)/9000。目前,i 成为一个大型栅格对象。
这是一个用于测试的示例光栅堆栈
library(raster)
rast1<-stack(raster(matrix(runif(100),
ncol = 10, byrow = TRUE)),
raster(matrix(runif(100),
ncol = 10, byrow = TRUE)))
【问题讨论】:
-
不确定(而且我不是光栅专家)。你为什么不提供代码(从
library调用开始以加载任何需要的非基础包)构建一组小栅格,然后可以进行测试和演示。我的猜测是,将[[与栅格一起使用不会成功。 SO 都是关于代码的。 -
我不知道您想如何修改栅格的值,但这不是您访问这些值的方式。您需要使用嵌入式功能。 getValues(raster) 访问你的值和 values(raster)
-
另外,如果你想编辑一个列表,你可能会更喜欢 lapply。如果您更好地解释您希望对数据进行什么样的编辑,我们可以提出一个工作示例。您只想编辑所有值?
标签: r for-loop gis lapply raster