Create vegetation parameters

AUTHORS: Julien Ruffault (julien.ruff@gmail.com), Nicolas Martin-StPaul (nicolas.martin@inrae.fr)

source

create_vegetation_parameters

 create_vegetation_parameters (stand_parameters:Dict,
                               soil_parameters:Dict,
                               file_path:pathlib.Path=None,
                               list_of_parameters:List=None,
                               modeling_options:Dict=None, sep:str=';')

Create a dictionary with the vegetation parameters to run

Type Default Details
stand_parameters typing.Dict Dictionary created using the create_stand_parameters function
soil_parameters typing.Dict Dictionary created using the create_soil_parameters function
file_path Path None Path to a csv file trait parameters. Check read_vegetation_file for more information i.e path/to/parameter_values.csv
list_of_parameters typing.List None A list containing the necessary input parameters instead of reading them in file. Will only be used if ‘file_path’ arguement is not provided
modeling_options typing.Dict None Dictionary created using the create_modeling_options function
sep str ; CSV file separator can be ‘,’ or ‘;’
Returns typing.Dict Dictionary containing parameters to run the model

List of traits required:

term_in_code term_in_paper Definition Units
P50_VC_Leaf ψ50,L Water potential causing 50% Cavitation in the vulnerability curve MPa
slope_VC_Leaf slopeL Slope of rate of leaf embolism spread at ψ50,L %/MPa
epsilonSym_Leaf εL Modulus of elasticity of the leaf symplasm MPa
PiFullTurgor_Leaf π0L Osmotic potential at full turgor of the leaf symplasm MPa
apoFrac_Leaf αLApo Apoplasmic Fraction in leaves/Leaf apoplasmic fraction Unitless
LDMC LDMC Leaf dry matter content (dry mass over saturated mass) mgMS/g??
LMA LMA Leaf mass per area g/m2leaf
K k Light extinction coefficient of the vegetation layer unitless
k_PlantInit not found Hydaulic conductance of the plant from soil to leaves mmol/MPa/s/m2leaf?
gmin20 gcuti20 Minimum conductance (gmin) at the reference temperature. mmol/m2leaf/s-1
TPhase_gmin TPhase Temperature for phase transition of minimum conductance/Temperature for transition phase of gcuti degC
Q10_1_gmin Q10a Q10 value for gmin = f(T) <= Tphase_gmin/ Temperature dependance of gcuti when T ≤ TPhase unitless
Q10_2_gmin Q10b Q10 value for gmin = f(T) > Tphase_gmin/ Temperature dependance of gcuti when T > TPhase unitless
gmin_S not found conductance (gmin) of the stem Unitless??
canopyStorageParam cws Depth of water that can be retained by leaves and trunks per unit of leaf area index (used to compute the canopy water storage capacity as a function of LAI l/m2leaf
rootRadius dR radius of roots meters
fRootToLeaf RaLa Root-to-leaf area ratio unitless
betaRootProfile β parameter for the distribution of roots in the soil unitless
PiFullTurgor_Stem π0S Osmotic potential at full turgor of the stem symplasm MPa
epsilonSym_Stem εS Modulus of elasticity of the stem symplasm MPa
apoFrac_Stem αSApo Stem apoplasmic fraction of the wood water volume Unitless
symFrac_Stem αSSym Stem symplasmic fraction of the wood water volume Unitless
vol_Stem VS Volume of tissue of the stem (includes the root, trunk and branches) L m−2 soil
fTRBToLeaf not found Definition not found
C_LApoInit CLApo Capacitance of the leaf apoplasm mmol m−2 leaf MPa−1
C_SApoInit CSApo Capacitance of the stem apoplasm mmol m−2 leaf MPa−1
P50_VC_Stem ψ50,S Water potential causing 50 % loss of stem hydraulic conductance MPa
slope_VC_Stem slopeS Slope of rate of stem embolism spread at ψ50,S % MPa−1
k_SSymInit not found Definition not found not found
foliage not found Definition not found Not applicable
not found t0 Initial date of the forcing period for leaf phenology DOY
not found TD Minimum temperature to start cumulating temperature for budburst ◦C
not found F∗ Amount of forcing temperature to reach budburst ◦C
RAI RLAI LAI growth rate per day LAI d−1
k_RSApoInit KR-SApo,max Maximum conductance from the root surface to the stem apoplasm mmol m−2 leaf s −1 MPa−1
k_SLApoInit KSApo−LApo,max Maximum conductance from trunk apoplasm to the leaf apoplasm mmol m−2 leaf s −1 MPa−1
not found KSSym Conductance from the stem apoplasm to stem symplasm mmol m−2 leaf s −1 MPa−1
k_LSymInit KLSym Conductance from the leaf apoplasm to leaf symplasm mmol m−2 leaf s −1 MPa−1
not found Succulence Leaf succulence (water content per unit of leaf area) g m−2 leaf
P50_gs ψgs50 Water potential causing 50 % stomatal closure MPa
not found slopegs Rate of decrease in stomatal conductance at ψgs,50 % MPa−1
not found gstom_min Minimum stomatal conductance mmol m−2 leaf s −1
not found gstom_max Maximum stomatal conductance mmol m−2 leaf s −1
not found δ Response of gstom to light unitless
not found Toptim Temperature at maximal stomatal conductance ◦C
not found Tsens Stomatal sensitivity to temperature ◦C
not found θs Soil water content at saturation unitless
not found θr Residual soil water content unitless
not found α Inverse of the air entry potential 1/MPa
not found n Pore size distribution index unitless
not found I Shape parameter for the Van Genuchten equation unitless
not found ksat Soil hydraulic conductivity at saturation mmol m−1 soil s −1 MPa−1
not found gsoil0 Reference soil conductance to water vapor mmol m−2 soil s −1

Example: Create vegetation parameters dictionary

modeling_options_dict = create_modeling_options(
    time_step_for_evapo=2,
    reset_swc=True,
    avoid_water_soil_transfer=True,
    constant_climate=False,
    defoliation=True,
    soil_evapo=True,
    threshold_mortality=51,
    etp_formulation="pt",
    rn_formulation="linear",
    comp_options_for_evapo="custom",
    stomatal_reg_formulation="sigmoid",
    transpiration_model="jarvis",
    numerical_scheme="implicit",
    pedo_transfer_formulation="campbell",
)
modeling_options_dict
defaultdict(list,
            {'constant_climate': False,
             'etp_formulation': 'pt',
             'rn_formulation': 'linear',
             'pedo_transfer_formulation': 'campbell',
             'time_step_for_evapo': 2,
             'time': array([ 0,  2,  4,  6,  8, 10, 12, 14, 16, 18, 20, 22]),
             'reset_swc': True,
             'avoid_water_soil_transfer': True,
             'comp_options': defaultdict(list,
                         {'numerical_scheme': 'implicit',
                          'nsmalltimesteps': 12.0,
                          'lsym': 1,
                          'ssym': 1,
                          'clapo': 1,
                          'ctapo': 1,
                          'eord': 1,
                          'lcav': 1,
                          'scav': 1}),
             'stomatal_reg_formulation': 'sigmoid',
             'soil_evapo': True,
             'defoliation': True,
             'threshold_mortality': 51,
             'transpiration_model': 'jarvis',
             'print_prog': True})
stand_params = create_stand_parameters(
    file_path="./sample_data/stand_example.csv",
    lai_max=None,
    latitude=None,
    longitude=None,
    sep=";",
)
stand_params
defaultdict(list, {'lai_max': 4.5, 'latitude': 48.73, 'longitude': 6.23})
soil_params = create_soil_parameters(
    file_path="./sample_data/soil_example.csv",
    modeling_options=modeling_options_dict,
    default_soil=False,
    offset_psoil=1,
    psoil_at_field_capacity=-1,
)
soil_params
There is an offset on Psoil of 1 MPa
Psoil at field capacity = -0.001 MPa
You are using campbell pedotransfer formulation
Available water capacity Wilting: 273.74477742718403 mm
Available water capacity Residual: 307.81195119276424 mm
Can soil_params["v_soil_storage_capacity"] be negative?? Ask
defaultdict(list,
            {'offset_psoil': 1,
             'psoil_at_field_capacity': -0.001,
             'pedo_transfer_formulation': 'campbell',
             'soil_depths': array([0.2, 1. , 4. ]),
             'layer_thickness': array([0.2, 0.8, 3. ]),
             'g_soil_0': 30.0,
             'rock_fragment_content': array([75., 82., 94.]),
             'b_campbell': array([-4., -4., -4.]),
             'psie': array([-0.025, -0.025, -0.025]),
             'ksat_campbell': 1.69,
             'saturation_capacity_campbell': array([0.39, 0.39, 0.39]),
             'wilting_point': array([0.1401286, 0.1401286, 0.1401286]),
             'field_capacity': array([0.87206651, 0.87206651, 0.87206651]),
             'residual_capacity_campbell': array([0.0490399, 0.0490399, 0.0490399]),
             'v_field_capacity': array([ 43.60332556, 125.57757762, 156.97197202]),
             'v_saturation_capacity_campbell': array([19.5 , 56.16, 70.2 ]),
             'v_residual_capacity_campbell': array([2.45199519, 7.06174614, 8.82718268]),
             'v_wilting_point': array([ 7.00643018, 20.17851893, 25.22314866]),
             'v_saturation_capacity': array([19.5 , 56.16, 70.2 ]),
             'v_soil_storage_capacity_wilt_campbell': 273.74477742718403,
             'v_soil_storage_capacity_res_campbell': 307.81195119276424,
             'v_soil_storage_capacity': 273.74477742718403})
create_vegetation_parameters(
    file_path="./sample_data/vegetation_example_wide.csv",
    list_of_parameters=None,
    soil_parameters=soil_params,
    stand_parameters=stand_params,
    modeling_options=modeling_options_dict,
    sep=",",
)
frac_leaf_sym' set to 0.4
Available water capacity @Tlp (Campbell):280.7301527422195 mm
Available water capacity @P50 (Campbell):283.4407203700769 mm
/workspaces/sureau_ecos_py/sureau_ecos_py/plant_utils.py:894: UserWarning: Foliage evergreen has no params
  warnings.warn("Foliage evergreen has no params")
/tmp/ipykernel_26798/1456394742.py:82: UserWarning: Make sure that depth from soil_parameters is in meters
  warnings.warn("Make sure that depth from soil_parameters is in meters")
defaultdict(list,
            {'c_lapoinit': 1e-05,
             'c_sapoinit': 2e-05,
             'fcrit': 450,
             'foliage': 'evergreen',
             'jarvis_par': 0.006,
             'k': 0.5,
             'k_plantinit': 0.62,
             'k_ssyminit': 0.26,
             'ldmc': 570,
             'lma': 106,
             'p12_gs': -2.07,
             'p50_vc_leaf': -3.4,
             'p50_vc_stem': -3.4,
             'p88_gs': -2.62,
             'pt_coeff': 1.14,
             'pifullturgor_leaf': -2.1,
             'pifullturgor_stem': -2.1,
             'psi_close': -2,
             'psi_start_closing': -0.5,
             'q10_1_gmin': 1.2,
             'q10_2_gmin': 4.8,
             'tphase_gmin': 37.5,
             'tbase': 3,
             'tgs_optim': 25,
             'tgs_sens': 17,
             'apofrac_leaf': 0.4,
             'apofrac_stem': 0.4,
             'betarootprofile': 0.97,
             'canopystorageparam': 1.5,
             'daystart': 55,
             'epsilonsym_leaf': 10,
             'epsilonsym_stem': 10,
             'froottoleaf': 1,
             'ftrbtoleaf': 0.8,
             'g_crown0': 45,
             'gmin20': 4,
             'gmin_s': 3,
             'gs_max': 200,
             'gs_night': 20,
             'nbdaylai': 21,
             'rootradius': 0.0002,
             'slope_vc_leaf': 60,
             'slope_vc_stem': 60,
             'symfrac_stem': 0.2,
             'turgor_pressure_at_gs_max': 2,
             'vol_stem': 40,
             'frac_leaf_sym': 0.4,
             'p50_gs': -2.3449999999999998,
             'slope_gs': 181.81818181818173,
             'lai_max': 4.5,
             'root_distribution': array([0.45620566, 0.49624184, 0.04755251]),
             'taw_at_tlp': 280.7301527422195,
             'taw_at_p50': 283.4407203700769,
             'la': array([1633.66617127, 1777.03517271,  170.28487559]),
             'lv': array([32673.32342536, 12340.52203273,   946.02708659]),
             'k_slapo_init': 3.1,
             'k_rsapo_init': array([0.70711877, 0.76917484, 0.07370639]),
             'k_lsym_init': 1.5499999999999998,
             'k_plant_init': 0.62})