RUFAS.routines.field.soil.soil module#
- class RUFAS.routines.field.soil.soil.Soil(soil_data: SoilData | None = None, field_size: float | None = None)#
Bases:
object
A class to manage and simulate various soil processes based on a given SoilData object.
Parameters#
- soil_dataSoilData, optional
A SoilData object containing initial attribute values as well as attributes tracked and updated throughout the simulation.
- field_sizefloat, optional
The size of the field in hectares (ha), used to initialize a SoilData object if a pre-configured SoilData object is not provided.
Attributes#
- dataSoilData
An object that tracks all soil variables throughout the simulation.
- soil_tempSoilTemp
Process component that tracks and updates the temperatures within the soil profile.
- phosphorus_cyclingPhosphorusCycling
Process component managing phosphorus on top of and in the soil profile.
- carbon_cyclingCarbonCycling
Process component that handles carbon cycling through decomposition in the soil.
- nitrogen_cyclingNitrogenCycling
Process component for managing nitrogen within the soil profile.
- evaporationEvaporation
Process component that controls evaporation from the soil.
- infiltrationInfiltration
Process component that controls water infiltration from the soil surface into the profile.
- percolationPercolation
Process component that controls percolation of water from upper layers to lower layers.
- soil_erosionSoilErosion
Process component that tracks erosion from the soil profile.
- snowSnow
Process component that tracks snow.
- daily_soil_routine(solar_radiation: float, avg_temp: float, min_temp: float, max_temp: float, plant_cover: float, snow_cover: float, avg_annual_air_temp: float) None #
Call all non-water related daily update routines.
Parameters#
- solar_radiationfloat
Solar radiation reaching the ground on the current day (MJ per square meter per day).
- avg_tempfloat
Average temperature of the current day (degrees C).
- min_tempfloat
Minimum temperature of the current day (degrees C).
- max_tempfloat
Maximum temperature of the current day (degrees C).
- plant_coverfloat
Total above-ground plant biomass and residue on the current day (kg per hectare).
- snow_coverfloat
Water content of the snow cover on the current day (mm).
- avg_annual_air_tempfloat
Average annual air temperature (degrees C).
- daily_soil_water_routine(rainfall: float, weighting_coefficient: float, potential_evapotranspiration: float, has_seasonal_high_water_table: bool, maximum_soil_evaporation: float, avg_air_temp: float, residue: float, minimum_cover_management_factor: float, field_size: float) None #
Call all water-related daily update routines.
Parameters#
- rainfallfloat
Rainfall depth of the current day (mm).
- weighting_coefficientfloat
Weighting coefficient used to calculate the retention coefficient for daily curve number calculations, dependent on plant evapotranspiration (unitless).
- potential_evapotranspirationfloat
Total potential evaporation and transpiration that can occur on the current day (mm).
- has_seasonal_high_water_tablebool
Whether the HRU has a seasonal high water table (True/False).
- maximum_soil_evaporationfloat
Maximum amount of water that can be evaporated from the soil profile on the current day (mm).
- avg_air_tempfloat
Average air temperature (degrees C).
- residuefloat
Biomass separated from plants on the ground (kg per hectare).
- minimum_cover_management_factorfloat
Minimum value for the cover and management factor for water erosion applicable to land cover/plant (unitless).
- field_sizefloat
Size of the field (ha).
Notes#
The daily phosphorus cycling method is called here because in large part the phosphorus dynamics of the soil profile depend on how much water enters and moves through the soil profile.