RUFAS.routines.field.soil.evaporation module#
- class RUFAS.routines.field.soil.evaporation.Evaporation(soil_data: SoilData | None, field_size: float | None = None)#
Bases:
object
Simulates the evaporation and transpiration from the soil profile as described in the ‘Soil Water Evaporation’ section (2:2.3.3.2) of the SWAT (Soil and Water Assessment Tool) Theoretical documentation.
Parameters#
- soil_dataSoilData, optional
An instance of SoilData for tracking the evaporation and transpiration from the soil profile. If not provided, a new instance will be created with the specified field size.
- field_sizefloat, optional
The size of the field (ha).
Attributes#
- dataSoilData
The SoilData object that stores and manages the water data within the soil profile.
- evaporate(maximum_soil_water_evaporation: float) None #
Evaporates water from the soil profile.
Parameters#
- maximum_soil_water_evaporationfloat
Maximum amount of water allowed to be evaporated from the soil profile on the current day (mm).
Notes#
This method takes in a maximum amount of water that may be evaporated from the soil profile, then iterates over the layers in the soil profile and determines how much to evaporate from that layer. If the amount determined to be evaporated would put the total amount of evaporation over the limit, the amount is reduced to meet the limit exactly and the loop is exited after evaporating the reduced amount from the current layer.
- static _determine_depth_evaporative_demand(max_soil_water_evaporation: float, depth: float) float #
Calculates evaporative demand.
Parameters#
- max_soil_water_evaporationfloat
Maximum soil water evaporation on a given day (mm).
- depthfloat
Depth below the surface (mm).
Returns#
- float
Evaporative demand at the given depth (mm).
References#
SWAT Theoretical documentation 2:2.3.16
- static _determine_layer_evaporative_demand(max_soil_water_evaporation: float, top_depth: float, bottom_depth: float, compensation: float) float #
Calculates the evaporative demand for a given layer of soil.
Parameters#
- max_soil_water_evaporationfloat
Maximum water evaporation from soil on given day (mm).
- top_depthfloat
Depth of top of layer to be analyzed (mm).
- bottom_depthfloat
Depth of bottom of layer to be analyzed (mm).
- compensationfloat
Soil evaporative compensation coefficient (unitless).
Returns#
- float
Evaporative demand for given layer of soil (mm).
References#
SWAT Theoretical documentation 2:2.3.16, 17
- static _determine_evaporative_demand_reduced(evaporative_demand: float, soil_water_content: float, field_water_content: float, wilting_water_content: float) float #
Calculates evaporative demand reduced for water content and field capacity.
Parameters#
- evaporative_demandfloat
Evaporative demand for current soil layer (mm).
- soil_water_contentfloat
Soil water content of given layer (mm).
- field_water_contentfloat
Field capacity water content of given layer (mm).
- wilting_water_contentfloat
Wilting point water content of given layer (mm).
Returns#
- float
Reduced evaporative demand for current layer based on how much water is in layer (mm).
References#
SWAT Theoretical documentation 2:2.3.18, 19
- static _determine_amount_water_removed(reduced_evaporative_demand, soil_water_content: float, wilting_water_content: float) float #
Calculates amount of water lost from soil layer from evaporation.
Parameters#
- reduced_evaporative_demandfloat
Evaporative demand reduced for water content and field capacity (mm).
- soil_water_contentfloat
Soil water content of given layer (mm).
- wilting_water_contentfloat
Wilting point water content of given layer (mm).
Returns#
- float
Amount of water removed from soil layer by evaporation (mm).
References#
SWAT Theoretical documentation 2:2.3.20