-1

我需要在 R 中创建一个三维数组,其中包含分辨率为 538x907 像素的栅格数据。我一个月内每个小时都有这个光栅,所以一月份有 744 个光栅文件。我必须通过 R 更改一些值,然后想将它们汇总回一个可以由包 ncdf4 处理的数组。因此,我需要创建一个看起来像的三维数组prectdata[1:538, 1:907, 1:744](第一个和第二个用于光栅的 x 和 y 维度,第三个用于时间维度)。我如何将 744 个光栅矩阵连接到包 ncdf4 的三维数组?

4

1 回答 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 回答