#+BEGIN_HTML
#+END_HTML
* The RBBGCMuso Package
#+AUTHOR: Roland HOLLÓS, Dóra HIDY, Zoltán BARCZA
RBBGCMuso is an R package which supports the easy but powerful application of the [[http://agromo.agrar.mta.hu/bbgc/][Biome-BGCMuSo]] biogeochemical model in R environment. It also provides some additional tools for the model such as Biome-BGCMuSo optimized Monte-Carlo simulation and global sensitivity analysis. If you would like to use the framework, please read the following description.
** Installation
You can install the RBBGCMuso package in several ways depending on the operating system you use. Up to now RBBGCMuso was tested only in Linux and MS Windows environment, so Mac OS X compatibility cannot be guaranteed yet. In MS Windows you can install the package from binary or from source installer. In Linux you can only install the software from source.
*** Installation in Linux and MS Windows from Source (proposed method)
*Note that in MS Windows first you have to install the [[https://cran.r-project.org/bin/windows/Rtools/][Rtools]] Windows software.*
If you would like to install the RBBGCMuso package from Source, you have two options.
a) Clone this repository, then build and run the package (further information is available here: [[http://kbroman.org/pkg_primer/pages/build.html][package build and install]])
OR
b) Install the devtools package first:
#+BEGIN_SRC R :eval no
install.packages("devtools")
#+END_SRC
Then copy the following line into the R session and execute it:
#+BEGIN_SRC R :eval no
devtools::install_github("hollorol/RBBGCMuso/RBBGCMuso")
#+END_SRC
In Debian (version 8+) you can automate the whole installation process with curl via copying the following line into the Linux terminal:
#+BEGIN_SRC bash :eval no
bash <(curl -s https://raw.githubusercontent.com/hollorol/RBBGCMuso/Documentation/debianInstaller.sh)
#+END_SRC
*** Installation in MS Windows
You can also install the latest RBBGCMuso by copying the following line into the R console (using R or RStudio):
#+BEGIN_SRC R :eval no
source("https://raw.githubusercontent.com/hollorol/RBBGCMuso/master/installWin.R")
#+END_SRC
** Quick usage
*** Preparation
To start using RBBGCMuso you have to load the package in R with the following command:
#+BEGIN_SRC R :eval no
library(RBBGCMuso)
#+END_SRC
In order to use the RBBGCMuso framework, you have to set up the environment, as you would normally do if you use the model without the RBBGCMuso framework. It means that according to the Biome-BGCMuSo terminology you have to have the proper INI file set, the meteorology input file, and the ecophysiological constants file (EPC) as minimum input. Additional files might be included by the user including nitrogen deposition, management handlers, etc. Please read the corresponding documentation in the [[http://agromo.agrar.mta.hu/bbgc/files/Manual_BBGC_MuSo_v5.pdf][actual Biome-BGCMuSo User's Guide]].
If you do not yet have a complete, operational model input dataset, you may want to use the so-called copyMusoExampleTo function (part of RBBGCMuso) which downloads a complete sample simulation set to your hard drive:
#+BEGIN_SRC R :eval no
copyMusoExampleTo()
#+END_SRC
Once this command is executed in R it will invoke a small Graphical User Interface (GUI) where you can select the target site for the sample simulation. At present only "hhs" site is available, which is the abbreviation of the Hegyhátsál eddy covariance station in Hungary. After selecting the site (hhs in this example) the GUI will ask the user to specify a directory (=folder) where the dataset will be stored. In this example we suppose that the user works under MS Windows, and he/she created a directory called C:\model as target directory. It means that after selection of the site the user will select the C:\model directory.
Once the copyMusoExampleTo command is finished, the model input dataset and the model executable (called muso.exe and cygwin1.dll) are available in the C:\model folder. The user might check the content of the files using his/her favourite text editor (we propose Editpad Lite as it can handle both Windows and Linux text files). Note that file extension might be hidden by Windows which could cause problems, so we propose to adjust Windows so that file extensions are visible. Visit [[https://www.thewindowsclub.com/show-file-extensions-in-windows][this website]] to learn how to show file extensions in Windows.
In this example the C:\model directory will contain the following files:
- muso.exe - this is the Biome-BGCMuSo 5.0 model (version might change in the future)
- cygwin1.dll - a so-called DLL file that supports the model execution
- c3grass.epc - ecophysiological constants input file for the model (C3 grass in this case)
- maize.epc - another ecophysiological constants input file (C4 maize in this case)
- n.ini - initialization file for the model, normal mode (INI file controls the entire simulation)
- normal_gyep.ini - another initialization file for the model, for the C3 grass simulation
- s.ini - initialization file for the model spinup (also known as self-initialization or equilibrium run)
- parameters.csv - a simple text file to support sensitivity analysis and parameter sweel (see below)
- hhs_1961-2014.mtc43 - meteorology input file; this file is used for spinup simulation
- hhs_2013-2016.mtc43 - meteorology input file for the normal simulation
- CO2_from1961.txt - CO_{2} file for the normal simulation
In the followings we will demonstrate the usability of RBBGCMuso with the hhs example dataset. If you have your own model input data set, you might need to change the commands accordingly.
----------
*Important note on file naming convention*
We propose to use the following filename convention for the INI files. For practical reasons, name your spinup INI file as something_s.ini, and the normal INI file as something_n.ini where something is arbitrary (note the s and n convention). It is not obligatory, but if you do not follow this convention then you have to generate the settings variable
manually with the setupMuso command. However, if you do follow this convention, then RBBGCMuSo will automatically recognize your spinup and normal INI file name and content, so the work will be much easier. (See help of setupMuso command in R.)
In our example s.ini and n.ini follows this convention, so by default RBBGCMuso will use these files for spinup and normal run, repsectively.
----------
*** Running the model
Now as we have a complete set of input data, we are ready to run the model. You can run the model in spinup model, in normal mode, or in both phases (including the so-called transient run; see the Biome-BGCMuSo User's Guide). Using the runMuso functcion (that is part of RBBGCMuso) you will be able to execute the the model in both spinup or normal phase, and you can also simplify the execution of both phases consecutively. Note that runMuso is the same as the obsolete calibMuso function.
In order to execute the simulation, first you have to set the working directory in R so that RBBGCMuso will find the model and the input files. In our example this is as follows:
#+BEGIN_SRC R :eval no
setwd("c:/model")
#+END_SRC
(Note the "/" symbol which is different from the "\\" that is typically used in Windows!)
In order to run the model as it is provided simply use the following command in R or RStudio:
#+BEGIN_SRC R :eval no
runMuso(skipSpinup = FALSE)
#+END_SRC
Note that by default runMuso skips the spinup simulation (in order to speed up the model execution), but in our case we do not yet have the result of the spinup run (the so-called endpoint file), so spinup simulation is obligatory. This is performed with the skipSpinup=FALSE parameter. Note that according to the naming convention described above the model will use s.ini and n.ini for spinup and normal phase, repsectivelt. It means that the 3rd ini file is not used in this case. As n.ini represents a maize simulation, the results will provide simulation data on C4 maize monoculture with predefined management defined by the n.ini file.
If the simulation is successful, the results can be found in the C:\model directory. In our example two files were created with .log extension that contain some information about the spinup and the normal phase. The hhs.endpoint file is the result of the spinup (and optional transient) run, and can be considered as initial conditions for the normal run. (Here we have to note that now runMuso can be called without the skipSpinup parameter which means that the simulation will be restricted to the normal phase only.) The results of the simulation (carbon fluxes, state variables, whatever was set by the user in the DAILY_OUTPUT block of the normal INI file) are available in the file hegyhatsal.dayout. Note that annual output was not requested in this case. Also note that in the hhs example file set binary daily output is created and further processed by RBBGCMuso. One of the most attractive features of RBBGCMuso is that the model output is handled by the package which means that it will be directly available for the user for further processing in R.
*** Visualization of the model output
Once the simulation is completed (hopefully without errors), we can visualize the results. Biome-BGCMuSo provides large flexibility on model output selection, which means that the results will depend on the settings of the user in the normal INI file (DAILY_OUTPUT block). In our hhs example 39 variables are calculated in daily resolution. As the model is run for 4 years by the normal INI file, each output variable will be available for 4x365 days (note the handling of leap years in the Biome-BGCMuSo User's Guide).
Assume that we would like to visualize Gross Primary Production (GPP) for one simulation year (this is the 27th variable in the n.ini file). This can be achieved by the following commands. First we re-run the normal phase and redirect the output to the R variable called 'results':
#+BEGIN_SRC R :eval no
results<-runMuso()
#+END_SRC
Now we extract the 27th variable from the complete output set and call this R variable as gpp:
#+BEGIN_SRC R :eval no
gpp<-results[,27]
#+END_SRC
Now we are ready to visualize the results, first for all 4 years:
#+BEGIN_SRC R :eval no
plot(gpp*1000)
#+END_SRC
Note that the 1000 multiplier is needed to get GPP in gC/m^{2}/day units.
Now get the 4th year from the dataset and plot it:
#+BEGIN_SRC R :eval no
gpp4<-gpp[(3*365+1):(4*365)]
plot(gpp4*1000,type="l")
#+END_SRC
*** Perform Quick experiments
Assume that we would like to dig a bit deeper with the model and understand the effect of changing ecophysiological variables on the model results. This can easily be performed with RBBGCMuso.
*** Study the effect of ecophysiological parameters using parameterSweep
This is the so-called parameterSweep function.
*** Sensitivity analysis
[[http://agromo.agrar.mta.hu/files/musoSensi_usage_v6_FINAL.pdf][See this link for details]]
*** Contact
E-mail: hollorol@gmail.com
** Acknowledgements
The research was funded by the Széchenyi 2020 programme, the European Regional Development Fund and the Hungarian Government (GINOP-2.3.2-15-2016-00028).