Simulasi Monte Carlo Pada Perhitungan Cadangan Minyak menggunakan Python

Yogi P
3 min readDec 1, 2019

--

Photo by Laura Barry on Unsplash

Sebaiknya sudah mengerti:

PYTHON

Python merupakan bahasa pemograman yang cukup luas digunakan untuk kegiatan sehari-hari, pekerjaan, pendidikan, kebutuhan hidup, ataupun sekedar hobi dan yang terpenting gratis tentunya. Walau python-nya gratis akan tetapi komputernya biasanya tidak.

COLAB.RESEARCH.GOOGLE.COM

Sebuah wadah buat menulis python berbasis awan, jadi komputasinya dikerjain mbah google. Kelebihannya kalo error gapapa kan di sana bukan di komputer kita.

MONTE CARLO X MENGHITUNG CADANGAN

Monte carlo simpelnya adalah sebuah teknik simulasi mengambil sampel acak pada suatu kejadian yang terdapat peluang pada perilakunya. Contoh: Tebal reservoir: 1–5 meter dengan rata-rata 2 meter, kemudian kita bebas mengambil angka acak dalam interval tersebut 1000x sebagai input untuk perhitungan cadangan. Sehingga kita bisa mengetahui probabilitas kisaran angka cadangan kita pada sebuah reservoir.

Rumus Menghitung Cadangan

LANGSUNG SAJA

Mari kita langsung saja ke penggunaan python nya. Pertama-tama kita import kebutuhan-kebutuhan package pada python:

import pandas as pd 
import numpy as np
import seaborn as sns
from scipy import stats

Kemudian kita membuat random sampling untuk tiap-tiap variabel, part ini merupakan hal paling krusial karena kita akan meng-assign angka acak pada tiap-tiap variabel perthitungan:

luas = np.random.triangular(1000000,2000000,3000000,1000).round()

'''
Luas -> nama variabel

np.random-> syntax untuk generate angka random

triangular -> metodenya kita pakai distribusi triangular (bebas bisa normal, truncated normal ataupun uniform, kita menggunakan triangular karena komponennya terdiri dari min,mode, dan max)

(min,mode,max,jml_angka_random yang diinginkan) -> angka yang akan kita pilih distribusinya

round() -> Biar angka integer(bulet) gak koma koma

'''

Kira-kira bakal jadi seperti ini:

luas = np.random.triangular(1000000,2000000,3000000,1000).round()
ketebalan = np.random.triangular(10,20,30,1000).round()
sw = np.random.triangular(0.01,0.2,0.3,1000).round(2)
phi = np.random.triangular(0.1,0.2,0.3,1000).round(1)
ngr = np.random.triangular(0.5,0.7,0.8,1000).round(1)
bo = np.random.uniform(1,1,1000).round()

Setelah itu kita bikin rumus cadangannya, disini kita hanya mentranslasi bahasa matematika kali bagi menjadi bahasa python:

def ooip(luas, ketebalan, sw, phi, ngr, bo, metric=True):
so = 1 - sw
ooip = 7758 * (luas*0.000247105) * (ketebalan*3.28084) * so * phi * ngr / bo
return ooip

Kemudian masukkan variabel2 tadi ke rumus ooip kita:

cadangan = ooip(luas,ketebalan,sw,phi,ngr,bo,metric=True).round()

Voila kita sudah punya 1000 angka random cadangan yang terukur. Langkah selanjutnya kita plot densitynya saja biar keliatan:

sns.distplot(cadangan)

Setelah itu, kita lihat summary statistiknya untuk melihat gambaran kira-kira reservoir kita bakal menghasilkan seberapa:

df = pd.DataFrame(cadangan)
df.describe(percentiles=[.10, .40, .60, .90]).T

Penutup

Demikian tutorial sangat singkat mengenai penggunaan python dalam dunia migas. Semoga bermanfaat untuk khalayak ramai.

--

--

Yogi P
Yogi P

Written by Yogi P

Random writer — Geology, Data, Tech, and Music

No responses yet