Function utils_rockOptimization
finds optimum rock fragment content in the soil
corresponding to given vegetation, weather and target percent loss
of conductance (PLC), following a modification of the method proposed by Druel et al. (2023).
Usage
utils_rockOptimization(
x,
soil,
SpParams,
control,
meteo,
PLCquantile = 0.9,
qPLC_target = 12,
qPLC_tol = 0.5,
sew_min = 30,
max_rocks = 99,
verbose = FALSE,
...
)
Arguments
- x
An object of class
forest
.- soil
An object of class
data.frame
orsoil
, containing soil parameters per soil layer.- SpParams
A data frame with species parameters (see
SpParamsDefinition
andSpParamsMED
).- control
A list with default control parameters (see
defaultControl
).- meteo
A data frame with daily meteorological data series (see
spwb
).- PLCquantile
Maximum PLC quantile to be calculated across years.
- qPLC_target
Target PLC to be achieved (by default 12%).
- qPLC_tol
Tolerance of PLC difference to target accepted when finding solution.
- sew_min
Minimum soil extractable water (mm) for rock exploration.
- max_rocks
Maximum content in coarse fragments allowed for any soil layer.
- verbose
A logical value. Print the internal messages of the function?
- ...
Additional parameters to function
spwb
.
Value
Function utils_rockOptimization
returns a list containing:
RFC
: A vector with the estimated rock fragment content for each soil layer.SEW
: Soil extractable water (mm).runs
: Number of simulations performed.message
: Text message indicating whether optimization could be done (OK) or not.
Details
The function performs a model inversion based on an ecohydrological assumption, consisting in that forest leaf area index is in equilibrium with a low embolism rate under normal conditions. This is translated in that the (by default 90%) interannual quantile of the maximum annual percent loss of conductance (PLC), averaged over plant cohorts, should be close to a target PLC value (by default 12%).
The algorithm first determines the PLC corresponding to the minimum and maximum soil extractable water (SEW). The minimum SEW (SEW_min) is an input parameter, whereas the maximum SEW (SEW_max) corresponds to no rock fragments in the soil.
Then three situations are distinguished:
If
PLC(SEW_min) < qPLC_target
andPLC(SEW_max) < qPLC_target
, the function will useuniroot
to find the root of the functionf(x) = PLC(x) - qPLC_target
, wherex
is SEW, which corresponds to a factor that multiplies the original rock fragment content.If both
PLC(SEW_min) < qPLC_target
andPLC(SEW_max) < qPLC_target
, the function cannot find an optimum, because PLC is always too low, and will return the original rock fragment contentAnalogously, if both
PLC(SEW_min) > qPLC_target
andPLC(SEW_max) > qPLC_target
, the function cannot find an optimum, because PLC is always too large, and will return the original rock fragment content
References
Druel, A., Martins, N., Cochard, H., De Caceres, M., Delzon, S., Mencuccini, M., Torres-Ruiz, J., and Ruffault, J.: European forest vulnerability to hydraulic failure: an ecohydrological approach, EGU General Assembly 2023, Vienna, Austria, 24–28 Apr 2023, EGU23-17068, https://doi.org/10.5194/egusphere-egu23-17068, 2023.
Examples
# \donttest{
#Load example daily meteorological data
data(examplemeteo)
#Load example plot plant data
data(exampleforest)
#Default species parameterization
data(SpParamsMED)
#Initialize soil with two layers
examplesoil <- defaultSoilParams(4)
#Rock fragment content optimization (Granier)
utils_rockOptimization(exampleforest, soil = examplesoil,
SpParams = SpParamsMED, meteo = examplemeteo,
control = defaultControl("Granier"),
elevation = 100, latitude = 41.82592)
#> $RFC
#> [1] 59.97553 99.00000 99.00000 99.00000
#>
#> $SEW
#> [1] 31.73415
#>
#> $runs
#> [1] 9
#>
#> $message
#> [1] "OK"
#>
# }