{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "decline_curve_analysis_notebook.ipynb",
"provenance": [],
"collapsed_sections": [],
"authorship_tag": "ABX9TyOorjH3jTdKB83QvbNgyiym",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
""
]
},
{
"cell_type": "code",
"metadata": {
"id": "fNodNCkfPjBL",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "3031fc3d-1e31-4ab8-cdda-123fde2e3052"
},
"source": [
"!git clone https://github.com/yohanesnuwara/pyreservoir"
],
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"text": [
"Cloning into 'pyreservoir'...\n",
"remote: Enumerating objects: 227, done.\u001b[K\n",
"remote: Counting objects: 100% (227/227), done.\u001b[K\n",
"remote: Compressing objects: 100% (219/219), done.\u001b[K\n",
"remote: Total 885 (delta 115), reused 0 (delta 0), pack-reused 658\u001b[K\n",
"Receiving objects: 100% (885/885), 24.17 MiB | 16.53 MiB/s, done.\n",
"Resolving deltas: 100% (469/469), done.\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "BIno-ILDHA7q"
},
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"\n",
"import sys\n",
"sys.path.append(\"/content/pyreservoir/dca\")\n",
"\n",
"from dca import hyperbolic, arps_fit, arps_bootstrap"
],
"execution_count": 2,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "QtQjBZQfb2q_",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "e18193b1-8534-4287-e3a9-38a20010391c"
},
"source": [
"df = pd.read_csv('/content/pyreservoir/data/norne_production_rate_sample.csv')\n",
"\n",
"# convert date string to Panda datetime format\n",
"df['Date'] = pd.to_datetime(df['Date'], format='%Y-%m-%d') \n",
"\n",
"t = df['Date']\n",
"q = df['Rate (SCF/d)']\n",
"\n",
"print(df.head(10))"
],
"execution_count": 3,
"outputs": [
{
"output_type": "stream",
"text": [
" Date Rate (SCF/d)\n",
"0 2004-04-01 2706039.00\n",
"1 2004-05-01 2492086.20\n",
"2 2004-06-02 1816846.10\n",
"3 2004-07-02 1920207.40\n",
"4 2004-07-04 1683521.40\n",
"5 2004-07-25 1847040.90\n",
"6 2004-08-01 1536201.60\n",
"7 2004-08-16 1711845.00\n",
"8 2004-08-17 677522.19\n",
"9 2004-09-04 762001.13\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "oQHR44Q_f4Md",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 472
},
"outputId": "e33f0546-d638-4cdd-b68b-05d82c97885e"
},
"source": [
"plt.figure(figsize=(10,7))\n",
"\n",
"plt.step(t, q, color='blue')\n",
"plt.title('Production Rate from 01/04/2004 to 01/12/2006', size=20, pad=15)\n",
"plt.xlabel('Days')\n",
"plt.ylabel('Rate (SCF/d)')\n",
"plt.xlim(min(t), max(t)); plt.ylim(ymin=0)\n",
"\n",
"plt.grid()\n",
"plt.show()"
],
"execution_count": 4,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"