RUFAS.routines.field.crop.biomass_allocation module#

class RUFAS.routines.field.crop.biomass_allocation.BiomassAllocation(crop_data: CropData | None = None, light_extinction: float = 0.65, usable_light: float | None = None, biomass_growth: float | None = None, previous_biomass: float | None = None)#

Bases: object

This module primarily follows the Biomass Production section of the SWAT model (5:2.1.1) and some components from the Crop Yield section (5:2.4)

Parameters#

crop_dataOptional[CropData]

The data object used for biomass calculation. Stores information about the plant’s growth and environmental factors.

light_extinctionfloat, default 0.65

Light extinction coefficient (unitless).

usable_lightOptional[float], default None

Solar radiation captured for photosynthesis (MJ/m^2).

biomass_growthOptional[float], default None

Biomass accumulated during the day (kg/ha).

previous_biomassOptional[float], default None

Biomass accumulated on the previous day (kg/ha).

Attributes#

dataCropData

The data object used for biomass calculation. Stores information about the plant’s growth and environmental factors.

light_extinctionfloat

Light extinction coefficient (unitless).

usable_lightOptional[float]

Solar radiation captured for photosynthesis (MJ/m^2).

biomass_growthOptional[float]

Biomass accumulated during the day (kg/ha).

previous_biomassOptional[float]

Biomass accumulated on the previous day (kg/ha).

Methods#

allocate_biomass(light: float) -> None

Allocate a plant’s accumulated biomass based on the day’s light exposure.

photosynthesize(light: float) -> None

Simulate the photosynthesis process by converting light energy into biomass.

partition_biomass() -> None

Partitions the accumulated biomass into above and below ground components.

_intercept_radiation(radiation: float, extinction: float, lai: float) -> float

Calculates the amount of solar radiation intercepted for photosynthesis.

_determine_max_accumulation(energy: float, efficiency: float) -> float

Determines the upper limit of biomass accumulation in a day.

_determine_accumulated_biomass(growth_factor: float, max_growth: float) -> float

Calculates the actual biomass accumulated during a day.

_determine_above_ground_biomass(root_frac: float, biomass: float) -> float

Calculates the above ground biomass of a plant.

_determine_below_ground_biomass(root_frac: float, biomass: float) -> float

Calculates the below ground biomass of a plant.

__init__(crop_data: CropData | None = None, light_extinction: float = 0.65, usable_light: float | None = None, biomass_growth: float | None = None, previous_biomass: float | None = None) None#
allocate_biomass(light: float) None#

Allocate a plant’s accumulated biomass during the day’s growth.

Parameters#

lightfloat

light radiation energy (MJ/m).

Returns#

None

photosynthesize(light: float) None#

Convert the day’s incoming light energy into plant biomass.

Parameters#

lightfloat

light radiation energy (MJ/m).

partition_biomass() None#

Partition the accumulated biomass into above ground and below ground portions.

Returns#

None

static _intercept_radiation(radiation: float, extinction: float, lai: float) float#

Calculate the amount of solar radiation intercepted for photosynthesis during the day.

Parameters#

radiationfloat

Total solar radiation available for the day (MJ/m^2).

extinctionfloat

The light extinction coefficient (unitless).

laifloat

Current leaf area index of the crop (unitless).

Returns#

float

Intercepted radiation energy (MJ/m^2).

static _determine_max_accumulation(energy: float, efficiency: float) float#

Calculate the upper limit to biomass accumulation during a day.

Parameters#

energyfloat

Intercepted energy from solar radiation for the day (MJ/m^2).

efficiencyfloat

Crop-specific radiation use efficiency (dg/MJ).

Returns#

float

The maximum biomass that can be accumulated in a day (kg/ha).

static _determine_accumulated_biomass(growth_factor: float, max_growth: float) float#

Calculate the biomass accumulated during the day.

Parameters#

growth_factorfloat

The growth factor for the plant, which is a value from 0 to 1 (unitless).

max_growthfloat

The maximum amount of biomass the plant can accumulate in a day (kg/ha).

Returns#

float

Biomass accumulated in a day (kg/ha).

static _determine_above_ground_biomass(root_frac: float, biomass: float) float#

Calculate above ground plant biomass.

Parameters#

root_fracfloat

Fraction of biomass stored in roots (unitless).

biomassfloat

The current total biomass of the plant (kg/ha).

Returns#

float

Above ground biomass (kg/ha).

References#

SWAT 5:2.4.4

static _determine_below_ground_biomass(root_frac: float, biomass: float) float#

Calculate below ground plant biomass.

Parameters#

root_fracfloat

Fraction of biomass stored in roots (unitless).

biomassfloat

The current total biomass of the plant (kg/ha).

Returns#

float

Below ground biomass (kg/ha).