GCBM implementation in Belize, initially with a focus on DOM modelling. This project is based on the Standalone Template for the GCBM, downloaded from https://carbon.nfis.org/cbm
Disclaimer : The calculations performed in this repository are not official and do not represent the Government of Belize in any way.
Table of Contents
- Technology Stack
- Installation and usage instructions on Windows
- Custom configuration for Belize
- Docker-based setup
- Postprocessing and sensitivity analysis
- Contributing
- FAQ and Other Questions
- Maintainers Reviewers Ambassadors Coaches
- License
-
Clone the repository
-
Download the installation tools from releases: install_tools, and unzip them into
Standalone_GCBM\tools
folder. -
Follow the installation instructions, located in
Standalone_GCBM\README.md
-
Modify the
Standalone_GCBM\run_all.bat
file to activate or deactivate the custom parameter modifications (explained below), as default, all custom configurations are enabled -
Execute
run_all.bat
This codebase was tested using a Windows 10 system, the Standalone_GCBM\README.md
file contains further explanation on the GCBM usage, and tutorials on the model can be found in the moja.global Youtube Channel
This implementation of the GCBM includes several parameter changes, that were included to adapt the model to Belize´s local conditions
The Standalone_GCBM\run_all.bat
file includes all the steps that were taken to adapt the model:
-
A custom Generic Tropical species in created
input_database\add_species_vol_to_bio.py
using a linear volume to biomass conversion factor and proportions of stem, bark, foliage and branches extracted from local literature. -
A custom set of root parameters (to convert from AGB to BGB) is applied
input_database\modify_root_parameters.py
-
A set of decay parameters that was compiled from the scientific literature
input_database\custom_parameters\decay parameters.py
and is used to mofify the default onesinput_database\modify_decay_parameters.py
-
A sensitive turnover parameter (tree mortality) was modified
input_database\modify_turnover_parameters.py
-
The disturbance regime of the spinup procedure was changed to "Generic mortality 40%" every 10 years to reflect the effect of Hurricanes in Belize
input_database\modify_spinup_parameters.py
Steps 3, 4 and 5 can be enabled/disabled in the run_all.bat file to perform a sensitivity analysis on the DOM pools
-
Clone the
gcbm-container
branch of GCBM.Belize using the commandgit clone -b gcbm-container https://github.com/moja-global/gcbm.belize
-
Navigate into
GCBM.Belize
cd gcbm.belize
-
Use docker-compose to build the image
docker-compose up -d
-
Run the container using the command
docker exec -it gcbm-belize /bin/bash
-
Inside the running docker container, run
cd /server/gcbm_project
-
Start the simulation using
/opt/gcbm/moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json
If there are existing images cached on your machine you may need to docker pull ghcr.io/moja-global/rest_api_gcbm:master
and build the container using docker-compose -d --force-recreate
Postprocessing codes using R are included in the Postprocessing folder for reference purposes.
If you are going to use this coded, we recommend to use Rstudio and open the Postprocessing\GCBM_Belize_Sensitivity.Rproj
file, the renv package was used for library management, and a renv.lock file with the required packages is included
In order to perform sensitivity analysis, the Standalone_GCBM folder can be duplicated with another name (e.g. Standalone_GCBM_decaymod) and the run_all.bat can me modified and run. Then, the Postprocessing\Summarize_DOM_Stocks.R
code has to be modified to generate graphs and tables with this new configuration (instructions in the code)
moja global welcomes a wide range of contributions as explained in Contributing document and in the About moja-global Wiki.
This project follows the all-contributors specification. Contributions of any kind welcome!
Before you create a Pull Request, please check whether your commits comply with the commit conventions used in this repository.
When you create a commit we kindly ask you to follow the convention
category(scope or module): message
in your commit message while using one of
the following categories:
feat / feature
: all changes that introduce completely new code or new featuresfix
: changes that fix a bug (ideally you will additionally reference an issue if present)refactor
: any code related change that is not a fix nor a featuredocs
: changing existing or creating new documentation (i.e. README, docs for usage of a lib or cli usage)build
: all changes regarding the build of the software, changes to dependencies or the addition of new dependenciestest
: all changes regarding tests (adding new tests or changing existing ones)ci
: all changes regarding the configuration of continuous integration (i.e. github actions, ci system)chore
: all changes to the repository that do not fit into any of the above categories
If you are interested in the detailed specification you can visit https://www.conventionalcommits.org/
We follow the convention [type/scope]
. For example fix/lint-error
or docs/component-api
. type
can be either docs
, fix
, feat
, build
, or any other conventional commit type. scope
is just a short id that describes the scope of work.
For the developer environment setup, project structure, best practices etc. you can go through the Development Notes here..
Find more comprehensive details about Moja Global Contributing Guidelines here..
- You can find FAQs on the Wiki.
- If you have a question about the code, submit user feedback in the relevant repository
- If you have a general question about a project or repository or moja global, join moja global and
- submit a discussion to the project, repository or moja global team
- submit a message to the relevant channel on moja global's Slack workspace.
- If you have other questions, please write to [email protected]
The following people are Maintainers Reviewers Ambassadors or Coaches
moja global |
Maintainers review and accept proposed changes
Reviewers check proposed changes before they go to the Maintainers
Ambassadors are available to provide training related to this repository
Coaches are available to provide information to new contributors to this repository
This project is released under the Mozilla Public License Version 2.0.