r3PG
provides an implementation of the Physiological Processes Predicting Growth (3-PG) model (Landsberg & Waring, 1997), which simulate forest growth and productivity. The r3PG
serves as a flexible and easy-to-use interface for the 3-PGpjs
(Sands, 2010) and the 3-PGmix
(Forrester & Tang, 2016) model written in Fortran
. The package enables fast and easy interaction with the model, and the Fortran
re-implementation facilitates computationally intensive sensitivity analysis and calibration. The user can flexibly switch between various options and submodules, to use the original 3-PGpjs
model version for monospecific, even-aged and evergreen forests and the 3-PGmix
model, which can also simulate multi-cohort stands (e.g. mixtures, uneven-aged) that contain deciduous species.
Below is a basic example, for more extended examples please visit package vignette.
The main function is run_3PG()
which returns all 108 simulated variables for each species at a monthly time-step, either as a 4-dimentional array or a long format data frame.
library(r3PG)
out_3PG <- run_3PG(
site = d_site,
species = d_species,
climate = d_climate,
thinning = d_thinning,
parameters = d_parameters,
size_dist = d_sizeDist,
settings = list(light_model = 2, transp_model = 2, phys_model = 2,
height_model = 1, correct_bias = 0, calculate_d13c = 0),
check_input = TRUE, df_out = TRUE)
head( out_3PG )
To visualize the output:
library(dplyr)
library(ggplot2)
sel_var <- c('biom_stem', 'biom_foliage', 'biom_root')
out_3PG %>%
filter( variable %in% sel_var ) %>%
ggplot( aes(date, value, color = species) ) +
geom_line() +
facet_wrap(~variable, scales = 'free') +
theme_classic()
If you prefer to use data stored in Excell
, you can use the following example. Data to reproduce this example are stored in data-raw/internal_data/data.input.xlsx.
library(readxl)
f_loc <- 'data.input.xlsx'
run_3PG(
site = read_xlsx(f_loc, 'site'),
species = read_xlsx(f_loc, 'species'),
climate = read_xlsx(f_loc, 'climate'),
thinning = read_xlsx(f_loc, 'thinning'),
parameters = read_xlsx(f_loc, 'parameters'),
size_dist = read_xlsx(f_loc, 'sizeDist'),
settings = list(light_model = 2, transp_model = 2, phys_model = 2,
height_model = 1, correct_bias = 0, calculate_d13c = 0),
check_input = TRUE, df_out = TRUE)
r3PG
is available for instalation from CRAN
install.packages("r3PG")
To install the current (development) version from the repository, run the following command:
if(!require(devtools)){install.packages(devtools)}
devtools::install_github(repo = "trotsiuk/r3PG", subdir = "pkg", build_vignettes = T)
The unit test status of the master (development) branch is
We would like to acknowledge that r3PG is not the only 3-PG implementations in R. We are aware of the following other packages:
Maintainer | Source |
---|---|
Daniel M. Griffith | https://github.com/griffithdan/r3PG |
Georgios Xenakis | https://github.com/drGeorgeXenakis/fr3PGD |
Francesco Minunno | https://github.com/checcomi/threePGN-package |
Quinn Thomas | https://github.com/EcoDynForecast/DAPPER |
We explain in a recent publication (Trotsiuk et al, submitted) how this r3PG packages differs and / or improves over these.
Please submit issues, bugs and suggestions in the dedicated page. Contribution and improvements are always welcome!
Volodymyr Trotsiuk; Florian Hartig; David I. Forrester
Forrester, D. I., & Tang, X. (2016). Analysing the spatial and temporal dynamics of species interactions in mixed-species forests and the effects of stand density using the 3-PG model. Ecological Modelling, 319, 233–254. https://doi.org/10.1016/j.ecolmodel.2015.07.010
Landsberg, J. J., & Waring, R. H. (1997). A generalised model of forest productivity using simplified concepts of radiation-use efficiency, carbon balance and partitioning. Forest Ecology and Management, 95(3), 209–228. https://doi.org/10.1016/S0378-1127(97)00026-1
Sands, P. J. (2010). 3PGpjs user manual. Retrieved from https://3pg.sites.olt.ubc.ca/files/2014/04/3PGpjs_UserManual.pdf
Trotsiuk, V., Hartig, F., Cailleret, M., Babst, F., Forrester, D. I., Baltensweiler, A., … Schaub, M. (2020). Assessing the response of forest productivity to climate extremes in Switzerland using model–data fusion. Global Change Biology, 26(4), 2463–2476. https://doi.org/10.1111/gcb.15011