Simulasi Monte Carlo Pada Perhitungan Cadangan Minyak menggunakan Python
Sebaiknya sudah mengerti:
- Bisa dasar python (Belajar di sini gratis https://www.learnpython.org/)
- Mengerti colab.research.google.com
- Mengerti cara menghitung cadangan migas dan monte-carlo
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 / boreturn 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.