У меня большой растровый стек (4396663296 элементов, 13,3 Мб), который содержит месячные данные об осадках на Аляске и Канаде в период между 1920-2015 гг., Уменьшенный до 2 км. Я хотел бы рассчитать среднегодовое количество осадков за период наблюдения (1920–2015 гг.), Но я обнаружил, что мой код застрял R
. Есть ли более быстрый и эффективный способ выполнения следующего кода?
library(raster)
# create list of raster files from wd
r <- stack(list.files(pattern="tif$", full.names=FALSE))
# create index for month/year
nyears <- rep(1:95, each=12)
# next line bogs down R
rsum <- stackApply(r, indices=nyears, fun=sum)
ravg <- calc(rsum, mean, na.rm=TRUE)
Мне просто нужно делать это партиями (скажем, с шагом в десять лет)? Или мне не хватает чего-то умного?
Данные доступны здесь: http://ckan.snap.uaf.edu/dataset/historical-monthly-and-derived-precipitation-products-downscaled-from-cru-ts-data-via-the-delta.
Обратите внимание, что это предоставляет ежемесячные данные за период 1901-2015 гг., Однако я решил использовать 1920-2015 гг. В своем анализе и включал только файлы .tiff тех лет.