Learn R Programming

medfate (version 0.8.2)

spwb: Soil-plant water balance

Description

Function spwb() is a water balance model that determines changes in soil moisture, soil water potentials and plant transpiration and drought stress at daily steps for a given forest stand during a period specified in the input climatic data. Additionally, the function also calculates plant net photosynthesis. Function pwb() performs plant water balance only (i.e. soil moisture dynamics is an input) at daily steps for a given forest stand during a period specified in the input climatic data. On both simulation functions transpiration and photosynthesis processes are conducted with different level of detail depending on the transpiration mode.

Usage

spwb(x, soil, meteo,  latitude = NA, elevation = NA, slope = NA, aspect = NA)
pwb(x, soil, meteo, W, latitude = NA, elevation = NA, slope = NA, aspect = NA,
    canopyEvaporation = numeric(0), 
    snowMelt = numeric(0), 
    soilEvaporation = numeric(0))
spwb_resetInputs(x, soil, from = NULL, day = NA)

Arguments

x

An object of class spwbInput.

soil

A list containing the description of the soil (see soil).

meteo

A data frame with daily meteorological data series. Row names of the data frame should correspond to date strings with format "yyyy-mm-dd" (see Date). When using the 'Granier' transpiration mode the following columns are required:

  • MeanTemperature: Mean temperature (in degrees Celsius).

  • Precipitation: Precipitation (in mm).

  • Radiation: Solar radiation (in MJ/m2/day), required only if snowpack = TRUE.

  • PET: Potential evapotranspiration (in mm).

When using the 'Sperry' transpiration mode the following columns are required:

  • MeanTemperature: Mean temperature (in degrees Celsius).

  • MinTemperature: Minimum temperature (in degrees Celsius).

  • MaxTemperature: Maximum temperature (in degrees Celsius).

  • MinRelativeHumidity: Minimum relative humidity (in percent).

  • MaxRelativeHumidity: Maximum relative humidity (in percent).

  • Precipitation: Precipitation (in mm).

  • Radiation: Solar radiation (in MJ/m2/day).

  • WindSpeed: Wind speed (in m/s). If not available, this column can be left with NA values.

W

A matrix with the same number of rows as meteo and as many columns as soil layers, containing the soil moisture of each layer as proportion of field capacity.

latitude

Latitude (in degrees). Required when using the 'Sperry' transpiration mode.

elevation, slope, aspect

Elevation above sea level (in m), slope (in degrees) and aspect (in degrees from North). Required when using the 'Sperry' transpiration mode. Elevation is also required for 'Granier' if snowpack dynamics are simulated.

from

An object of class spwb storing the results of a previous simulation, including values of state variables. If from = NULL, state variables are set to their defaults (i.e. soil moisture set to field capacity and cumulative growth degree days set to zero).

day

An integer with the day from which state variable values stored in from should be copied. If missing, values are copied from the first day of stored values.

canopyEvaporation

A vector of daily canopy evaporation (from interception) values (mm). The length should match the number of rows in meteo.

soilEvaporation

A vector of daily bare soil evaporation values (mm). The length should match the number of rows in meteo.

snowMelt

A vector of daily snow melt values (mm). The length should match the number of rows in meteo.

Value

Function spwb returns a list of class 'spwb' whereas Function pwb returns a list of class 'pwb'. There are many elements in common in these lists, so they are listed here together:

  • "latitude": Latitude (in degrees) given as input.

  • "topography": Vector with elevation, slope and aspect given as input.

  • "spwbInput": An (unmodified) copy of the object x of class spwbInput given as input (note that x is modified by the simulation function).

  • "soilInput": An (unmodified) copy of the object soil of class soil given as input (note that soil is modified by the simulation function).

  • "WaterBalance": A data frame where different variables (in columns) are given for each simulated day (in rows):

    • "GDD": Cumulative growth degree days.

    • "LAIcell": The LAI of the stand (accounting for leaf phenology) (in m2/m2).

    • "Cm": The water retention capacity of the stand (in mm) (accounting for leaf phenology).

    • "Lground": The proportion of light that reaches the ground (accounting for leaf phenology).

    • "PET": Potential evapotranspiration (in mm).

    • "Precipitation": Input precipitation (in mm).

    • "Rain": Precipitation as rain (in mm).

    • "Snow": Precipitation as snow (in mm).

    • "NetRain": Net rain, after accounting for interception (in mm).

    • "Infiltration": The amount of water infiltrating into the soil (in mm).

    • "Runoff": The amount of water exported via surface runoff (in mm).

    • "DeepDrainage": The amount of water exported via deep drainage (in mm).

    • "Evapotranspiration": Evapotranspiration (in mm).

    • "SoilEvaporation": Bare soil evaporation (in mm).

    • "PlantExtraction": Amount of water extracted from soil by plants (in mm) (can only be diferent from transpiration for transpirationMode = "Sperry" when capacitance is considered).

    • "Transpiration": Plant transpiration (considering all soil layers) (in mm).

    • "HydraulicRedistribution": Water redistributed among soil layers, transported through the plant hydraulic network (only for transpirationMode = "Sperry").

  • "Soil": A data frame where different variables (in columns) are given for each simulated day (in rows):

    • "W.1", ..., "W.k": Relative soil moisture content (relative to field capacity) in each soil layer.

    • "ML.1", ..., "ML.k": Soil water volume in each soil layer (in L/m2).

    • "MLTot": Total soil water volume (in L/m2).

    • "SWE": Snow water equivalent (mm) of the snow pack.

    • "PlantExt.1", ..., "PlantExt.k": Plant extraction from each soil layer (in mm).

    • "HydraulicInput.1", ..., "HydraulicInput.k": Water that entered the layer coming from other layers and transported via the plant hydraulic network (in mm) (only for transpirationMode = "Sperry").

    • "psi.1", ..., "psi.k": Soil water potential in each soil layer (in MPa).

  • "PlantLAI": A data frame with the daily leaf area index for each plant cohort. Days are in rows and plant cohorts are in columns.

  • "PlantTranspiration": A data frame with the amount of daily transpiration (in mm) for each plant cohort. Days are in rows and plant cohorts are in columns.

  • "PlantPhotosynthesis": A data frame with the amount of daily net photosynthesis (in g C<U+00B7>m-2) for each plant cohort. Days are in rows and plant cohorts are in columns.

  • "PlantPsi": A data frame with the average daily water potential of each plant (in MPa). Days are in rows and plant cohorts are in columns. Columns in this data frame correspond to the elements in 'SP'.

  • "PlantStress": A data frame with the amount of daily stress [0-1] suffered by each plant cohort (relative whole-plant conductance). Days are in rows and plant cohorts are in columns.

  • "subdaily": A list of objects of class spwb_day, one per day simulated (only if required in control parameters, see defaultControl).

If transpirationMode=="Sperry" the list also includes the following elements:

  • "PlantAbsorbedSWR": A data frame with the daily SWR absorbed by each plant cohort. Days are in rows and plant cohorts are in columns.

  • "PlantAbsorbedLWR": A data frame with the daily LWR absorbed by each plant cohort. Days are in rows and plant cohorts are in columns.

  • "dEdP": A data frame with mean daily values of soil-plant conductance (derivative of the supply function) for each plant cohort. Days are in rows and plant cohorts in columns.

  • "EnergyBalance": A data frame with the daily values of energy balance components for the soil and the canopy.

  • "Temperature": A data frame with the daily values of minimum/mean/maximum temperatures for the atmosphere (input), canopy and soil.

  • "LeafPsiMin": A data frame with the minimum (midday) daily (average) leaf water potential of each plant (in MPa). Days are in rows and plant cohorts are in columns. Columns in this data frame correspond to the elements in 'SP'.

  • "LeafPsiMax": A data frame with the maximum (predawn) daily (average) leaf water potential of each plant (in MPa). Days are in rows and plant cohorts are in columns. Columns in this data frame correspond to the elements in 'SP'.

  • "LeafPsiMin_SL": A data frame with the minimum (midday) daily sunlit leaf water potential of each plant (in MPa). Days are in rows and plant cohorts are in columns. Columns in this data frame correspond to the elements in 'SP'.

  • "LeafPsiMax_SL": A data frame with the maximum (predawn) daily sunlit leaf water potential of each plant (in MPa). Days are in rows and plant cohorts are in columns. Columns in this data frame correspond to the elements in 'SP'.

  • "LeafPsiMin_SH": A data frame with the minimum (midday) daily shade leaf water potential of each plant (in MPa). Days are in rows and plant cohorts are in columns. Columns in this data frame correspond to the elements in 'SP'.

  • "LeafPsiMax_SH": A data frame with the maximum (predawn) daily shade leaf water potential of each plant (in MPa). Days are in rows and plant cohorts are in columns. Columns in this data frame correspond to the elements in 'SP'.

  • "LeafRWC": A data frame with the average daily leaf relative water content of each plant (in percent). Days are in rows and plant cohorts are in columns. Columns in this data frame correspond to the elements in 'SP'.

  • "StemPsi": A data frame with the minimum daily stem water potential of each plant (in MPa). Days are in rows and plant cohorts are in columns. Columns in this data frame correspond to the elements in 'SP'.

  • "StemPLC": A data frame with the average daily proportion of stem conductance loss of each plant ([0-1]). Days are in rows and plant cohorts are in columns. Columns in this data frame correspond to the elements in 'SP'.

  • "StemRWC": A data frame with the average daily stem relative water content of each plant (in percent). Days are in rows and plant cohorts are in columns. Columns in this data frame correspond to the elements in 'SP'.

  • "RootPsi": A data frame with the minimum daily root water potential of each plant (in MPa). Days are in rows and plant cohorts are in columns. Columns in this data frame correspond to the elements in 'SP'.

  • "RhizoPsi": A list of data frames (one per plant cohort) with the minimum daily root water potential of each plant (in MPa). In each data frame, days are in rows and layers are in columns.

Details

Detailed model description is available in the vignettes section. The model using 'Granier' transpiration mode is illustrated by function transp_transpirationGranier and described in De Caceres et al. (2015). Simulations using the 'Sperry' transpiration mode are computationally much more expensive and are illustrated by function transp_transpirationSperry. Function spwb_resetInputs() allows resetting state variables in x and soil to their defaults, or to copy values of state variables from a previous spwb() simulation results stored in from.

References

De C<U+00E1>ceres M, Mart<U+00ED>nez-Vilalta J, Coll L, Llorens P, Casals P, Poyatos R, Pausas JG, Brotons L. (2015) Coupling a water balance model with forest inventory data to predict drought stress: the role of forest structural changes vs. climate changes. Agricultural and Forest Meteorology 213: 77-90 (doi:10.1016/j.agrformet.2015.06.012).

See Also

spwbInput, spwb_day, plot.spwb, spwb_ldrOptimization, forest

Examples

Run this code
# NOT RUN {
#Load example daily meteorological data
data(examplemeteo)

#Load example plot plant data
data(exampleforest)

#Default species parameterization
data(SpParamsMED)

#Initialize soil with default soil params (2 layers)
examplesoil = soil(defaultSoilParams(2))

#Initialize control parameters
control = defaultControl()

#Initialize input
x1 = forest2spwbInput(exampleforest,examplesoil, SpParamsMED, control)

#Call simulation function
S1<-spwb(x1, examplesoil, examplemeteo, elevation = 100)
        
#Plot results
plot(S1)

#Monthly summary (averages) of soil water balance
summary(S1, freq="months",FUN=mean, output="Soil")


# }
# NOT RUN {
#Initialize soil with default soil params (2 layers)
examplesoil2 = soil(defaultSoilParams(2))

#Switch to 'Sperry' transpiration mode
control$transpirationMode="Sperry"

#Initialize input
x2 = forest2spwbInput(exampleforest,examplesoil2, SpParamsMED, control)

#Call simulation function (11 days)
d = 100:110
S2<-spwb(x2, examplesoil2, examplemeteo[d,], latitude = 41.82592, elevation = 100)

# Run the model with 'Sperry' transpiration mode using the water balance of 
# simulated with the 'Granier' model
P2<-pwb(x2, examplesoil2, examplemeteo[d,], latitude = 41.82592, elevation = 100, 
        W = as.matrix(S1$Soil[d, c("W.1", "W.2")]),
        canopyEvaporation = S1$WaterBalance$Interception[d],
        snowMelt = S1$WaterBalance$Snowmelt[d],
        soilEvaporation = S1$WaterBalance$SoilEvaporation[d])
# }
# NOT RUN {
# }

Run the code above in your browser using DataLab