--- title: "Upgrading STICS XML files" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Upgrading STICS XML files} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", tidy = TRUE ) ``` ```{r eval=FALSE} library(SticsRFiles) ``` ```{r include=FALSE} suppressWarnings(library(SticsRFiles)) ``` ```{r echo=FALSE} stics_version <- get_stics_versions_compat()$latest_version ``` The XML files structure has changed between STICS version **9.2** and versions **10.X.Y** and a transformation is mandatory. So, to avoid difficulties and errors with manual XML files modifications, functionalities have been developed to do so automatically. One can either transform a complete workspace directory at once or each kind of file individually. ```{r, include = FALSE, eval=FALSE} example_data <- SticsRFiles::download_data(out_dir = tempdir(), example_dirs = "study_case_1", "V9.2") workspace <- file.path(example_data, "XmlFiles") out_dir <- file.path(tempdir(), "XmlFiles_V10.2.0") if (!dir.exists(out_dir)) dir.create(out_dir) javastics <- "/home/plecharpent/tmp/TEST_UPDATE_XML_V9_V10/JavaSTICS-1.41-stics-9.2" upgrade_workspace_xml(workspace = workspace, javastics = javastics, out_dir = out_dir, overwrite = TRUE) ``` ## Upgrading a whole workspace In that case, a workspace adapted to the new version is recreated. So, apart from the XML files, some other files as outputs definition files (*.mod), weather files attached to USMs and also observation files (named with the USM name, \*.obs) are copied to the new workspace. ```{r, eval = FALSE, results='markup'} workspace <- "/path/to/workspace/dir/V9.2" out_dir <- "/path/to/out/dir/V10.2.0" javastics <- "/path/to/JavaSTICS-1.41-stics-9.2" upgrade_workspace_xml(workspace = workspace, javastics = javastics, out_dir = out_dir) ``` Here is the output display indicating the treated files:
Upgrading files from version V9.2 to V10.2.0 From: /path/to/workspace/dir/V9.2 To: /path/to/out/dir/V10.2.0 ----------------------------------- param_gen.xml param_new_form.xml usms.xml sols.xml *_sta.xml *_ini.xml *_tec.xml Copying *.mod files. Copying *.obs files. Copying weather files. *_plt.xml ----------------------------------- Files upgrade and copy is complete.## Upgrading a specific file kind For each kind of file, a specific function is to be used for upgrading its format. * **`usms.xml`** : upgrade_usms_xml * **`*_ini.xml`** files: upgrade_ini_xml * **`param_gen.xml`**: upgrade_param_gen_xml * **`param_newform.xml`**: upgrade_param_newform_xml * **`*_plt.xml`** files: upgrade_plt_xml * **`sols.xml`**: upgrade_sols_xml * **`*_sta.xml`** files: upgrade_sta_xml * **`*_tec.xml`** files: upgrade_tec_xml The input arguments of these functions may vary, refer to each function help for details about its use. Sometimes, general parameter files are needed as function inputs because of parameters or options codes movement to specific files. For example, the **`usms.xml`** file is to be upgraded as follows: ```{r, include = FALSE, eval=FALSE} usms_path <- file.path(example_data, "XmlFiles", "usms.xml") out_dir <- file.path(tempdir(), "XmlFiles_V10.2.0") param_gen_path <- file.path(javastics, "config", "param_gen.xml") upgrade_usms_xml(file = usms_path, param_gen_file = param_gen_path, out_dir = out_dir, overwrite = TRUE) ``` ```{r, eval = FALSE} usms_path <- "/path/to/workspace/dir/V9.2/usms.xml" out_dir <- "/path/to/workspace/dir/V10.2.0" param_gen_path <- "/path/to/JavaSTICS-1.41-stics-9.2/config/param_gen.xml" upgrade_usms_xml(file = usms_path, param_gen_file = param_gen_path, out_dir = out_dir) ```