From 377baebf8f8f85d7845fb641a900195ad43b9f2c Mon Sep 17 00:00:00 2001
From: Francesco Sabatini <francesco.sabatini@idiv.de>
Date: Fri, 21 Feb 2020 23:30:09 +0100
Subject: [PATCH] Fixes to A97 to run on cluster

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

diff --git a/code/A97_ElevationExtract.R b/code/A97_ElevationExtract.R
index 863d8db..6d0fa8c 100644
--- a/code/A97_ElevationExtract.R
+++ b/code/A97_ElevationExtract.R
@@ -54,9 +54,8 @@ ElevationExtract <- function(header, output, ncores){
   print(paste(length(todo), "tiles to do"))
   
   print("start main foreach loop")
-#foreach(i = 1:nlevels(header.sp$tilenam)) %do% {
-  foreach(i =todo[1:6]) %dopar% {  
-    #for(i in todo){
+  foreach(i =todo) %dopar% {  
+	print(paste("doing", i))
     #create sp and project data
     if(nrow(header.tiles %>% 
             filter(tilenam %in% levels(header.tiles$tilenam)[i])) ==0 ) next()
@@ -102,7 +101,7 @@ ElevationExtract <- function(header, output, ncores){
                               DEM.res=res(raster.tile)[1]) 
     
     #save output
-    save(output.tile, file = paste(output, "_elevation_tile_", i, ".RData", sep=""))
+    save(output.tile, file = paste(output, "elevation_tile_", i, ".RData", sep=""))
     print(i)
   }
   stopCluster(cl)
diff --git a/code/A98_PredictorsExtract.R b/code/A98_PredictorsExtract.R
index 7d7aaf0..5cb6f4b 100644
--- a/code/A98_PredictorsExtract.R
+++ b/code/A98_PredictorsExtract.R
@@ -48,7 +48,7 @@ PredExtr <- function(x.shp, myfunction=NA, output,
     print(paste(length(toassign), "plots not matched directely - seek for NN"))
   if(length(toassign)>0){
     
-    nearest <- foreach(i=1:length(toassign), .packages=c('raster'), .combine=rbind) %do% { 
+    nearest <- foreach(i=1:length(toassign), .packages=c('raster'), .combine=rbind) %dopar% { 
       print(i)
       nearest.tmp <- tryCatch(geosphere::dist2Line(header.shp[i,], mypredictor),
                               error = function(e){data.frame(distance=NA, lon=NA, lat=NA,ID=NA)}
diff --git a/code/cli_A97.r b/code/cli_A97.r
index 5dbe37b..b305bfc 100644
--- a/code/cli_A97.r
+++ b/code/cli_A97.r
@@ -18,16 +18,8 @@ options <- list (
 		default = default.ncores,
 		help    = paste0("number of CPU cores to use, defaults to ", default.ncores),
 		metavar = "4"
-	),
-	
-	make_option(
-	  opt_str = c("-t", "--typp"),
-	  dest    = "typp",
-	  type    = "character",
-	  default = default.typp,
-	  help    = "Which data type? raster or shp",
-	  metavar = "4"
 	)
+	
 )
 
 parser <- OptionParser(
@@ -43,7 +35,7 @@ cli <- parse_args(parser, positional_arguments = 2)
 # assign a few shortcuts
 # ------------------------------------------------------------------------------
 
-header     	   <- cli$args[1]
+header   	   <- cli$args[1]
 output  	     <- cli$args[2]
 ncores   	     <- cli$options$ncores
 
@@ -54,6 +46,5 @@ ncores   	     <- cli$options$ncores
 
 source("A97_ElevationExtract.R")
 
-PredExtr(x.shp, myfunction, output, toextract, typp, ncores, chunkn, chunk.i)
-
+ElevationExtract(header, output, ncores)
 
diff --git a/code/submit-A97.sh b/code/submit-A97.sh
index e0edf5c..a672b92 100644
--- a/code/submit-A97.sh
+++ b/code/submit-A97.sh
@@ -3,13 +3,13 @@
 #$ -S /bin/bash
 #$ -N ElevationExtract
 
-#$ -o /work/$USER/$JOB_NAME-$JOB_ID-$TASK_ID.log
+#$ -o /work/$USER/$JOB_NAME-$JOB_ID.log
 #$ -j y
 
 #$ -l h_rt=00:30:00:00
-#$ -l h_vmem=60G
+#$ -l h_vmem=1G
 
-#$ -pe smp 20-32
+#$ -pe smp 4-32
 
 #$ -cwd
 
@@ -22,4 +22,4 @@ Rscript \
     cli_A97.r \
     --cores ${NSLOTS:-1} \
     /data/splot/_data_splot3/header.shp.shp \
-    "$output"
\ No newline at end of file
+    "$output"
-- 
GitLab