From c34c5f38d16b4244fc1a75988fcacc28eb53b970 Mon Sep 17 00:00:00 2001
From: Francesco Sabatini <francesco.sabatini@idiv.de>
Date: Mon, 24 Feb 2020 22:44:15 +0100
Subject: [PATCH] Optimized A97 for cluster

---
 code/A97_ElevationExtract.R | 15 +++++++--------
 code/cli_A97.r              |  4 ++--
 code/submit-A97.sh          |  2 +-
 3 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/code/A97_ElevationExtract.R b/code/A97_ElevationExtract.R
index 611eb55..ef9e403 100644
--- a/code/A97_ElevationExtract.R
+++ b/code/A97_ElevationExtract.R
@@ -55,12 +55,12 @@ ElevationExtract <- function(header, output, ncores, chunk.i){
   print(paste(length(todo), "tiles to do"))
   
   print("divide in chunks")
-  #divide in chunks #should take around 40'
-  indices <- 1:length(todo)
-  todo.chunks <- split(indices, sort(indices%%99))
+  #divide in chunks
+  todo.chunks <- split(todo, sort(todo%%10))
   
   print(paste("start main foreach loop on chunk n=", chunk.i))
-  foreach(i = todo.cunks[[chunk.i]]) %dopar% {  
+  print(paste(length(todo.chunks[[chunk.i]]), "to do"))
+  foreach(i = todo.chunks[[chunk.i]]) %dopar% {  
 	print(paste("doing", i))
     #create sp and project data
     if(nrow(header.tiles %>% 
@@ -82,11 +82,10 @@ ElevationExtract <- function(header, output, ncores, chunk.i){
     )
     if(!exists("raster.tile")) {
       raster.tile <- NA
+      print(paste("tile", i, "doesn't work!, skip to next"))
       save(raster.tile, file = paste(output, "elevation_tile_", i, "failed.RData", sep=""))
-      message(paste("tile", i, "doesn't work!, skip to next"))
       rm(raster.tile)
-      next
-    }
+      } else {
     # clip dem tile with continent shape
     raster.tile <- mask(raster.tile, continent.high.merc)
     
@@ -111,7 +110,7 @@ ElevationExtract <- function(header, output, ncores, chunk.i){
     #save output
     save(output.tile, file = paste(output, "elevation_tile_", i, ".RData", sep=""))
     print(paste(i, "done"))
-  }
+  }}
   stopCluster(cl)
   }
   
diff --git a/code/cli_A97.r b/code/cli_A97.r
index 653390d..d376731 100644
--- a/code/cli_A97.r
+++ b/code/cli_A97.r
@@ -21,7 +21,7 @@ options <- list (
 	), 
 	make_option(
 	  opt_str = c("-i", "--chunk.i"),
-	  dest    = "chunkn",
+	  dest    = "chunk.i",
 	  type    = "integer",
 	  default = 1,
 	  help    = "which chunk out of 99",
@@ -45,7 +45,7 @@ cli <- parse_args(parser, positional_arguments = 2)
 header   	     <- cli$args[1]
 output  	     <- cli$args[2]
 ncores   	     <- cli$options$ncores
-chunkn         <- cli$options$chunk.i
+chunk.i         <- cli$options$chunk.i
 
 
 # ------------------------------------------------------------------------------
diff --git a/code/submit-A97.sh b/code/submit-A97.sh
index e0b14fe..dd9e18b 100644
--- a/code/submit-A97.sh
+++ b/code/submit-A97.sh
@@ -13,7 +13,7 @@
 
 #$ -cwd
 
-#$ -t 1-99
+#$ -t 1-10
 
 
 module load R
-- 
GitLab