Erzsi86 / RBBGCMuso

RBBGCMuso is a software package that supports the application of the Biome-BGCMuSo biogeochemical model.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fork me on GitHub

The RBBGCMuso Package

Current version: 0.6.3.0

RBBGCMuso is an R package which supports the easy but powerful application of the 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 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: package build and install) OR b) Install the devtools package first:

install.packages("devtools")

Then copy the following line into the R session and execute it:

devtools::install_github("hollorol/RBBGCMuso/RBBGCMuso")

In Debian (version 8+) you can automate the whole installation process with curl via copying the following line into the Linux terminal:

bash <(curl -s https://raw.githubusercontent.com/hollorol/RBBGCMuso/Documentation/debianInstaller.sh)

Installation in MS Windows

You can also install the latest RBBGCMuso by copying the following line into the R console (using R or RStudio):

source("https://raw.githubusercontent.com/hollorol/RBBGCMuso/master/installWin.R")

Quick usage

Preparation

To start using RBBGCMuso you have to load the package in R with the following command:

library(RBBGCMuso)

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 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:

copyMusoExampleTo()

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 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 executable for Windows (version might change in the future)
  • muso - this is the model executable for Linux
  • cygwin1.dll - a so-called DLL file that supports the model execution under Windows
  • 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)
  • grass_normal.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 parameter sweep and sensitivity analysis (see below)
  • hhs_1961-2014.mtc43 - meteorology input file; in this example this file is used for spinup simulation
  • hhs_2013-2016.mtc43 - meteorology input file for the normal simulation
  • CO2_from1961.txt - CO2 file for the transient 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 considerations, 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:

setwd("c:/model")

(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:

runMuso(skipSpinup = FALSE)

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, repsectively (this can be changed with the parameters of runMuso). It means that the 3rd ini file is not used in this case (grass_normal.ini). 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 as a variable 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 26th 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’:

results<-runMuso()

Now we extract the 26th variable from the complete output set and call this R variable as gpp:

gpp<-results[,26]

Now we are ready to visualize the results, first for all 4 years:

plot(gpp*1000)

Note that the 1000 multiplier is needed to get GPP in gC/m2/day units. The result should look like this image:

GPP plot

Now get the 4th year from the dataset and plot it:

gpp4<-gpp[(3*365+1):(4*365)]
plot(gpp4*1000,type="l")

Advanced visualization of the results is possible with plotMuso.

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. Execute the following command in R/RStudio:

musoQuickEffect(calibrationPar = 25, startVal = 0, endVal = 9, nSteps = 5, outVar = 3009)

This command selects the 25th line in the ecophysiological constants (EPC) file (this is base temperature), then it starts to replace the original value from 0 to 9 in 5 consecutive steps. In this example GPP is selected (variable number 3009, which is the 26th variable), so the effect of varying base temperature on GPP is calculated using 5 simulations. The result is a spectacular plot where color coding is used distinguish the parameter values. At present musoQuickEffect is not usable for the allocation parameters due to restrictions of the allocation fractions.

Study the effect of ecophysiological parameters using paramSweep

The paramSweep function is the extension of the musoQuickEffect. It can test the effect of the multiple selected parameters on the model results in once. The result of the paramSweep function is a single HTML file with embedded images. paramSweep needs a csv file called parameters.csv which defines the parameters of interest and the corresponding parameter intervals. In case of the hhs sample dataset there is an example parameters/csv file (please open it and check). The structure of the parameters.csv file is simple. First, parameter name is needed (it can be anything but should refer to the parameter), then the line number of the EPC file is provided, then the possible minimum and maximum value of the parameter is given. Note that there is a tricky part in the parameters.csv as the parameter selection is not straightforward in case of multiple columns (see the end of the EPC file). The logic is that fractinal part of a number is used to select the appropriate parameter from multiple columns. In the provided example “emergence,170.61,0,1000” means that in the 170th line of the EPC file there are 7 columns (numbering starts from 0, so it is 6), and we would like to adjust the 2nd column (marked by 1), which ends up with 170.61. 0,1000 means that sweep starts at 0 and ends with 1000. Invoke the paramSweep with simply issuing this command:

paramSweep()

IMPORTANT NOTE: After the execution of this command a pop-up window will be opened to select the appropriate parameters.csv file. Due to some R related issues at present the dialog window might appear BEHIND THE MAIN R/Rstudio WINDOW, so it might be hidden from the user. Please check the Windows taskbar and find the dialog window, then select the parameters.csv. In advanced mode there is possibility to select the parameters.csv file using the parameters of paramSweep.

Sensitivity analysis

Advanced sensitivity analysis is possible with the musoSensi function of RBBGCMuso. See this link to read the manual of the sensitivity analysis. Note that parameters.csv is provided in the hhs example dataset, so you don’t have to create it manually.

*IMPORTANT NOTE: If the result file contains only NAs it means that none of the parameters affected the output variable of interest. In this case you need to adjust the output parameter selection or the EPC parameter list. A simple example for this is soil temperature which is not affected by some of the plant parameters. See this link for further 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).

About

RBBGCMuso is a software package that supports the application of the Biome-BGCMuSo biogeochemical model.

License:GNU General Public License v2.0


Languages

Language:R 63.7%Language:C 30.5%Language:C++ 5.4%Language:Shell 0.5%