38 lines
828 B
Python
Executable File
38 lines
828 B
Python
Executable File
import sys
|
|
import numpy as np
|
|
import matplotlib.pylab as plt
|
|
|
|
FILENAME=sys.argv[1]
|
|
Nx=int(sys.argv[2])
|
|
Ny=int(sys.argv[3])
|
|
Nz=int(sys.argv[4])
|
|
|
|
# read the input image
|
|
Output = np.fromfile(FILENAME,dtype = np.uint8)
|
|
Output.shape = (Nz,Ny,Nx)
|
|
|
|
Oil=np.count_nonzero(Output==1)
|
|
Water=np.count_nonzero(Output==2)
|
|
Sw=Water/(Oil+Water)
|
|
|
|
Porosity=1.0-(Oil+Water)/(Nx*Ny*Nz)
|
|
|
|
print(FILENAME,"Porosity=", Porosity)
|
|
|
|
SaturationProfile=np.zeros(Nz)
|
|
PorosityProfile=np.zeros(Nz)
|
|
# Compute saturation slice by slice
|
|
for idx in range(0, Nz):
|
|
Slice = Output[idx,:,:]
|
|
Oil=np.count_nonzero(Slice==1)
|
|
Water=np.count_nonzero(Slice==2)
|
|
SaturationProfile[idx]=Water/(Oil+Water)
|
|
PorosityProfile[idx]=(Oil+Water)/(Nx*Ny)
|
|
|
|
|
|
plt.figure()
|
|
plt.plot(SaturationProfile)
|
|
plt.xlabel('Position (z)')
|
|
plt.ylabel('Water Saturation')
|
|
plt.show()
|