RUFAS.routines.field.crop.phosphorus_uptake module#

class RUFAS.routines.field.crop.phosphorus_uptake.PhosphorusUptake(crop_data: CropData | None = None, nutrient_distro_param: float = 10.0, nutrient_shapes: list[float] | None = None, previous_nutrient: float | None = None, potential_nutrient_uptake: float | None = None, layer_nutrient_potentials: float | None = None, unmet_nutrient_demands: float | None = None, nutrient_requests: float | None = None, actual_nutrient_uptakes: list[float] | None = None, total_nutrient_uptake: float | None = None)#

Bases: NonWaterUptake

A class for managing phosphorus incorporation in crops.

Parameters#

crop_dataCropData, optional

An instance of CropData containing crop specifications and attributes. If not provided, a default CropData instance is initialized with default values.

nutrient_distro_paramfloat, default 10

Phosphorus uptake distribution parameter (unitless).

nutrient_shapesOptional[List[float]], default None

First and second shape coefficients for the nitrogen uptake equations (unitless).

previous_nutrientOptional[float], default None

Phosphorus value on the previous day (kg/ha).

total_nutrient_uptakeOptional[float], default None

Total amount of phosphorus taken up by the plant (kg/ha).

potential_nutrient_uptakeOptional[float], default None

Potential phosphorus to be taken up by the plant under ideal circumstances for the current day (kg/ha).

actual_nutrient_uptakesOptional[List[float]], default None

Actual phosphorus to be taken up by the plant from each soil layer (kg/ha).

layer_nutrient_potentialsOptional[float], default None

Potential phosphorus uptake from each soil layer (kg/ha).

unmet_nutrient_demandsOptional[float], default None

Unmet phosphorus demands by overlaying soil layers (kg/ha).

nutrient_requestsOptional[float], default None

Phosphorus requested from each soil layer (kg/ha).

References#

‘Phosphorus Uptake’ section (5:2.3.2) of the SWAT.

__init__(crop_data: CropData | None = None, nutrient_distro_param: float = 10.0, nutrient_shapes: list[float] | None = None, previous_nutrient: float | None = None, potential_nutrient_uptake: float | None = None, layer_nutrient_potentials: float | None = None, unmet_nutrient_demands: float | None = None, nutrient_requests: float | None = None, actual_nutrient_uptakes: list[float] | None = None, total_nutrient_uptake: float | None = None)#
uptake(soil_data: SoilData) None#

Main phosphorus incorporation function - runs all phosphorus processes and stores phosphorus as biomass.

Parameters#

soil_dataSoilData

The SoilData object that tracks soil properties.

Notes#

Calling this function will execute all phosphorus incorporation routines. It determines the amount of phosphorus desired by the plant and extracts phosphorus from the accessible soil profile. The extracted phosphorus is then added to plant biomass.

_abc_impl = <_abc._abc_data object>#