vignettes/a04_understanding_overall_suit.Rmd
a04_understanding_overall_suit.Rmd
The overall suitability can be computed using the
overall_suit
function, which takes an object of class
suitability. For example,
## Loading required package: Rcpp
banana_suit <- suit("banana", terrain=MarinduqueLT)
## Warning in suitability(terrain, crop_soil, mf = mf, sow_month = NULL, minimum
## = minimum, : maximum is set to 16 for factor CECc since all parameter intervals
## are equal.
class(banana_suit[["terrain"]])
## [1] "character"
class(banana_suit[["soil"]])
## [1] "suitability"
If we take a look at the output of both terrain and soil characteristics, we have:
lapply(banana_suit[["terrain"]], function(x) head(x)) # lapply is used to show the head of each item in the list
## [[1]]
## [1] "Error: No factor(s) to be evaluated, since none matches with the crop requirements. If water or temp characteristics was specified then maybe you forgot to specify the sow_month argument, read doc for suit."
## $`Factors Evaluated`
## [1] "CFragm" "CECc" "pHH2O" "SoilTe"
##
## $`Suitability Score`
## CFragm CECc pHH2O SoilTe
## 1 0.8533333 0.7500 0 0.96
## 2 0.8800000 0.7500 0 0.96
## 3 0.8666667 0.7500 0 0.96
## 4 0.8666667 0.7500 0 0.96
## 5 0.8400000 0.7500 0 0.96
## 6 0.8533333 0.8125 0 0.96
##
## $`Suitability Class`
## CFragm CECc pHH2O SoilTe
## 1 S1 S1 N S1
## 2 S1 S1 N S1
## 3 S1 S1 N S1
## 4 S1 S1 N S1
## 5 S1 S1 N S1
## 6 S1 S1 N S1
##
## $`Factors' Minimum Values`
## CFragm CECc pHH2O SoilTe
## 0 0 0 0
##
## $`Factors' Maximum Values`
## CFragm CECc pHH2O SoilTe
## 75.00 16.00 8.94 12.50
##
## $`Factors' Weights`
## [1] 3 3 3 2
##
## $`Crop Evaluated`
## [1] "BANANASoil"
##
## $Warning
## [1] "maximum is set to 16 for factor CECc since all parameter intervals are equal."
There are no factors targetted for the terrain characteristics, that is why the returned value is a string error. Thus, only the soil characteristics can have an overall suitability, and is computed as follows:
ovsuit <- overall_suit(banana_suit[["soil"]])
head(ovsuit)
## Score Class
## 1 0 N
## 2 0 N
## 3 0 N
## 4 0 N
## 5 0 N
## 6 0 N
By default, the overall_suit
function uses minimum as a
summary statistics, hence the 0 scores and N classes across land units.
To adjust this to average aggregation, use the method
argument to specify.
ovsuit <- overall_suit(banana_suit[["soil"]], method="average")
head(ovsuit)
## Score Class
## 1 0.6505051 S2
## 2 0.6569697 S2
## 3 0.6537374 S2
## 4 0.6537374 S2
## 5 0.6472727 S2
## 6 0.6656566 S2
By default, the overall_suit
uses an equally spaced
interval for the suitability classes, that is, N [0, 0.25), S3 [0.25,
0.50), S2 [0.50, 0.75), and S1 [0.75, 1]. This can be changed using the
interval
argument, for example
ovsuit <- overall_suit(banana_suit[["soil"]], method="average", interval=c(0, 0.6, 0.7, 0.9, 1))
head(ovsuit)
## Score Class
## 1 0.6505051 S3
## 2 0.6569697 S3
## 3 0.6537374 S3
## 4 0.6537374 S3
## 5 0.6472727 S3
## 6 0.6656566 S3
The above code sets the suitability class intervals into: N [0,
0.60), S3 [0.60, 0.70), S2 [0.70, 0.90), and S1 [0.90, 1]. It should be
emphasized that the interval
argument cannot be set to
unbias
as in the case of the interval
argument
of the suit
function. This follows from the fact that the
overall_suit
function does not use a membership function
for computing the score, but an aggregation function.