A Python Package for Petrophysical Evaluation
Project description
Petrolib: Petrophysical Evaluation Package
This is a python package designed to help users perform petrophysical analysis by estimating petrophysical parameters such as:
* Volume of Shale using various methods like Clavier, Stieber and Larionov methods
* Porosity - Effective and Total porosities using the density and Wyllie's sonic methods.
* Water Saturation - using both archie and simmandoux methods
* Permeability
In addition to estimating these parameters, log plots are automatically displayed for proper interpretation. Also a pay summary result/dataframe is produced to help quantify the over-all quality of the reservoirs. Cutoff such as the porosity, shale volume and water saturation are applied to flag pay regions. The pay summary include:
- net, gross and not net thicknesses
- % net-to-gross
- average volume of shale
- average porosity
- bulk volume of water
- water saturation.
Interestingly, the parameters are computed and displayed only for the zones of interest picked. Plots such as neutron-density and pickett are available for reservoir assessment. Geolocations of the wells can also be visualised.
Functionalities
The package is designed to handle:
- Loading of well data
- Processing of well log data
- Statistical analysis such as log frequencies and correlation
- Well log visualisation
- Plot well locations on an actual map
- Facilitates the loading of well tops.
- Plot log curves along with zonation tracks
- Neutron-density cross plot
- Pickett Plot
Installation
pip install -U petrolib
Quick tutorial
#import necessaries
from pathlib import Path
from petrolib import procs
from petrolib import file_reader as fr
from petrolib.workflow import Quanti
from petrolib.plots import tripleCombo, Zonation, plotLog
#load data
well_path = Path(r"./15_9-19.las")
tops_path = Path(r'./well tops.csv')
df, las = fr.load_las(well_path, return_csv=True, curves=['GR', 'RT', 'NPHI', RHOB'])
#process data
df = procs.process_data(df, 'GR', 'RT', 'NPHI', 'RHOB')
#triple combo
%matplotlib inline
tripleCombo(df, 'DEPTH', 'GR', 'RT', 'NPHI', 'RHOB', ztop=3300,
zbot=3450, res_thres=10, fill='right', palette_op='rainbow', limit='left')
#zone plot
zones = Zonation(df, path=tops_path)
zones.plotZone('DEPTH', ['GR', 'RT', 'RHOB', 'NPHI', 'CALI'], 3300, 3600, '15_9-19')
plotLog('DEPTH', ['GR', 'RT', 'RHOB', 'NPHI', 'CALI'], 3300, 3600, '15_9-19')
#calling the zonation object to extra info
ztop, zbot, zn, fm = zones()
#Petrophysics
pp = Quanti(df, zn, ztop, zbot, fm, 'DEPTH', 'GR', 'RT', 'NPHI', 'RHOB', use_mean=True)
vsh = pp.vshale(method='clavier', show_plot=True, palette_op='cubehelix', figsize=(9,12))
por = pp.porosity(method='density', show_plot=True, figsize=(10, 12))
sw = pp.water_saturation(method='archie', show_plot=True, figsize=(10, 12))
perm = pp.permeability(show_plot=True, figsize=(9, 10))
flags = pp.flags(por_cutoff=.12, vsh_cutoff=.5, sw_cutoff=0.8, show_plot=True, palette_op='cubehelix', figsize=(20, 15))
ps = pp.paySummary(name='15-9_F1A')
#save results to excel
pp.save(file_name='Pay Summary')
Tutorial repo link
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file petrolib-1.2.6.tar.gz.
File metadata
- Download URL: petrolib-1.2.6.tar.gz
- Upload date:
- Size: 31.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6887897a9990a62831a0e495dbfdd164c1c524b8813a22ed3b5d71d75f4629e7
|
|
| MD5 |
8e41977e9b0c441b00e8d72cf5e1ac2b
|
|
| BLAKE2b-256 |
158fc2f07573f6b318917d8e807cc62d90d2f3f603addd59371f3e92885e61eb
|
File details
Details for the file petrolib-1.2.6-py3-none-any.whl.
File metadata
- Download URL: petrolib-1.2.6-py3-none-any.whl
- Upload date:
- Size: 32.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a4c8491b67e0d6e85702ece1c71ecb1311d84d6fb019e3ae34d8fe86baee4ad
|
|
| MD5 |
e67dcc837dcb50a2bc551ef36724b05d
|
|
| BLAKE2b-256 |
5e1c11e418943f3b9b80ce5fbbfcfac8c11e627496561cdb47b6ee3eeb6ae923
|