Skip to main content

Physics-inspired waterflood performance modeling

Project description

pywaterflood: Waterflood Connectivity Analysis

PyPI version Documentation Status

License codecov pre-commit Python version PyPI - Downloads

Binder

pywaterflood provides tools for capacitance resistance modeling, a physics-inspired model for estimating waterflood performance. It estimates the connectivities and time decays between injectors and producers.

Overview

A literature review has been written by Holanda, Gildin, Jensen, Lake and Kabir, entitled "A State-of-the-Art Literature Review on Capacitance Resistance Models for Reservoir Characterization and Performance Forecasting." They describe CRM as the following:

The Capacitance Resistance Model (CRM) is a fast way for modeling and simulating gas and waterflooding recovery processes, making it a useful tool for improving flood management in real-time. CRM is an input-output and material balance-based model, and requires only injection and production history, which are the most readily available data gathered throughout the production life of a reservoir.

There are several CRM versions (see Holanda et al., 2018). Through passing different parameters when creating the CRM instance, you can choose between CRMIP, where a unique time constant is used for each injector-producer pair, and CRMP, where a unique time constant is used for each producer. CRMIP is more reliable given sufficient data. With CRMP, you can reduce the number of unknowns, which is useful if available production data is limited.

Getting started

You can install this package from PyPI with the line

pip install pywaterflood

A simple example

import pandas as pd
from pywaterflood import CRM

gh_url = "https://raw.githubusercontent.com/frank1010111/pywaterflood/master/testing/data/"
prod = pd.read_csv(gh_url + 'production.csv', header=None).values
inj = pd.read_csv(gh_url + "injection.csv", header=None).values
time = pd.read_csv(gh_url + "time.csv", header=None).values[:,0]

crm = CRM(tau_selection='per-pair', constraints='up-to one')
crm.fit(prod, inj, time)
q_hat = crm.predict()
residuals = crm.residual()

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

pywaterflood-0.2.0.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

pywaterflood-0.2.0-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file pywaterflood-0.2.0.tar.gz.

File metadata

  • Download URL: pywaterflood-0.2.0.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.9.9 Linux/5.15.0-30-generic

File hashes

Hashes for pywaterflood-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5eb47702b630a3ee4e1bafafdfd01d65140ac25fdfb2196b1548adb5697166e0
MD5 89490994a9300935fb60cdd2633892b4
BLAKE2b-256 a9b7827d5ec3d61985ef91bfed62ae912871802a63751d2f08316322753602b5

See more details on using hashes here.

File details

Details for the file pywaterflood-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pywaterflood-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.9.9 Linux/5.15.0-30-generic

File hashes

Hashes for pywaterflood-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b7e9847a9d15c551e8f895cc2373f1cb799e64daad2f94ab778e1879c1376264
MD5 e8fa82705a3805ae1397b489f479d1c3
BLAKE2b-256 839c9577a98947232092bdd9fc1f2a2d4c7cd907ae9dc6b685b03f3961c672a3

See more details on using hashes here.

Supported by

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