如何在 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
是可选的,您也可以使用冗长的循环。但是像这样,栅格直接存储在一个整洁的列表中。
我希望在我计划存储的循环中生成几个随机栅格。我尝试了一些(如下)但它不起作用:
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
是可选的,您也可以使用冗长的循环。但是像这样,栅格直接存储在一个整洁的列表中。