RUFAS.routines.field.field.field_data module#

class RUFAS.routines.field.field.field_data.FieldData(*, name: str | None = None, absolute_latitude: float = 43.5, longitude: float = -88.6, minimum_daylength: float = 6.33, dormancy_threshold_daylength: float | None = None, current_residue: float = 0.0, transpiration: float = 0.0, max_transpiration: float = 0.0, max_evapotranspiration: float = 0.0, seasonal_high_water_table: bool = False, field_size: float = 1.0, watering_amount_in_liters: float | None = None, watering_amount_in_mm: float = 0.0, watering_interval: int | None = None, days_into_watering_interval: int = 0, current_water_deficit: float = 0.0, watering_occurs: bool = True, manure_water: float = 0.0, annual_irrigation_water_use_total: float = 0, simulate_water_stress: bool = True, simulate_temp_stress: bool = True, simulate_nitrogen_stress: bool = True, simulate_phosphorus_stress: bool = True)#

Bases: object

Data object to track the field-specific variables.

Attributes#

namestr, optional

Name of this field for identification purposes.

absolute_latitudefloat, default=43.5

The absolute latitude value (degrees above or below equator) where field is located (degrees).

longitudefloat, default=-88.6

The longitude value of where the field is located (degrees).

minimum_daylengthfloat, default=6.33

Shortest day of the year for this watershed (hours).

dormancy_threshold_daylengthfloat, optional

Threshold daylength to initiate dormancy in a plant (hours).

current_residuefloat, default=0.0

Total amount of residue on the current day (kg per hectare).

transpirationfloat, default=0.0

Total amount of water lost to transpiration in the field on the current day (mm).

max_transpirationfloat, default=0.0

Maximum possible amount of water that could be lost to transpiration in the field for the current day (mm).

max_evapotranspirationfloat, default=0.0

Maximum possible amount of water that could be lost to evapotranspiration in the field for the current day (mm).

seasonal_high_water_tablebool, default=False

Does the Hydrologic Response Unit containing this field have a seasonally high water table.

field_sizefloat, default=1.0

Size of the field (ha).

watering_amount_in_litersfloat, optional

User-supplied amount of water to be applied to the field over a specified interval of days (liters).

watering_amount_in_mmfloat, default=0.0

Amount of water to be applied to the field over a specified interval of days (mm).

watering_intervalint, optional

Number of days between waterings of the field.

days_into_watering_intervalint, default=0.0

Number of days since the start of the current watering interval.

current_water_deficitfloat, default=0.0

Amount of water that still needs to be applied to the field in the current interval (mm).

watering_occursbool, default=True

Status indicating if this field is watered at all.

manure_waterfloat, default=0.0

Amount of water to be added to the field from a manure application (mm).

annual_irrigation_water_use_totalfloat, default=0.0

Cumulative total of water used for irrigation in a year (mm).

simulate_water_stressbool, default True

Whether water stress should affect growth of all crops grown in the field.

simulate_temp_stressbool, default True

Whether temperature stress should affect growth of all crops grown in the field.

simulate_nitrogen_stressbool, default True

Whether nitrogen stress should affect growth of all crops grown in the field.

simulate_phosphorus_stressbool, default True

Whether phosphorus stress should affect growth of all crops grown in the field.

Methods#

perform_annual_field_reset()

Resets all cumulative totals that are calculated annually for the field.

convert_liters_to_millimeters(liter_amount, field_size)

Converts an amount in liters to an amount in mm based on the area the liters are distributed over.

name: str | None = None#
absolute_latitude: float = 43.5#
longitude: float = -88.6#
minimum_daylength: float = 6.33#
dormancy_threshold_daylength: float | None = None#
current_residue: float = 0.0#
transpiration: float = 0.0#
max_transpiration: float = 0.0#
max_evapotranspiration: float = 0.0#
seasonal_high_water_table: bool = False#
field_size: float = 1.0#
watering_amount_in_liters: float | None = None#
watering_amount_in_mm: float = 0.0#
watering_interval: int | None = None#
days_into_watering_interval: int = 0#
current_water_deficit: float = 0.0#
watering_occurs: bool = True#
manure_water: float = 0.0#
annual_irrigation_water_use_total: float = 0#
simulate_water_stress: bool = True#
simulate_temp_stress: bool = True#
simulate_nitrogen_stress: bool = True#
simulate_phosphorus_stress: bool = True#
perform_annual_field_reset() None#

Resets all cumulative totals that are calculated annually for the field.

static convert_liters_to_millimeters(liter_amount: float, field_size: float) float#

Converts an amount in liters to an amount in mm based on the area the liters are distributed over.

Parameters#

liter_amountfloat

Volume to be converted (liters)

field_sizefloat

Size of the field (ha)

Returns#

float

Millimeter amount that is distributed evenly across the specified field area (mm)

__init__(*, name: str | None = None, absolute_latitude: float = 43.5, longitude: float = -88.6, minimum_daylength: float = 6.33, dormancy_threshold_daylength: float | None = None, current_residue: float = 0.0, transpiration: float = 0.0, max_transpiration: float = 0.0, max_evapotranspiration: float = 0.0, seasonal_high_water_table: bool = False, field_size: float = 1.0, watering_amount_in_liters: float | None = None, watering_amount_in_mm: float = 0.0, watering_interval: int | None = None, days_into_watering_interval: int = 0, current_water_deficit: float = 0.0, watering_occurs: bool = True, manure_water: float = 0.0, annual_irrigation_water_use_total: float = 0, simulate_water_stress: bool = True, simulate_temp_stress: bool = True, simulate_nitrogen_stress: bool = True, simulate_phosphorus_stress: bool = True) None#