calcWatBal {AquaBEHER}R Documentation

Soil Water Balance


Function to estimate a budget-based daily soil water balance. It calculates the amount of water present in the root zone of a homogeneous grass canopy growing on a well-drained and homogeneous soil.


calcWatBal(data, soilWHC)



a dataframe containing the required variables: Columns must contain the following parameters:

   Lat: latitude of the site in decimal degrees.
   Lon: longitude of the site in decimal degrees.
   Elev: elevation above sea level in (meters).
   Year: year of record "YYYY".
   Month: month of record "MM".
   Day: day of record "DD".
   Rain: daily rainfall in (mm).
   Eto: daily potential evapotranspiration in (mm).

⁠ ⁠Water holding capacity of the soil in (mm).


The function generates a data frame containing the following components:

DRAIN: amount of deep drainage in (mm).

TRAN: amount of water lost by transpiration in (mm).

RUNOFF: surface runoff in (mm).

AVAIL: available soil moisture storage in (mm).

R: actual-to-potential evapotranspiration ratio.


Allen, R.G.; Pereira, L.S.; Raes, D.; Smith, M. Crop Evapotranspiration: Guidelines for Computing Crop Water Requirements; FAO Irrigation and Drainage Paper no. 56; FAO: Rome, Italy, 1998; ISBN 92-5-104219-5.

Doorenbos, J. and Pruitt, W.O. 1975. Guidelines for predicting crop water requirements, Irrigation and Drainage Paper 24, Food and Agriculture Organization of the United Nations, Rome, 179 p.

See Also

calcEto, calcSeasCal


# load example data:

# Estimate daily PET:
PET <- calcEto(AgroClimateData, method = "PM", Zh = 10)

# Add the estimated PET 'ET.Daily' to a new column in AgroClimateData:
AgroClimateData$Eto <- PET$ET.Daily

# Estimate daily water balance for the soil having 100mm of WHC:
watBal<- calcWatBal(AgroClimateData, soilWHC = 100)

# Visualizing water balance parameters for 2019/20 season
watBal.19T20 <- watBal[watBal$Year %in% c(2019, 2020),]
date.vec <- as.Date.character(paste0(watBal.19T20$Year, "-",
                                     watBal.19T20$Month, "-",

plot(y = watBal.19T20$AVAIL, x = date.vec, ty="l", col="black", xlab="",
ylab=" Water (mm)",
       main="Daily Water Balance Parameters", lwd = 1, lty = 2)
 lines(y = watBal.19T20$Eto, x = date.vec, col="red", lwd = 3, lty = 1)
 lines(y = watBal.19T20$Rain, x = date.vec, col="blue", lwd = 1, lty = 1)

  legend("bottomright",c("Rain","Eto","Available Moisture"),
        horiz=FALSE, bty='n', cex=1.2,lty=c(1,1,2),lwd=c(1,3,1),
        xpd=TRUE, col=c("blue","red","black"))

[Package AquaBEHER version 0.1.0 Index]