This analysis evaluates permeability heterogeneity and flow distribution using a dataset. It sorts permeability values, calculates a heterogeneity index through linear regression.

Load the Dataset

dataset<-read.csv(file.choose(),header = TRUE)
head(dataset)

Sort the Dataset

dataset=dataset[order(dataset$k.core,decreasing = TRUE),]
k=dataset$k.core

Create a Sample Sequence

sample=c(1:length(k))

Calculate Percentage of Samples

k_percent=(sample*100)/length(k)

Plot Permeability against Percentage


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

Linear Regression Mode

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='green',lwd=2)

Summary of the Model

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
LS0tDQp0aXRsZTogIkR5a3N0cmEtUGFyc29ucyBIZXRlcm9nZW5laXR5IEluZGV4Ig0KYXV0aG9yOiAiTW9oYW1tZWQgS2hhbGFmIEhhbWVlZC9CYXNyYSBVbml2ZXJzaXR5IEZvciBPaWwgQW5kIEdhcy80dGggc3RhZ2UiDQpkYXRlOiAiMjAyNC0xMC0yMSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNClRoaXMgYW5hbHlzaXMgZXZhbHVhdGVzIHBlcm1lYWJpbGl0eSBoZXRlcm9nZW5laXR5IGFuZCBmbG93IGRpc3RyaWJ1dGlvbiB1c2luZyBhIGRhdGFzZXQuIEl0IHNvcnRzIHBlcm1lYWJpbGl0eSB2YWx1ZXMsIGNhbGN1bGF0ZXMgYSBoZXRlcm9nZW5laXR5IGluZGV4IHRocm91Z2ggbGluZWFyIHJlZ3Jlc3Npb24uDQoNCiMgTG9hZCB0aGUgRGF0YXNldA0KDQpgYGB7cn0NCmRhdGFzZXQ8LXJlYWQuY3N2KGZpbGUuY2hvb3NlKCksaGVhZGVyID0gVFJVRSkNCmhlYWQoZGF0YXNldCkNCmBgYA0KIyBTb3J0IHRoZSBEYXRhc2V0DQpgYGB7cn0NCmRhdGFzZXQ9ZGF0YXNldFtvcmRlcihkYXRhc2V0JGsuY29yZSxkZWNyZWFzaW5nID0gVFJVRSksXQ0Kaz1kYXRhc2V0JGsuY29yZQ0KYGBgDQojIENyZWF0ZSBhIFNhbXBsZSBTZXF1ZW5jZQ0KYGBge3J9DQpzYW1wbGU9YygxOmxlbmd0aChrKSkNCmBgYA0KIyBDYWxjdWxhdGUgUGVyY2VudGFnZSBvZiBTYW1wbGVzDQpgYGB7cn0NCmtfcGVyY2VudD0oc2FtcGxlKjEwMCkvbGVuZ3RoKGspDQpgYGANCiMgUGxvdCBQZXJtZWFiaWxpdHkgYWdhaW5zdCBQZXJjZW50YWdlDQpgYGB7cn0NCg0KeGxhYj0icG9ydGlvbiBvZiB0b3RhbCBzYW1wbGVzIGhhdmluZyBsYXJnZXIgb3IgZXF1YWwgayINCnlsYWI9InBlcm1lYWJpbGl0eShtZCkiDQpwbG90KGtfcGVyY2VudCxrLGxvZyA9ICd5Jyx4bGFiID0geGxhYix5bGFiID0geWxhYixwY2g9MTAsY2V4PTAuNSxjb2w9IiMwMDFDNDkiKQ0KYGBgDQojIExpbmVhciBSZWdyZXNzaW9uIE1vZGUNCmBgYHtyfQ0KbG9nX2s9bG9nKGspDQptb2RlbD1sbShsb2dfa35rX3BlcmNlbnQpDQpwbG90KGtfcGVyY2VudCxsb2dfayx4bGFiID0geGxhYix5bGFiID0geWxhYixwY2g9MTAsY2V4PTAuNSxjb2w9IiMwMDFjNDkiKQ0KYWJsaW5lKG1vZGVsLGNvbD0nZ3JlZW4nLGx3ZD0yKQ0KYGBgDQojIFN1bW1hcnkgb2YgdGhlIE1vZGVsDQpgYGB7cn0NCnN1bW1hcnkobW9kZWwpDQpgYGANCg==