0% found this document useful (0 votes)
126 views

Plant Growth Model Oop Project

The document describes a modular crop growth model that simulates plant growth interactions with soil and weather conditions over time. The model contains four main classes: Simulation, Plant, Soil Water Balance, and Weather. The Simulation class coordinates calls to methods in the other classes. The Plant class simulates plant growth and development based on temperature, radiation, and soil water stress factors. The Soil Water class simulates soil water balance and the effects of drought and excess water on crop growth. The model runs on a daily time step, calling methods in each class for rate calculations, integration, and output at each time step to simulate crop growth over the full period.

Uploaded by

Hafsa Awan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
126 views

Plant Growth Model Oop Project

The document describes a modular crop growth model that simulates plant growth interactions with soil and weather conditions over time. The model contains four main classes: Simulation, Plant, Soil Water Balance, and Weather. The Simulation class coordinates calls to methods in the other classes. The Plant class simulates plant growth and development based on temperature, radiation, and soil water stress factors. The Soil Water class simulates soil water balance and the effects of drought and excess water on crop growth. The model runs on a daily time step, calling methods in each class for rate calculations, integration, and output at each time step to simulate crop growth over the full period.

Uploaded by

Hafsa Awan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Modular Crop Growth Model and Simulation

Suggested Language C++


Maximum Team Size 4
Skill Set C++, GUI

time step within this loop. The weather object is also


called from within the time step loop, but only once
1. Introduction per day (i.e. in the rate calculation part.)

Crop growth model is an excellent example of object


oriented paradigm. Such a model is composed of a
number of parts like plant, soil, weather, etc. Being
able to handle all of these separately as well as
together is the focus of this project.

2. Problem Description

The model is intended to simulate the growth of a


particular type of plant while interacting with soil and
weather under various conditions.

3. Solution Design (Tentative, Incomplete)

The suggested model has four main classes: the


simulation class, plant class, soil water balance class
and weather class. Figure 1 illustrates the classes;
where each class has two or more of the following five
functionalities:
1. The initialization (constructor) section is used to
input data and initialize variables at start of simulation
2. The ‘rate calculation’ functionality computes
process rates and rates of change of state variables
based on conditions at the end of the previous day of
simulation. This method is called once per time step
(day) of simulation.
3. The ‘integration’ method updates state variables
using the rates previously calculated.
4. The ‘output’ method is called once per day to
generate daily output reports.
5. The ‘close’ functionality is called once at the end
of simulation to close output files and generate summary
reports. Figure 1. Class/Message Structure
The simulation object makes calls to methods
inside each other object to accomplish the various 3.1Plant Class
components of processing. Each object (weather, soil
water, plant) is called once at the beginning of The plant class computes plant growth and development
simulation to initialize, resulting in execution of the based on daily values of maximum and minimum
initialization portion of the object. During the daily temperatures, radiation and the daily value of two soil water
time loop, each object is called three times: for rate stress factors, SWFAC1 and SWFAC2. This class also
calculation, for integration calculations, and for output simulates leaf area index (LAI), which is used in the soil
of daily computed data. A final call to each object is water class to compute evapotranspiration. Details of its
made to write summary output files and to close input functionality are as under:
and output files after the simulation is complete.
Rate calculation, integration and output Initialization
methods are within the time step loop and the soil
water and plant objects are each called three times per
Input variables, as listed in Table 1, are read from file maturity is accumulated as an int. Method LAIS is
PLANT.INP. File PLANT.OUT is opened and a header is called for both phases to compute the change in leaf
written to this output file. area index (dLAI).
During vegetative period, LAI increases as a function
Rate calculations of the rate of leaf number increase. The potential rate is
limited by soil water stress (both deficit and saturation)
The plant object calls three methods: through SWFAC, and temperature, through PT. Its
1. Method PTS to calculate the effect of temperature value is given by:
on daily plant growth rate and rate of leaf number increase.
The growth rate reduction factor (PT) is calculated every
day using the following equation: where PD is the plant density (plants/m2), EMP1 is the
where TMIN and TMAX are the minimum and maximum maximum leaf area expansion per leaf, (0.104 m2/leaf)
daily temperatures, respectively. and a is given by:
2. Method PGS() to calculate the daily plant weight
increase; The method calculates PG, the potential daily total
dry matter increase (g/plant) as: where EMP2 and nb are coefficients in the expolinear
equation and N is the development age of the plant (leaf
number).
3.
After plant has reached the maximum number of leaves,i.e.
during reproductive phase, LAI starts to decrease as a
where SRAD is the daily solar radiation (MJ/m2) and PD
function of the daily thermal integral, di. The rate of
the plant density (plant/m2). Y1 is obtained by:
decrease is given by:

where p1 is the dry matter of leaves removed per plant per


where ROWSPC is the row spacing in (cm).
unit development after maximum number of leaves is
reached and SLA is the specific leaf area.
In the vegetative phase the assimilates are partitioned
between canopy and roots (dwc and dwr) whereas in the
reproductive phase all growth occurs in the grain (dwf). All
whole plant weight increases (dw) are converted to area
based values by multiplying by the plant density value (PD).

Integration

Changes to leaf area index (dLAI), plant weights (dw, dwc,


dwr and dwf) and leaf number (dN) are integrated into the
appropriate state variables (LAI, w, wc, wr, wf and N) at
the beginning of the ‘integration’ section.
When the accumulated value of the rate of
development towards maturity (int) reaches a genetically
determined value (intot), the plant is matured and the
simulation is complete.

Output
4. Method LAIS() to calculate increase in leaf area
index dLAI. Daily output is written to the PLANT.OUT file.
The plant cycle is divided into vegetative and
reproductive phases. The vegetative phase continues Close
until the plant reaches a genetically determined
maximum leaf number (Lfmax). During the vegetative
The PLANT.OUT output file is closed.
phase, leaf number increase (dN) is calculated based on
a maximum rate (rm) and a temperature based limiting
factor (PT). During reproductive phase, di, the 3.2 Soil Water Class
difference between daily mean temperature and a base
temperature (tb), is used to calculate the rate of plant A single, homogeneous soil layer underlain by a relatively
development. Total rate of development towards impervious layer is assumed for the model. A simple water
balance is used to update the soil water content on a daily Cumulative values of rainfall (TRAIN), irrigation
basis using computed values of infiltration, evaporation, (TIRR), soil evaporation (TESA), plant transpiration
transpiration and drainage. (TEPA), runoff (TROF), vertical drainage (TDRN), and
The soil characteristics defined are soil water content infiltration (TINF) are set to zero for the beginning of the
at wilting point (WPp), field capacity (FCp) and saturation simulation.
(STp) all in units of cm3/cm3; soil profile depth (DP in cm),
daily drainage fraction (DRNp), curve number (CN) and Rate calculations
initial soil water content (SWC_INIT in mm).
The soil water class calculates two parameters Irrigation rates are read from file IRRIG.INP.
(SWFAC1 and SWFAC2) which express the effects of Potential infiltration (POTINF) is calculated as the sum
drought and excess soil water respectively on crop growth of rainfall (RAIN) and irrigation (IRR). Cumulative
rate. These factors vary from 1.0 (minimum stress) to 0.0 irrigation and rainfall depths are summed to TIRR and
(maximum stress). TRAIN, respectively.
In addition to soil characteristics and weather data, this Method DRAINE() is called to compute vertical
class requires the value of leaf area index (LAI), which is drainage of soil water (DRN in mm) based on a daily
computed in the plant class, to calculate potential fraction of the soil water content above field capacity:
evapotranspiration. DRN = (SWC - FC) * DRNp
Details of functionality of the class are as under: If potential infiltration (POTINF) is greater than zero,
method RUNOFF() is called to compute daily surface water
Initialization runoff rates (ROF) using the SCS curve number method:

In the ‘initialization’ portion of the code, input files IF (POTINF > 0.2 * S) THEN
SOIL.INP and IRRIG.INP and output file SW.OUT are ROF = ((POTINF - 0.2 * S)**2)/(POTINF + 0.8 * S)
opened. The required soil input data is read from file ELSE
SOIL.INP and the file is closed. These input variables ROF = 0
are listed in Table 2. Headers are written to output file ENDIF
SW.OUT.
Units for the soil parameters are converted from Infiltration (INF) is calculated as the difference
volumetric fractions to mm of water as: between potential infiltration and runoff, i.e.
WP = DP * WPp * 10.0 INF=POTINF-ROF
FC = DP * FCp * 10.0 Method ETpS() calculates the daily
ST = DP * STp * 10.0 where WP, FC and ST are the potential evapotranspiration rate (ETp) based on the
wilting point, field capacity and saturation content in mm Priestly-Taylor method. The surface albedo (ALB) is
of water, respectively. Other variables are as defined in estimated as a weighted average (based on LAI) of the
Table 2. albedo of the soil (0.1) and crop (0.2).
ALB = 0.1 * EXP(-0.7 * LAI) + 0.2 * (1 - EXP(-0.7 * LAI))
The average temperature during the day (Tmed) and the
equilibrium evaporation (EEQ) are calculated as: Tmed =
0.6 * TMAX + 0.4 * TMIN
EEQ = SRAD * (4.88E-03 - 4.37E-03 * ALB) * (Tmed +
29)
The equilibrium evaporation rate is adjusted by a coefficient
(f) resulting in the final value of ETp.
Next, the potential soil evaporation (ESp) and plant
transpiration (EPp) rates are calculated using the same
weighting coefficient used for albedo: ESp = ETp * EXP(-
For initialization, method RUNOFF() is called to 0.7 * LAI)
compute soil storage capacity (S) based on the Soil EPp = ETp * (1 - EXP(-0.7 * LAI))
Conservation Service runoff curve number method: Method ESaS() calculates the actual daily soil evaporation
S = 254 * (100/CN - 1) rate (ESa) based on current soil water availability. No
Then, method STRESS() is called to calculate the evaporation occurs if the soil water content is less than the
threshold soil water content below which drought stress wilting point, and the potential evaporation is met if soil
will occur (THE). This is approximated as: THE = WP water content is greater than field capacity. Between the
+ 0.75 * (FC - WP) Initial stress factors (SWFAC1 and wilting point and field capacity, the
SWFAC2) are then calculated based on initial soil water actual evapotranspiration varies linearly between 0.0 and
content. This is discussed in more detail later. the potential evapotranspiration rate:
IF (SWC < WP) THEN a capacity is met. The depth to the water table (DWT in mm)
=0 is then computed.
ELSEIF (SWC > FC) THEN WTABLE = (SWC - FC) / (ST - FC) * DP * 10.
a=1 DWT = DP * 10. - WTABLE
ELSE Minimum excess soil water stress (SWFAC2 =
a = (SWC - WP)/(FC - WP) 1.0) occurs when the water table thickness is zero.
ENDIF Maximum stress (SWFAC2 = 0.0) occurs when the depth
ESa = ESp * a to the water table (DWT) is greater than 250 mm
The potential plant transpiration rate (EPp) is reduced by (STRESS_DEPTH = 250 mm). The excess water stress
the minimum soil water stress factor (SWFAC1 or factor is linearly interpolated between these water table
SWFAC2) to obtain the actual plant transpiration rate conditions.
(EPa) IF (DWT > STRESS_DEPTH) THEN
SWFAC2 = 1.0
Integration ELSE
SWFAC2 = DWT / STRESS_DEPTH
The integration portion of the soil water class updates the ENDIF
value of the soil water content based on the computed
values of infiltration (INF), soil evaporation (ESa), plant Output
transpiration (EPa), and vertical drainage (DRN): SWC =
SWC + (INF - ESa - EPa - DRN) Daily values are written to output file SW.OUT.
The computed value is limited to a maximum of the
saturation content (ST) and a minimum of zero. If the
computed soil water content exceeds saturation, runoff Close
rates and soil water content are adjusted.
IF (SWC>ST) ROF=ROF+(SWC- At the end of simulation, method WBAL()is called to check
ST) that the seasonal water balance is zero, i.e., that changes in
SWC=ST soil water content are equal to cumulative inflows and
END IF outflows. A water balance report is written (WBAL.OUT).
An additional adjustment factor Files SW.OUT and IRRIG.INP are closed.
(SWC_ADJ) is introduced if the computed soil water
content is less than zero.
3.3 Weather class
IF (SWC<0)
SWC_ADJ=SWC_ADJ-SWC
SWC=0 Upon initialization, the weather file (WEATHER.INP) is
END IF opened. In the rate calculations section, weather values are
Cumulative infiltration (TINF), read into the model on a daily basis from WEATHER.INP.
evaporation (TESA), transpiration (TEPA), drainage Table 3 lists the weather input data read.
(TDRN) and runoff (TROF) are then updated. The close section is invoked to close the weather input file.
Method STRESS() is then called to compute soil
water stress factors based on the updated soil water content
values. The drought stress factor (SWFAC1) is 1.0
(minimum stress) if the soil water content (SWC) is greater
than the threshold value computed in the ‘initialization’
section (THE). Below the wilting point, maximum stress
occurs (SWFAC1 = 0.0). Between these ranges, the stress
factor is linearly distributed.
IF (SWC < WP) THEN
SWFAC1 = 0.0
ELSEIF (SWC > THE) THEN
SWFAC1 = 1.0
ELSE
SWFAC1 = (SWC - WP) / (THE - WP)
SWFAC1 = MAX(MIN(SWFAC1, 1.0), 0.0)
ENDIF
The thickness of the water table measured from
the bottom of the soil profile (WTABLE in mm) is
calculated using the excess water available after field

You might also like