diff redelacSticsInputGenerator.R @ 15:413cec4dfe5f draft

"planemo upload for repository https://forgemia.inra.fr/redelac commit e5eb5cacd8c91c5a5a8fa571e31b54d30e988733"
author siwaa
date Sat, 20 Jan 2024 09:42:29 +0000
parents 812bb8097dac
children f2fe11a20371
line wrap: on
line diff
--- a/redelacSticsInputGenerator.R	Tue Dec 12 10:38:20 2023 +0000
+++ b/redelacSticsInputGenerator.R	Sat Jan 20 09:42:29 2024 +0000
@@ -4,6 +4,7 @@
 library(parallel)
 library(doParallel)
 library(doFuture)
+library(stringr)
 
 sessionInfo()
 
@@ -77,35 +78,60 @@
 
 if (parallel) {
   doFuture::registerDoFuture()
-  future::plan(multisession, workers = nbSlots)
+
+  future::plan(multicore, workers = nbSlots)
 }
 
 beforeGenXmlTime <- Sys.time()
 
-gen_usms_xml(file = file.path(workspace, "usms.xml"),
-             param_df = usms_param)
+#gen_usms_xml(file = file.path(workspace, "usms.xml"),
+#             param_df = usms_param)
+
+chunckSize <- 1000
+nbUSMs <- nrow(usms_param)
+
+ids <- seq(1, nbUSMs, chunckSize)
+
+foreach (i = ids,
+         .options.future = list(packages = c("foreach", "SticsRFiles"))) %dofuture% {
+           gen_usms_xml(file = file.path(workspace, paste0("usms__", i, ".xml")),
+                        param_df = usms_param[i:min(i + chunckSize - 1, nbUSMs),])
+         }
 
 afterGenXmlTime <- Sys.time()
 durGenX <-
   lubridate::as.duration(lubridate::interval(beforeGenXmlTime,
                                              afterGenXmlTime))
+
 beforeGenTxtTime <- Sys.time()
 
-gen_usms_xml2txt(
-  javastics = javastics_path,
-  workspace = workspace,
-  out_dir = txt_path,
-  usms_file = "usms.xml",
-  redelac = redelac,
-  parallel = parallel,
-  verbose = FALSE
-)
+
+print("betwin")
+
+
+foreach (i = ids,
+         .options.future = list(packages = c("foreach", "SticsRFiles"))) %dofuture% {
+	 print("toto")
+           gen_usms_xml2txt(
+             javastics = javastics_path,
+             workspace = workspace,
+             out_dir = txt_path,
+             usms_file = paste0("usms__", i, ".xml"),
+             redelac = redelac,
+             parallel = parallel,
+             verbose = FALSE
+           )
+	   print("titi")
+         }
 
 afterGenTxtTime <- Sys.time()
 durGenT <-
-  lubridate::as.duration(lubridate::interval(beforeGenTxtTime,
-                                             afterGenTxtTime))
-					     
+  lubridate::as.duration(lubridate::interval(beforeGenTxtTime, afterGenTxtTime))
+
+afterGenTxtTime <- Sys.time()
+durGenT <-
+  lubridate::as.duration(lubridate::interval(beforeGenTxtTime, afterGenTxtTime))
+
 endTime <- Sys.time()
 
 dur <-
@@ -116,7 +142,7 @@
 print("REDELACSticsInputGenerator Report")
 print("=================================")
 print(paste("number of usms: ", nrow(usms_param)))
-print(paste("redelac optimization:", redelac)) 
+print(paste("redelac optimization:", redelac))
 print(paste("process in parallel:", parallel))
 print(paste("nbslots:", nbSlots))
 
@@ -125,19 +151,24 @@
   lubridate::day(dur),
   lubridate::hour(dur),
   lubridate::minute(dur),
-  lubridate::second(dur))
+  lubridate::second(dur)
+)
 
 sprintf(
   'inside gen_usms_xml duration: %g jour(s) %g heure(s) %g minute(s) %g seconde(s)',
   lubridate::day(durGenXP),
   lubridate::hour(durGenXP),
   lubridate::minute(durGenXP),
-  lubridate::second(durGenXP))
+  lubridate::second(durGenXP)
+)
 
 sprintf(
   'inside gen_usms_xml2txt duration: %g jour(s) %g heure(s) %g minute(s) %g seconde(s)',
   lubridate::day(durGenTP),
   lubridate::hour(durGenTP),
   lubridate::minute(durGenTP),
-  lubridate::second(durGenTP))
-print("===================================================================================")
+  lubridate::second(durGenTP)
+)
+print(
+  "==================================================================================="
+)