HydroShoot
Purpose
HydrShoot is a functional-structural plant model that simulates the interactions between shootโs hydraulic structure, gas-exchange and energy-budget, at the organ level.
HydroShoot may be useful for example if you would like to explore:
- how leaf net carbon assimilation rate (๐ด๐), transpiration rate (๐ธ), temperature (๐) and bulk water potential (ฮจ๐๐๐๐) interact across the canopy
- how soil water status impacts ๐ด๐, ๐ธ, ๐, and ฮจ๐๐๐๐
- how the structure of the shoot impacts ๐ด๐, ๐ธ, ๐, and ฮจ๐๐๐๐
- how soil water potential (ฮจ๐ ๐๐๐) propagates across plantโs shoot
Try it !
HydroShoot can be installed automagically using the openalea3 channel from anaconda:
conda create -n hydroshoot -c openalea3 -c conda-forge openalea.hydroshoot
conda activate hydroshoot
Hydroshoot
also provides pre-built workflow that can be imported into Visualea
for visual programming.
Example
Letโs take the simple example provided in โ~/example/potted_grapevine/โ. We will use for this example architecture and display modules provided with HydroShoot package. This example runs HydroShoot on a small potted grapevine canopy having two primary shoots.
Letโs build the mock-up using the digitalization data provided in โgrapevine_pot.csvโ file:
from os import getcwd
from openalea.mtg import traversal
from openalea.plantgl.all import Scene
from hydroshoot import architecture, display, model
# Path for plant digitalization data.
g = architecture.vine_mtg('grapevine_pot.csv')
# Local Coordinates Correction
for v in traversal.iter_mtg2(g, g.root):
n = g.node(g.Trunk(v, Scale=1)[0])
theta = 180 if int(n.index()) < 200 else -90 if int(n.index()) < 300 else 0
architecture.vine_orientation(g, v, theta, local_rotation=True)
# Scene rotation
for v in traversal.iter_mtg2(g, g.root):
architecture.vine_orientation(g, v, 90., local_rotation=False)
for v in traversal.iter_mtg2(g, g.root):
architecture.vine_phyto_modular(g, v)
architecture.vine_mtg_properties(g, v)
architecture.vine_mtg_geometry(g, v)
architecture.vine_transform(g, v)
# Display the scene
scene = display.visu(g, def_elmnt_color_dict=True, scene=Scene(),
view_result=True)
# Run the model
model.run(g, str(getcwd()) + '/', scene, psi_soil=-0.5,
gdd_since_budbreak=1000.)
LICENSE
This package is distributed under the CeCILL-C license. A full description of the license can be found here .
Links
- Link to github
- Link to the official documentation
Reference
- R Albasha, C Fournier, C Pradal, M Chelle, J A Prieto, G Louarn, T Simonneau, E Lebon, HydroShoot: a functional-structural plant model for simulating hydraulic structure, gas and energy exchange dynamics of complex plant canopies under water deficitโapplication to grapevine (Vitis vinifera), in silico Plants, Volume 1, Issue 1, 2019, diz007, https://doi.org/10.1093/insilicoplants/diz007