This is a basic example that showcases the potential use of rCTOOL. This is illustrated with samples from the Askov long-term trials in Denmark.
library(rCTOOL) library(tidyverse) library(ggplot2) library(dplyr) library(lubridate) # load data ---- data('basic_example') data('scenario_temperature') scenario_temperature <- set_monthly_temperature_data_historical_amplitude( file = scenario_temperature )
The basic_example dataset contains annual carbon inputs and monthly allocation settings, while scenario_temperature contains the monthly temperature input used in the simulation.
head(basic_example, 2)
head(scenario_temperature, 2)
The simulation requires time, carbon input, management, soil and temperature configuration.
# define timeperiod period <- define_timeperiod(yr_start = 1951, yr_end = 2019) # get annual Carbon inputs cin <- define_Cinputs(management_filepath = basic_example) # get management management <- management_config(management_filepath = basic_example, f_man_humification = 0.192) # get soil configuration soil = soil_config(Csoil_init = 105, f_hum_top = 0.533, f_rom_top = 0.405, f_hum_sub = 0.387, f_rom_sub = 0.610, Cproptop = 0.55, clay_top = 0.11, clay_sub = 0.20, f_co2 = 0.628, f_romi = 0.012, k_fom = 0.12, k_hum = 0.0028, k_rom = 3.85e-5, ftr = 0.0025, temp_th_diff = 0.35e-6)
Before the simulation starts, the initial soil carbon stock must be distributed among the FOM, HUM and ROM pools in topsoil and subsoil. This initialization depends on the soil C:N ratio and on the pool distribution parameters defined in soil_config.
# initialize soil pools soil_pools <- initialize_soil_pools( cn = 12, soil_config = soil)
The monthly simulation can now be run using the previously defined time, input, management, soil and temperature configurations. The optional verbose argument can be used for additional diagnostic output.
# run rCTOOL output <- run_ctool(time_config = period, cin_config = cin, m_config = management, t_config = scenario_temperature, s_config = soil, soil_pools = soil_pools, verbose = FALSE)
We can now visualize the simulated topsoil organic carbon stock over time.
plot_df <- output |> dplyr::mutate( time = lubridate::make_date(year = yrs, month = mon) ) ggplot(plot_df, aes(x = time, y = C_topsoil)) + geom_line( colour = "black", linewidth = 0.35 ) + geom_smooth( method = "loess", se = FALSE, span = 0.20, colour = "#2C7FB8", linewidth = 1.3 ) + labs( x = "Time (years)", y = expression("Topsoil organic carbon (Mg C " * ha^{-1} * ")") ) + scale_x_date( date_breaks = "20 years", date_labels = "%Y", expand = expansion(mult = c(0.01, 0.01)) ) + scale_y_continuous( expand = expansion(mult = c(0.02, 0.02)) ) + theme_classic(base_size = 14) + theme( axis.title = element_text(face = "bold", size = 14), axis.text = element_text(colour = "black", size = 12), axis.line = element_line(colour = "black", linewidth = 0.4), axis.ticks = element_line(colour = "black", linewidth = 0.4) )
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.