swb — Calculation of soil water balance

class swb.SoilWaterBalance(fc, wp, rd, kc, p, precipitation, evapotranspiration, irrigation_efficiency, rd_factor=1)

Calculates soil water balance. The init parameters provide values for some of the attributes (see below). The heart of the class is the root_zone_depletion() method; see its documentation for the methodology used.

evapotranspiration

A Timeseries object with a daily evapotranspiration series; provided at class initialization time.

fc

The field capacity, provided at class initialization time.

irrigation_efficiency

Irrigation method efficiency factor, provided at class initialization.

kc

The crop coefficient, provided at class initialization time.

p

The crop depletion fraction, i.e. RAW/TAW, provided at class initialization time.

precipitation

A Timeseries object with a daily precipitation series; provided at class initialization time.

raw

The readily available water:

raw = p * taw
rd

The crop root depth, provided at class initialization time. It can be in any unit of length. If it is in a different unit than water depth variables (such as evapotranspiration, precipitation, irrigation and depletion) rd_factor is used to convert it.

rd_factor

If the root depth is in a different unit than the water depth variables (such as evapotranspiration, precipitation, irrigation and depletion) rd_factor is used to convert it. If the root depth is in metres and the water depth variables are in mm, specify rd_factor=1000. Provided at class initialization time.

taw

The total available water:

taw = (fc - wp) * rd * rd_factor
wp

The wilting point, provided at class initialization time.

depletion_report

A list with the intermediate calculations made by root_zone_depletion(). Before the first time the method is called, it is an empty list.

root_zone_depletion(start_date, initial_soil_moisture, end_date)

This method calculates, in a simplified way, the root zone depletion. The basis for the calculation is this formula:

Dr,i = Dr,i-1 - (Pi - ROi) - IRn,i - CRi + ETc,i + DPi

(FAO56, p. 170 eq. 85)

where:

  • i is the current time period (i.e. the current day).
  • Dr,i is the root zone depletion at the end of the previous time period.
  • Pi is the precipitation.
  • ROi is the runoff.
  • IRn,i is the net irrigation depth.
  • CRi is the capillary rise.
  • ETc,i is the crop evapotranspiration.
  • DPi is the water loss through deep percolation.

with the following limits imposed on Dr,i:

0 <= Dr,i <= taw

(FAO56, p. 170 eq. 86)

ROi, CRi and DPi are ignored and considered zero. The equation therefore becomes:

Dr,i = Dr,i-1 - Pi - IRn,i + ETc,i

ETc,i is calculated using crop coefficient approach by multiplying evapotranspiration by crop coefficient kc.

The essential simplifying assumption of this method is that each time we irrigate we reach field capacity (i.e. zero depletion). Therefore, at the last irrigation date we have i=1 and Dr,1=0. The equation then becomes:

Dr,i = Dr,i-1 - Pi + ETc,i

(we do not use IRn,i, since, if we irrigated, according to our assumption, we would restart with i=1 and Dr,1=0).

The point i=1 is specified by start_date, which is a datetime object. The initial_soil_moisture will usually equal fc (this, according to the essential simplifying assumption, means that the crop was irrigated on start_date). However, if the crop has not been irrigated recently, initial_soil_moisture will be set to another value (such as a soil moisture measurement made at start_date).

Soil moisture and depletion are related with this formula:

moisture = fc - depletion / (rd * rd_factor)

(FAO56, p. 170 eq. 87)

so, since the initial_soil_moisture is given, Dr,1 is also known.

The method returns the root zone depletion for end_date in millimeters (mm). precipitation and evaporation must have non-null records for all days from the day following start_date to end_date.

irrigation_water_amount(start_date, initial_soil_moisture, end_date)

This method calculates irrigation water needs based on root_zone_depletion() and irrigation_efficiency factor (i.e. drip, sprinkler).

The method returns irrigation water needs for end_date in millimeters (mm).

ks_calc(depletion)

This method calculates the dimensionless transiration reduction factor, Ks, that depends on the available soil water taw and raw (FAO56, p. 169 eq. 84). When root_zone_depletion() is smaller than raw, Ks is equal to 1.

taw_percents(soil_moisture)

This method calculates the percents of taw and raw respectively, given available soil moisture conditions.

References

R. G. Allen, L. S. Pereira, D. Raes, and M. Smith, Crop evapotranspiration - Guidelines for computing crop water requirements, FAO Irrigation and drainage paper no. 56, 1998.