如何在 R 中创建 10 个随机栅格?

How to create 10 random rasters in R?

我希望在我计划存储的循环中生成几个随机栅格。我尝试了一些(如下)但它不起作用:

r1= raster(nrows = 1, ncols = 1, res = 0.5, xmn = -1.5, xmx = 1.5, ymn = -1.5, ymx = 1.5, vals = 0.3)

a<- 10
for (i in 1:length(a)){
values(r1[i]) = round(runif(ncell(r1[i]), 0, 1))}

感谢您的帮助。

runif() 是生成随机值的好方法。 matrix() 函数是一种创建栅格的方法。我将栅格值存储在 list 对象中。

n <- 10
x_length <- 5
y_length <- 5

raster <- list(NULL)
for (i in 1:n){
    raster[[i]] <- round(
      matrix(
        runif(x_length * y_length , 1, 10), 
        x_length, y_length)
      )
}
raster

有一个更简单的方法:

library(raster)

r1 <- raster(nrows = 1, ncols = 1, res = 0.5, xmn = -1.5, xmx = 1.5, ymn = -1.5, ymx = 1.5, vals = 0.3)

rr <- lapply(1:10, function(i) setValues(r1,runif(ncell(r1))))

这会为您提供一个包含 10 个随机栅格的列表 rr

使用 lapply 是可选的,您也可以使用冗长的循环。但是像这样,栅格直接存储在一个整洁的列表中。