RUFAS.routines.field.soil.nitrogen_cycling.humus_mineralization module#

class RUFAS.routines.field.soil.nitrogen_cycling.humus_mineralization.HumusMineralization(soil_data: SoilData | None = None, field_size: float | None = None)#

Bases: object

Handles the mineralization operations for the active and stable organic nitrogen pools, as detailed in SWAT section 3:1.2.1.

Parameters#

soil_dataSoilData, optional

The SoilData object used by this module for tracking the mineralization of organic nitrogen in the soil. If not provided, a new SoilData object will be instantiated.

field_sizefloat, optional

The size of the field in hectares (ha), used to initialize a SoilData object if one is not directly provided.

Attributes#

dataSoilData

Holds the SoilData object for tracking mineralization processes.

Notes#

The field size is used to initialize a SoilData object for this module to work with, if a pre-configured SoilData object is not provided.

__init__(soil_data: SoilData | None = None, field_size: float | None = None)#
mineralize_organic_nitrogen() None#

Iterates through each layer in the soil profile, transfers nitrogen between active and stable organic nitrogen pools, and between the active organic and ammonium pools.

Notes#

Mineralization and decomposition can only occur if the soil temperature is greater than 0 degrees C (see first paragraph on page 188 of SWAT Theoretical documentation).

SWAT has the active organic nitrogen mineralize directly into the nitrate pool, this method instead mineralizes it into the ammonium pool. This is more realistic, and helps to make sure that ammonia volatilization is allowed to happen fully.

static _determine_intra_organic_mineralization(active_organic_nitrogen: float, stable_organic_nitrogen: float) float#

Calculates the amount of nitrogen transferred between different organic pools.

Parameters#

active_organic_nitrogenfloat

Active organic nitrogen content of this soil layer (kg / ha).

stable_organic_nitrogenfloat

Stable organic nitrogen content of this soil layer (kg / ha).

Returns#

float

The amount of nitrogen to transfer from the active to stable pool (kg / ha).

References#

SWAT Theoretical documentation eqn. 3:1.2.3

Notes#

When the amount determined to be transferred is negative, it indicates that nitrogen is being transferred from the stable pool to the active pool.

The SWAT documentation does not correctly specify this equation, there is a missing pair of parentheses. This change was identified in the course of evaluating the nitrogen cycling module, and verified by checking the results.

static _determine_organic_to_nitrate_mineralization(active_organic_nitrogen: float, temperature_factor: float, water_factor: float, humus_active_organic_mineralization_coefficient: float) float#

Calculates phosphorus mineralized from the active inorganic pool that goes to the nitrate pool.

Parameters#

active_organic_nitrogenfloat

Active organic nitrogen content of this soil layer (kg / ha).

temperature_factorfloat

The nutrient cycling temperature factor of this soil layer (unitless).

water_factorfloat

The nutrient cycling water factor of this soil layer (unitless).

humus_active_organic_mineralization_coefficientfloat

The rate coefficient for mineralization of the humus active organic nutrients (unitless).

Returns#

float

The amount of phosphorus mineralized from the active inorganic pool to be transferred to the nitrogen pool (kg / ha).

References#

SWAT Theoretical documentation eqn. 3:1.2.4