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>#