Dykstra-Parsons Heterogeneity Index : is a method of quantifying the degree of heterogeneity of a reservoir based on permeability data from core analysis .

first, reading the whole data set

data= read.csv("karpur.csv")
head(data)

sort the permeability values in a descending order.

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)

plotting samples vs. permeability to see the corelation

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")

plot best strighat line between sorted
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 = 'blue', lwd = 2)

Calculating the Heterogeneity Index
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