Я использую пакет doSNOW и, более конкретно, функцию parLapply для выполнения переклассификации (а затем и других операций) в списке больших растровых наборов данных (ОС: Windows x64).Параллельная обработка больших растровых изображений в R (windows)
Код выглядит немного как этот минималистичный пример:
library(raster)
library(doSNOW)
#create list containing test rasters
x <- raster(ncol=10980,nrow=10900)
x <- setValues(x,1:ncell(x))
list.x <- replicate(9 , x)
#setting up cluster
NumberOfCluster <- 8
cl <- makeCluster(NumberOfCluster)
registerDoSNOW(cl)
junk <- clusterEvalQ(cl,library(raster))
#perform calculations on each raster
list.x <- parLapply(cl,list.x,function(x) calc(x,function(x) { x * 10 }))
#stop cluster
stopCluster(cl)
код на самом деле работает, как предполагалось. Проблема возникает, когда я хочу продолжить результаты. Я получаю сообщение об ошибке:
> plot(list.x[[1]])
Error in file(fn, "rb") : cannot open the connection
In addition: Warning message:
In file(fn, "rb") :
cannot open file 'C:\Users\*****\AppData\Local\Temp\RtmpyKYdpY\raster\r_tmp_2016-02-29_133158_752_67867.gri': No such file or directory
Насколько я понял, так как растр достаточно велики, они сохраняются в виде временного файла на диске. И когда я закрываю снеговой кластер, эти файлы больше не могут быть доступны.
Итак, мой вопрос в том, как я могу получить доступ к данным после закрытия кластера? Можно ли использовать этот метод?
Спасибо!
Спасибо Сэм!Если вы думаете об этом, это на самом деле довольно очевидно ... пробовал и работает как шарм. – Val