Reference guide#

This manual details, for each module of openalea.cnwgrass.morphogenesis, the functions and objects included in openalea.cnwgrass.morphogenesis, describing what they are and what they do.

openalea.cnwgrass.morphogenesis package#

morphogenesis#

The model Morphogenesis.

Mechanistic model of leaf elongation. See:

  • morphogenesis.simulation for the front-end of the model,

  • morphogenesis.model for the equations of the model,

  • morphogenesis.parameters for the parameters of the model.

openalea.cnwgrass.morphogenesis.model module#

class openalea.cnwgrass.morphogenesis.model.MorphogenesisModel[source]#

Bases: object

Beta_function(leaf_pseudo_age, leaf_rank)[source]#

Normalized leaf length from the emergence of the previous leaf to the end of elongation (automate function depending on leaf pseudo age).

Parameters:
  • leaf_pseudo_age (float) – Pseudo age of the leaf since beginning of automate elongation (s)

  • leaf_rank (int) – rank of the leaf

Returns:

Normalized leaf length (m)

Return type:

float

Beta_function_internode(internode_pseudo_age)[source]#

Normalized internode length from the emergence of the previous leaf to the end of elongation (automate function depending on internode pseudo age).

Parameters:

internode_pseudo_age (float) – Pseudo age of the leaf since beginning of automate elongation (s)

Returns:

normalized internode_L (m)

Return type:

float

calculate_LSIW(LSSW, phytomer_rank, optimal_growth_option=False)[source]#

Lineic Structural Internode Weight.

Parameters:
  • LSSW (float) – Lineic Structural Sheath Weight (g m-1).

  • phytomer_rank (int) – phytomer rank

  • optimal_growth_option (bool) – if True the function will calculate LSIW assuming optimal growth conditions

Returns:

Lineic Structural Internode Weight (g m-1)

Return type:

float

calculate_LSSW(leaf_rank, integral_conc_sucr, optimal_growth_option=False)[source]#

Lineic Structural Sheath Weight.

Parameters:
  • leaf_rank (int) – leaf phytomer number

  • integral_conc_sucr (float) – mean sucrose concentration of the hiddenzone since leaf n-2 emergence (µmol C g-1)

  • optimal_growth_option (bool) – if True the function will calculate LSLW assuming optimal growth conditions

Returns:

Lineic Structural Sheath Weight (g m-1)

Return type:

float

calculate_SAM_GA(status, teq_since_primordium)[source]#

Synthesis of GA by the SAM according to its stage

Parameters:
  • status (str) – SAM status (‘vegetative’, if emitting leaf primordia or ‘reproductive’)

  • teq_since_primordium (float) – Time since last primordium initiation (in time equivalent to a reference temperature) (s)

Returns:

whether GA production or not

Return type:

bool

calculate_SAM_primodia(status, teq_since_primordium, delta_teq, nb_leaves, cohort_id)[source]#

Update SAM status, leaf number

Parameters:
  • status (str) – SAM status (‘vegetative’, if emitting leaf primordia or ‘reproductive’)

  • teq_since_primordium (float) – Time since last primordium initiation (in time equivalent to a reference temperature) (s)

  • delta_teq (float) – time increment (in time equivalent to a reference temperature) (s)

  • nb_leaves (int) – Number of leaves already emitted by the SAM.

  • cohort_id (int) – Corresponding leaf on the Main Stem for the first leaf of a tiller

Returns:

Number of leaf to be initiated (should be 0 or 1), updated leaf number on the SAM, status, time since last primordium initiation (in time equivalent to a reference temperature, s)

Return type:

(int, int, str, float)

calculate_SL_ratio(leaf_rank)[source]#

Sheath:Lamina final length ratio according to the rank. Parameters from Dornbush (2011).

Parameters:

leaf_rank (int) – leaf phytomer number

Returns:

Sheath:Lamina ratio (dimensionless)

Return type:

float

calculate_SSLW(leaf_rank, integral_conc_sucr, optimal_growth_option=False)[source]#

Structural Specific Lamina Weight.

Parameters:
  • leaf_rank (int) – leaf phytomer number

  • integral_conc_sucr (float) – mean sucrose concentration of the hiddenzone since leaf n-2 emergence (µmol C g-1)

  • optimal_growth_option (bool) – if True the function will calculate SSLW assuming optimal growth conditions

Returns:

Structural Specific Leaf Weight (g m-2)

Return type:

float

calculate_coleo_Lmax(sowing_depth)[source]#

Calculate final length of coleoptile from sowing depth

Parameters:

sowing_depth (float) – Sowing depth (m)

Returns:

final length of coleoptile

Return type:

float

static calculate_coleoptile_emergence(coleoptile_L, sowing_depth)[source]#

Calculate if a given coleoptile has emerged above the soil

Parameters:
  • coleoptile_L (float) – Coleoptile length (m)

  • sowing_depth (float) – Sowing depth (m)

Returns:

Specifies if the coleoptile has emerged (True) or not (False)

Return type:

bool

static calculate_cumulated_internode_length(internode_lengths)[source]#

Calculate cumulative internode length

Parameters:

internode_lengths (list) – list of internode lengths below a given phytomer index (m)

Returns:

Cumulated internode length below a given phytomer index (m)

Return type:

float

calculate_cumulated_thermal_time(sum_TT, temperature, delta_teq)[source]#

Return cumulated thermal time (used by Adel-Wheat model to calculate leaf geometry).

Parameters:
  • sum_TT (float) – cumulated thermal time (degree-days)

  • temperature (float) – temperature (degree Celsius)

  • delta_teq (float) – time duration equivalent at Tref(s)

Returns:

cumulated thermal time (s)

Return type:

float

calculate_deltaL_postE(prev_leaf_pseudo_age, leaf_pseudo_age, prev_leaf_L, leaf_Lmax, sucrose, amino_acids, mstruct, leaf_rank, optimal_growth_option=False)[source]#

Leaf length from the emergence of the previous leaf to the end of elongation (automate function depending on leaf pseudo age and final length).

Parameters:
  • prev_leaf_pseudo_age (float) – Pseudo age of the leaf since beginning of automate elongation at previous time step (s)

  • leaf_pseudo_age (float) – Pseudo age of the leaf since beginning of automate elongation (s)

  • prev_leaf_L (float) – Leaf length at previous time step (m)

  • leaf_Lmax (float) – Final leaf length (m)

  • sucrose (float) – Amount of sucrose (µmol C)

  • amino_acids (float) – Amount of amino acids (µmol N)

  • mstruct (float) – Structural mass (g)

  • leaf_rank (int) – rank of the leaf

  • optimal_growth_option (bool) – if True the function will calculate leaf elongation assuming optimal growth conditions (except if sucrose and amino acids are zero)

Returns:

delta_leaf_L (m)

Return type:

float

calculate_deltaL_preE(sucrose, leaf_L, amino_acids, mstruct, delta_teq, leaf_rank, optimal_growth_option, xylem_water_potential=None)[source]#

Delta of leaf length over delta_t as a function of sucrose and amino acids, from initiation to the emergence of the previous leaf.

Parameters:
  • sucrose (float) – Amount of sucrose (µmol C)

  • leaf_L (float) – Total leaf length (m)

  • amino_acids (float) – Amount of amino acids (µmol N)

  • mstruct (float) – Structural mass (g)

  • delta_teq (float) – Temperature-compensated time = time duration at a reference temperature (s)

  • leaf_rank (int) – leaf phytomer number

  • optimal_growth_option (bool) – if True the function will calculate leaf elongation assuming optimal growth conditions (except if sucrose and amino acids are zero)

  • xylem_water_potential (None) – not used in this instance of the model

Returns:

delta delta_leaf_L (m)

Return type:

float

calculate_delta_internode_L_postL(prev_internode_pseudo_age, internode_pseudo_age, prev_internode_L, internode_Lmax_lig, sucrose, amino_acids, mstruct, optimal_growth_option=False)[source]#

Internode length, from the ligulation of the previous leaf to the end of elongation (automate function depending on leaf pseudo age and final length).

Parameters:
  • prev_internode_pseudo_age (float) – Pseudo age of the internode since beginning of automate elongation at previous time step (s)

  • internode_pseudo_age (float) – Pseudo age of the internode since beginning of automate elongation (s)

  • prev_internode_L (float) – Internode length before elongation (m)

  • internode_Lmax_lig (float) – Estimate of final internode length at previous leaf ligulation (m)

  • sucrose (float) – Amount of sucrose (µmol C)

  • amino_acids (float) – Amount of amino acids (µmol N)

  • mstruct (float) – Structural mass (µmol N)

  • optimal_growth_option (bool) – if True the function will calculate delta of internode length assuming optimal growth conditions

Returns:

internode_L (m)

Return type:

float

calculate_delta_internode_L_preL(phytomer_rank, sucrose, internode_L, amino_acids, mstruct, delta_teq, optimal_growth_option=False)[source]#

delta of internode length over delta_t as a function of sucrose and amino acids, from initiation to the ligulation of the previous leaf.

Parameters:
  • phytomer_rank (int) – phytomer rank

  • sucrose (float) – Amount of sucrose (µmol C)

  • internode_L (float) – Total internode length (m)

  • amino_acids (float) – Amount of amino acids (µmol N)

  • mstruct (float) – Structural mass of the hidden zone(g)

  • delta_teq (float) – Temperature-compensated time = time duration at a reference temperature (s)

  • optimal_growth_option (bool) – if True the function will calculate delta of internode length assuming optimal growth conditions

Returns:

delta delta_internode_L (m)

Return type:

float

static calculate_element_age_teq(age_teq, delta_teq)[source]#

Age time equivalent of the element (s)

Parameters:
  • age_teq (float) – Previous age_teq of the element since emergence (s)

  • delta_teq (float) – Temperature-compensated time = time duration at a reference temperature (s)

Returns:

Updated age_teq (s)

Return type:

float

static calculate_emerged_coleo_L(coleoptile_L, sowing_depth)[source]#

Calculate coleoptile length emerged above the soil

Parameters:
  • coleoptile_L (float) – Coleoptile length (m)

  • sowing_depth (float) – Sowing depth (m)

Returns:

Visible coleoptile length (m)

Return type:

float

static calculate_emerged_internode_L(internode_L, internode_distance_to_emerge)[source]#

Emerged internode length.

Parameters:
  • internode_L (float) – Total internode length (m)

  • internode_distance_to_emerge (float) – Length of the pseudostem + internode length (m)

Returns:

Emerged internode length (m)

Return type:

float

static calculate_emerged_sheath_L(leaf_L, leaf_pseudostem_length, lamina_L, sheath_Lmax)[source]#

Emerged sheath length. Assumes that leaf_L = leaf_pseudostem_length + emerged_sheath_L + lamina_L

Parameters:
  • leaf_L (float) – Total leaf length (m)

  • leaf_pseudostem_length (float) – Length of the pseudostem (m)

  • lamina_L (float) – Lamina length (m)

  • sheath_Lmax (float) – Final sheath length (m)

Returns:

Sheath length (m)

Return type:

float

calculate_end_internode_elongation(internode_L, internode_Lmax, internode_pseudo_age)[source]#

Calculate if a given internode has finished elongating

Parameters:
  • internode_L (float) – Total internode length (m)

  • internode_Lmax (float) – Maximum internode length (m)

  • internode_pseudo_age (float) – Internode pseudo age (s)

Returns:

Specifies if the internode has completed elongation (True) or not (False)

Return type:

float

static calculate_growing_temperature(Tair, Tsol, SAM_height, sowing_depth)[source]#

Return temperature to be used for growth zone

Parameters:
  • Tair (float) – Air temperature at t (degree Celsius)

  • Tsol (float) – Soil temperature at t (degree Celsius)

  • SAM_height (float) – Height of SAM, calculated from internode length (m)

  • sowing_depth (float) – Sowing depth (m)

Returns:

Return temperature to be used for growth zone at t (degree Celsius)

Return type:

float

static calculate_hidden_lamina_L(lamina_L, lamina_Lmax)[source]#

Hidden lamina length at the end of lamina growth.

Parameters:
  • lamina_L (float) – Length of the emerged lamina at the end of its growth (m)

  • lamina_Lmax (float) – Final lamina length (m)

Returns:

Hidden lamina length (m)

Return type:

float

calculate_init_internode_elongation(hiddenzone_age, leaf_rank)[source]#

Initialize internode elongation.

Parameters:
  • hiddenzone_age (float) – Time since primordium initiation (in time equivalent to a reference temperature) (s)

  • leaf_rank (int) – rank of the leaf

Returns:

Specifies if the internode has started the elongation (True) or not (False), and initialize internode_L

Return type:

(bool, float)

calculate_internode_Lmax(internode_L_lig)[source]#

Final internode length.

Parameters:

internode_L_lig (float) – Internode length at the ligulation of the previous leaf (m)

Returns:

Final internode length (m)

Return type:

float

static calculate_internode_distance_to_emerge(ligule_heights, bottom_hiddenzone_height, phytomer_rank, curr_internode_L)[source]#

Distance for the internode to be visible given by the pseudostem length.

Parameters:
  • ligule_heights (pandas.Series) – height of all ligules of a given axis (m)

  • bottom_hiddenzone_height (float) – height of the bottom of the hidden zone given by the cumulated lengths of below internodes (m)

  • phytomer_rank (int) – phytomer rank

  • curr_internode_L (float) – Internode length of the current phytomer (m).

Returns:

Distance for the internode to be visible (m)

Return type:

float

static calculate_internode_pseudo_age(internode_pseudo_age, delta_teq)[source]#

Pseudo age of the internode since beginning of automate elongation (s)

Parameters:
  • internode_pseudo_age (float) – Pseudo age of the leaf since beginning of automate elongation (s)

  • delta_teq (float) – Temperature-compensated time = time duration at a reference temperature (s)

Returns:

internode_pseudo_age (s)

Return type:

float

static calculate_internode_visibility(internode_L, internode_distance_to_emerge)[source]#

Calculate if a given internode is visible

Parameters:
  • internode_L (float) – Total internode length (m)

  • internode_distance_to_emerge (float) – Length of the pseudostem + internode length (m)

Returns:

Specifies if the internode is visible (True) or not (False)

Return type:

float

static calculate_lamina_L(leaf_L, leaf_pseudostem_length, lamina_Lmax)[source]#

Emerged lamina length given by the difference between leaf length and leaf pseudostem length.

Parameters:
  • leaf_L (float) – Total leaf length (m)

  • leaf_pseudostem_length (float) – Length of the pseudostem (m)

  • lamina_Lmax (float) – Final lamina length (m)

Returns:

lamina length (m)

Return type:

float

static calculate_lamina_Lmax(leaf_Lmax, sheath_lamina_ratio)[source]#

Final lamina length.

Parameters:
  • leaf_Lmax (float) – Final leaf length (m)

  • sheath_lamina_ratio (float) – Sheath:Lamina ratio (dimensionless)

Returns:

Final lamina length (m)

Return type:

float

calculate_leaf_Lmax(leaf_Lem_prev, leaf_rank)[source]#

Final leaf length.

Parameters:
  • leaf_Lem_prev (float) – Leaf length at the emergence of the previous leaf (m)

  • leaf_rank (int) – rank of the leaf

Returns:

Final leaf length (m)

Return type:

float

calculate_leaf_Wmax(lamina_Lmax, leaf_rank, integral_conc_sucr, optimal_growth_option=False)[source]#

Maximal lamina width.

Parameters:
  • lamina_Lmax (float) – Maximal lamina length (m)

  • leaf_rank (int) – leaf phytomer number

  • integral_conc_sucr (float) – mean sucrose concentration of the hiddenzone since leaf n-2 emergence (µmol C g-1)

  • optimal_growth_option (bool) – if True the function will calculate leaf Wmax assuming optimal growth conditions

Returns:

Maximal leaf width (m)

Return type:

float

static calculate_leaf_emergence(leaf_L, leaf_pseudostem_length)[source]#

Calculate if a given leaf has emerged from its pseudostem

Parameters:
  • leaf_L (float) – Leaf length (m)

  • leaf_pseudostem_length (float) – Length of the pseudostem (m)

Returns:

Specifies if the leaf has emerged (True) or not (False)

Return type:

bool

calculate_leaf_pseudo_age(leaf_pseudo_age, delta_teq, turgor_water_potential=None)[source]#

Pseudo age of the leaf since beginning of automate elongation (s)

Parameters:
  • leaf_pseudo_age (float) – Previous pseudo age of the leaf since beginning of automate elongation (s)

  • delta_teq (float) – Temperature-compensated time = time duration at a reference temperature (s)

  • turgor_water_potential (float) – Not used in this instance of the model

Returns:

Updated leaf_pseudo_age (s)

Return type:

float

static calculate_leaf_pseudostem_length(ligule_heights, bottom_hiddenzone_height, phytomer_id)[source]#

Distance between the bottom of the hidden zone and the highest previous ligule

Parameters:
  • ligule_heights (pandas.Series) – height of all ligules of a given axis (m)

  • bottom_hiddenzone_height (float) – height of the bottom of the hidden zone given by the cumulated lengths of below internodes (m)

  • phytomer_id (int) – phytomer number

Returns:

Distance for the leaf to emerge out of the pseudostem (m)

Return type:

float

static calculate_ligule_height(sheath_internode_length, all_element_inputs, SAM_id, all_ligule_height_df)[source]#

Calculate ligule heights below each phytomer of an axis from lengths of internodes and sheaths.

The result is formated into a dataframe which is concatenated with a shared dataframe storing all ligule heights

Parameters:
  • sheath_internode_length (dict) – Dictionary with sheath and internode lengths for a given axis, (m)

  • all_element_inputs (dict) – Dictionary of all element inputs

  • SAM_id (tuple) – Id of the SAM (plant_id, axis_id)

  • all_ligule_height_df (pandas.DataFrame) – Shared dataframe used to store all ligule heights

Returns:

A dataframe with ligule height of a given axis

Return type:

pandas.DataFrame

static calculate_mean_conc_sucrose(prev_mean_conc_sucrose, time_prev_leaf2_emergence, delta_teq, sucrose, mstruct)[source]#

Update the mean sucrose concentration of the hiddenzone since leaf n-2 emergence. Calculation starts at leaf n-2 emergence, the updated mean accounts for the [sucrose] of current time step weighted by a function of temperature.

Parameters:
  • prev_mean_conc_sucrose (float) – Mean sucrose concentration of the hiddenzone at the end of previous simulation time step (µmol C g-1).

  • time_prev_leaf2_emergence (float) – Time elapsed since leaf n-2 emergence (s at Tref).

  • delta_teq (float) – Duration of the current simulation time step (s at Tref).

  • sucrose (float) – Sucrose in the hidden zone (µmol C).

  • mstruct (float) – Mstruct of the hidden zone (g).

Returns:

Updated mean sucrose concentration of the hiddenzone since leaf n-2 emergence (µmol C g-1)

Return type:

float

calculate_ratio_DZ_postE(leaf_L, leaf_Lmax, leaf_pseudostem_length)[source]#

Ratio of the hiddenzone length which is made of division zone. Calculated from an inverse beta function representing the ratio of the leaf composed by the division zone according to its relative length in log. The model was fitted on literature data on wheat.

Parameters:
  • leaf_L (float) – Leaf length (m)

  • leaf_Lmax (float) – Final leaf length (m)

  • leaf_pseudostem_length (float) – Length of the pseudostem (m)

Returns:

ratio_DZ (dimensionless)

Return type:

float

static calculate_sheath_Lmax(leaf_Lmax, lamina_Lmax)[source]#

Final sheath length.

Parameters:
  • leaf_Lmax (float) – Final leaf length (m)

  • lamina_Lmax (float) – Final lamina length (m)

Returns:

Final sheath length (m)

Return type:

float

calculate_short_internode_Lmax(internode_L_lig, internode_pseudo_age)[source]#

Final internode length.

Parameters:
  • internode_L_lig (float) – Internode length at the ligulation of the previous leaf (m)

  • internode_pseudo_age (float) – Internode pseudo age since previous leaf ligulation (s)

Returns:

Final internode length (m)

Return type:

float

calculate_time_equivalent_Tref(temperature, time)[source]#

Return the time equivalent to a reference temperature i.e. temperature-compensated time (Parent, 2010).

Parameters:
  • temperature (float) – temperature (degree Celsius)

  • time (float) – time duration (s)

Returns:

temperature-compensated time (s)

Return type:

float

calculate_update_internode_Lmax(internode_Lmax_lig, internode_L, internode_pseudo_age)[source]#

Update internode_Lmax following a reduction of delta_leaf_L due to C and N regulation

Parameters:
  • internode_Lmax_lig (float) – Estimate of final internode length at previous leaf ligulation (m)

  • internode_L (float) – actual internode length at the end of the time step, calculated according to CN concentration (m)

  • internode_pseudo_age (float) – Pseudo age of the internode since beginning of automate elongation at the end of the time step (s)

Returns:

Updated internode Lmax (m)

Return type:

float

calculate_update_leaf_Lmax(leaf_Lmax_em, leaf_L, leaf_pseudo_age, leaf_rank)[source]#

Update leaf_Lmax following a reduction of delta_leaf_L due to C and N regulation. Updated final length is calculated as the sum of the theoretical remaining length to elongate (leaf_Lmax_em * (1 - Beta_function(leaf_pseudo_age))) and the actual elongation at the end of the time step. This could lead to shorter or longer leaves, but the duration of elongation is not modified.

Parameters:
  • leaf_Lmax_em (float) – Estimate of final leaf length at previous leaf emergence (m)

  • leaf_L (float) – actual leaf length at the end of the time step, calculated according to CN concentration (m)

  • leaf_pseudo_age (float) – Pseudo age of the leaf since beginning of automate elongation at the end of the time step (s)

  • leaf_rank (int) – rank of the leaf

Returns:

updated leaf_Lmax (m)

Return type:

float

ligule_topology_columns#

topology columns for ligule height dataframe

modified_Arrhenius_equation(temperature)[source]#

Return value of equation from Johnson and Lewin (1946) for temperature. The equation is modified to return zero below zero degree.

Parameters:

temperature (float) – organ temperature (degree Celsius)

Returns:

Return value of Eyring equation from Johnson and Lewin (1946) for temperature. The equation is modified to return zero below zero degree.

Return type:

float

class openalea.cnwgrass.morphogenesis.model.MorphogenesisModelHydraulics[source]#

Bases: MorphogenesisModel

calculate_deltaL_preE(sucrose, leaf_L, amino_acids, mstruct, delta_teq, leaf_rank, optimal_growth_option, xylem_water_potential=0.0)[source]#

Delta of leaf length over delta_t as a function of sucrose and amino acids, from initiation to the emergence of the previous leaf.

Parameters:
  • sucrose (float) – Amount of sucrose (µmol C)

  • leaf_L (float) – Total leaf length (m)

  • amino_acids (float) – Amount of amino acids (µmol N)

  • mstruct (float) – Structural mass (g)

  • delta_teq (float) – Temperature-compensated time = time duration at a reference temperature (s)

  • leaf_rank (int) – leaf phytomer number

  • optimal_growth_option (bool) – if True the function will calculate leaf elongation assuming optimal growth conditions (except if sucrose and amino acids are zero)

  • xylem_water_potential (float) – xylem water potential (Mpa)

Returns:

delta delta_leaf_L (m)

Return type:

float

calculate_lamina_Lmax(leaf_rank)[source]#

Final lamina length.

Parameters:

leaf_rank (int) – rank of the leaf

Returns:

“Dummy” final lamina length (m)

Return type:

float

calculate_leaf_pseudo_age(leaf_pseudo_age, delta_teq, turgor_water_potential=0)[source]#

Pseudo age of the leaf since beginning of automate elongation (s)

Parameters:
  • leaf_pseudo_age (float) – Previous pseudo age of the leaf since beginning of automate elongation (s)

  • delta_teq (float) – Temperature-compensated time = time duration at a reference temperature (s)

  • turgor_water_potential (float) – turgor potential of the hz (MPa)

Returns:

Updated leaf_pseudo_age (s)

Return type:

float

calculate_ratio_DZ_postE(leaf_L, leaf_pseudo_age, leaf_pseudostem_length)[source]#

Ratio of the hiddenzone length which is made of division zone. Calculated from an inverse beta function representing the ratio of the leaf composed by the division zone according to its relative length in log. The model was fitted on literature data on wheat.

Parameters:
  • leaf_L (float) – Leaf length (m)

  • leaf_pseudostem_length (float) – Length of the pseudostem (m)

  • leaf_pseudo_age (float) – Pseudo age of the leaf since beginning of automate elongation (s)

Returns:

ratio_DZ (dimensionless)

Return type:

float

openalea.cnwgrass.morphogenesis.simulation module#

class openalea.cnwgrass.morphogenesis.simulation.Simulation(delta_t=1, hydraulics=False, optimal_growth_option=False, update_parameters=None)[source]#

Bases: object

The Simulation class allows to initialize and run a simulation.

axis_inputs#

The inputs and outputs of Morphogenesis at each scale.

delta_t#

the delta t of the simulation (in seconds)

hydraulics#

Checks whether the Hydraulic version should be used

initialize(inputs)[source]#

Initialize inputs from inputs.

Parameters:

inputs (dict) – must be a dictionary with the same structure as inputs.

inputs#

inputs is a dictionary of dictionaries: {‘hiddenzone’: {(plant_index, axis_label, metamer_index): {hiddenzone_input_name: hiddenzone_input_value, …}, …},

‘elements’: {(plant_index, axis_label, metamer_index, organ_label, element): {element_input_name: element_input_value, …}, …}, ‘axes’: {(plant_index, axis_label): {axis_input_name: axis_input_value, …}, …}, ‘sheath_internode_lengths’: {(plant_index, axis_label, metamer_index): {‘sheath’: [list of sheath length belonging to the phytomer],

‘cumulated_internode’: [list of internode lengths cumulated from phytomer 1 to n]}, …}}

optimal_growth_option#

Optimal growth option

outputs#

outputs is a dictionary of dictionaries: {‘hiddenzone’: {(plant_index, axis_label, metamer_index): {hiddenzone_input_name: hiddenzone_input_value, …}, …},

‘elements’: {(plant_index, axis_label, metamer_index, organ_label, element): {element_output_name: element_output_value, …}, …}, ‘axes’: {(plant_index, axis_label): {axis_output_name: axis_output_value, …}, …}}

run(Tair, Tsoil, Zsowing=0.025)[source]#

Run the simulation.

Parameters:
  • Tair (float) – Air temperature at t (degree Celsius)

  • Tsoil (float) – Soil temperature at t (degree Celsius)

  • Zsowing (float) – Sowing depth (m)

exception openalea.cnwgrass.morphogenesis.simulation.SimulationError[source]#

Bases: Exception

exception openalea.cnwgrass.morphogenesis.simulation.SimulationRunError[source]#

Bases: SimulationError

openalea.cnwgrass.morphogenesis.converter module#

openalea.cnwgrass.morphogenesis.converter.HIDDENZONE_TOPOLOGY_COLUMNS = ['plant', 'axis', 'metamer']#

the columns which define the topology in the input/output dataframe

openalea.cnwgrass.morphogenesis.converter.from_dataframes(hiddenzone_inputs, element_inputs, axis_inputs)[source]#

Convert inputs/outputs from Pandas dataframe to Morphogenesis format.

Parameters:
  • axis_inputs (pandas.DataFrame) – axis inputs dataframe to convert, with one line by axis

  • hiddenzone_inputs (pandas.DataFrame) – Hidden zone inputs dataframe to convert, with one line by Hidden zone.

  • element_inputs (pandas.DataFrame) – Emerging and mature element inputs dataframe to convert, with one line by element.

Returns:

The inputs in a dictionary.

Return type:

dict [str, dict]

see also:: simulation.Simulation.inputs for the structure of Morphogenesis inputs.

openalea.cnwgrass.morphogenesis.converter.to_dataframes(data_dict, axis_outputs, hiddenzone_outputs, element_outputs)[source]#

Convert outputs from Morphogenesis format to Pandas dataframe.

Parameters:
  • data_dict (dict) – The outputs in Morphogenesis format.

  • axis_outputs (list) – The list of output names for axes

  • hiddenzone_outputs (list) – The list of output names for hiddenzones

  • element_outputs (list) – The list of output names for elements

Returns:

One dataframe for hiddenzone outputs, one dataframe for element outputs and one dataframe for axis outputs.

Return type:

(pandas.DataFrame, pandas.DataFrame, pandas.DataFrame)

openalea.cnwgrass.morphogenesis.parameters module#

class openalea.cnwgrass.morphogenesis.parameters.ElementInit[source]#

Bases: object

Initial values for emerged and growing elements

Nresidual#

g

Nstruct#

g

age#

Thermal Time

age_teq#

s

amino_acids#

µmol N

cytokinins#

g

fructan#

µmol C

green_area#

m2

length#

m

max_mstruct#

g

max_proteins#

µmol N

mstruct#

g

nitrates#

µmol N

proteins#

µmol N

senesced_length_element#

m

senesced_mstruct#

g

starch#

µmol C

sucrose#

µmol C

class openalea.cnwgrass.morphogenesis.parameters.HiddenZoneInit[source]#

Bases: object

Initial values for hidden zones

LSIW#

g m-1, no calculation before ligulation Ln

LSSW#

g m-1, no calculation before emergence Ln-1 (about 2)

Nstruct#

g

SSLW#

g m-2, no calculation before emergence Ln-1

amino_acids#

µmol N

conc_cytokinins#

AU / g mstruct

delta_internode_L#

m, needed for growth

delta_internode_distance_to_emerge#

m, needed for growth

delta_leaf_L#

m, needed for growth

delta_leaf_pseudostem_length#

m

fructan#

µmol C - about 10% DM

internode_L#

m

internode_Lmax#

m, no calculation before ligulation Ln

internode_Lmax_lig#

m, no calculation before ligulation Ln

internode_distance_to_emerge#

m

internode_enclosed_Nstruct#

g, parameter value in Growth

internode_enclosed_mstruct#

g

lamina_Lmax#

m, no calculation before emergence Ln-1

leaf_L#

m, should be consistent with PLASTOCHRONE

leaf_Lmax#

m, no calculation before emergence Ln-1

leaf_Lmax_em#

m, no calculation before emergence Ln-1

leaf_Wmax#

m, no calculation before emergence Ln-1

leaf_enclosed_Nstruct#

g, parameter value in Growth

leaf_enclosed_mstruct#

g

leaf_pseudostem_length#

m

mean_conc_sucrose#

µmol C / g mstruct

mstruct#

g

proteins#

µmol N - about 9% N

sheath_Lmax#

m, no calculation before emergence Ln-1

sucrose#

µmol C

class openalea.cnwgrass.morphogenesis.parameters.HiddenZoneInitHydraulics[source]#

Bases: HiddenZoneInit

Initial values for hidden zones

init_leaf_L#

m, needed for growth

leaf_pseudo_age#

s, no calculation before emergence Ln-1

class openalea.cnwgrass.morphogenesis.parameters.Parameters[source]#

Bases: object

RER_Kc#

affinity coefficient of RER to C (µmol g-1)

RER_Kn#

affinity coefficient of RER to N (µmol g-1)

RERmax_dict_IN#

s-1 at 12°C FIT jan 20

conc_sucrose_offset#

sucrose concentration under which no leaf and internode growth occurs (µmol of C g-1 mstruct) - same for root growth, see growth

delta_L_emergence#

length of visible coleoptile ie emerged from soil (m). Current value set allows coleo to match length of sheath 1 in Sreten.

property delta_TT_GA#
internode_LSIW_dict#

experiment of M.Gauthier 2017/18, consistent with R.Barillot 2014

internode_L_init#

Initial internode length (m)

leaf_Lmax_MAX#

Maximum leaf_Lmax (m)

leaf_W_L_MIN#

Minimal leaf width

leaf_Wmax_Marion#

m (Ljutovac 2002)

leaf_Wmax_dict#

m (Ljutovac 2002)

leaf_pseudo_age_Kc#

affinity coefficient to C (µmol g-1)

leaf_pseudo_age_Kn#

affinity coefficient to N (µmol g-1)

leaf_pseudo_age_Vmax#

Maximal regulation of leaf length after emergence by CN status (dimensionless)

max_nb_leaves#

Max number of leaves per axis

nb_PLASTO_internode_init#

Delay between leaf initiation and internode initiation expressed as a number of plastochron. From Malvoisin 1984b, associated with primordia of 5.10-4 m

ratio_DZ_l_end#

normalized log of leaf length at which the leaf has no more division zone (dimensionless).

ratio_DZ_l_init#

normalized log of leaf length at which the leaf is fully composed by the division zone (dimensionless).

ratio_DZ_l_mid#

intermediate point of the beta function (dimensionless).

ratio_LSIW_LSSW#

ratio lineic structural internode mass / lineic structural sheath mass of the specific structural dry masses (from data of J. Bertheloot, 2004)

tb#

beginning of leaf elongation in automate growth (s at 12°c); fitted from adapted data from Fournier 2005

tb_IN#

beginning of internode elongation in automate growth (s);Ljutovac 2002, 250pl.m-2

te#

end of leaf elongation in automate growth (s at 12°c); fitted from adapted data from Fournier 2005

te_IN#

end of internode elongation in automate growth; Ljutovac 2002, 250pl.m-2

tm#

time at which leaf elongation rate is maximal in automate growth (s at 12°c); fitted from adapted data from Fournier 2005

tm_IN#

time at which internode elongation rate is maximal in automate growth (s);Ljutovac 2002, 250pl.m-2

class openalea.cnwgrass.morphogenesis.parameters.ParametersHydraulics[source]#

Bases: Parameters

GAMMA#

0.3 Mpa for soybean.

Type:

Critical value for the pressure component which must be exceeded for irreversible volume changes (MPa). Found from Coussement et al., 2018

lamina_Lmax_dict#

Maximum lamina length (m)

n#

Shape parameter of the xylem water potential function in RER (-)

psi_ref#

Critical leaf water potential threshold at which RER is reduced by 50% (Mpa) (adapted from Boyer, 1968)

openalea.cnwgrass.morphogenesis.parameters.parameters_factory(hydraulics=False)[source]#

Factory for parameter instantiation according to the version of the model used

Parameters:

hydraulics (bool) – if True the model will assume the coupling to the turgor-driven growth model

Returns:

Instance of Parameters oo ParametersHydraulics