Upgrading STICS XML files

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  tidy = TRUE
)
library(SticsRFiles)
suppressWarnings(library(SticsRFiles))
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.

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.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.

workspace <- "/path/to/workspace/dir/V9.2"
out_dir <- "/path/to/out/dir/V10.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.0    
From:  /path/to/workspace/dir/V9.2   
To:  /path/to/out/dir/V10.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.

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:

usms_path <- file.path(example_data, "XmlFiles", "usms.xml")
out_dir <- file.path(tempdir(), "XmlFiles_V10.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)
usms_path <- "/path/to/workspace/dir/V9.2/usms.xml"
out_dir <- "/path/to/workspace/dir/V10.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)


Try the SticsRFiles package in your browser

Any scripts or data that you put into this service are public.

SticsRFiles documentation built on Sept. 12, 2024, 7:41 a.m.