This script is designed to create parameter files containing soil contribution and tolerance for each PFG (one file for each of them) used in the soil module of FATE.

PRE_FATE.params_PFGsoil(
  name.simulation,
  mat.PFG.soil,
  mat.PFG.tol = NULL,
  opt.folder.name = NULL
)

Arguments

name.simulation

a string corresponding to the main directory or simulation name of the FATE simulation

mat.PFG.soil

a data.frame with 3 to 7 columns :

  • PFG,

  • type, (or active_germ_low, active_germ_medium, active_germ_high) (or strategy_ag)

  • soil_contrib, soil_tol_min, soil_tol_max (or strategy_contrib)

(see Details)

mat.PFG.tol

(optional)
a data.frame with 2 to 4 columns :

  • PFG,

  • lifeStage, resources, tolerance (or strategy_tol)

(see Details)

opt.folder.name

(optional)
a string corresponding to the name of the folder that will be created into the name.simulation/DATA/PFGS/SOIL/ directory to store the results

Value

A .txt file per PFG into the name.simulation/DATA/PFGS/SOIL/ directory with the following parameters :

NAME

name of the PFG

ACTIVE_GERM

germination rates depending on soil conditions
(integer between 0 and 100%)

SOIL_CONTRIB

contribution to the soil value of the pixel

SOIL_LOW

lower value of soil supported by the PFG,
defining the limit between Low and Medium soil resources for this PFG

SOIL_HIGH

upper value of soil supported by the PFG,
defining the limit between Medium and High soil resources for this PFG

SOIL_TOL

soil tolerance table (in a single row).
This is a vector of 9 numbers corresponding to the ability of the PFG to survive or not :

  • at different life stages (Germinant (Ge), Immature (Im), Mature (Ma))

  • under different soil conditions (Low (L), Medium (M) or High (H)).

These parameters should be given in this order : GeL, GeM, GeH, ImL, ImM, ImH, MaL, MaM, MaH
(integer between 0 and 100%).

A SOIL_COMPLETE_TABLE.csv file summarizing information for all groups into the name.simulation/DATA/PFGS/ directory.

If the opt.folder.name has been used, the files will be into the folder name.simulation/DATA/PFGS/SOIL/opt.folder.name/.

Details

The soil module allows the user to add the effect of soil interaction within a primary vegetation succession.

Several parameters, given within mat.PFG.soil or mat.PFG.tol, are required for each PFG in order to set up the soil interaction :

PFG

the concerned plant functional group

type

or life-form, based on Raunkier.
It should be either H (herbaceous), C (chamaephyte) or P (phanerophyte) for now

(active_germ_low)

an integer between 0 and 100 corresponding to the proportion of seeds that will germinate for Low soil condition

(active_germ_medium)

an integer between 0 and 100 corresponding to the proportion of seeds that will germinate for Medium soil condition

(active_germ_high)

an integer between 0 and 100 corresponding to the proportion of seeds that will germinate for High soil condition

(strategy_ag)

a string to choose the germination strategy :
poor_lover, indifferent, rich_lover

soil_contrib

a value corresponding to the PFG preference for soil fertility
(e.g. nitrogen value from Ellenberg or Flora Indicativa)

soil_tol_min

the minimum soil value tolerated by the PFG (on the same scale than soil_contrib)

soil_tol_max

the maximum soil value tolerated by the PFG (on the same scale than soil_contrib)

(strategy_contrib)

a string to choose the contribution strategy :
oligotrophic, mesotrophic, eutrophic

lifeStage

the concerned life stage (Germinant, Immature, Mature)

resources

the concerned soil condition (Low, Medium, High)

tolerance

an integer between 0 and 100 corresponding to the proportion of surviving individuals

(strategy_tol)

a string to choose the tolerance strategy :
poor_lover, ubiquist, rich_lover

These values will allow to calculate or define a set of characteristics for each PFG :

ACTIVE_GERM

proportion of seeds that will germinate for each soil condition (Low, Medium, High)

Three methods to define these proportions are available :

  • from predefined scenarios (using strategy_ag) :

    | _L_ _M_ _H_ |
    _______________
    | 80% 90% 50% | poor_lover
    | 90% 90% 90% | indifferent
    | 50% 90% 80% | rich_lover

  • from predefined rules (using type) :

    • for H (herbaceous) : 80%, 100%, 50%

    • for C (chamaephyte) or P (phanerophyte) : 90%, 100%, 90%

  • from user data :
    with the values contained within the active_germ_low, active_germ_medium and active_germ_high columns, if provided

SOIL_CONTRIB
SOIL_LOW
SOIL_HIGH

Two methods to define these values are available :

  • from predefined scenarios (using strategy_contrib) :

    • the values give the soil_tol_min, soil_contrib and soil_tol_max

    • with L: low soil, M: medium soil, H: high soil

    | ___ L ___ | ___ M ___ | ___ H ___ |
    _____________________________________
    __________ 1 ___ 1.5 ___ 2 __________ oligotrophic
    __________ 1.5 _ 2.5 _ 4.5 __________ mesotrophic
    __________ 3 ____ 4 ____ 5 __________ eutrophic

  • from user data :
    with the values contained within the soil_contrib, soil_tol_min and soil_tol_max columns, if provided

SOIL_TOL

defined for each life stage (Germinant, Immature, Mature)
and each soil condition (Low, Medium, High)

Three methods to define these tolerances are available :

  • from predefined scenarios (using strategy_tol) :

    • the values give the percentage of surviving individuals to the concerned conditions

    • with g: Germinant, i: Immature, m: Mature

    • with L: low soil, M: medium soil, H: high soil

    | _____ g ____ | _____ i ____ | _____ m ____ |
    | _L__ _M_ _H_ | _L__ _M_ _H_ | _L__ _M_ _H_ |
    ______________________________________________
    | 30% 100% 10% | 60% 100% 40% | 90% 100% 70% | poor_lover
    | 90% 100% 80% | 90% 100% 80% | 90% 100% 80% | ubiquist
    | 10% 100% 30% | 40% 100% 60% | 70% 100% 90% | rich_lover

  • from predefined rules (corresponding to the poor_lover strategy) :

    (A)

    germinants are severely impacted by wrong soil conditions

    (B)

    immatures are half impacted by wrong soil conditions

    (C)

    matures are little impacted by wrong soil conditions

    (D)

    for all life stages, not enough is better than too much

    • the values give the percentage of surviving individuals to the concerned conditions

    • with g: Germinant, i: Immature, m: Mature

    • with L: low soil, M: medium soil, H: high soil

    | _____ g ____ | _____ i ____ | _____ m ____ |
    | _L__ _M_ _H_ | _L__ _M_ _H_ | _L__ _M_ _H_ |
    ______________________________________________
    | 30% 100% 10% | 60% 100% 40% | 90% 100% 70% |

  • from user data :
    with the values contained within the lifeStage, resources and tolerance columns, if provided

Author

Maya Guéguen

Examples


                                                    
## Create a skeleton folder with the default name ('FATE_simulation')
PRE_FATE.skeletonDirectory()

## Create PFG soil parameter files (with strategies) -----------------------------------------
tab.soil = data.frame(PFG = paste0('PFG', 1:6)
                      , strategy_ag = c('rich_lover', 'indifferent' , 'indifferent'
                                        , 'rich_lover', 'indifferent', 'poor_lover')
                      , strategy_contrib = c('eutrophic', 'mesotrophic', 'mesotrophic'
                                             , 'mesotrophic', 'mesotrophic', 'oligotrophic'))
tab.tol = data.frame(PFG = paste0('PFG', 1:6)
                     , strategy_tol = c('rich_lover', 'ubiquist', 'poor_lover'
                                        , 'ubiquist', 'poor_lover', 'poor_lover'))

PRE_FATE.params_PFGsoil(name.simulation = 'FATE_simulation'
                        , mat.PFG.soil = tab.soil
                        , mat.PFG.tol = tab.tol)
                                                        

## Create PFG soil parameter files (with all values) -----------------------------------------
tab.soil = data.frame(PFG = paste0('PFG', 1:6)
                      , active_germ_low = c(50, 80, 80, 60, 80, 80)
                      , active_germ_medium = rep(90, 6)
                      , active_germ_high = c(90, 80, 80, 90, 80, 40)
                      , strategy_contrib = c('eutrophic', 'mesotrophic', 'mesotrophic'
                                             , 'mesotrophic', 'mesotrophic', 'oligotrophic'))
tab.tol = expand.grid(resources = c('Low', 'Medium', 'High')
                      , lifeStage = c('Germinant', 'Immature', 'Mature')
                      , PFG = paste0('PFG', 1:6))
tab.tol$tolerance = c(80, 80, 40, 80, 50, 40, 90, 40, 40
                      , rep(90, 9)
                      , rep(90, 9)
                      , 80, 80, 60, 80, 60, 60, 90, 50, 50
                      , 80, 80, 80, 50, 60, 90, 30, 40, 90
                      , 80, 80, 80, 50, 50, 90, 50, 50, 90)

PRE_FATE.params_PFGsoil(name.simulation = 'FATE_simulation'
                        , mat.PFG.soil = tab.soil
                        , mat.PFG.tol = tab.tol)
                                                        
                                                        
## -------------------------------------------------------------------------------------------

## Load example data
Champsaur_params = .loadData('Champsaur_params', 'RData')

## Create a skeleton folder
PRE_FATE.skeletonDirectory(name.simulation = 'FATE_Champsaur')


## PFG traits for light
tab.soil = Champsaur_params$tab.SOIL
str(tab.soil)

## Create PFG soil parameter files -----------------------------------------------------------
PRE_FATE.params_PFGsoil(name.simulation = 'FATE_Champsaur'
                           , mat.PFG.soil = tab.soil)