Skip to contents

This routine loads the reference model version to then execute a reference model (rsofun v4.2) run on the sites as used in the Stocker et al. 2018 New Phytologist paper. The output of the analysis serves as a soft (visual benchmark for model performance). This data will be updated whenever a new tag is released in the rsofun github repo (or when manually triggered from the github interface).

Model run

# use a fixed model parameter set
# assuming the same underlying mechanics
# we'll not update these in new runs
params_modl <- list(
    kphio           = 0.09423773,
    soilm_par_a     = 0.33349283,
    soilm_par_b     = 1.45602286,
    
    # Note, latter parameters were not calibrated
    tau_acclim_tempstress = 10, 
    par_shape_tempstress  = 0.0 
  )

# run the model
output <- rsofun::runread_pmodel_f(
  drivers,
  par = params_modl
  )

Run evaluation

This runs the eval_sofun() routine included in the sofunCalVal package, and outputs daily, monthly and annual summary statistics comparing observed with simulated values. We’ll retake this same routine when running on the latest release (i.e. the workflow is equivalent but for the release of the rsofun package)

Results

Level rsq rmse slope bias nvals
daily_pooled 0.7076397 2.155868 0.9397498 0.0059919 150494
xdaily_pooled 0.7667889 1.879513 1.0271663 0.0100348 20917
annual_pooled 0.5197694 349.393069 0.9093031 -5.8664208 400
monthly_pooled 0.7920873 1.677057 1.0468155 -0.0916048 4867
spatial 0.6645788 367.338542 1.0530805 -59.6736687 56
anomalies_annual 0.0622499 170.102731 0.3788015 -2.6814457 400
meandoy 0.8118084 1.606880 1.0610294 -0.0669183 20627
anomalies_daily 0.3097986 1.558954 0.4641699 -0.0383123 150380
meanxoy 0.8316770 1.510700 1.0789618 -0.0990522 2622
anomalies_xdaily 0.1723231 1.194098 0.4330005 -0.0044250 20917

Daily and annual scatterplots

Mean seasonal cycle

Drought response

Consistency with rpmodel

Since rsofun takes time series forcing, overwrite forcing with constant values corresponding to the arguments provided to rpmodel::rpmodel().

Setup ORG

## [1] "Are values equivalent for:"
## [1] "- ci:ca: Mean relative difference: 0.0008674093"
## [1] "- GPP: Mean relative difference: 0.3443244"
## [1] "- Vcmax: Mean relative difference: 0.3416065"
## [1] "- Vcmax25: Mean relative difference: 0.3416047"
## [1] "- Jmax: Mean relative difference: 0.3442008"
## [1] "- Jmax25: Mean relative difference: 0.3441996"

Setup BRC

## [1] "Are values equivalent for:"
## [1] "- ci:ca: Mean relative difference: 0.0008674093"
## [1] "- GPP: Mean relative difference: 0.0004946114"
## [1] "- Vcmax: Mean relative difference: 0.003648526"
## [1] "- Vcmax25: Mean relative difference: 0.003651283"
## [1] "- Jmax: Mean relative difference: 0.1193008"
## [1] "- Jmax25: Mean relative difference: 0.1193027"

Appendix

## R version 4.2.1 (2022-06-23)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.4 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0
## 
## locale:
##  [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8       
##  [4] LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8    LC_MESSAGES=C.UTF-8   
##  [7] LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C          
## [10] LC_TELEPHONE=C         LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C   
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] rpmodel_1.2.0      RColorBrewer_1.1-3 LSD_4.0-0          rsofun_4.2        
##  [5] knitr_1.39         lubridate_1.8.0    ggplot2_3.3.6      readr_2.1.2       
##  [9] tidyr_1.2.0        dplyr_1.0.9       
## 
## loaded via a namespace (and not attached):
##  [1] nlme_3.1-158         fs_1.5.2             usethis_2.1.6       
##  [4] bit64_4.0.5          devtools_2.4.4       rprojroot_2.0.3     
##  [7] tools_4.2.1          profvis_0.3.7        bslib_0.4.0         
## [10] utf8_1.2.2           R6_2.5.1             mgcv_1.8-40         
## [13] colorspace_2.0-3     yardstick_1.0.0      urlchecker_1.0.1    
## [16] withr_2.5.0          tidyselect_1.1.2     prettyunits_1.1.1   
## [19] processx_3.7.0       Brobdingnag_1.2-7    bit_4.0.4           
## [22] curl_4.3.2           compiler_4.2.1       textshaping_0.3.6   
## [25] cli_3.3.0            desc_1.4.1           GenSA_1.1.7         
## [28] labeling_0.4.2       sass_0.4.2           scales_1.2.0        
## [31] mvtnorm_1.1-3        callr_3.7.1          pkgdown_2.0.6       
## [34] systemfonts_1.0.4    stringr_1.4.0        digest_0.6.29       
## [37] minqa_1.2.4          rmarkdown_2.14       DHARMa_0.4.5        
## [40] pkgconfig_2.0.3      htmltools_0.5.3      lme4_1.1-30         
## [43] sessioninfo_1.2.2    highr_0.9            fastmap_1.1.0       
## [46] htmlwidgets_1.5.4    rlang_1.0.4          shiny_1.7.2         
## [49] farver_2.1.1         jquerylib_0.1.4      generics_0.1.3      
## [52] jsonlite_1.8.0       vroom_1.5.7          magrittr_2.0.3      
## [55] Matrix_1.4-1         Rcpp_1.0.9           munsell_0.5.0       
## [58] fansi_1.0.3          lifecycle_1.0.1      stringi_1.7.8       
## [61] BayesianTools_0.1.7  yaml_2.3.5           MASS_7.3-58         
## [64] pkgbuild_1.3.1       grid_4.2.1           parallel_4.2.1      
## [67] promises_1.2.0.1     crayon_1.5.1         miniUI_0.1.1.1      
## [70] lattice_0.20-45      splines_4.2.1        hms_1.1.1           
## [73] ps_1.7.1             pillar_1.8.0         boot_1.3-28         
## [76] pkgload_1.3.0        glue_1.6.2           evaluate_0.15       
## [79] remotes_2.4.2        vctrs_0.4.1          nloptr_2.0.3        
## [82] tzdb_0.3.0           httpuv_1.6.5         gtable_0.3.0        
## [85] purrr_0.3.4          cachem_1.0.6         xfun_0.31           
## [88] mime_0.12            xtable_1.8-4         coda_0.19-4         
## [91] later_1.3.0          ragg_1.2.2           tibble_3.1.8        
## [94] memoise_2.0.1        ellipsis_0.3.2       bridgesampling_1.1-2