Description Usage Arguments Details Value References Examples
Create a QUEFTS model, set parameters, and run it to compute nutrient requirements and nutrient limited yield.
A number of default crop parameter sets are provided, as well as one example soil. You need to provide attainable (that is, yield without nutrient limitation), or target dry-matter biomass for leaves, stems and the storage organ (e.g. grain, root or tuber). Some crops are grown for the stems/leaves, in which case there is no relevant storage organ (e.g. sugarcane, jute). Attanable yield estimates can be obtained with a crop growht model.
1 2 3 4 5 6 7 8 9 | quefts(soil, crop, fert, biom)
quefts_soil()
quefts_fert()
quefts_crop(name="")
quefts_biom()
crop(x) <- value
soil(x) <- value
fert(x) <- value
biom(x) <- value
|
soil |
list with named soil parameters. See Details. An example is returned by |
crop |
list with named crop parameters. See Details. An example is returned by |
fert |
list with named fertilizer parameters (N, P and K). An example is returned by |
biom |
list with named biomass and growing season length parameters. An example is returned by |
name |
character. crop name |
x |
QueftsModel object |
value |
a list with soil, crop, fertlizer, or yield parameters as above |
Input Parameters | Explanation | |
Soil | . | |
N_base_supply, P_base_supply, K_base_supply | Potential supply (kg/ha) of N, P and K of the (unfertilzed) soil in a growing season of standard length (default is 120 days). See soilNutrientSupply to estimate that. |
|
N_recovery, P_recovery, K_recovery | Fertilzer recovey, that is, the fraction of applied fertilizer that can be taken up by the plant. | |
UptakeAdjust | Two-colum matrix to compute the fraction uptake from soil supply as function of length of season. The default standard season length is 120 days. The first column is the length of the growing season, the second column is the fraction uptake. Intermediate values are computed by linear interpolation. | |
Crop | . | |
_minVeg, _maxVeg, _minStore, _maxStore | minimum and maximum concentration of "_ " (N, P, or K) in vegetative organs and in storage organs (kg/kg) |
|
Yzero | the maximum biomass of vegetative organs at zero yield of storage organs (kg/ha) | |
Nfix | the fraction of a crop's nitrogen uptake supplied by biological fixation | |
Managment | . | |
N, P, K | N, P, and K fertilzer applied. | |
Crop yield | . | |
leaf_att, stem_att, store_att | Attainable (in the absence of nutirent limitation), or target crop biomass (dry-matter, kg/ha) for leaves, stems and storage organs. | |
SeasonLength | Length of the growing season (days) | |
. | ||
. | ||
Output Variables | Explanation | |
N_actual_supply, P_actual_supply, K_actual_supply | nutrient uptake from soil (not fertilzer) (kg/ha) | |
leaf_lim, stem_lim, store_lim | nutrient limited biomass of leaves, stems, and storage organ (kg/ha) | |
N_gap, P_gap, K_gap | fertilizer required to reach the specified biomass (kg/ha) | |
vector with output variables as described in the Details
Janssen et al., 1990. A system for the quantitative evaluation of tropical soils. Geoderma 46: 299-318
Sattari et al., 2014. Crop yield response to soil fertility and N, P, K inputs in different environments: Testing and improving the QUEFTS model. Field Crops Research 157:35-46
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | library(Rquefts)
# create a QUEFTS model
# 1 get parameters
soiltype <- quefts_soil()
barley <- quefts_crop('Barley')
fertilizer <- list(N=0, P=0, K=0)
yld <- list(leaf_att=2200, stem_att=2700, store_att=4800, SeasonLength=110)
# create model
q <- quefts(soiltype, barley, fertilizer, yld)
# run the model
q$run()
# change some parameters
q$SeasonLength <- 162
q$leaf_att <- 2651
q$stem_att <- 5053
q$store_att <- 8208
q$N <- 100
q$P <- 50
q$K <- 50
q$run()
fert(q) <- list(N=0, P=0, K=0)
N <- 1:20*10
results <- matrix(nrow=length(N), ncol=12)
colnames(results) <- names(q$run())
for (i in 1:length(N)) {
q$N <- N[i]
results[i,] <- q$run()
}
yield <- results[,'store_lim']
par(mfrow=c(1,2))
plot(N, yield, type='l', lwd=2)
Efficiency = yield / N
plot(N, Efficiency, type='l', lwd=2)
f <- expand.grid(N=seq(0,400,10), P=seq(0,400,10), K=c(0,200))
x <- rep(NA, nrow(f))
for (i in 1:nrow(f)) {0
q$N <- f$N[i]
q$P <- f$P[i]
q$K <- f$K[i]
x[i] <- q$run()['store_lim']
}
x <- cbind(f, x)
## Not run:
library(raster )
r0 <- rasterFromXYZ(x[x$K==0, -3])
r200 <- rasterFromXYZ(x[x$K==200, -3])
par(mfrow=c(1,2))
plot(r0, xlab='N fertilizer', ylab='P fertilizer', las=1, main="K=0")
contour(r0, add=TRUE)
plot(r200, xlab='N fertilizer', ylab='P fertilizer', las=1, main="K=200")
contour(r200, add=TRUE)
plot(stack(r0, r200))
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.