我需要在 R 中创建一个三维数组,其中包含分辨率为 538x907 像素的栅格数据。我一个月内每个小时都有这个光栅,所以一月份有 744 个光栅文件。我必须通过 R 更改一些值,然后想将它们汇总回一个可以由包 ncdf4 处理的数组。因此,我需要创建一个看起来像的三维数组prectdata[1:538, 1:907, 1:744]
(第一个和第二个用于光栅的 x 和 y 维度,第三个用于时间维度)。我如何将 744 个光栅矩阵连接到包 ncdf4 的三维数组?
问问题
510 次
1 回答
1
该raster
包有一个名为的函数as.array
,它应该做你想要的:
library(raster)
# single raster
r <- raster(matrix(runif(538*907),nrow =538))
# stack them
rstack <- do.call(stack,lapply(1:744,function(x) r))
# structure
> rstack
class : RasterStack
dimensions : 538, 907, 487966, 744 (nrow, ncol, ncell, nlayers)
resolution : 0.001102536, 0.001858736 (x, y)
extent : 0, 1, 0, 1 (xmin, xmax, ymin, ymax)
coord. ref. : NA
# convert to array
arr <- as.array(rstack)
# check dimensions
> dim(arr)
[1] 538 907 744
于 2018-03-01T09:51:02.487 回答