Interpolasi Kriging Sederhana Menggunakan Python untuk Menghitung Porositas
Keterbatasan geosaintis adalah mengumpulkan data dari beberapa titik dan menyebarkannya untuk mendapatkan gambaran persebaran dari nilai data yang dikumpulkan. Ada 2 penamapan proses penyebaran data tersebut, yaitu interpolasi dan extrapolasi. Interpolasi yaitu menyebarkan data pada wilayah yang tidak diketahui menggunakan data yang telah diketahui. Sedangkan untuk extrapolasi yaitu menyebarkan data melebihi dari data yang diketahui. Ada pendekatan akademis yang bisa dilakukan untuk menyebarkan data agar ramalan seorang geosaintis bisa dipertanggung jawabkan sesuai proses-proses saintis. Walaupun pada zaman kuliah dulu metode extrapolasi dan interpolasi data dilakukan dengan panduan suara hati.
KRIGING
Pada dunia geosaintis khususnya bidang geostatistik, proses interpolasi data yang dilakukan menggunakan metode kriging. Secara keren pengertiannya bisa dibaca di bawah ini. Karena bahasa inggris jadi agak susah buat saya:
kriging or Gaussian process regression is a method of interpolation for which the interpolated values are modeled by a Gaussian process governed by prior covariances. (en.wikipedia.org › wiki › Kriging)
Proses kriging ini juga dibantu dengan analisis variogram sebagai panduan menyebar datanya. Variogram sendiri memiliki pengertian sederhana yaitu hubungan suatu nilai terhadap jaraknya (seberapa berpengaruhnya).
‘Buat beberapa orang memang jarak akan menjadi penghalang, tapi tidak semua orang seperti itu’
Penjelasan disini cukup lengkap (https://en.wikipedia.org/wiki/Variogram)
LANGSUNG SAJA
Kita akan mencoba menginterpolasi suatu data porositas pada suatu wilayah di Planet Namek.
Secara umum flow pengerjaannya adalah:
Input data -> Plot -> Kriging (Pilih variogram teoritikal yang sesuai) -> Jadi
Import Library
Kita akan mengimpor beberapa library yang dibutuhkan, yang paling utama pykrige. Karena jelas dari namanya menggambarkanlah.
import numpy as npfrom pykrige.ok import OrdinaryKrigingfrom matplotlib import pyplot as pltimport seaborn as snsimport pandas as pd
Data Exploration
df = pd.read_csv('/content/drive/My Drive/rawdata/porosity - Sheet1.csv')df.describe()
Data Planet Namek menunjukkan maksimum porositas pada daerah tersebut 0.4. Oleh karena itu Planet Namek berpotensi menjadi tempat yang potensial.
sns.scatterplot(df.x,df.y,hue=z)
Dapat dilihat bahwa porositas tinggi berada di tengah-tengah wilayah. Bagaimana persebarannya? mari kita lakukan kriging.
Konversi DataFrame menjadi Array
data = df.to_numpy()data
Tentukan maksimum wilayah yang akan dilakukan interpolasi berdasarkan data statistik.
gridx = np.arange(0.0,10,1)gridy = np.arange(0.0,10,1)
Menentukan model variogram
Kita akan menggunakan metode OrdinaryKriging, ordinary kriging sendiri merupakan metode kriging yang menganggap rata-rata nilai di wilayah itu konstant tapi dia kurang tahu gitu dan tanpa mengindahkan tren tertentu. Kita pilih itu agar ya lebih simpel saja buat tulisan ini.
Metode variogram teoritikal yang dipilih:
Hasil panduan hati sih kayanya cocoknya spherical mungkin saja.
OK = OrdinaryKriging(data[:, 0], data[:, 1], data[:, 2], variogram_model='spherical',verbose=True, enable_plotting=True)
Tuhkan ternyata cocoklah dengan data kayaknya. Selanjutnya kita coba plot
z1, ss1 = OK.execute('grid', gridx, gridy)plt.imshow(z1, origin="lower")plt.show()
Demikian tulisan sederhana untuk menunjukkan proses kriging di python. Masih banyak yang bisa diexplore untuk bisa menjadi lebih mahir lagi. Kritik dan saran monggo saja semoga bermanfaat buat khalayak ramai.
Arigatou Gozaimasu