View source: R/edit_apsimx_replacement.R
edit_apsimx_replacement | R Documentation |
edit the replacement componenet of an JSON apsimx file. It does not replace the GUI, but it can save time by quickly editing parameters and values.
edit_apsimx_replacement(
file = "",
src.dir = ".",
wrt.dir = ".",
node = NULL,
node.child = NULL,
node.subchild = NULL,
node.subsubchild = NULL,
node.sub3child = NULL,
node.sub4child = NULL,
node.sub5child = NULL,
node.string = NULL,
root = list("Models.Core.Replacements", NA),
parm = NULL,
value = NULL,
overwrite = FALSE,
edit.tag = "-edited",
verbose = TRUE,
grep.options
)
file |
file ending in .apsimx to edit (JSON) |
src.dir |
directory containing the .apsimx file; defaults to the current working directory |
wrt.dir |
should be used if the destination directory is different from the src.dir |
node |
specific node to edit |
node.child |
specific node child component to edit. |
node.subchild |
specific node sub-child to edit. |
node.subsubchild |
specific node sub-subchild to edit. |
node.sub3child |
specific node sub-sub-subchild to edit. |
node.sub4child |
specific node sub-sub-sub-subchild to edit. |
node.sub5child |
specific node sub-sub-sub-sub-subchild to edit. |
node.string |
passing of a string instead of the node hierarchy. It can either start with a dot or not. However, the ‘best’ form is not to start with a dot as it should be a more convenient form of passing the nodes and their childs and not a real ‘jsonpath’. |
root |
‘root’ node to explore (default = “Models.Core.Replacements”) |
parm |
specific parameter to edit |
value |
new values for the parameter |
overwrite |
logical; if |
edit.tag |
if the file is edited a different tag from the default ‘-edited’ can be used. |
verbose |
whether to print information about successful edit |
grep.options |
Additional options for grep. To be passed as a list. |
This is simply a script that prints the relevant parameters which are likely to need editing. It does not print all information from an .apsimx file.
(when verbose=TRUE) complete file path to edited .apsimx file is returned as a character string. As a side effect this function creates a new (JSON) .apsimx file.
The components that can be edited are restricted becuase this is better in preventing errors of editing unintended parts of the file.
extd.dir <- system.file("extdata", package = "apsimx")
## Writing to a temp directory, but change as needed
tmp.dir <- tempdir()
## Inspect original values
inspect_apsimx_replacement("MaizeSoybean.apsimx",
src.dir = extd.dir,
node = "Maize",
node.child = "Phenology",
node.subchild = "ThermalTime",
node.subsubchild = "BaseThermalTime",
node.sub3child = "Response")
edit_apsimx_replacement("MaizeSoybean.apsimx",
src.dir = extd.dir, wrt.dir = tmp.dir,
node = "Maize",
node.child = "Phenology",
node.subchild = "ThermalTime",
node.subsubchild = "BaseThermalTime",
node.sub3child = "Response",
parm = "X",
value = c(10, 20, 30, 40, 50))
## inspect it
inspect_apsimx_replacement("MaizeSoybean-edited.apsimx",
src.dir = tmp.dir,
node = "Maize",
node.child = "Phenology",
node.subchild = "ThermalTime",
node.subsubchild = "BaseThermalTime",
node.sub3child = "Response")
## Illustrating using 'node.string'
## Equivalent to the code to edit above
edit_apsimx_replacement("MaizeSoybean-edited.apsimx",
src.dir = tmp.dir, wrt.dir = tmp.dir,
node.string = "Maize.Phenology.ThermalTime.BaseThermalTime.Response",
parm = "X",
value = c(11, 21, 31, 41, 51),
edit.tag = "-ns")
inspect_apsimx_replacement("MaizeSoybean-edited-ns.apsimx",
src.dir = tmp.dir,
node = "Maize",
node.child = "Phenology",
node.subchild = "ThermalTime",
node.subsubchild = "BaseThermalTime",
node.sub3child = "Response")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.