Heterogeneity Index describes a numerical evaluation of the level of differences or diversity in the spread of geological characteristics within an underground reservoir. This index is used to describe the spatial variety of important reservoir characteristics like porosity, permeability, and lithology.

The Dykstra-Parsons Method involves arranging permeability values in descending order to create a log-normal probability graph. The percentage of samples with permeability higher than each value is computed. In order to prevent 0% or 100% extremes, the percentage calculated is adjusted by adding 1 to ā€˜n’, which represents the sample size. This approach gives a thorough distribution of permeability frequencies, providing understanding of the variability within the reservoir.

data = read.csv('C:/Users/hp ZBook/OneDrive/Desktop/karpur.csv')
head(data)
##    depth caliper ind.deep ind.med  gamma phi.N R.deep  R.med      SP
## 1 5667.0   8.685  618.005 569.781 98.823 0.410  1.618  1.755 -56.587
## 2 5667.5   8.686  497.547 419.494 90.640 0.307  2.010  2.384 -61.916
## 3 5668.0   8.686  384.935 300.155 78.087 0.203  2.598  3.332 -55.861
## 4 5668.5   8.686  278.324 205.224 66.232 0.119  3.593  4.873 -41.860
## 5 5669.0   8.686  183.743 131.155 59.807 0.069  5.442  7.625 -34.934
## 6 5669.5   8.686  109.512  75.633 57.109 0.048  9.131 13.222 -39.769
##   density.corr density phi.core   k.core Facies
## 1       -0.033   2.205 0.339000 2442.590     F1
## 2       -0.067   2.040 0.334131 3006.989     F1
## 3       -0.064   1.888 0.331000 3370.000     F1
## 4       -0.053   1.794 0.349000 2270.000     F1
## 5       -0.054   1.758 0.350644 2530.758     F1
## 6       -0.058   1.759 0.353152 2928.314     F1
data = data[order(data$k.core, decreasing=TRUE), ]
K = data$k.core

#Calculating Number of Samples >= k
sample = c(1: length(K))

# Calculating % >= k
k_percent = (sample * 100) / length(K)
# plot best strighat line between sorted 
xlab = "Portion of Total Samples Having Larger or Equal K "
ylab = "Permeability (md)"
plot(k_percent, K, log =  'y', xlab = xlab, ylab = ylab, pch = 10, cex = 0.5, col = "#001c49")

log_k = log(K)
model = lm(log_k ~ k_percent)
plot(k_percent,log_k, xlab = xlab, ylab = ylab, pch = 10, cex = 0.5, col = "#001c49")
abline(model, col = 'red', lwd = 2)

new_data = data.frame(k_percent  = c(50, 84.1))
predicted_values = predict(model, new_data)
heterogenity_index = (predicted_values[1] - predicted_values[2]) / predicted_values[1]
heterogenity_index
##         1 
## 0.2035464