Reference guide#

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

openalea.elongwheat package#

elongwheat#

The model Elong-Wheat.

Mechanistic model of leaf elongation. See:

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

  • elongwheat.model for the equations of the model,

  • elongwheat.parameters for the parameters of the model.

openalea.elongwheat.model module#

openalea.elongwheat.model.Beta_function(leaf_pseudo_age)[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)

Returns:

Normalized leaf length (m)

Return type:

float

openalea.elongwheat.model.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

openalea.elongwheat.model.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

openalea.elongwheat.model.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)

  • 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

openalea.elongwheat.model.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

openalea.elongwheat.model.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 emited 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 intiation (in time equivalent to a reference temperature, s)

Return type:

(int, int, str, float)

openalea.elongwheat.model.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

openalea.elongwheat.model.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)

  • 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

openalea.elongwheat.model.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

openalea.elongwheat.model.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:

temperature-compensated time (s)

Return type:

float

openalea.elongwheat.model.calculate_deltaL_postE(prev_leaf_pseudo_age, leaf_pseudo_age, prev_leaf_L, leaf_Lmax, sucrose, amino_acids, mstruct, 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)

  • 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

openalea.elongwheat.model.calculate_deltaL_preE(sucrose, leaf_L, amino_acids, mstruct, delta_teq, leaf_rank, optimal_growth_option)[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-consensated 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)

Returns:

delta delta_leaf_L (m)

Return type:

float

openalea.elongwheat.model.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

openalea.elongwheat.model.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-consensated 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

openalea.elongwheat.model.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

openalea.elongwheat.model.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

openalea.elongwheat.model.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

openalea.elongwheat.model.calculate_growing_temperature(Tair, Tsol, SAM_height)[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).

Returns:

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

Return type:

float

openalea.elongwheat.model.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

openalea.elongwheat.model.calculate_init_internode_elongation(hiddenzone_age)[source]#

Initialize internode elongation.

Parameters:

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

Returns:

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

Return type:

(bool, float)

openalea.elongwheat.model.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

openalea.elongwheat.model.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.DataFrame) – 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 phyomer (m).

Returns:

Distance for the internode to be visible (m)

Return type:

float

openalea.elongwheat.model.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-consensated time = time duration at a reference temperature (s)

Returns:

internode_pseudo_age (s)

Return type:

float

openalea.elongwheat.model.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

openalea.elongwheat.model.calculate_lamina_L(leaf_L, leaf_pseudostem_length, hiddenzone_id, 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)

  • hiddenzone_id (tuple) – Id of the hidden zone (plant_id, axis_id, phytomer_id)

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

Returns:

lamina length (m)

Return type:

float

openalea.elongwheat.model.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

openalea.elongwheat.model.calculate_leaf_Lmax(leaf_Lem_prev)[source]#

Final leaf length.

Parameters:

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

Returns:

Final leaf length (m)

Return type:

float

openalea.elongwheat.model.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)

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

Returns:

Maximal leaf width (m)

Return type:

float

openalea.elongwheat.model.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

openalea.elongwheat.model.calculate_leaf_pseudo_age(leaf_pseudo_age, delta_teq)[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-consensated time = time duration at a reference temperature (s)

Returns:

Updated leaf_pseudo_age (s)

Return type:

float

openalea.elongwheat.model.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.DataFrame) – 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

openalea.elongwheat.model.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

openalea.elongwheat.model.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

openalea.elongwheat.model.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 accoring to its relative length in log. The model was fitted on litterature 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

openalea.elongwheat.model.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

openalea.elongwheat.model.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

openalea.elongwheat.model.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

openalea.elongwheat.model.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

openalea.elongwheat.model.calculate_update_leaf_Lmax(leaf_Lmax_em, leaf_L, leaf_pseudo_age)[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 theoritical 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)

Returns:

updated leaf_Lmax (m)

Return type:

float

openalea.elongwheat.model.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

openalea.elongwheat.simulation module#

openalea.elongwheat.simulation.HIDDENZONE_INPUTS = ['leaf_is_growing', 'internode_is_growing', 'leaf_pseudo_age', 'internode_pseudo_age', 'leaf_pseudostem_length', 'internode_distance_to_emerge', 'leaf_L', 'internode_L', 'hiddenzone_age', 'leaf_Lmax', 'leaf_Lmax_em', 'lamina_Lmax', 'sheath_Lmax', 'leaf_Wmax', 'SSLW', 'LSSW', 'leaf_is_emerged', 'internode_Lmax', 'internode_Lmax_lig', 'LSIW', 'internode_is_visible', 'sucrose', 'amino_acids', 'fructan', 'proteins', 'leaf_enclosed_mstruct', 'leaf_enclosed_Nstruct', 'internode_enclosed_mstruct', 'internode_enclosed_Nstruct', 'mstruct', 'is_over', 'mean_conc_sucrose']#

the inputs needed by ElongWheat

openalea.elongwheat.simulation.HIDDENZONE_INPUTS_OUTPUTS = ['LSIW', 'LSSW', 'SSLW', 'amino_acids', 'delta_internode_L', 'delta_internode_distance_to_emerge', 'delta_internode_pseudo_age', 'delta_leaf_L', 'delta_leaf_pseudo_age', 'delta_leaf_pseudostem_length', 'fructan', 'hiddenzone_age', 'internode_L', 'internode_Lmax', 'internode_Lmax_lig', 'internode_distance_to_emerge', 'internode_enclosed_Nstruct', 'internode_enclosed_mstruct', 'internode_is_growing', 'internode_is_remobilizing', 'internode_is_visible', 'internode_pseudo_age', 'is_over', 'lamina_Lmax', 'leaf_L', 'leaf_Lmax', 'leaf_Lmax_em', 'leaf_Wmax', 'leaf_enclosed_Nstruct', 'leaf_enclosed_mstruct', 'leaf_is_emerged', 'leaf_is_growing', 'leaf_is_remobilizing', 'leaf_pseudo_age', 'leaf_pseudostem_length', 'mean_conc_sucrose', 'mstruct', 'proteins', 'ratio_DZ', 'sheath_Lmax', 'sucrose']#

the inputs and outputs of ElongWheat.

openalea.elongwheat.simulation.LIGULE_TOPOLOGY_COLUMNS = ['axis_id', 'phytomer', 'ligule height']#

topology colums for ligule height dataframe

class openalea.elongwheat.simulation.Simulation(delta_t=1, update_parameters=None)[source]#

Bases: object

The Simulation class allows to initialize and run a simulation.

delta_t#

the delta t of the simulation (in seconds)

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]}, …}

See :TODO? for more information about the inputs.

outputs#

The outputs of elong-Wheat.

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, …}, …}}

See :TODO? for more information about the inputs.

run(Tair, Tsoil, optimal_growth_option)[source]#

Run the simulation.

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

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

  • optimal_growth_option (bool) – if True the model will assume optimal growth conditions

exception openalea.elongwheat.simulation.SimulationError[source]#

Bases: Exception

exception openalea.elongwheat.simulation.SimulationRunError[source]#

Bases: SimulationError

openalea.elongwheat.converter module#

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

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

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

Convert inputs/outputs from Pandas dataframe to Elong-Wheat 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) – Emergeing 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 Elong-Wheat inputs.

openalea.elongwheat.converter.to_dataframes(data_dict)[source]#

Convert outputs from Elong-Wheat format to Pandas dataframe.

Parameters:

data_dict (dict) – The outputs in Elong-Wheat format.

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)

See also

simulation.Simulation.outputs for the structure of Elong-Wheat outputs.

openalea.elongwheat.parameters module#

class openalea.elongwheat.parameters.ElementInit[source]#

Bases: object

Initial values for emerged and growing elements

Nresidual#

g

Nstruct#

g

age#

Thermal Time

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.elongwheat.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, needded for growthwheat

delta_internode_distance_to_emerge#

m, needded for growthwheat

delta_leaf_L#

m, needded for growthwheat

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 wheat

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 wheat

leaf_enclosed_mstruct#

g

leaf_pseudostem_length#

ok comme valeur?

Type:

m TODO

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

openalea.elongwheat.parameters.PLASTOCHRONE = 547920.0#

Leaf plastochron (s at 12°C) calculated from Ljutovac 2002 with primordia of 5E-5 m (76 dd) ; Malvoisin 35dd associated with init 3E-5 m

openalea.elongwheat.parameters.RER_Kc = 100#

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

openalea.elongwheat.parameters.RER_Kn = 15#

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

openalea.elongwheat.parameters.RERmax_dict_IN = {3: 2.4e-06, 4: 2.4e-06, 5: 2.4e-06, 6: 2.4e-06, 7: 2.16e-06, 8: 1.8e-06, 9: 1.91e-06, 10: 1.9e-06, 11: 1.76e-06, 12: 1.5e-06}#

s-1 at 12°C FIT jan 20

openalea.elongwheat.parameters.conc_sucrose_offset = 240#

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

openalea.elongwheat.parameters.delta_TT_GA = 2739600.0#

Thermal time between floral transition of SAM and Gibberelin production expressed as a function of plastochron (s at 12°C) ; Malvoisin’s data give 7 plastochrons

openalea.elongwheat.parameters.internode_LSIW_dict = {1: 2.8, 2: 2.8, 3: 2.8, 4: 2.8, 5: 2.8, 6: 2.8, 7: 2.8, 8: 2.8, 9: 2.3, 10: 1.7, 11: 1.6, 12: 1.4, 13: 0.7}#

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

openalea.elongwheat.parameters.internode_L_init = 5e-05#

Initial internode length (m)

openalea.elongwheat.parameters.leaf_Lmax_MAX = 0.45#

Maximum leaf_Lmax (m)

openalea.elongwheat.parameters.leaf_W_L_MIN = 0.025#

Minimal leaf width

openalea.elongwheat.parameters.leaf_Wmax_dict = {3: 0.004, 4: 0.0045, 5: 0.0056, 6: 0.0075, 7: 0.01, 8: 0.012, 9: 0.013, 10: 0.014, 11: 0.018}#

m (Ljutovac 2002)

openalea.elongwheat.parameters.leaf_pseudo_age_Kc = 150#

affinity coefficient to C (µmol g-1)

openalea.elongwheat.parameters.leaf_pseudo_age_Kn = 4#

affinity coefficient to N (µmol g-1)

openalea.elongwheat.parameters.leaf_pseudo_age_Vmax = 1.2#

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

openalea.elongwheat.parameters.max_nb_leaves = 11#

Max number of leaves per axis

openalea.elongwheat.parameters.nb_PLASTO_internode_init = 5#

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

openalea.elongwheat.parameters.ratio_DZ_l_end = 0.7#

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

openalea.elongwheat.parameters.ratio_DZ_l_init = 0.065#

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

openalea.elongwheat.parameters.ratio_DZ_l_mid = 0.075#

intermediate point of the beta function (dimensionless).

openalea.elongwheat.parameters.ratio_LSIW_LSSW = 2.5#

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

openalea.elongwheat.parameters.sowing_depth = 0.05#

Sowing depth (m) used to define plant emergence

openalea.elongwheat.parameters.tb = -822960.0#

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

openalea.elongwheat.parameters.tb_IN = -2694900.96#

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

openalea.elongwheat.parameters.te = 2160000.0#

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

openalea.elongwheat.parameters.te_IN = 2388627.36#

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

openalea.elongwheat.parameters.tm = 1473120.0#

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

openalea.elongwheat.parameters.tm_IN = 1820014.5599999998#

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