NodAnaPy is the fundamental package petroleum, in this package you will find to determine the Well Nodal Analysis for oil and gas.
You can install NodAnaPy using pip:
pip install nodanapy
Here is a quick example of how to use NodAnaPy to calculate the optimal rate of an oil well.
INPUT
import matplotlib.pyplot as plt
from nodanapy import WellNAOilR
pr = 4500 # reservoir pressure
tr = 140 + 460 # reservoir temperature
ph = 140 # wellhead pressure
th = 84 + 460 # wellhead temperature
pb = 1500 # bubble pressure
well = WellNAOilR(ph, th, pr, tr, pb)
ipr_well = well.ipr
vlp_well = well.vlp
fig, (ax_ql, ax_qg, ax_qo) = plt.subplots(3, 1)
ax_ql.set_xlabel('Ql(bbl/d)')
ax_ql.set_ylabel('Pwf(psia)')
ax_ql.plot(ipr_well.Ql, ipr_well.Pwf)
ax_ql.plot(vlp_well.Ql, vlp_well.Pwf)
ax_qg.set_xlabel('Qg(Mscf/d)')
ax_qg.set_ylabel('Pwf(psia)')
ax_qg.plot(ipr_well.Qg, ipr_well.Pwf)
ax_qg.plot(vlp_well.Qg, vlp_well.Pwf)
ax_qo.set_xlabel('Qo(bbl/d)')
ax_qo.set_ylabel('Pwf(psia)')
ax_qo.plot(ipr_well.Qo, ipr_well.Pwf)
ax_qo.plot(vlp_well.Qo, vlp_well.Pwf)
OUTPUT
Ql(bbl/d) vs Pwf(psia); Qg(Mscf/d) vs Pwf(psia); Qo(bbl/d) vs Pwf(psia)
it will be to calculate inflow performance relationship (IPR) and vertical lift performance (VLP) curves for oil and gas wells. In addition, it will be to determine the holdup liquid well.
Click to expand the theory section.
The curve is calculated using the different correlations, for example:
- Oil
- Vogel
- Fetkovich
- Gas
- LIT
- Darcy
The curve is calculated using the different correlations, for example:
- Oil
- Hagedorn Brown
- Beggs and Brill
- Gas
- Gray
NodAnaPy requires the following Python (=>3.12) libraries:
- PetProPy
- Numpy
- Scipy
- Pandas
pip install -r requirements.txt
This project is licensed under the GNU Lesser General Public License v3.0 - see the LICENSE file for details.
For detailed API documentation, please refer to the official documentation