API for the constants module

The constants module contains a set of dataclasses containing and parameters required by the hydrology_model. These parameters are constants in that they should not be changed during a particular simulation.

TODO Soil parameters vary strongly with soil type and will require literature search and sensitivity analysis to produce meaningful results. The current default values are just examples within reasonable bounds.

Classes:

HydroConsts([soil_moisture_capacity, ...])

Dataclass to store all constants for the hydrology model.

class virtual_ecosystem.models.hydrology.constants.HydroConsts(soil_moisture_capacity: float = 0.9, soil_moisture_residual: float = 0.1, hydraulic_conductivity: float = 0.001, hydraulic_gradient: float = 0.01, nonlinearily_parameter: float = 2.0, soil_surface_heat_transfer_coefficient: float = 12.5, stream_flow_capacity: float = 5000.0, intercept_parameters: tuple[float, float, float] = (0.935, 0.498, 0.00575), veg_density_param: float = 0.046, groundwater_capacity: float = 500, infiltration_shape_parameter: float = 1.0, air_entry_water_potential: float = -3.815, water_retention_curvature: float = -7.22, extinction_coefficient_global_radiation: float = 0.7, max_percolation_rate_uzlz: float = 1, groundwater_loss: float = 1, reservoir_const_upper_groundwater: float = 20, reservoir_const_lower_groundwater: float = 20)

Dataclass to store all constants for the hydrology model.

Methods:

__init__([soil_moisture_capacity, ...])

Attributes:

air_entry_water_potential

Water potential at which soil pores begin to aerate, [kPa].

extinction_coefficient_global_radiation

Extinction coefficient for global radiation, [unitless].

groundwater_capacity

Ground water storage capacity, [mm].

groundwater_loss

Constant ground water loss, [mm].

hydraulic_conductivity

Hydraulic conductivity, [m s-1].

hydraulic_gradient

The hydraulic gradient, [m m-1].

infiltration_shape_parameter

Empirical infiltration shape parameter, unitless.

intercept_parameters

Interception parameters.

max_percolation_rate_uzlz

Maximum percolation rate between upper and lower groundwater zone, [mm d-1]

nonlinearily_parameter

Nonlinearity parameter n (dimensionless) in Mualem-van Genuchten model.

reservoir_const_lower_groundwater

Reservoir constant for the lower groundwater layer, [days]

reservoir_const_upper_groundwater

Reservoir constant for the upper groundwater layer, [days]

soil_moisture_capacity

Soil moisture capacity, unitless.

soil_moisture_residual

Residual soil moisture, unitless.

soil_surface_heat_transfer_coefficient

Heat transfer coefficient from soil to atmosphere above, [W m-2 K-1].

stream_flow_capacity

Stream flow capacity, [mm per timestep].

veg_density_param

Parameter to estimate vegetation density for maximum canopy interception.

water_retention_curvature

Curvature of the water retention curve.

__init__(soil_moisture_capacity: float = 0.9, soil_moisture_residual: float = 0.1, hydraulic_conductivity: float = 0.001, hydraulic_gradient: float = 0.01, nonlinearily_parameter: float = 2.0, soil_surface_heat_transfer_coefficient: float = 12.5, stream_flow_capacity: float = 5000.0, intercept_parameters: tuple[float, float, float] = (0.935, 0.498, 0.00575), veg_density_param: float = 0.046, groundwater_capacity: float = 500, infiltration_shape_parameter: float = 1.0, air_entry_water_potential: float = -3.815, water_retention_curvature: float = -7.22, extinction_coefficient_global_radiation: float = 0.7, max_percolation_rate_uzlz: float = 1, groundwater_loss: float = 1, reservoir_const_upper_groundwater: float = 20, reservoir_const_lower_groundwater: float = 20) None
air_entry_water_potential: float = -3.815

Water potential at which soil pores begin to aerate, [kPa].

The constant is used to estimate soil water potential from soil moisture. As this estimation is a stopgap this constant probably shouldn’t become a core constant. The value is the average across all soil types found in Cosby et al. (1984). In future, this could be calculated based on soil texture.

extinction_coefficient_global_radiation: float = 0.7

Extinction coefficient for global radiation, [unitless].

This constant is used to reduce potential evaporation for bare soil to maximum shaded evaporation in :func:~virtual_ecosystem.models.hydrology.above_ground.calculate_soil_evaporation`. Typical values are 0.4 to 0.7 for monocotyledons and 0.65 to 1.1 for broad leaved dicotyledons Monteith (1969). The extinction coefficient can be estimated from measurements of PAR above and below a canopy with a known LAI.

groundwater_capacity: float = 500

Ground water storage capacity, [mm].

This parameter indicates how much water can be stored in the ground water reservoir which affects the vertical flow of water and the horizontal sub-surface flow. This parameter is currently set to an arbitrary value and might.

groundwater_loss: float = 1

Constant ground water loss, [mm].

This parameter defines the constant amount of water that never rejoins the river channel and is lost beyond the catchment boundaries or to deep groundwater systems.

hydraulic_conductivity: float = 0.001

Hydraulic conductivity, [m s-1].

The hydraulic conductivity is the measure of a soil’s ability to transmit water through its pores. More specifically, is defined as the volumetric flow rate of water passing through a unit cross-sectional area of soil under a unit hydraulic gradient (pressure difference).

hydraulic_gradient: float = 0.01

The hydraulic gradient, [m m-1].

The hydraulic gradient is a measure of the change in hydraulic head (pressure) per unit of distance in a particular direction within a fluid or porous medium, such as soil or an aquifer. It represents the driving force behind the movement of water and indicates the direction in which water will flow.

infiltration_shape_parameter: float = 1.0

Empirical infiltration shape parameter, unitless.

This parameter affects how much of the water available for infiltration goes directly to groundwater via preferential bypass flow. A value of 0 means all surface water goes directly to groundwater, a value of 1 gives a linear relation between soil moisture and bypass flow.

intercept_parameters: tuple[float, float, float] = (0.935, 0.498, 0.00575)

Interception parameters.

Parameters in equation that estimates maximum canopy interception capacity after Von Hoyningen-Huene (1981).

max_percolation_rate_uzlz: float = 1

Maximum percolation rate between upper and lower groundwater zone, [mm d-1]

nonlinearily_parameter: float = 2.0

Nonlinearity parameter n (dimensionless) in Mualem-van Genuchten model.

This parameter is a fitting shape parameters of soil water retention curve, see (Van Genuchten, 1980).

reservoir_const_lower_groundwater: float = 20

Reservoir constant for the lower groundwater layer, [days]

reservoir_const_upper_groundwater: float = 20

Reservoir constant for the upper groundwater layer, [days]

soil_moisture_capacity: float = 0.9

Soil moisture capacity, unitless.

The soil moisture capacity, also known as field capacity or water holding capacity, refers to the maximum amount of water that a soil can retain against the force of gravity after it has been saturated and excess water has drained away. The value is soil type specific, the format here is volumentic relative water content (unitless, between 0 and 1).

soil_moisture_residual: float = 0.1

Residual soil moisture, unitless.

The residual soil moisture refers to the water that remains in the soil after prolonged drainage due to the force of gravity. It is the water that is tightly held by soil particles and is not easily available for plant roots to extract. The value is soil specific, the format here is volumentic relative water content (unitless, between 0 and 1).

soil_surface_heat_transfer_coefficient: float = 12.5

Heat transfer coefficient from soil to atmosphere above, [W m-2 K-1].

(van de Griend and Owe, 1994).

stream_flow_capacity: float = 5000.0

Stream flow capacity, [mm per timestep].

This parameter represents the maximum capacity of an average stream in the model. At the moment, this is set as an arbitrary value, but could be used in the future to flag flood events.

veg_density_param: float = 0.046

Parameter to estimate vegetation density for maximum canopy interception.

This parameter is used to estimate the water holding capacity of a canopy after Von Hoyningen-Huene (1981).

water_retention_curvature: float = -7.22

Curvature of the water retention curve.

The value is the average across all soil types found in Cosby et al. (1984); see documentation for air_entry_water_potential for further details.