View source: R/GAI.R View source: R/GAI.R
GAI | R Documentation |
The function distributes the biomass growth (considering its proxy GAI and LAI) according to a gaussian function with parameters defined relatively to the crop. It is used for determining the effect of increased ET due to the presence of plant and the effect of shading on soil temperature.
GAI(
yield,
crop,
year,
variance,
seeding,
harvest,
tillage,
minimum_cover,
yield2 = NULL,
harvest2 = NULL
)
yield |
annual yields (kg/ha) |
crop |
crop id, either "spring_small_grains", "spring_oil_seeds","winter_small_grains", "winter_oil_seeds","root_crop", "fodder", "fodder maize" or "ley" |
year |
sequence of the years to run the simulation for |
variance |
the variance of the gaussian used to simulate the GAI, in days |
seeding |
day of seeding (day number of the year) |
harvest |
day of harvest (day number of the year) |
tillage |
day of tillage (day number of the year) |
minimum_cover |
forcing a minimum GAI cover, useful for leys (dimensionless) |
yield2 |
OPTIONAL, in case there is more than one harvest per year (kg/ha) |
harvest2 |
OPTIONAL, in case there is more than one harvest per year (days) |
The function relies on an input matrix which must follow a precise format, please refer to the attached aboveground_testdata.
The function is used to simulate the development of crops and their green area index (G.A.I.). The function uses among the inputs a vector of different crops, which will be simulated with different parameters.
These are spring_small_grains
, spring_oil_seeds
, winter_small_grains
, winter_oil_seeds
,root_crop
, fodder
, fodder maize
and ley
. The function loops in annual steps through the years of the simulation
and then runs a nested loop to simulate the crop growth in daily steps. The function initially calls the is.leapyear function to decide if to use 365 or 366 days in the simulation. Different crops are simulated
in different ways.
The functions returns also the LAI, calculated as
0.8 \cdot GAI
until maximum GAI. After maximum GAI, before harvest the LAI is set to never fall below
0.7 \cdot max(LAI)
, and between harvest and tillage never below
0.2 \cdot max(LAI)
according to Kätterer & Andrén 2009.
First of all the function checks if the crop of that year is not "fodder", "fodder maize" or "ley". if not, then sets the maximum GAI (j is the index used in the main function loop, looping through the simulation years):
GAI_{max}=0.0129 \cdot (\frac{yield_j}{1000})^2 + 0.1964 \cdot(\frac{yield_j}{1000})
For root crops the maximum GAI is set differently (see below the specific section) The function then proceeds to simulate the growth according to a gausssian function subsequently modified. The gaussian function is controlled by the parameters defining where it is centered and its variance. Its center is calculated according to seeding and harvest dates, which are in the input data. Then the GAI outside the area covered by such function is either set to zero or to the minimum coverage specified in the input data. The main function used to simulate the crop growth, after first having calculated the center of the gausian with
middle=seeding_j + \frac{harvest_j-seeding_j}{2}
is the following:
GAI=GAI_{max} \cdot exp(-\frac{(day-middle)^2)}{(2\cdot variance_j)})
Most crops are considered covering the soil even after being fully mature, except root crops fodder (including silage maize). Please not that this does not imply that such crops are returned as C inputs to the soil in the ICBM model, this concerns just the calculation of the climatic reduction coefficients.
root_crops
Root crops have a specific function, which is based on the average yields (yield_vec) and maximum LAI (LAI_max_vec) obtained in the Ultuna experiment during the three years when root crops were planted. The maximum GAI is also calculated with a different function:
GAI_{max}=min(5.6,\frac{1}{0.8} \cdot mean(\frac{LAI_max_vec}{yield_vec}) \cdot \frac{1}{0.75} \cdot yield_j)
fodder
The maximum GAI is calculated according to data for fodder rape (https://www.agronomysociety.org.nz/files/2010_11._Seed_yield_of_forage_rape.pdf)
GAI_{max}=min(10,0.0004615385 \cdot yield_j)
fodder_maize
The maximum GAI is calculated according to data from the Ultuna experiment, where silage maize has been planted since 2000
GAI_{max}=min(10,\frac{1}{0.8} \cdot 0.000533 \cdot yield_j)
ley
Leys are complicated by the fact that there might be two subsequent cuts, so two harvests. The command considers this possibility with 2 optional parameters, harvest2 and yields2, which are otherwise set to NULL. If these two parameters are present another if condition takes care of them when they are not set to zero.
A data frame of 5 variables: date
, GAI
, crop
, yields_at_harvest
and LAI
.
The other dimension of the data frame is as long as the combination of the treatments and the days of the simulation.
Lorenzo Menichetti ilmenichetti@gmail.com
W. Mazurczyk, Anna Teresa Wierzbicka, Anna Teresa Wierzbicka, C. Trawczyński,2009,. HARVEST INDEX OF POTATO CROP GROWN UNDER DIFFERENT NITROGEN AND WATER SUPPLY.
T. Kätterer and O. Andrén, “Predicting daily soil temperature profiles in arable soils in cold temperate regions from air temperature and leaf area index,” Acta Agric. Scand. Sect. B - Plant Soil Sci., vol. 59, no. 1, pp. 77–86, 2009, doi: 10.1080/09064710801920321.
data(aboveground_testdata) #load the example dataset
selected_aboveground<-aboveground_testdata[aboveground_testdata$treat=="CONVENTIONAL",]
GAI_test<-GAI(yield=selected_aboveground$total_dm_kg_ha, crop=selected_aboveground$crop_id,
year=selected_aboveground$year, variance=selected_aboveground$variance,
seeding=selected_aboveground$seeding, harvest=selected_aboveground$harvest,
tillage=selected_aboveground$tillage, minimum_cover=selected_aboveground$minimum_cover)
plot(GAI_test$date, GAI_test$GAI, type="l") # plotting the results to test
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.