Interpolasi Kriging Sederhana Menggunakan Python untuk Menghitung Porositas

Yogi P
3 min readJun 7, 2020
Photo by Hitesh Choudhary on Unsplash

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.

Contoh interpolasi

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()
Tabel data Planet Namek

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)
Peta Pengambilan Sampel Planet Namek

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
Array-le

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:

Variogram teoritikal sebagai basis untuk kriging

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()
Sekarang kita dapat persebaran porositas di Planet Namek

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

--

--

Yogi P

Random writer — Geology, Data, Tech, and Music