Skip to main content

Open-source Python library for petroleum & reservoir engineering — PVT, IPR, decline, multiphase flow, material balance, petrophysics (Archie/Simandoux/Timur), rate transient analysis (Blasingame / Agarwal-Gardner / NPI), drilling (API 5C3 collapse, Barlow burst), production (Turner/Coleman/Katz/Gilbert), economics, well log I/O. MIT licensed.

Project description

petropt — The Python Library for Petroleum Engineering

PyPI License: MIT Tests Python 3.10+

Free, open-source petroleum engineering tools for Python. MIT licensed — use anywhere, no restrictions.

Online Calculators · Documentation · Advanced Analytics

Install

pip install petropt

Quick Start

import petropt

# Load a production dataset
df = petropt.datasets.load_sample_production()

# PVT: Standing bubble point pressure
pb = petropt.correlations.standing_bubble_point(api=35, gas_sg=0.65, temp=200)

# Decline: Arps hyperbolic forecast
import numpy as np
t = np.arange(0, 60)
q = petropt.correlations.arps_decline(qi=1000, di=0.05, b=0.5, t=t)

# IPR: Vogel inflow performance
ipr = petropt.correlations.vogel_ipr(qmax=1500, pr=3500, num_points=50)

# Petrophysics: water saturation from resistivity
sw = petropt.petrophysics.archie_sw(rt=20.0, phi=0.20, rw=0.05)

# RTA: Blasingame variables for type-curve matching
bg = petropt.rta.blasingame_variables(t, q, cum, pwf, pi=3000)

# Economics: NPV of a well
npv = petropt.economics.npv(cash_flows=[-500000, 80000, 70000, 60000], discount_rate=0.10, periods_per_year=1)

What's Inside

Correlations (50+ functions)

  • PVT — Standing bubble point/Rs/Bo, Beggs-Robinson viscosity, Sutton & Piper pseudocritical, Hall-Yarborough & Dranchuk Z-factor, Lee-Gonzalez-Eakin gas viscosity, gas Bg/density/compressibility
  • Water PVT — McCain Bw/viscosity/density, Osif compressibility, gas solubility
  • IPR — Vogel, Fetkovich, Rawlins-Schellhardt (C&n), PI-based, composite (Vogel + PI)
  • Decline Curves — Arps (exponential, hyperbolic, harmonic), cumulative production, EUR
  • Multiphase Flow — Beggs-Brill pressure gradient (all flow patterns, any inclination)
  • Hydraulics — Darcy-Weisbach with Churchill friction factor
  • Relative Permeability — Corey, Brooks-Corey, LET models (oil/water/gas)
  • Material Balance — Gas P/Z, Havlena-Odeh, OOIP estimation, drive indices
  • Volumetrics — STOIIP, GIIP, drainage radius, recovery factor

Petrophysics

  • Vshale — linear, Larionov (Tertiary / older), Clavier
  • Porosity — density, sonic (Wyllie / Raymer-Hunt-Gardner), neutron-density, effective
  • Water saturation — Archie, Simandoux, Indonesian (Poupon-Leveaux)
  • Permeability — Timur, Coates (NMR)
  • Pay — cutoff-based net pay, NTG, pay-weighted averages, hydrocarbon pore thickness

Rate Transient Analysis (RTA)

  • Transforms — pressure-normalized rate, material balance time
  • Type curves — Blasingame, Agarwal-Gardner, NPI variables
  • Flowing material balance — contacted OOIP/OGIP from producing-well data
  • Linear flow — sqrt(t) analysis, sqrt(k)·xf extraction from fracture wells

Drilling

  • Well control — hydrostatic, ECD, MAASP, kill mud weight, ICP/FCP (Driller's / Wait-and-Weight)
  • Hydraulics — annular velocity, nozzle TFA, bit pressure drop
  • Tubulars — Barlow burst with API 0.875 factor, full API 5C3 collapse (yield / plastic / transition / elastic regimes)

Production Engineering

  • Liquid loading — Turner (1969) and Coleman (1991) critical droplet-lift velocities
  • Flow assurance — Katz hydrate formation temperature, Hammerschmidt methanol/MEG/ethanol inhibitor dosing
  • Piping — API RP 14E erosional velocity
  • Choke flow — Gilbert (1954) critical-flow rate correlation

Economics

  • NPV, IRR, payback period, oil & gas monthly cashflow (WI/NRI/severance/opex/capex)

I/O

  • LAS files — Read well logs to pandas DataFrame (wraps lasio)
  • Production CSV — Auto-detect date/oil/gas/water columns from any naming convention

Datasets

  • Petrobras 3W — Labeled well events for fault detection (CC BY 4.0)
  • NPD Wellbore — Norwegian Continental Shelf well metadata (NLOD)
  • Sample Production — Bundled 2-well, 12-month dataset for demos

Notebooks

  • student_intro.ipynb — Your first petroleum dataset in Python
  • decline_analysis.ipynb — Arps decline curve analysis tutorial

Why petropt?

petropt pyResToolbox DIY scripts
License MIT (use anywhere) GPL (copyleft) N/A
Datasets Built-in (3W, NPD, samples) No No
LAS reader Yes No Manual
Student notebooks Yes No No
Web calculators tools.petropt.com No No
Economics NPV, IRR, cashflow No Manual

petropt is MIT licensed — use it freely in commercial projects, consulting, research, and AI applications. No copyleft restrictions.

For AI Builders

pip install petro-mcp  # MCP server that wraps petropt for Claude/ChatGPT/LLMs

Links

Citation

If you use petropt in academic work, please cite:

Shirangi, M.G. (2026). petropt: The Python Library for Petroleum Engineering.
https://github.com/petropt/petropt

License

MIT — see LICENSE for details.

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

petropt-0.3.0.tar.gz (76.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

petropt-0.3.0-py3-none-any.whl (71.4 kB view details)

Uploaded Python 3

File details

Details for the file petropt-0.3.0.tar.gz.

File metadata

  • Download URL: petropt-0.3.0.tar.gz
  • Upload date:
  • Size: 76.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for petropt-0.3.0.tar.gz
Algorithm Hash digest
SHA256 210d0b4d331bf1d78dd2c261b07bb98801bad44d4cddbc90237483c338b7aac0
MD5 11eeb609d63c14b24d7e69ee58e5462e
BLAKE2b-256 2ed43f82dcc925b3bcb381ba6e4d6d8b725bb3e8c3a27371e69b8d7b8969e67f

See more details on using hashes here.

File details

Details for the file petropt-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: petropt-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 71.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for petropt-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a763e6bed7b7042a6b7489b5c570efc12412eeca83d5619a0593613f7b058a82
MD5 a52dbfe3ee4ca7c8adb84c08e687f557
BLAKE2b-256 aac5a64ddf0785f75063dfe8ab84d4c7fe386c73918e15f8848dac991af58e21

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page