# -*- coding: latin-1 -*-
from __future__ import division # use "//" to do integer division
"""
elongwheat.parameters
~~~~~~~~~~~~~~~~~~~~~~
The module :mod:`elongwheat.parameters` defines the constant parameters.
"""
# -------------------------------------------------------------------------------------------------------------------
# --- SAM
# -------------------------------------------------------------------------------------------------------------------
PLASTOCHRONE = 76.1/12*24*3600 #: 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
max_nb_leaves = 11 #: Max number of leaves per axis
delta_TT_GA = PLASTOCHRONE * 5 #: 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
sowing_depth = 0.05 #: Sowing depth (m) used to define plant emergence
# Parameters for temperature responses
Temp_Tref = 12 # Arbitrary reference temperature (°C)
Temp_Ea_R = 8900 # Parameter Ea/R in Eyring equation from Johnson and Lewin (1946) - Parameter value fitted from Kemp and Blacklow (1982) (K)
Temp_DS_R = 68.432 # Parameter deltaS/R in Eyring equation from Johnson and Lewin (1946) - Parameter value fitted from Kemp and Blacklow (1982) (dimensionless)
Temp_DH_R = 20735.5 # Parameter deltaH/R in Eyring equation from Johnson and Lewin (1946) - Parameter value fitted from Kemp and Blacklow (1982) (K)
Temp_Ttransition = 9 # Below this temperature f = linear function of temperature instead of Arrhenius-like(°C)
# -------------------------------------------------------------------------------------------------------------------
# --- Leaves
# -------------------------------------------------------------------------------------------------------------------
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
# Exponential elongation
RERmax_Ljutovac_fit = {5: 0.000003, 6: 0.00000175, 7: 0.00000164, 8: 0.00000154, 9: 0.00000151, 10: 0.00000134, 11: 0.00000129} # Optimal RERmax (s-1 at 12°C) allowing to simulate leaf dimensions of Ljutovac (2002)
# { 5 : 0.00000279 , 6 : 0.00000176 , 7 : 0.00000162 , 8 : 0.00000144 , 9 : 0.00000144 , 10 : 0.00000144 , 11 : 0.00000142 } # Observed RER on data of Ljutovac 2002 RER (s-1 at 12°C)
RERmax = {5: 3.35e-06, 6: 2.1e-06, 7: 2.e-06, 8: 1.83e-06, 9: 1.8e-06, 10: 1.65e-06, 11: 1.56e-06} # RERmax (s-1 at 12°C) fitted for simulations accounting for metabolic regulation
RER_Kc = 100 #: affinity coefficient of RER to C (µmol g-1)
RER_Kn = 15 #: affinity coefficient of RER to N (µmol g-1)
# Automate elongation
te = 300 * 3600 * 24 / 12 #: end of leaf elongation in automate growth (s at 12°c); fitted from adapted data from Fournier 2005
tm = 204.6 * 3600 * 24 / 12 #: time at which leaf elongation rate is maximal in automate growth (s at 12°c); fitted from adapted data from Fournier 2005
tb = -114.3 * 3600 * 24 / 12 #: beginning of leaf elongation in automate growth (s at 12°c); fitted from adapted data from Fournier 2005
# NB : Previous fit on adapted data from Fournier 2005 in phyllochronic time te = 271, tm=176, tb=-25
leaf_Lmax_MAX = 0.45 #: Maximum leaf_Lmax (m)
leaf_pseudo_age_Vmax = 1.2 #: Maximal regulation of leaf length after emergence by CN status (dimensionless)
leaf_pseudo_age_Kc = 150 #: affinity coefficient to C (µmol g-1)
leaf_pseudo_age_Kn = 4 #: affinity coefficient to N (µmol g-1)
# Leaf maximal width TODO doc
leaf_Wmax_dict = {3: 0.0040, 4: 0.0045, 5: 0.0056, 6: 0.0075, 7: 0.010, 8: 0.012, 9: 0.013, 10: 0.014, 11: 0.018} #: m (Ljutovac 2002)
leaf_W_L_MIN = 0.025 #: Minimal leaf width
leaf_W_L_a = -0.02033728
leaf_W_L_b = -0.00005445836
leaf_W_L_c = 0.000459551
# Structural Specific Lamina Weight
leaf_SSLW = {1: 22, 2: 22, 3: 22, 4: 22, 5: 22, 6: 22, 7: 22, 8: 24, 9: 25, 10: 28, 11: 31} # SSLW (g m-2)
leaf_SSLW_NEMA = {1: 15, 2: 23, 3: 25, 4: 24, 5: 21, 6: 18, 7: 16, 8: 18, 9: 21, 10: 26, 11: 33} # Manip NEMA 05/06 traitments N+ (from data of J. Bertheloot, 2004) sauf pour F7/F8
leaf_SSLW_MIN = 5.
leaf_SSLW_MAX = 45.
leaf_SSLW_a = 47.50516
leaf_SSLW_b = 2927.944
leaf_LSSW_dict = {1: 0.08, 2: 0.09, 3: 0.11, 4: 0.18, 5: 0.17, 6: 0.21, 7: 0.24, 8: 0.4, 9: 0.5, 10: 0.55, 11: 0.65} # Manip NEMA 05/06 Soissons N+ (from data of J. Bertheloot, 2004)
leaf_LSSW_a = 0.00005
leaf_LSSW_integral_min = 1700
leaf_LSSW_nominal_A = 0.0403
leaf_LSSW_nominal_B = -0.0099
leaf_LSSW_MIN = 0.05
leaf_LSSW_MAX = 0.8
# Sheath: lamina ratio. Parameters of a polynomial function, from Dornbush 2011
SL_ratio_a = -0.0021
SL_ratio_b = 0.037
SL_ratio_c = - 0.1527
SL_ratio_d = 0.4962
# Ratio of leaf length composed by the division zone.
# Parameters are used for 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 (Fournier 2005, Beemster and Masle 1996, Schuppler 1998).
ratio_DZ_l_init = 0.065 #: normalized log of leaf length at which the the leaf is fully composed by the division zone (dimensionless).
ratio_DZ_l_mid = 0.075 #: intermediate point of the beta function (dimensionless).
ratio_DZ_l_end = 0.7 #: normalized log of leaf length at which the the leaf has no more division zone (dimensionless).
# -------------------------------------------------------------------------------------------------------------------
# --- Internodes
# -------------------------------------------------------------------------------------------------------------------
# Exponential elongation
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
# { 3 : 2.48E-06 ,4 : 2.48E-06 ,5 : 2.48E-06 , 6 : 2.48E-06 , 7 : 2.48E-06 , 8 : 2.48E-06 , 9 : 2.48E-06 , 10 : 1.9E-06 , 11 : 1.6E-06 }#: s-1 at 12°C
# estimate from Ljutovac 2002 over the period until leaf ligulation i.e. wider than in the model.
# Because i) not enought data if we consider only up to previous leaf ligulation, ii) same exponential like period
# SCALING_FACTOR_INT = 59 #: Scaling factor of the internode in automate growth (dimensionless), Malvoisin 1984 II
# SCALING_FACTOR_INT = 53 #: Scaling factor of the internode in automate growth (dimensionless), Ljutovac 2002, 250pl.m-2
# Initiation of internode elongation
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
internode_L_init = 5E-5 #: Initial internode length (m)
# Automate elongation
# te_IN = 210 * 3600 * 24 /12 #: end of internode elongation in automate growth; Malvoisin 1984 II
# tm_IN = 156 * 3600 * 24 /12 #: time at which internode elongation rate is maximal in automate growth (s); Malvoisin 1984 II
# tb_IN = -70 * 3600 * 24 /12 #: beginning of internode elongation in automate growth (s); Malvoisin 1984 II
te_IN = 331.7538 * 3600 * 24 / 12 #: end of internode elongation in automate growth; Ljutovac 2002, 250pl.m-2
tm_IN = 252.7798 * 3600 * 24 / 12 #: time at which internode elongation rate is maximal in automate growth (s);Ljutovac 2002, 250pl.m-2
tb_IN = -374.2918 * 3600 * 24 / 12 #: beginning of internode elongation in automate growth (s);Ljutovac 2002, 250pl.m-2
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)
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
[docs]
class HiddenZoneInit(object):
"""
Initial values for hidden zones
"""
def __init__(self):
self.leaf_is_growing = True
self.internode_is_growing = False
self.leaf_pseudostem_length = 4E-5 #: m TODO: ok comme valeur?
self.delta_leaf_pseudostem_length = 0 #: m
self.internode_distance_to_emerge = 0 #: m
self.delta_internode_distance_to_emerge = 0 #: m, needded for growthwheat
self.leaf_L = 5E-5 #: m, should be consistent with PLASTOCHRONE
self.delta_leaf_L = 0 #: m, needded for growthwheat
self.internode_L = 0 #: m
self.delta_internode_L = 0 #: m, needded for growthwheat
self.leaf_Lmax = None #: m, no calculation before emergence Ln-1
self.leaf_Lmax_em = None #: m, no calculation before emergence Ln-1
self.lamina_Lmax = None #: m, no calculation before emergence Ln-1
self.sheath_Lmax = None #: m, no calculation before emergence Ln-1
self.leaf_Wmax = None #: m, no calculation before emergence Ln-1
self.SSLW = None #: g m-2, no calculation before emergence Ln-1
self.LSSW = None #: g m-1, no calculation before emergence Ln-1 (about 2)
self.leaf_is_emerged = False
self.internode_Lmax = None #: m, no calculation before ligulation Ln
self.internode_Lmax_lig = None #: m, no calculation before ligulation Ln
self.LSIW = None #: g m-1, no calculation before ligulation Ln
self.internode_is_visible = False
self.leaf_pseudo_age = 0
self.internode_pseudo_age = 0
self.delta_leaf_pseudo_age = 0
self.delta_internode_pseudo_age = 0
self.hiddenzone_age = 0
self.is_over = False
self.leaf_is_remobilizing = False
self.internode_is_remobilizing = False
self.ratio_DZ = 1.0
# Default values used for RER calculation in elong wheat
self.sucrose = 5E-6 #: µmol C
self.amino_acids = 4E-6 #: µmol N
self.fructan = 0 #: µmol C - about 10% DM
self.leaf_enclosed_mstruct = 1.26E-07 #: g
self.internode_enclosed_mstruct = 0 #: g
self.mstruct = self.leaf_enclosed_mstruct + self.internode_enclosed_mstruct #: g
self.leaf_enclosed_Nstruct = self.leaf_enclosed_mstruct * 0.005 #: g, parameter value in growth wheat
self.internode_enclosed_Nstruct = self.internode_enclosed_mstruct * 0.0322 #: g, parameter value in growth wheat
self.Nstruct = self.leaf_enclosed_Nstruct + self.internode_enclosed_Nstruct #: g
self.proteins = 2.6E-03 #: µmol N - about 9% N
self.conc_cytokinins = 150 #: AU / g mstruct
self.mean_conc_sucrose = 0 #: µmol C / g mstruct
[docs]
class ElementInit(object):
"""
Initial values for emerged and growing elements
"""
def __init__(self):
self.is_growing = True
self.is_over = False
self.length = 0 #: m
self.Wmax = None # :m maximum lamina width (could store sheath and internode diameter as well)
self.senesced_length_element = 0 #: m
self.green_area = 0 #: m2
self.age = 0 #: Thermal Time
self.max_proteins = 0 #: µmol N
self.Nresidual = 0 #: g
self.sucrose = 0 #: µmol C
self.amino_acids = 0 #: µmol N
self.nitrates = 0 #: µmol N
self.fructan = 0 #: µmol C
self.starch = 0 #: µmol C
self.proteins = 0 #: µmol N
self.mstruct = 0 #: g
self.senesced_mstruct = 0 #: g
self.max_mstruct = 0 #: g
self.Nstruct = 0 #: g
self.cytokinins = 0 #: g