R parL在写入新文件时应用删除文件

时间:2019-03-21 21:08:14

标签: r parallel-processing cluster-computing lapply

我正在尝试使用parLapply读取大量shapefile,对其进行一些分析,然后输出一个.csv文件。我的代码经过几次迭代(大约是我使用的内核数的3倍),然后开始从目录中删除.csv文件,并用与其他shapefile相关的.csv替换它们(有时是相同的shapefile,仅处理了第二秒钟)时间)。

这是我脚本的这一部分:

parLapply(cl, test_basins, function(x) {  
    basin <- readOGR(x)
    lapply(years, function(y){
      Raster <- stack(y)
      dayname <- substring(y, 18, 27)
      basin <- spTransform(basin, "+proj=longlat +datum=WGS84 +no_defs 
+ellps=WGS84 +towgs84=0,0,0")
      croppedraster <- crop(Raster, basin)
      prismraster <- mask(croppedraster, basin)  

      allpoints<- rasterToPoints(prismraster) 
      wide<-data.table(allpoints)
      long <- gather(wide, PRISM, value, -c(1,2))
      setnames(long,old=c("x","y","PRISM","value"),
new=c("lon","lat","Day","value"))
      dt = data.table(long)
      meanP<- dt[,list(mean_P=mean(value)),by=Day]
      meanP$Day <- dayname
      meanP <- meanP[order(meanP$Day)]})
# then save it in the data folder
    write.csv(meanP, file=paste0("./my_dir/" , 
basin$id , ".csv"), row.names=FALSE)
  })
stopCluster(cl); print("cluster stopped")

有什么主意我的错误吗?

`test_basins` is a list of shapefiles and `years` is a list of raster files. 

我不确定如何为此提供可复制的数据/我实际上没有收到错误消息。请让我知道是否可以提供更多信息。

0 个答案:

没有答案