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)
}

0 ответов

Другие вопросы по тегам