RUFAS.routines.field.crop.root_development module#

class RUFAS.routines.field.crop.root_development.RootDevelopment(crop_data: CropData | None = None)#

Bases: object

Manages the development of crop roots based on the “Root Development” section of the SWAT model (5.2.1.3).

Parameters#

crop_dataCropData, optional

An instance of CropData containing specific crop parameters and states. If not provided, a default instance with generic crop parameters is created.

Attributes#

dataCropData

Stores and provides access to crop-related data influencing root development, including parameters like root depth, growth rates, and environmental conditions affecting root expansion.

__init__(crop_data: CropData | None = None)#
develop_roots(time: RufasTime) None#

Main root development function that updates the root_fraction and root_depth attributes.

Parameters#

timeRufasTime

The current time in the simulation.

Notes#

root_depth attributes are updated differently depending upon whether the plant is perennial.

static _determine_root_fraction(heat_fraction: float) float#

Calculates root fraction as a function of plant maturity.

Parameters#

heat_fractionfloat

The proportion of potential heat units accumulated to date; a proxy for maturity (unitless).

Returns#

float

The fraction of a plant’s biomass comprised of roots, typically ranging from 0.4 to 0.2 as the plant matures (unitless).

References#

SWAT 5:2.1.21

static _determine_root_depth(max_depth: float, heat_fraction: float) float#

Calculates a plant’s root depth on a given day.

Parameters#

max_depthfloat

Maximum possible root depth in millimeters (mm).

heat_fractionfloat

Fraction of potential heat units accumulated, indicating the stage of plant growth (unitless).

Returns#

float

Root depth in millimeters for the given day (mm).

References#

SWAT 5:2.1.23, 24