Repository files navigation

https://toddheitmann.github.io/PetroPy/_images/petropy_logo.png

PetroPy

A python petrophysics package allowing scientific python computing of conventional and unconventional formation evaluation. Reads las files using lasio. Includes a petrophysical workflow and a log viewer based on XML templates.

https://toddheitmann.github.io/PetroPy/_images/university_6-18W_no1.png

Requirements

Installation

Install PetroPy through pip via the command line

pip install petropy

To read in an las file, pass the file reference:

importpetropyasptrfile_path=r'path/to/well.las'log=ptr.Log(file_path)

Documentation

View the online documentation for classes and methods.

Las File Processing

To understanding using petropy in a petrophysical workflow for las file processing, see the example page.

Petrophysical Model Quick Look

>>># import petropy and print raw curves>>>importpetropyasptr>>>log=ptr.log_data('WFMP')
>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
>>># read tops into Log object and print>>>log.tops_from_csv()
>>>print(log.tops)
{'WFMPA': 6993.5, 'WFMPB': 7294.0, 'WFMPC': 7690.5, 'WFMPD': 8028.0}
>>># load default parameters and print values>>>log.fluid_properties_parameters_from_csv()
>>>print(log.fluid_properties_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># specificy formation intervals>>>f= ['WFMPA', 'WFMPB', 'WFMPC']
>>># calculate fluid properties for defined formations>>>log.formation_fluid_properties(f, parameter='WFMP')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
>>># load default multimineral parameters>>>log.multimineral_parameters_from_csv()
>>># print available default formation parameters>>>print(log.multimineral_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># calculate mulitmineral model over defined formations>>># with parameter 'WFMP'>>>log.formation_multimineral_model(f, parameter='WFMP')
>>>log.write('processed_log.las')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
PHIE v/v Effective Porosity
SW v/v Water Saturation
SHC v/v Hydrocarbon Saturation
BVH v/v Bulk Volume Hydrocarbon
BVW v/v Bulk Volume Water
BVWI v/v Bulk Volume Water Irreducible
BVWF v/v Bulk Volume Water Free
BVOM v/v Bulk Volume Fraction Organic Matter
BVCLAY v/v Bulk Volume Fraction Clay
BVPYR v/v Bulk Volume Fraction Pyrite
VOM v/v Matrix Volume Fraction Organic Matter
VCLAY v/v Matrix Volume Fraction Clay
VPYR v/v Matrix Volume Fraction Pyrite
RHOM g/cc Matrix Density
TOC wt/wt Matrix Weight Fraction Organic Matter
WTCLAY wt/wt Matrix Weight Fraction Clay
WTPYR wt/wt Matrix Weight Fraction Pyrite
BVQTZ v/v Bulk Volume Fraction Quartz
VQTZ v/v Matrix Volume Fraction Quartz
WTQTZ wt/wt Matrix Weight Fraction Quartz
BVCLC v/v Bulk Volume Fraction Calcite
VCLC v/v Matrix Volume Fraction Calcite
WTCLC wt/wt Matrix Weight Fraction Calcite
BVDOL v/v Bulk Volume Fraction Dolomite
VDOL v/v Matrix Volume Fraction Dolomite
WTDOL wt/wt Matrix Weight Fraction Dolomite
OIP wt/wt Matrix Weight Fraction Dolomite

About

A petrophysics python package for geoscience python computing of conventional and unconventional formation evaluation. Reads las files and creates a pandas dataframe of the log data. Includes a basic petrophysical workflow and a simple log viewer based on XML templates.

Topics

Resources

Stars

207 stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

https://toddheitmann.github.io/PetroPy/_images/petropy_logo.png

PetroPy

A python petrophysics package allowing scientific python computing of conventional and unconventional formation evaluation. Reads las files using lasio. Includes a petrophysical workflow and a log viewer based on XML templates.

https://toddheitmann.github.io/PetroPy/_images/university_6-18W_no1.png

Requirements

Installation

Install PetroPy through pip via the command line

pip install petropy

To read in an las file, pass the file reference:

importpetropyasptrfile_path=r'path/to/well.las'log=ptr.Log(file_path)

Documentation

View the online documentation for classes and methods.

Las File Processing

To understanding using petropy in a petrophysical workflow for las file processing, see the example page.

Petrophysical Model Quick Look

>>># import petropy and print raw curves>>>importpetropyasptr>>>log=ptr.log_data('WFMP')
>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
>>># read tops into Log object and print>>>log.tops_from_csv()
>>>print(log.tops)
{'WFMPA': 6993.5, 'WFMPB': 7294.0, 'WFMPC': 7690.5, 'WFMPD': 8028.0}
>>># load default parameters and print values>>>log.fluid_properties_parameters_from_csv()
>>>print(log.fluid_properties_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># specificy formation intervals>>>f= ['WFMPA', 'WFMPB', 'WFMPC']
>>># calculate fluid properties for defined formations>>>log.formation_fluid_properties(f, parameter='WFMP')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
>>># load default multimineral parameters>>>log.multimineral_parameters_from_csv()
>>># print available default formation parameters>>>print(log.multimineral_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># calculate mulitmineral model over defined formations>>># with parameter 'WFMP'>>>log.formation_multimineral_model(f, parameter='WFMP')
>>>log.write('processed_log.las')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
PHIE v/v Effective Porosity
SW v/v Water Saturation
SHC v/v Hydrocarbon Saturation
BVH v/v Bulk Volume Hydrocarbon
BVW v/v Bulk Volume Water
BVWI v/v Bulk Volume Water Irreducible
BVWF v/v Bulk Volume Water Free
BVOM v/v Bulk Volume Fraction Organic Matter
BVCLAY v/v Bulk Volume Fraction Clay
BVPYR v/v Bulk Volume Fraction Pyrite
VOM v/v Matrix Volume Fraction Organic Matter
VCLAY v/v Matrix Volume Fraction Clay
VPYR v/v Matrix Volume Fraction Pyrite
RHOM g/cc Matrix Density
TOC wt/wt Matrix Weight Fraction Organic Matter
WTCLAY wt/wt Matrix Weight Fraction Clay
WTPYR wt/wt Matrix Weight Fraction Pyrite
BVQTZ v/v Bulk Volume Fraction Quartz
VQTZ v/v Matrix Volume Fraction Quartz
WTQTZ wt/wt Matrix Weight Fraction Quartz
BVCLC v/v Bulk Volume Fraction Calcite
VCLC v/v Matrix Volume Fraction Calcite
WTCLC wt/wt Matrix Weight Fraction Calcite
BVDOL v/v Bulk Volume Fraction Dolomite
VDOL v/v Matrix Volume Fraction Dolomite
WTDOL wt/wt Matrix Weight Fraction Dolomite
OIP wt/wt Matrix Weight Fraction Dolomite

About

A petrophysics python package for geoscience python computing of conventional and unconventional formation evaluation. Reads las files and creates a pandas dataframe of the log data. Includes a basic petrophysical workflow and a simple log viewer based on XML templates.

Topics

Resources

Stars

207 stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

https://toddheitmann.github.io/PetroPy/_images/petropy_logo.png

PetroPy

A python petrophysics package allowing scientific python computing of conventional and unconventional formation evaluation. Reads las files using lasio. Includes a petrophysical workflow and a log viewer based on XML templates.

https://toddheitmann.github.io/PetroPy/_images/university_6-18W_no1.png

Requirements

Installation

Install PetroPy through pip via the command line

pip install petropy

To read in an las file, pass the file reference:

importpetropyasptrfile_path=r'path/to/well.las'log=ptr.Log(file_path)

Documentation

View the online documentation for classes and methods.

Las File Processing

To understanding using petropy in a petrophysical workflow for las file processing, see the example page.

Petrophysical Model Quick Look

>>># import petropy and print raw curves>>>importpetropyasptr>>>log=ptr.log_data('WFMP')
>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
>>># read tops into Log object and print>>>log.tops_from_csv()
>>>print(log.tops)
{'WFMPA': 6993.5, 'WFMPB': 7294.0, 'WFMPC': 7690.5, 'WFMPD': 8028.0}
>>># load default parameters and print values>>>log.fluid_properties_parameters_from_csv()
>>>print(log.fluid_properties_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># specificy formation intervals>>>f= ['WFMPA', 'WFMPB', 'WFMPC']
>>># calculate fluid properties for defined formations>>>log.formation_fluid_properties(f, parameter='WFMP')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
>>># load default multimineral parameters>>>log.multimineral_parameters_from_csv()
>>># print available default formation parameters>>>print(log.multimineral_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># calculate mulitmineral model over defined formations>>># with parameter 'WFMP'>>>log.formation_multimineral_model(f, parameter='WFMP')
>>>log.write('processed_log.las')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
PHIE v/v Effective Porosity
SW v/v Water Saturation
SHC v/v Hydrocarbon Saturation
BVH v/v Bulk Volume Hydrocarbon
BVW v/v Bulk Volume Water
BVWI v/v Bulk Volume Water Irreducible
BVWF v/v Bulk Volume Water Free
BVOM v/v Bulk Volume Fraction Organic Matter
BVCLAY v/v Bulk Volume Fraction Clay
BVPYR v/v Bulk Volume Fraction Pyrite
VOM v/v Matrix Volume Fraction Organic Matter
VCLAY v/v Matrix Volume Fraction Clay
VPYR v/v Matrix Volume Fraction Pyrite
RHOM g/cc Matrix Density
TOC wt/wt Matrix Weight Fraction Organic Matter
WTCLAY wt/wt Matrix Weight Fraction Clay
WTPYR wt/wt Matrix Weight Fraction Pyrite
BVQTZ v/v Bulk Volume Fraction Quartz
VQTZ v/v Matrix Volume Fraction Quartz
WTQTZ wt/wt Matrix Weight Fraction Quartz
BVCLC v/v Bulk Volume Fraction Calcite
VCLC v/v Matrix Volume Fraction Calcite
WTCLC wt/wt Matrix Weight Fraction Calcite
BVDOL v/v Bulk Volume Fraction Dolomite
VDOL v/v Matrix Volume Fraction Dolomite
WTDOL wt/wt Matrix Weight Fraction Dolomite
OIP wt/wt Matrix Weight Fraction Dolomite

About

A petrophysics python package for geoscience python computing of conventional and unconventional formation evaluation. Reads las files and creates a pandas dataframe of the log data. Includes a basic petrophysical workflow and a simple log viewer based on XML templates.

Topics

Resources

Stars

207 stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

https://toddheitmann.github.io/PetroPy/_images/petropy_logo.png

PetroPy

A python petrophysics package allowing scientific python computing of conventional and unconventional formation evaluation. Reads las files using lasio. Includes a petrophysical workflow and a log viewer based on XML templates.

https://toddheitmann.github.io/PetroPy/_images/university_6-18W_no1.png

Requirements

Installation

Install PetroPy through pip via the command line

pip install petropy

To read in an las file, pass the file reference:

importpetropyasptrfile_path=r'path/to/well.las'log=ptr.Log(file_path)

Documentation

View the online documentation for classes and methods.

Las File Processing

To understanding using petropy in a petrophysical workflow for las file processing, see the example page.

Petrophysical Model Quick Look

>>># import petropy and print raw curves>>>importpetropyasptr>>>log=ptr.log_data('WFMP')
>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
>>># read tops into Log object and print>>>log.tops_from_csv()
>>>print(log.tops)
{'WFMPA': 6993.5, 'WFMPB': 7294.0, 'WFMPC': 7690.5, 'WFMPD': 8028.0}
>>># load default parameters and print values>>>log.fluid_properties_parameters_from_csv()
>>>print(log.fluid_properties_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># specificy formation intervals>>>f= ['WFMPA', 'WFMPB', 'WFMPC']
>>># calculate fluid properties for defined formations>>>log.formation_fluid_properties(f, parameter='WFMP')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
>>># load default multimineral parameters>>>log.multimineral_parameters_from_csv()
>>># print available default formation parameters>>>print(log.multimineral_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># calculate mulitmineral model over defined formations>>># with parameter 'WFMP'>>>log.formation_multimineral_model(f, parameter='WFMP')
>>>log.write('processed_log.las')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
PHIE v/v Effective Porosity
SW v/v Water Saturation
SHC v/v Hydrocarbon Saturation
BVH v/v Bulk Volume Hydrocarbon
BVW v/v Bulk Volume Water
BVWI v/v Bulk Volume Water Irreducible
BVWF v/v Bulk Volume Water Free
BVOM v/v Bulk Volume Fraction Organic Matter
BVCLAY v/v Bulk Volume Fraction Clay
BVPYR v/v Bulk Volume Fraction Pyrite
VOM v/v Matrix Volume Fraction Organic Matter
VCLAY v/v Matrix Volume Fraction Clay
VPYR v/v Matrix Volume Fraction Pyrite
RHOM g/cc Matrix Density
TOC wt/wt Matrix Weight Fraction Organic Matter
WTCLAY wt/wt Matrix Weight Fraction Clay
WTPYR wt/wt Matrix Weight Fraction Pyrite
BVQTZ v/v Bulk Volume Fraction Quartz
VQTZ v/v Matrix Volume Fraction Quartz
WTQTZ wt/wt Matrix Weight Fraction Quartz
BVCLC v/v Bulk Volume Fraction Calcite
VCLC v/v Matrix Volume Fraction Calcite
WTCLC wt/wt Matrix Weight Fraction Calcite
BVDOL v/v Bulk Volume Fraction Dolomite
VDOL v/v Matrix Volume Fraction Dolomite
WTDOL wt/wt Matrix Weight Fraction Dolomite
OIP wt/wt Matrix Weight Fraction Dolomite

About

A petrophysics python package for geoscience python computing of conventional and unconventional formation evaluation. Reads las files and creates a pandas dataframe of the log data. Includes a basic petrophysical workflow and a simple log viewer based on XML templates.

Topics

Resources

Stars

207 stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

https://toddheitmann.github.io/PetroPy/_images/petropy_logo.png

PetroPy

A python petrophysics package allowing scientific python computing of conventional and unconventional formation evaluation. Reads las files using lasio. Includes a petrophysical workflow and a log viewer based on XML templates.

https://toddheitmann.github.io/PetroPy/_images/university_6-18W_no1.png

Requirements

Installation

Install PetroPy through pip via the command line

pip install petropy

To read in an las file, pass the file reference:

importpetropyasptrfile_path=r'path/to/well.las'log=ptr.Log(file_path)

Documentation

View the online documentation for classes and methods.

Las File Processing

To understanding using petropy in a petrophysical workflow for las file processing, see the example page.

Petrophysical Model Quick Look

>>># import petropy and print raw curves>>>importpetropyasptr>>>log=ptr.log_data('WFMP')
>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
>>># read tops into Log object and print>>>log.tops_from_csv()
>>>print(log.tops)
{'WFMPA': 6993.5, 'WFMPB': 7294.0, 'WFMPC': 7690.5, 'WFMPD': 8028.0}
>>># load default parameters and print values>>>log.fluid_properties_parameters_from_csv()
>>>print(log.fluid_properties_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># specificy formation intervals>>>f= ['WFMPA', 'WFMPB', 'WFMPC']
>>># calculate fluid properties for defined formations>>>log.formation_fluid_properties(f, parameter='WFMP')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
>>># load default multimineral parameters>>>log.multimineral_parameters_from_csv()
>>># print available default formation parameters>>>print(log.multimineral_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># calculate mulitmineral model over defined formations>>># with parameter 'WFMP'>>>log.formation_multimineral_model(f, parameter='WFMP')
>>>log.write('processed_log.las')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
PHIE v/v Effective Porosity
SW v/v Water Saturation
SHC v/v Hydrocarbon Saturation
BVH v/v Bulk Volume Hydrocarbon
BVW v/v Bulk Volume Water
BVWI v/v Bulk Volume Water Irreducible
BVWF v/v Bulk Volume Water Free
BVOM v/v Bulk Volume Fraction Organic Matter
BVCLAY v/v Bulk Volume Fraction Clay
BVPYR v/v Bulk Volume Fraction Pyrite
VOM v/v Matrix Volume Fraction Organic Matter
VCLAY v/v Matrix Volume Fraction Clay
VPYR v/v Matrix Volume Fraction Pyrite
RHOM g/cc Matrix Density
TOC wt/wt Matrix Weight Fraction Organic Matter
WTCLAY wt/wt Matrix Weight Fraction Clay
WTPYR wt/wt Matrix Weight Fraction Pyrite
BVQTZ v/v Bulk Volume Fraction Quartz
VQTZ v/v Matrix Volume Fraction Quartz
WTQTZ wt/wt Matrix Weight Fraction Quartz
BVCLC v/v Bulk Volume Fraction Calcite
VCLC v/v Matrix Volume Fraction Calcite
WTCLC wt/wt Matrix Weight Fraction Calcite
BVDOL v/v Bulk Volume Fraction Dolomite
VDOL v/v Matrix Volume Fraction Dolomite
WTDOL wt/wt Matrix Weight Fraction Dolomite
OIP wt/wt Matrix Weight Fraction Dolomite

About

A petrophysics python package for geoscience python computing of conventional and unconventional formation evaluation. Reads las files and creates a pandas dataframe of the log data. Includes a basic petrophysical workflow and a simple log viewer based on XML templates.

Topics

Resources

Stars

207 stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

https://toddheitmann.github.io/PetroPy/_images/petropy_logo.png

PetroPy

A python petrophysics package allowing scientific python computing of conventional and unconventional formation evaluation. Reads las files using lasio. Includes a petrophysical workflow and a log viewer based on XML templates.

https://toddheitmann.github.io/PetroPy/_images/university_6-18W_no1.png

Requirements

Installation

Install PetroPy through pip via the command line

pip install petropy

To read in an las file, pass the file reference:

importpetropyasptrfile_path=r'path/to/well.las'log=ptr.Log(file_path)

Documentation

View the online documentation for classes and methods.

Las File Processing

To understanding using petropy in a petrophysical workflow for las file processing, see the example page.

Petrophysical Model Quick Look

>>># import petropy and print raw curves>>>importpetropyasptr>>>log=ptr.log_data('WFMP')
>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
>>># read tops into Log object and print>>>log.tops_from_csv()
>>>print(log.tops)
{'WFMPA': 6993.5, 'WFMPB': 7294.0, 'WFMPC': 7690.5, 'WFMPD': 8028.0}
>>># load default parameters and print values>>>log.fluid_properties_parameters_from_csv()
>>>print(log.fluid_properties_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># specificy formation intervals>>>f= ['WFMPA', 'WFMPB', 'WFMPC']
>>># calculate fluid properties for defined formations>>>log.formation_fluid_properties(f, parameter='WFMP')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
>>># load default multimineral parameters>>>log.multimineral_parameters_from_csv()
>>># print available default formation parameters>>>print(log.multimineral_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># calculate mulitmineral model over defined formations>>># with parameter 'WFMP'>>>log.formation_multimineral_model(f, parameter='WFMP')
>>>log.write('processed_log.las')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
PHIE v/v Effective Porosity
SW v/v Water Saturation
SHC v/v Hydrocarbon Saturation
BVH v/v Bulk Volume Hydrocarbon
BVW v/v Bulk Volume Water
BVWI v/v Bulk Volume Water Irreducible
BVWF v/v Bulk Volume Water Free
BVOM v/v Bulk Volume Fraction Organic Matter
BVCLAY v/v Bulk Volume Fraction Clay
BVPYR v/v Bulk Volume Fraction Pyrite
VOM v/v Matrix Volume Fraction Organic Matter
VCLAY v/v Matrix Volume Fraction Clay
VPYR v/v Matrix Volume Fraction Pyrite
RHOM g/cc Matrix Density
TOC wt/wt Matrix Weight Fraction Organic Matter
WTCLAY wt/wt Matrix Weight Fraction Clay
WTPYR wt/wt Matrix Weight Fraction Pyrite
BVQTZ v/v Bulk Volume Fraction Quartz
VQTZ v/v Matrix Volume Fraction Quartz
WTQTZ wt/wt Matrix Weight Fraction Quartz
BVCLC v/v Bulk Volume Fraction Calcite
VCLC v/v Matrix Volume Fraction Calcite
WTCLC wt/wt Matrix Weight Fraction Calcite
BVDOL v/v Bulk Volume Fraction Dolomite
VDOL v/v Matrix Volume Fraction Dolomite
WTDOL wt/wt Matrix Weight Fraction Dolomite
OIP wt/wt Matrix Weight Fraction Dolomite

About

A petrophysics python package for geoscience python computing of conventional and unconventional formation evaluation. Reads las files and creates a pandas dataframe of the log data. Includes a basic petrophysical workflow and a simple log viewer based on XML templates.

Topics

Resources

Stars

207 stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

https://toddheitmann.github.io/PetroPy/_images/petropy_logo.png

PetroPy

A python petrophysics package allowing scientific python computing of conventional and unconventional formation evaluation. Reads las files using lasio. Includes a petrophysical workflow and a log viewer based on XML templates.

https://toddheitmann.github.io/PetroPy/_images/university_6-18W_no1.png

Requirements

Installation

Install PetroPy through pip via the command line

pip install petropy

To read in an las file, pass the file reference:

importpetropyasptrfile_path=r'path/to/well.las'log=ptr.Log(file_path)

Documentation

View the online documentation for classes and methods.

Las File Processing

To understanding using petropy in a petrophysical workflow for las file processing, see the example page.

Petrophysical Model Quick Look

>>># import petropy and print raw curves>>>importpetropyasptr>>>log=ptr.log_data('WFMP')
>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
>>># read tops into Log object and print>>>log.tops_from_csv()
>>>print(log.tops)
{'WFMPA': 6993.5, 'WFMPB': 7294.0, 'WFMPC': 7690.5, 'WFMPD': 8028.0}
>>># load default parameters and print values>>>log.fluid_properties_parameters_from_csv()
>>>print(log.fluid_properties_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># specificy formation intervals>>>f= ['WFMPA', 'WFMPB', 'WFMPC']
>>># calculate fluid properties for defined formations>>>log.formation_fluid_properties(f, parameter='WFMP')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
>>># load default multimineral parameters>>>log.multimineral_parameters_from_csv()
>>># print available default formation parameters>>>print(log.multimineral_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># calculate mulitmineral model over defined formations>>># with parameter 'WFMP'>>>log.formation_multimineral_model(f, parameter='WFMP')
>>>log.write('processed_log.las')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
PHIE v/v Effective Porosity
SW v/v Water Saturation
SHC v/v Hydrocarbon Saturation
BVH v/v Bulk Volume Hydrocarbon
BVW v/v Bulk Volume Water
BVWI v/v Bulk Volume Water Irreducible
BVWF v/v Bulk Volume Water Free
BVOM v/v Bulk Volume Fraction Organic Matter
BVCLAY v/v Bulk Volume Fraction Clay
BVPYR v/v Bulk Volume Fraction Pyrite
VOM v/v Matrix Volume Fraction Organic Matter
VCLAY v/v Matrix Volume Fraction Clay
VPYR v/v Matrix Volume Fraction Pyrite
RHOM g/cc Matrix Density
TOC wt/wt Matrix Weight Fraction Organic Matter
WTCLAY wt/wt Matrix Weight Fraction Clay
WTPYR wt/wt Matrix Weight Fraction Pyrite
BVQTZ v/v Bulk Volume Fraction Quartz
VQTZ v/v Matrix Volume Fraction Quartz
WTQTZ wt/wt Matrix Weight Fraction Quartz
BVCLC v/v Bulk Volume Fraction Calcite
VCLC v/v Matrix Volume Fraction Calcite
WTCLC wt/wt Matrix Weight Fraction Calcite
BVDOL v/v Bulk Volume Fraction Dolomite
VDOL v/v Matrix Volume Fraction Dolomite
WTDOL wt/wt Matrix Weight Fraction Dolomite
OIP wt/wt Matrix Weight Fraction Dolomite

About

A petrophysics python package for geoscience python computing of conventional and unconventional formation evaluation. Reads las files and creates a pandas dataframe of the log data. Includes a basic petrophysical workflow and a simple log viewer based on XML templates.

Topics

Resources

Stars

207 stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

https://toddheitmann.github.io/PetroPy/_images/petropy_logo.png

PetroPy

A python petrophysics package allowing scientific python computing of conventional and unconventional formation evaluation. Reads las files using lasio. Includes a petrophysical workflow and a log viewer based on XML templates.

https://toddheitmann.github.io/PetroPy/_images/university_6-18W_no1.png

Requirements

Installation

Install PetroPy through pip via the command line

pip install petropy

To read in an las file, pass the file reference:

importpetropyasptrfile_path=r'path/to/well.las'log=ptr.Log(file_path)

Documentation

View the online documentation for classes and methods.

Las File Processing

To understanding using petropy in a petrophysical workflow for las file processing, see the example page.

Petrophysical Model Quick Look

>>># import petropy and print raw curves>>>importpetropyasptr>>>log=ptr.log_data('WFMP')
>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
>>># read tops into Log object and print>>>log.tops_from_csv()
>>>print(log.tops)
{'WFMPA': 6993.5, 'WFMPB': 7294.0, 'WFMPC': 7690.5, 'WFMPD': 8028.0}
>>># load default parameters and print values>>>log.fluid_properties_parameters_from_csv()
>>>print(log.fluid_properties_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># specificy formation intervals>>>f= ['WFMPA', 'WFMPB', 'WFMPC']
>>># calculate fluid properties for defined formations>>>log.formation_fluid_properties(f, parameter='WFMP')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
>>># load default multimineral parameters>>>log.multimineral_parameters_from_csv()
>>># print available default formation parameters>>>print(log.multimineral_parameters.keys())
dict_keys(['default', 'WFMP'])
>>># calculate mulitmineral model over defined formations>>># with parameter 'WFMP'>>>log.formation_multimineral_model(f, parameter='WFMP')
>>>log.write('processed_log.las')
>>># print curves for description of calculated curves>>>print(log.curves)
Mnemonic Unit Value Description
-------- ---- ----- -----------
DEPT F 00 000 00 00 1 Depth Curve
CALI INCH 99 075 22 05 2 CALIPER
DPHI DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
GR GAPI 99 075 22 05 4 GAMMA RAY
NPHI DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
PE B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB G/C3 99 075 22 05 7 BULK DENSITY
PHIX DECP 99 075 22 05 8 CROSSPLOT POROSITY
C13 INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
C24 INCH 99 075 22 05 10 CALIPER PADS 2 - 4 -FACT-
DT US/F 99 075 22 05 11 SONIC TRANSIT TIME
SPHI DECP 99 075 22 05 12 SONIC POROSITY -LIME-
GR3 99 075 22 05 13 GAMMA RAY
ILD OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
ILM OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
SGRD OHMM 99 075 22 05 16 SHORT GUARD RESISTIVITY
SP MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
CAL_N INCH 99 075 22 05 9 CALIPER PADS 1 - 3 -FACT-
GR_N GAPI 99 075 22 05 4 GAMMA RAY
RESMED_N OHMM 99 075 22 05 15 IL, MEDIUM RESISTIVITY
RESDEEP_N OHMM 99 075 22 05 14 IL, DEEP RESISTIVITY
NPHI_N DECP 99 075 22 05 5 NEUTRON POROSITY -LIME-
DPHI_N DECP 99 075 22 05 3 DENSITY POROSITY -LIME-
SPHI_N DECP 99 075 22 05 12 SONIC POROSITY -LIME-
PE_N B/E 99 075 22 05 6 PHOTO-ELECTRIC FACTOR
RHOB_N G/C3 99 075 22 05 7 BULK DENSITY
DTC_N US/F 99 075 22 05 11 SONIC TRANSIT TIME
SP_N MV 99 075 22 05 17 SPONTANEOUS POTENTIAL
PORE_PRESS psi Calculated Pore Pressure
RES_TEMP F Calculated Reservoir Temperature
NES psi Calculated Net Effective Stress
RW ohmm Calculated Resistivity Water
RMF ohmm Calculated Resistivity Mud Filtrate
RHO_HC g/cc Calculated Density of Hydrocarbon
RHO_W g/cc Calculated Density of Water
RHO_MF g/cc Calculated Density of Mud Filtrate
NPHI_HC v/v Calculated Neutron Log Response of Hydrocarbon
NPHI_W v/v Calculated Neutron Log Response of Water
NPHI_MF v/v Calculated Neutron Log Response of Mud Filtrate
MU_HC cP Calculated Viscosity of Hydrocarbon
BO Calculated Oil Formation Volume Factor
BP psi Calcualted Bubble Point
PHIE v/v Effective Porosity
SW v/v Water Saturation
SHC v/v Hydrocarbon Saturation
BVH v/v Bulk Volume Hydrocarbon
BVW v/v Bulk Volume Water
BVWI v/v Bulk Volume Water Irreducible
BVWF v/v Bulk Volume Water Free
BVOM v/v Bulk Volume Fraction Organic Matter
BVCLAY v/v Bulk Volume Fraction Clay
BVPYR v/v Bulk Volume Fraction Pyrite
VOM v/v Matrix Volume Fraction Organic Matter
VCLAY v/v Matrix Volume Fraction Clay
VPYR v/v Matrix Volume Fraction Pyrite
RHOM g/cc Matrix Density
TOC wt/wt Matrix Weight Fraction Organic Matter
WTCLAY wt/wt Matrix Weight Fraction Clay
WTPYR wt/wt Matrix Weight Fraction Pyrite
BVQTZ v/v Bulk Volume Fraction Quartz
VQTZ v/v Matrix Volume Fraction Quartz
WTQTZ wt/wt Matrix Weight Fraction Quartz
BVCLC v/v Bulk Volume Fraction Calcite
VCLC v/v Matrix Volume Fraction Calcite
WTCLC wt/wt Matrix Weight Fraction Calcite
BVDOL v/v Bulk Volume Fraction Dolomite
VDOL v/v Matrix Volume Fraction Dolomite
WTDOL wt/wt Matrix Weight Fraction Dolomite
OIP wt/wt Matrix Weight Fraction Dolomite

About

A petrophysics python package for geoscience python computing of conventional and unconventional formation evaluation. Reads las files and creates a pandas dataframe of the log data. Includes a basic petrophysical workflow and a simple log viewer based on XML templates.

Topics

Resources

Stars

207 stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages