Quantitative measurement that assesses the degree of heterogeneity in the geological properties distribution within the subsurface formation. This index helps describe the spatial variation of essential reservoir parameters, such as porosity, permeability, or lithology. This calculation can be done using tow methods:
Dykstra-Parson Coefficient.
Lorenz Coefficient: “Note described”
This method measures the statistical variability of permeability values within a reservoir, indicating the degree of heterogeneity. It implies several calculations on permeability values in table form. The heterogeneity index can be calculated as follows:
Arrange the permeability values in descending order.
Calculate the number of data points with greater or equal permeability (Number of Samples >= K).
Calculate the Percentile of each frequency.
Plot the samples portion versus permeability on a semi log scale.
Find a linear regression model to the straight line that resulting from the semi plot.
setwd("C:/Users/w/Desktop/r")
data = read.csv(("C:/Users/w/Desktop/r/karpur.csv"), header = TRUE)
head(data)
ordered_data = data[order(data$k.core, decreasing = TRUE), ]
k = ordered_data$k.core
num_samples = c(1: length(k))
k_percent = (num_samples * 100)/length(k)
plot(k_percent, k,
log = "y", # Set y-axis to log scale
xlab = "Portion of Total Samples Having Larger or Equal k",
ylab = "Permeability (mD)",
pch = 19,
col = "blue",
main = "Semi-Log Plot of Permeability vs. Sample Portion")
log_k = log(k)
model = lm(log_k ~ k_percent)
summary((model))
##
## Call:
## lm(formula = log_k ~ 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
wanted_k = data.frame(k_percent = c(50, 84.1))
predict_k = predict(model, wanted_k)
HI = (predict_k[1]-predict_k[2]) / predict_k[1]
HI <- as.numeric(HI)
HI
The Value Range according to Dykstra-Parsons is as follows:
0 = Completely homogeneous (all layers have identical permeability).
1 = Extremely heterogeneous (large differences in permeability across layers).
Therefore, this reservoir is considered to have moderate heterogeneity, as the Dykstra-Parsons coefficient is around 0.2035464.