Heterogeneity Index
The Heterogeneity Index measures the variability of geological properties within a reservoir, focusing on factors like porosity and permeability. It employs methods such as the Dykstra-Parsons method, which analyzes permeability distributions using a log-normal probability graph and normalizes data to avoid extreme values. This index helps characterize spatial diversity in reservoir parameters.
#importing data and sorting the permeability values in a descending order.
df <- read.csv("karpur.csv")
df = df[order(df$k.core, decreasing=TRUE), ]
head(df)
#Calculating Number of Samples >= k
sample = c(1: length(df$k.core))
# Calculating % >= k
k_percent = (sample * 100) / length(df$k.core)
plotting samples with permeability
plot(k_percent, df$k.core, log = 'y', xlab = "Portion of total samples having larger or equal K", ylab = "Permeability (md)", pch = 10, cex = 0.5, col = "yellow4")
model = lm(log(df$k.core) ~ k_percent)
summary(model)
Call:
lm(formula = log(df$k.core) ~ k_percent)
Residuals:
Min 1Q Median 3Q Max
-5.8697 -0.2047 0.1235 0.3150 0.4280
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 9.2584172 0.0377994 244.94 <2e-16 ***
k_percent -0.0425617 0.0006541 -65.07 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.5404 on 817 degrees of freedom
Multiple R-squared: 0.8382, Adjusted R-squared: 0.838
F-statistic: 4234 on 1 and 817 DF, p-value: < 2.2e-16
plot(k_percent, log(df$k.core),xlab = "Portion of Total Samples Having Larger or Equal K", ylab = "Permeability (md)", pch = 10, cex = 0.5, col = "blue4")
abline(model, col = 'red4', lwd = 2)
Calculating the Heterogeneity Index
new_df = data.frame(k_percent = c(50, 84.1))
predicted_values = predict(model, new_df)
heterogenity_index = (predicted_values[1] - predicted_values[2]) / predicted_values[1]
heterogenity_index
1
0.2035464
HI=0.2035464