在非常大的文件R上执行raster stackApply函数的最有效方法是什么?

时间:2016-03-23 03:07:36

标签: r date maps time-series raster

我有一个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会更快。如何在这么大的文件上实现这个?

0 个答案:

没有答案