Alternate cfp_pfres()
/ cfp_fgres()
models for sensitivity analysis
and more.
Usage
alternate(
x,
f,
run_map,
return_raw = TRUE,
error_funs = NULL,
error_args = NULL
)
alternate_model(run_map, x, f)
Arguments
- x
A cfp_pfres or cfp_fgres model result.
- f
A function taking in a soilphys object and recalculates the relevant columns. See
complete_soilphys()
.- run_map
A data.frame created by
run_map()
with the necessary information how the data is to be changed with each distinctrun_id
.- return_raw
Should the models be returned as is, or after applying any
error_funs
. Default isTRUE
- exporting the models.- error_funs
A list of functions to be applied after flux calculation if
return_raw == FALSE
. This can be used to output not the models but quality parameters instead. Output must contain the column RMSE.- error_args
A list of additional function arguments to be passed to any of the
error_funs
. Must match the length oferror_funs
Value
A list
of type cfp_altres()
, each entry an
updated model.
Details
alternate_model()
is used internally to change and rerun one
model, but can also be used to update a model with a given unique run_map,
e.g. by filtering the best run_id from the original run_map
.
Examples
PROFLUX <- ConFluxPro::base_dat |>
filter(site == "site_a") |> # use only 'site_a' for example
pro_flux()
# Create a cfp_run_map where TPS is changed between 90 % and 110 %
# of the original value for 2 runs.
my_run_map <-
cfp_run_map(
PROFLUX,
list("TPS" = c(0.9, 1.1)),
"factor",
n_runs = 2)
# run the new models by providing a function `f`
# that updates the soilphys data.frame.
alternate(
x = PROFLUX,
f = \(x) complete_soilphys(x, "a+AFPS^b", quiet = TRUE),
run_map = my_run_map)
#>
#> A cfp_altres model result list.
#> number of runs: 2
#> original model:
#>
#> A cfp_pfres pro_flux model result.
#> mean RMSE achieved: 0.031767
#> number of failed fits: 0
#>
#> A cfp_pfmod pro_flux model.
#> zero_flux: TRUE
#> zero_limits: -Inf Inf
#> DSD0_optim: FALSE
#> evenness_factor: 0
#> known_flux_factor: 0
#>
#> A cfp_dat object to be used as input in ConFluxPro models.
#> id_cols: site Date gas
#> number of profiles: 12
#> number of groups: 1
#>