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."
lapply(banana_suit[["soil"]], function(x) head(x)) 
## $`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

Intervals

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.