我使用的是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