CRootBox
The focus of CRootBox is the simulation of different types of root architecture, and to provide a generic interface for coupling with arbitrary soil/environmental models, e.g., in order to determine the impact of specific root architectures on function.
https://github.com/Plant-Root-Soil-Interactions-Modelling/CPlantBox
Category: Biosphere
Sub Category: Plants and Vegetation
Last synced: about 4 hours ago
JSON representation
Repository metadata
- Host: GitHub
- URL: https://github.com/Plant-Root-Soil-Interactions-Modelling/CPlantBox
- Owner: Plant-Root-Soil-Interactions-Modelling
- License: gpl-3.0
- Created: 2017-06-22T11:19:57.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2025-11-28T15:38:01.000Z (about 1 month ago)
- Last Synced: 2025-11-29T09:31:59.315Z (about 1 month ago)
- Language: Python
- Size: 1.42 GB
- Stars: 61
- Watchers: 8
- Forks: 25
- Open Issues: 5
- Releases: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
README.md
Introduction
CPlantBox is a functional-structural plant model that is built in a modular way that can be used at several levels of complexity. CPlantBox describes the geometry of plants by their individual organs, such as roots, stems, and leaves, which evolve over time. It can model functional aspects such as water and carbon dynamics within the plant, and provides gerneral tools to build plant soil-interaction models. To solve partial differential equations CPlantBox can use the finite volume solver DuMux and offers simplified Python interfaces in the repository dumux-rosi.
Installation
Linux - with Python script
This installation method requires Ubuntu >= 20.04 and Python >= 3.7. For CPlantBox without dumux-rosi, download the Python file "installCPlantBox.py", and run it:
sudo apt-get update
sudo apt-get upgrade
[ ! -d 'cpbenv' ] && python3 -m venv cpbenv && source cpbenv/bin/activate || source cpbenv/bin/activate
wget https://raw.githubusercontent.com/Plant-Root-Soil-Interactions-Modelling/CPlantBox/master/installCPlantBox.py
python3 installCPlantBox.py
For CPlantBox with dumux-rosi, download and run the Python file "installDumuxRosi_Ubuntu.py" (the file is based on the DuMu$^x$ installation file).
sudo apt-get update
sudo apt-get upgrade
[ ! -d 'cpbenv' ] && python3 -m venv cpbenv && source cpbenv/bin/activate || source cpbenv/bin/activate
wget https://raw.githubusercontent.com/Plant-Root-Soil-Interactions-Modelling/CPlantBox/master/installDumuxRosi_Ubuntu.py
python3 installDumuxRosi_Ubuntu.py
The script will install DuMux and CPlantBox, and CPlantBox is setup within the virtual environment 'cpbenv'.
Activate the 'cpbenv' environment when using CPlantBox:
source cpbenv/bin/activate
The scripts might work on other Linux OS but has not been tested.
Linux - with conda environment
This installation method uses conda to setup the building environment for CPlantBox. It'll pull the packages from the conda-forge channel to avoid licensing restrictions from default channels. For more info on conda restrictions, check this article
- Clone the repository:
git clone --depth 1 -b master https://github.com/Plant-Root-Soil-Interactions-Modelling/CPlantBox.git
- Create the conda environment and build CPlantBox:
cd CPlantBox
conda env create -f environment.yml
conda activate cpb
git submodule update --init --recursive
cmake .
make
- Test the installation by running a tutorial example, e.g.:
cd tutorial/examples/
python example1a_small.py
Linux - manual installation
Clone the repository by running
git clone --depth 1 -b master https://github.com/Plant-Root-Soil-Interactions-Modelling/CPlantBox.git
and use CMake to configure and compile the CPlantBox libraries
cmake . && make
To test the installation run a tutorial example, e.g
cd tutorial/examples/python
python3 example1a.py
Dependecies are listed in the requirements.txt file.
Windows
CPlantBox is currently not available on windows. Some pointers to setup a Linux environment on windows are given on the wiki.
Installation on the JSC agrocluster
Please refer to the wiki
Folder sructure
/modelparameter Plant parameter files
/src CPlantBox C++ codes
/test Python tests for all CPlantBox classes
/tutorial learn to use CPlantBox
/experimental Specific applications (in sub-folders). contrary to scripts in /tutorial, might not be kept up to date
Code documentation
Create the documentation by running doxygen in the docs/ folder
doxygen doxy_config
The documentation will be created in this folder. Compile doc/latex/refman.tex to generate the full doxygen documentation in doc/latex/refman.pdf. Additionally, collaboration diagrams give an overview of the code in folder /docs.
Online resources
WebApps
The official CPlantBox webapp helps to demonstrate the impact of various CPlantBox parameters and to analyse and explore the resulting 3D plant geometry.
Another web application was designed to conduct simulations and visualize the dynamics of plant growth. The source code is avialable at github-xiaoranzhou.
Jupyter notebooks
Videos
Simulation videos availabe in Youtube channel.
Owner metadata
- Name: Plant-Root-Soil-Interactions-Modelling
- Login: Plant-Root-Soil-Interactions-Modelling
- Email:
- Kind: organization
- Description:
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/25530913?v=4
- Repositories: 4
- Last ynced at: 2023-02-26T22:15:15.875Z
- Profile URL: https://github.com/Plant-Root-Soil-Interactions-Modelling
GitHub Events
Total
- Create event: 102
- Release event: 2
- Issues event: 5
- Watch event: 12
- Delete event: 70
- Member event: 1
- Issue comment event: 15
- Push event: 474
- Gollum event: 3
- Pull request review event: 1
- Pull request event: 139
- Fork event: 3
Last Year
- Create event: 90
- Issues event: 2
- Release event: 2
- Watch event: 7
- Delete event: 63
- Member event: 1
- Issue comment event: 10
- Push event: 389
- Gollum event: 3
- Pull request review event: 1
- Pull request event: 121
- Fork event: 3
Committers metadata
Last synced: 3 days ago
Total Commits: 1,922
Total Committers: 32
Avg Commits per committer: 60.063
Development Distribution Score (DDS): 0.743
Commits in past year: 466
Committers in past year: 17
Avg Commits per committer in past year: 27.412
Development Distribution Score (DDS) in past year: 0.552
| Name | Commits | |
|---|---|---|
| m-giraud | 7****d | 493 |
| Daniel Leitner | d****r@s****t | 410 |
| xiaoranzhou | z****r@g****m | 338 |
| Daniel Leitner | d****r@f****e | 327 |
| Daniel Leitner | d****r@u****t | 142 |
| Andrea Schnepf | a****f@f****e | 49 |
| magdalena | m****l@f****e | 42 |
| annasheck | a****k@o****m | 33 |
| Andrea Schnepf | a****f@i****e | 12 |
| fmbauer | f****r@f****e | 8 |
| Murilo Vianna | m****a@f****e | 8 |
| deepanshukhare | d****e@l****m | 7 |
| Guillaume Lobet | g****t@g****m | 7 |
| JuanCBaca | 1****a | 6 |
| TobiasSelzner | s****z@u****e | 5 |
| Arnaud Bouvry | a****y@u****e | 4 |
| Dirk Helmrich | d****h@f****e | 4 |
| hpagel | h****l@f****e | 4 |
| Murilo Vianna | m****v@g****m | 3 |
| t-selzner | k****s@g****m | 3 |
| Sibghat Ullah | s****t@g****m | 3 |
| Adrien Heymans | a****s@u****e | 2 |
| marianemacedo | m****o@g****m | 2 |
| VincentVerbeke | 8****e | 2 |
| Mona Giraud | g****1@j****s | 1 |
| Felix Bauer | f****r@i****e | 1 |
| Dirk Helmrich | d****h@a****e | 1 |
| Deepanshu Khare | d****e@f****e | 1 |
| Anna Sophia Heck | a****k@i****e | 1 |
| Dirk Baker | d****2@h****s | 1 |
| and 2 more... | ||
Committer domains:
- fz-juelich.de: 8
- hi.is: 1
- ibg3048.ibg.kfa-juelich.de: 1
- alumni.fh-aachen.de: 1
- ibg3627.ibg.kfa-juelich.de: 1
- jwlogin07.juwels: 1
- uclouvain.be: 1
- uliege.be: 1
- uni-bonn.de: 1
- icg-iv-w2k.kfa-juelich.de: 1
- univie.ac.at: 1
- simwerk.at: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 16
Total pull requests: 258
Average time to close issues: about 1 month
Average time to close pull requests: 3 days
Total issue authors: 13
Total pull request authors: 11
Average comments per issue: 1.56
Average comments per pull request: 0.09
Merged pull request: 197
Bot issues: 0
Bot pull requests: 0
Past year issues: 3
Past year pull requests: 120
Past year average time to close issues: N/A
Past year average time to close pull requests: 1 day
Past year issue authors: 3
Past year pull request authors: 9
Past year average comments per issue: 1.0
Past year average comments per pull request: 0.05
Past year merged pull request: 97
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- ArnaudBvr (2)
- rarygit (2)
- noemiversluijs (2)
- mayssaharfouch (1)
- andrewfullard (1)
- capsulecorplab (1)
- Jane-cau (1)
- Chiaki59 (1)
- m-ingenbleek (1)
- dhelmrich (1)
- georgiansarghi (1)
- nana784365 (1)
- Murilodsv (1)
Top Pull Request Authors
- m-giraud (199)
- DanielLeitner (17)
- MagdaLa (13)
- JuanCBaca (9)
- annasheck (8)
- Murilodsv (4)
- t-selzner (3)
- dhelmrich (2)
- m-weigand (1)
- HolgerPagel (1)
- ArnaudBvr (1)
Top Issue Labels
- bug (1)
- help wanted (1)
Top Pull Request Labels
Dependencies
- ipython ==8.18.1
- matplotlib ==3.8.2
- matplotlib-inline ==0.1.6
- mpi4py ==3.1.5
- numpy ==1.26.2
- pandas ==2.1.4
- pybind11 ==2.11.1
- pybind11-global ==2.11.1
- scipy ==1.11.4
- vtk ==9.3.0
- actions/checkout v4 composite
- cmake 3.28.3
- gcc
- git
- mpi4py
- pip
- pkg-config
- python 3.11.*
- wget
Score: 7.655390644826152