Yous3ry/Python_Automated_DCA
Yous3ry/Python_Automated_DCA has 26 GitHub stars and 13 forks. Star changes are not measured yet. Last checked 2026-11-14 03:44 UTC. Last push 2026-11-11.
Measured star growth
- in 24h
- Collecting history
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
Python Automatic Decline Curve Analysis (DCA) For Petroleum Producing wells
DataREADME.md
OriginalPython Automatic Decline Curve Analysis (DCA) For Petroleum Producing wells
Table of Contents
About The Project
Decline Curve Analysis (DCA) is a widely accepted method for analyzing declining production rates and forecasting future performance of oil and gas wells. [1] For oil fields with hundreds or even thousands of wells updating the production forecast for each well based on DCA could be very time consuimg. Here's why:
- Typically curve fitting to estimate the decline rate and initial rate is done graphically which could be very time consuming, and
- Over the life of a conventional oil producing well, decline rates may change over time with changes in operating conditions, e.g. start of water injection, aritifical lift methodlogy or effciency changes, etc. Thus the history of the well could be divided into different distinct regions and DCA parameters should only be estimated based on the last stable producing conditions rather than average fitting of all the historical performance.
Workflow
- Connect to production database to read well data (Python File here)
- Use R to detect change points assuming a piecewise linear trend using EnvCpt Package[2] as shown in example below (R File here)

- Finally an integrated Python file (Final Python File here) is used to a) Load Well Data b) detect change points using R via Rpy2 c) fit exponential or Hyperbolic decline based on user input on the last stable period d) Forecast production rate. Note forecast is limited by user minimum rate and forecast period.

NOTE A compiled Python Script integrates all previous steps and loops through all the wells in the database and exports the total field/company forecast. (Compiled Python File here)
Dependencies
Python Packages <- sqlalchemy, scipy, matplotlib, pandas, numpy, json, rpy2
R Packages <- EnvCpt
References
[1]
https://petrowiki.spe.org/Production_forecasting_decline_curve_analysis#:~:text=Decline%20curve%20analysis%20(DCA)%20is,fluids%2C%20are%20usually%20the%20cause.
[2]
https://rdrr.io/cran/EnvCpt/man/envcpt.html
Explore related projects
Asabeneh/30-Days-Of-Python
The 30 Days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days. This challenge may take more than 100 days. Follow your own pace. These videos may help too: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,711 starsgrafana/grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
77,894 starsredis/redis
For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine.
77,490 starsapache/superset
Apache Superset is a Data Visualization and Data Exploration Platform
75,522 stars