Learn R Programming

TrenchR (version 1.1.1)

soil_temperature: Calculate Soil Temperature using ODEs

Description

This function is called to calculate soil temperature (C) as in Beckman1973;textualTrenchR. This function calls soil_temperature_function, which uses ODEs to calculate a soil profile using equations from deVries1963;textualTrenchR

Usage

soil_temperature(
  z_r.intervals = 12,
  z_r,
  z,
  T_a,
  u,
  Tsoil0,
  z0,
  SSA,
  TimeIn,
  S,
  water_content = 0.2,
  air_pressure,
  rho_so = 1620,
  shade = FALSE
)

Value

numeric soil temperature (C).

Arguments

z_r.intervals

numeric the number of intervals in the soil profile to calculate, defaults to 12.

z_r

numeric reference height (m).

z

numeric interval of the soil profile to return (1 to z_r.intervals).

T_a

numeric vector of air temperature (degrees C), Note: missing values will be linearly interpolated.

u

numeric vector of wind speeds (m s-1).

Tsoil0

numeric initial soil temperature (degrees C).

z0

numeric surface roughness (m).

SSA

numeric solar absorptivity of soil surface as a fraction.

TimeIn

numeric vector of time periods for the model.

S

numeric vector of solar radiation (W m-2).

water_content

numeric percent water content (percent).

air_pressure

numeric air pressure (kPa).

rho_so

numeric particle density of soil.

shade

logical whether or not soil temperature should be calculated in the shade.

Author

Joseph Grigg

References

See Also

Other soil temperature functions: soil_conductivity(), soil_specific_heat(), soil_temperature_equation(), soil_temperature_function(), soil_temperature_integrand()

Examples

Run this code
  set.seed(123)
  temp_vector       <- runif(48, min = -10, max = 10)
  wind_speed_vector <- runif(48, min = 0, max = 0.4)
  time_vector       <- rep(1:24, 2)
  solrad_vector     <- rep(c(rep(0, 6), 
                             seq(10, 700, length.out = 6), 
                             seq(700, 10, length.out = 6), 
                             rep(0, 6)),
                           2)

  soil_temperature(z_r.intervals = 12, 
                   z_r           = 1.5, 
                   z             = 2, 
                   T_a           = temp_vector, 
                   u             = wind_speed_vector, 
                   Tsoil0        = 20, 
                   z0            = 0.02, 
                   SSA           = 0.7, 
                   TimeIn        = time_vector, 
                   S             = solrad_vector, 
                   water_content = 0.2, 
                   air_pressure  = 85, 
                   rho_so        = 1620, 
                   shade         = FALSE)

Run the code above in your browser using DataLab