用于 netCDF 的 R 中的三维数组



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

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

最新更新