我有一个data.add(0, value);
rasterstack
来自A
netCDF文件,其中包含以下维度:
>11000
library(raster)
library(zoo)
library(xts)
class : RasterStack
dimensions : 885, 184, 162840, 11712 (nrow, ncol, ncell, nlayers)
resolution : 0.1, 0.1 (x, y)
中的每一层(A
)
代表一个时间步长(30分钟)。任务是累积时间序列,分辨率为30分钟到6小时。对于文件的子集(144个文件),我可以使用以下内容在dates=seq(as.POSIXct("2015-04-01 00:00:00"), as.POSIXct("2015-11-30 23:59:59"), by="30 mins",tz="GMT"
内获得结果:
20 minutes execution time
在dates=seq(as.POSIXct("2015-04-01 00:00:00"), as.POSIXct("2015-04-03 23:59:59"), by="30 mins",tz="GMT")
index=rep(seq(1,12,by=1),each=12)
ras <- setZ(A,dates)
sixh <- stackApply(ras,indices=index, fun=sum);
上做同样的事情需要永远。是否有一种有效的方法可以在A
完成此任务?
同样适用于栅格中的所有其他函数,例如t(A),flip(A)......等。当我在A
上使用它们时,这些函数变得非常慢。
我想将A
强制转换为A
并对其执行计算然后再堆叠回array or data.table
会更快。如何在这么大的文件上实现这个?