【发布时间】:2015-10-12 17:12:04
【问题描述】:
我已经从 MODIS 下载了非洲的所有植被数据,现在我正在尝试从图像中创建马赛克并将它们保存为 geo tif。在我尝试在 MacPro 6 核、12 线程上并行运行它之前,我做这一切都没有问题。代码可以运行,但它只使用了 1% 的核心可用性,并且需要永远完成这些过程。
我真的需要帮助,我需要将超过 70GB 的 MODIS 颗粒转换为马赛克,如果我不使用实验室中获得的所有计算机能力,这将永远需要。
这里是并行处理的代码部分:
有两个部分并行运行,1.选择NDVI; 2. 要创建马赛克,将它们投影并保存为 .tif。
# register the cluster with 10 cores
registerDoParallel(cores=11)
miCluster<-makeCluster(11)
registerDoParallel(miCluster)
library(doMC)
registerDoMC(11)
# 1.
# select the NDVI for each Africa Granule and put it in SdsList
sdsList <- foreach(k = 1:length(dateGranules), .packages=c("raster", "gdalUtils","foreach"))%dopar%{
for(j in 1:1:length(dateGranules)){
return(sapply(X=dateGranules[[j]], FUN=function(x){get_subdatasets(x)[1]}))
}
}
2.
# Generate the Mosaic for Africa with NDVI as aoutput
foreach(j = 1:length(sdsList), .packages=c("raster", "gdalUtils", "foreach"))%dopar%{
gdalwarp(srcfile=sdsList[[j]], t_srs="+proj=longlat +datum=WGS84 +no_defs",
dstfile=file.path(dest, names[j]))
}
【问题讨论】:
标签: r foreach parallel-processing gdal