R foreach/parLapply выдает один и тот же вывод снова и снова
Мне трудно распараллелить мой код.
То, что я пытаюсь сделать здесь, это объединить несколько изображений MODIS (18 лет, ежедневно) и делать несколько других вещей после этого. Таким образом, код ниже должен представлять принцип. Проблема в том, что он всегда будет экспортировать одно и то же объединенное изображение, снова и снова, хотя и с правильным именем, даже если я дам ему только эту задачу слияния. Я также попробовал функцию parLapply, там тоже самое.
Есть идеи по этому поводу?
library(foreach)
library(doSNOW)
library(gdalUtils)
library(rgdal)
library(raster)
library(SpaDES)
cores <- detectCores()-1
cl <- makeCluster(cores)
registerDoSNOW(cl)
data <- read.table("E:/modis_images v6/images.txt")
clusterExport(cl,c("data","get_subdatasets","gdal_translate",
"raster","mergeRaster", "writeRaster"))
foreach(inp=seq(1, nrow(data), by=2)) %dopar% {
MODIS1<-paste("E:/modis_images v6/",data[inp,1], sep="")
sds<-get_subdatasets(MODIS1)
gdal_translate(sds[1],
dst_dataset = "mod1.grd",of="GSBG",a_srs='+proj=sinu +lon_0=0 +x_0=0
+y_0=0 +a=6371007.181 +b=6371007.181 +units=m +no_def')
r1<-raster("mod1.grd")
MODIS2<-paste("E:/modis_images v6/",data[(inp+1),1], sep="")
sds<-get_subdatasets(MODIS2)
gdal_translate(sds[1],
dst_dataset = "mod2.grd",of="GSBG",a_srs='+proj=sinu +lon_0=0 +x_0=0
+y_0=0 +a=6371007.181+b=6371007.181 +units=m +no_def')
r2<-raster("mod2.grd")
comb <- mergeRaster(c(r1,r2))
#...do other stuff
writeRaster(comb, filename=paste("E:/alpen/combined_images_par/",
name, sep=""), format="GTiff", overwrite=TRUE)
}