Mercurial > repos > siwaa > redelac_stics_g
view redelacSticsInputGenerator.R @ 7:fb6f7d60508d draft
"planemo upload for repository https://forgemia.inra.fr/redelac commit d1c69d78e9ccfe06ceb7609dce59b438cd94d9d8"
author | siwaa |
---|---|
date | Thu, 20 Jul 2023 16:18:59 +0000 |
parents | bb1ac57f8545 |
children | 2a6d7d053ba7 |
line wrap: on
line source
library(SticsRFiles) library(dplyr) library(lubridate) startTime <- Sys.time() workspace <- paste0(getwd(), "/WS") javastics_path <- getwd() txt_path <- paste0(getwd(), "/WS/txt_files") dir.create(txt_path, recursive = T) USMsFile <- "USMs.csv" TecFile <- "Tec.csv" IniFile <- "Ini.csv" StationFile <- "Station.csv" args = commandArgs(trailingOnly = TRUE) genUSMsXmlOneAfterOther <- (args[1] == "usmx_one_after_other") # USMs file loading usms_param <- read_params_table(file.path(workspace, USMsFile)) %>% select( usm_name, datedebut, datefin, finit, nomsol, fstation, fclim1, fclim2, culturean, nbplantes, codesimul, fplt_1, ftec_1, flai_1, fplt_2, ftec_2, flai_2 ) # Tec files loading and generating xml tec_param <- read_params_table(file.path(workspace, TecFile)) columnToRemove <- names(tec_param[grep("juleclair|nbinfloecl", names(tec_param))]) columnToKeep <- names(tec_param)[names(tec_param) %in% columnToRemove == FALSE] tec_param <- subset(tec_param, select = columnToKeep) gen_tec_xml(param_df = tec_param, out_dir = workspace) # Ini files loading and generating xml ini_param <- read_params_table(file.path(workspace, IniFile)) gen_ini_xml(param_df = ini_param, out_dir = workspace) # Station files loading and generating xml sta_param <- read_params_table(file.path(workspace, StationFile)) gen_sta_xml(param_df = sta_param, out_dir = workspace) if (genUSMsXmlOneAfterOther) { durGenX <- lubridate::as.duration(0) durGenT <- lubridate::as.duration(0) # looping on USMs for (i in 1:nrow(usms_param)) { row <- usms_param[i, ] beforeGenXmlTimeI <- Sys.time() gen_usms_xml(file = file.path(workspace, "usms.xml"), param_df = row) afterGenXmlTimeI <- Sys.time() durGenXI <- lubridate::as.duration(lubridate::interval(beforeGenXmlTimeI, afterGenXmlTimeI)) # one after the other generating txt folder beforeGenTxtTimeI <- Sys.time() gen_usms_xml2txt( javastics = javastics_path, workspace = workspace, out_dir = txt_path, verbose = TRUE ) afterGenTxtTimeI <- Sys.time() durGenTI <- lubridate::as.duration(lubridate::interval(beforeGenTxtTimeI, afterGenTxtTimeI)) durGenX <- durGenX + durGenXI durGenT <- durGenT + durGenTI } } else { beforeGenXmlTime <- Sys.time() gen_usms_xml(file = file.path(workspace, "usms.xml"), param_df = usms_param) 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, verbose = TRUE ) afterGenTxtTime <- Sys.time() durGenT <- lubridate::as.duration(lubridate::interval(beforeGenTxtTime, afterGenTxtTime)) } endTime <- Sys.time() dur <- lubridate::as.period(lubridate::as.duration(lubridate::interval(startTime, endTime))) durGenXP <- lubridate::as.period(durGenX) durGenTP <- lubridate::as.period(durGenT) print("REDELAC Report") print("==============") print(paste0("number of usms: ", nrow(usms_param))) print(paste("usms.xml one after the other:", genUSMsXmlOneAfterOther)) sprintf( 'overall duration: %g jour(s) %g heure(s) %g minute(s) %g seconde(s)', lubridate::day(dur), lubridate::hour(dur), lubridate::minute(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) ) 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) )