Aquifer vulnerability Mapping with AHP Multi‐criteria Analysis using R

  • بادئ الموضوع Hicham AMAR
  • تاريخ البدء
H

Hicham AMAR

Guest
GIS based combination of AHP as Multi‐criteria Analysis with DRASTIC model is applied in many studies to assess the groundwater vulnerability (Neshat and Pradhan, 2015; Pourghasemi et al., 2012). The DRASTIC model is the popular model with subjective rating from 1 to 10 and weight from 1 to 5 (Alemi-Ardakani et al., 2016; Gogu et al., 2003; Hamza et al., 2015; Mogaji et al., 2014; Sahoo et al., 2016).

AHP was proposed by Saaty and Decision (1990) to solve many complicated decision making problems. It allows to obtain a priority scale derived from a set of alternatives. The construction of pairwise comparison matrices by expert judgments is the most component of the AHP method. This method allows to calculate the weight based on the priority scale of the used parameters. These weights were used to determine the consistency index CI. The ration of consistency index is calculated by dividing consistency index by random index. The CR must be inferior to 0.1 to preserve the pairwise comparison matrices. If the CR is superior to 0.1, the model will be neglected.

In this article, the AHP will be applied to assess the aquifer vulnerability using the DRASTIC model. The parameters used in this application are RASTIC.

To do this, the step to follow are :

  • Libraries loading

The important libraries called for this application are FuzzyAHP for weight calculation, raster for file import, and raster to manage raster files.

############################ AHP et aquifer vulnerability ###############
#######################Devlp ./ Hicham AMAR#############################
#########################Date : 30-01-2022##########################
library("FuzzyAHP")
library('sp')
library('raster')
library('rgdal')
library('ggplot2')
library('RasterLayer')
library(ggplot2)
library(rgdal)
library(rgeos)
library(sf)
library(tidyverse)
library(classInt)
library(viridis)
library(readxl)
library(cowplot) # for plot_grid function
  • Import raster files

The raster function is used to import the RASTIC parameters.

#################Loading of the Tif files ################3
# set working directory to data folder
setwd("E:/Blog_Geoinfo4all/012022/Article-DRASTIC/Data-Geoinfo4all")
# load raster in an R object called 'DEM'
DEM_R <- raster("RW.tif")
DEM_A <- raster("A.tif")
DEM_S <- raster("S.tif")
DEM_T <- raster("T.tif")
DEM_I <- raster("I.tif")
DEM_C <- raster("C.tif")
  • Mapping of the parameters used RASTIC

The raster files are stored in list to map them.

############Mapping of the six parameters ############
Maps <- list(DEM_R,DEM_A,DEM_S,DEM_T,DEM_I,DEM_C)
names_mps <- c("Net Recharge","Aquifer media","Soil media","Topography","Impact of vadose zone","Conductivity")
#Mapping of the GVI and RASTIC parameters
print(" RASTIC maps ")
#dev.new()
par(mfrow=c(2,3))
for ( x in 1:6 )
{
eq <- names_mps[x]
plot( Maps[[x]] , main= eq, xlab= paste("min-mean-max",cellStats(Maps[[x]], min) ,
"-",round(cellStats(Maps[[x]], mean),0),
"-",cellStats(Maps[[x]], max)) )
}

The six RASTIC parameters
  • Application of AHP method

The comparison Matrix with 6 dimensions was elaborated according to the priority scale from 9 to 1/9. The note is assessed by comparing two parameters to define the priority. The first line and column are for R parameter, the second line and column are for A parameters, … Six weights are calculated in the end of the code bellow. The CI and CR are also calculated to evaluate the priority scales in comparison Matrix.

RASTIC
R11341/22
A 1231/21
S 121/31/2
T 11/51/3
I 12
C 1
comparison Matrix elaborated for the six parameters

##########################AHP Method #############################################
#AHP for matrix with 6 dimensions
comparisonMatrixValues = c(1,1,3,4,1/2,2,
NA,1,2,3,1/2,1,
NA,NA,1,2,1/3,1/2,
NA,NA,NA,1,1/5,1/3,
NA,NA,NA,NA,1,2,
NA,NA,NA,NA,NA,1)
#define the ncol and n row of your matrix
comparisonMatrix0 = matrix(comparisonMatrixValues, nrow = 6, ncol = 6, byrow = TRUE)
show(comparisonMatrix0)
#Calculate the pairwiseComparisonMatrix
comparisonMatrix1 = pairwiseComparisonMatrix(comparisonMatrix0)
show(comparisonMatrix1)
#Calculate the performance indices CR and CI
consistencyRatio(comparisonMatrix1)
consistencyIndex(comparisonMatrix1)
#weights Calulation
weights = calculateWeights(comparisonMatrix1)
print(weights)
typeof(weights) # S4 class must be converted to vector class

Consistency ratio is: 0.0123421503399513. The pairwise comparison matrix is consistent for calculations. [1] 0.01234215 consistencyIndex(comparisonMatrix1) [1] 0.01542769 w_C_1 w_C_2 w_C_3 w_C_4 w_C_5 w_C_6 0.2162 0.1716 0.0883 0.0536 0.3174 0.1529

The AHP model ameliorates the Wi of the R, S, T, A, and C parameters.

V AHP RASTICV AHP RASTICV RASTICV RASTIC
AHP IndicationsParametersWi% of WiWi% of Wi
R0.2221.62422.22
CI: 0.012A0.1717.16316.67
S0.098.83211.11
RI: 1,24T0.055.3615.56
I0.3231.74527.78
CR : 0.012C0.1515.29316.67
AHP indications, RASTIC and AHP RASTIC weights
  • Mapping of the V-RASTIC and V-AHP-RASTIC indices

The V-DRASTIC uses the standard weights and the V-AHP-DRASTIC uses the weights calculated in the previous step.

################RASTIC map###################
V_RASTIC <- 4*DEM_R + 3*DEM_A + 2*DEM_S + 1*DEM_T + 5*DEM_I + 3*DEM_C
plot(V_RASTIC)
################RASTIC AHP : optimised weight ###################
# weights of S4 tye is conversted to numeric vector
W_AHP = cbind(slot(weights,"weights"))
W_AHP
V_AHP_RASTIC <- W_AHP[1]*DEM_R + W_AHP[2]*DEM_A + W_AHP[3]*DEM_S + W_AHP[4]*DEM_T + W_AHP[5]*DEM_I + W_AHP[6]*DEM_C

############Mapping of the six parameters ############
FinalMaps <- list(V_RASTIC,V_AHP_RASTIC)
finalnames_mps <- c("V_RASTIC","V_AHP_RASTIC")
#Mapping of the V_RASTIC and V_AHP_RASTIC parameters
#dev.new()
par(mfrow=c(1,2))
for ( x in 1:2 )
{
eq <- finalnames_mps[x]
plot( FinalMaps[[x]] , main= eq, xlab= paste("min-mean-max",cellStats(FinalMaps[[x]], min) ,
"-",round(cellStats(FinalMaps[[x]], mean),0),"-",
cellStats(FinalMaps[[x]], max)) )
}

Maps for RASTIC and AHP RASTIC models
  • Jenks classification of the final maps

The plotmap function was developed to present the legend of the maps with Jenks classification using 5 class (very high to very low), and also the barplot of the final product.

##################function to plot the population data using JENKS classification methods
plotmap <- function(MapInx, nameMapInx)
{
#par(mfrow=c(2,1))
print('sTART of plot function')
zClass<-classIntervals(getValues(MapInx), n=5,style="jenks",dig.lab=10)
print(zClass)
plot(MapInx, breaks=zClass$brks, col=colorRampPalette(c("red", "green"))(5),
main = paste(nameMapInx, "Map"))
reclass_df <- c(0, zClass$brks[2], 1,
zClass$brks[2], zClass$brks[3], 2,
zClass$brks[3], zClass$brks[4], 3,
zClass$brks[4], zClass$brks[5], 4,
zClass$brks[5], Inf, 5)
reclass_df
reclass_m <- matrix(reclass_df, ncol = 3,byrow = TRUE)
rownames(reclass_m) = c('Very Low','Low', 'Meduim' ,'High','Very High' )
reclass_m
V_classified <- reclassify(MapInx,reclass_m)
xx <-barplot(V_classified,main = paste(nameMapInx,"Number of pixels in each class"), xaxt = 'n',xlab = '',col=colorRampPalette(c("red", "green"))(5))
## Add x-axis labels

axis(1, at=xx, labels=rownames(reclass_m), tick=FALSE, las=1, line=-0.5, cex.axis=1)
print('END of plot function')
}


par(mfrow=c(2,2))
for (Y in 1:2) {
plotmap(FinalMaps[[Y]],finalnames_mps[Y])
}

[1] “sTART of plot function” style: jenks one of 101,270 possible partitions of this variable into 5 classes [58,78] (78,86] (86,97] (97,115] (115,129] 2380 2336 1016 368 305 [1] “END of plot function” [1] “sTART of plot function” style: jenks one of 367,290 possible partitions of this variable into 5 classes [3.205648,4.25863] (4.25863,4.650126] (4.650126,5.511767] (5.511767,6.363103] 2424 2317 997 303 (6.363103,7.157593] 364 [1] “END of plot function”

The final maps of the V_RASTIC and V_AHP_RASTIC are shown in the figure below.


Maps of RASTIC and AHP RASTIC models and their barplot with vulnerability classes

The Table below illustrates the number of pixels and the proportion of each class of the models used in this article.

ModelV RASTICV RASTICV AHP RASTICV AHP RASTIC
ClassNumber of pixels% of the classNumber of pixels% of the class
Very low238037.16%242437.85%
Low233636.47%231736.17%
Medium101615.86%99715.57%
High3685.75%3034.73%
Very high3054.76%3645.68%
Total6405100%6405100%
Statistics of RASTIC and AHP RASTIC models

Hicham AMAR, Ing in Geomatic Sciences, Co-founder of Geoinfo4all.com

References

Alemi-Ardakani, M., Milani, A. S., Yannacopoulos, S., Shokouhi, G., 2016. On the effect of subjective, objective and combinative weighting in multiple criteria decision making: A case study on impact optimization of composites. Expert Systems with Applications, 46, 426-438.

Gogu, R. C., Hallet, V., Dassargues, A., 2003. Comparison of aquifer vulnerability assessment techniques. Application to the néblon river basin (belgium). Environmental Geology, 44(8), 881-892.

Hamza, S., Ahsan, A., Imteaz, M. A., Rahman, A., Mohammad, T. A., Ghazali, A. H., 2015. Accomplishment and subjectivity of gis-based drastic groundwater vulnerability assessment method: A review. Environmental Earth Sciences, 73(7), 3063-3076.

Mogaji, K. A., San Lim, H., Abdullar, K., 2014. Modeling groundwater vulnerability to pollution using optimized drastic model. Paper presented at the IOP Conference Series: Earth and Environmental Science.

Neshat, A., Pradhan, B., 2015. An integrated drastic model using frequency ratio and two new hybrid methods for groundwater vulnerability assessment. Natural Hazards, 76(1), 543-563.

Pourghasemi, H. R., Pradhan, B., Gokceoglu, C., 2012. Application of fuzzy logic and analytical hierarchy process (ahp) to landslide susceptibility mapping at haraz watershed, iran. Natural Hazards, 63(2), 965-996.

Saaty, T. L., Decision, H. T. M. A., 1990. The analytic hierarchy process. European Journal of Operational Research, 48, 9-26. Sahoo, M., Sahoo, S., Dhar, A., Pradhan, B., 2016. Effectiveness evaluation of objective and subjective weighting methods for aquifer vulnerability assessment in urban context. Journal of Hydrology, 541, 1303-1315.

متابعة القراءة...
 
أعلى