RUFAS.routines.field.soil.phosphorus_cycling.phosphorus_cycling module#

class RUFAS.routines.field.soil.phosphorus_cycling.phosphorus_cycling.PhosphorusCycling(soil_data: SoilData | None = None, field_size: float | None = None)#

Bases: object

This module contains the composite class for phosphorus cycling, which contains and manages all the necessary aspects for managing phosphorus in and on top of a soil profile.

Parameters#

soil_dataSoilData, optional

An instance of SoilData to be used for tracking phosphorus cycling. If not provided, a new instance will be created with the given field size.

field_sizefloat, optional

The size of the field (ha).

Attributes#

dataSoilData

The SoilData object that contains data and functionality related to soil and phosphorus properties.

manureManure

Process component that manages manure on the field.

fertilizerFertilizer

Process component that manages fertilizer on the field.

mineralizationPhosphorusMineralization

Process component that controls the mineralization of phosphorus within the soil profile.

soluble_phosphorusSolublePhosphorus

Process component that controls the movement of phosphorus between layers of soil.

__init__(soil_data: SoilData | None = None, field_size: float | None = None)#
cycle_phosphorus(rainfall: float, runoff: float, field_size: float, mean_air_temperature: float) None#

This method calls all daily routines that manage phosphorus on the soil surface and in the soil profile.

Parameters#

rainfallfloat

The amount of rainfall on the current day (mm).

runofffloat

The amount of runoff from rainfall on the current day (mm).

field_sizefloat

The size of the field (ha).

mean_air_temperaturefloat

Mean air temperature on the current day (°C).