Anda di halaman 1dari 29

LAPORAN PRAKTIKUM

GEOSTATISTIKA TG 3202

MODUL KE – 4
Estimasi Spasial dengan Simple dan Ordinary Kriging

Oleh:
Muhammad Ichsan 12117143
Asisten :
Oktaria Futri Ilham 12116089
Muhammad Fadhilah Harahap 12116084
Gita Rusmala 12116090
Helen Zetri 12116014
Adelia Gita Parera 12116123
Fira Pratiwi Darsono 12117151
Dita Aprilia Hutabalian 12116033
Safna Ramadhani 12116096
Mikha Parasian GT 12116042

PROGRAM STUDI TEKNIK GEOFISIKA


JURUSAN TEKNIK MANUFAKTUR DAN KEBUMIAN
INSTITUT TEKNOLOGI SUMATERA
2019/2020
I. Tujuan

Tujuan praktikum pada Modul 4. Estimasi Spasial dengan Simple dan Ordinary Kriging
antara lain, yaitu:
Memahami prosedur perhitungan gridding dengan Kriging.

II. Teori Dasar

Statistika merupakan cara-cara tertentu yang digunakan dalam mengumpulkan,


menyusun, atau mengatur, menyajikan, menganalisa dan memberi interpretasi terhadap
sekumpulan data, sehingga kumpulan bahan keterangan dapat memberi pengertian dan
makna tertentu. Seperti pengambilan kesimpulan, membuat estimasi dan juga prediksi
yang akan datang.

Pada modul kali ini, pembahasannya untuk melakukan Estimasi Spasial dengan Simple
dan Ordinary Kriging. Metode kriging adalah teknik untuk mengoptimalisasi estimasi
suatu titik dengan menggunakan semivariogram dan sekumpulan data yang aktual.
Ordinary Kriging merupakan metode Geostatistika yang digunakan untuk memprediksi
data dari Lokasi tertentu. Pada metode tersebut mengira bahwa suatu variabel dari suatu
titik tertentu dapat dilakukan dengan cara mengamati data yang sejenis dari suatu
daerah. Tujuan dari metode Kriging yaitu menentan nilai faktor bobot untuk
meminimalkan variansi dari estimator. Selain itu, dalam Kriging dapat
memperhitungkan efek anisotropi, yaitu sesuatu yang tidak dapat dilakukan oleh
operator interpolasi lainnya. Maka dari itu, hasil dari Interpolasi kriging lebih unggul
dan lebih realistis dibandingkan dengan yang lainnya.

III. Pengolahan Data

3.1. Langkah Kerja


• Script Soal 1A

#Muhammad Ichsan 12117143
import numpy as np
from numpy.linalg import inv

#00_inisiasi data, menyimpan koordinat dalam array
data_obs = np.array([[0,0,20],[0,0,50],[0,0,30],[0,0,100]])
distance = [10,10,20,20]
#01 persamaan variogram teoritis
var =lambda L:50 * (1-np.exp(-3 * L/100))

#02 membentuk covariansi data_obs
N=4
C_left = np.zeros((N,N))
C_right = np.zeros((N,1))

C_0 = 50

for i in range (N):
    for j in range (N):
        if i == j:
            C_left[i,j] = C_0
        elif i == 0 :
            L_left = [0,20,10,np.sqrt(500)]
            gamma = var(L_left[j])
            C_left[i,j] = C_0 - gamma
        elif i == 1 :
            L_left = [20,0,np.sqrt(500),10]
            gamma = var(L_left[j])
            C_left[i,j] = C_0 - gamma
        elif i == 2 :
            L_left = [10,np.sqrt(500),10,40]
            gamma = var(L_left[j])
            C_left[i,j] = C_0 - gamma
        elif i == 3 :
            L_left = [np.sqrt(500),10,40,0]
            gamma = var(L_left[j])
            C_left[i,j] = C_0 - gamma

    L_right = distance[i]
    C_right [i,0] = C_0 - var(L_right)

#03 hitung Z_0 dengan ordinary kriging
lmda = inv(C_left@C_left.T)@C_left.T@C_right
lmda_0 = (1-np.sum(lmda))
z_0 = lmda_0 + np.sum(lmda*data_obs[:,2].reshape(N,1))
variansi = C_0 - np.sum(lmda*C_right)

print ('z_0 simple kriging:', z_0)
print('Variansi simple kriging:', variansi)

#04
C_left = np.hstack ((C_left, np.ones((N,1))))
C_left = np.vstack ((C_left, np.ones((1, N+1))))
C_left [-1,-1]=0

C_right = np.vstack((C_right,1))

lmda = inv (C_left@C_left.T)@C_left.T@C_right
lmda_0 = (1-np.sum(lmda[:-1,0]))

z_0 = lmda_0 +np.sum(lmda[:-1,0]*data_obs[:,2])
miu = lmda [-1,0]
variansi = C_0 - np.sum(lmda[:-1,0]*C_right[:-1,0]) - miu
print ('z_0 ordinary kriging:', z_0)
print('variansi ordinary kriging:', variansi)

• Script Soal 1B

#Muhammad Ichsan 12117143
import numpy as np
from numpy.linalg import inv

#00_inisiasi data, menyimpan koordinat dalam array
data_obs = np.array([[0,0,20],[0,0,50],[0,0,30],[0,0,100]])
distance = [10,10,20,20]

#01 persamaan variogram teoritis
var =lambda L:50 * (1-np.exp(-3 * L/100))

#02 membentuk covariansi data_obs
N=4
C_left = np.zeros((N,N))
C_right = np.zeros((N,1))

C_0 = 50

for i in range (N):
    for j in range (N):
        if i == j:
            C_left[i,j] = C_0
        elif i == 0 :
            L_left = [0,20,10,30]
            gamma = var(L_left[j])
            C_left[i,j] = C_0 - gamma
        elif i == 1 :
            L_left = [20,0,30,10]
            gamma = var(L_left[j])
            C_left[i,j] = C_0 - gamma
        elif i == 2 :
            L_left = [10,30,10,40]
            gamma = var(L_left[j])
            C_left[i,j] = C_0 - gamma
        elif i == 3 :
            L_left = [30,10,40,0]
            gamma = var(L_left[j])
            C_left[i,j] = C_0 - gamma

    L_right = distance[i]
    C_right [i,0] = C_0 - var(L_right)

#03 hitung Z_0 dengan ordinary kriging
lmda = inv(C_left@C_left.T)@C_left.T@C_right
lmda_0 = (1-np.sum(lmda))
z_0 = lmda_0 + np.sum(lmda*data_obs[:,2].reshape(N,1))
variansi = C_0 - np.sum(lmda*C_right)

print ('z_0 simple kriging:', z_0)
print('Variansi simple kriging:', variansi)

#04
C_left = np.hstack ((C_left, np.ones((N,1))))
C_left = np.vstack ((C_left, np.ones((1, N+1))))
C_left [-1,-1]=0

C_right = np.vstack((C_right,1))

lmda = inv (C_left@C_left.T)@C_left.T@C_right
lmda_0 = (1-np.sum(lmda[:-1,0]))

z_0 = lmda_0 +np.sum(lmda[:-1,0]*data_obs[:,2])
miu = lmda [-1,0]
variansi = C_0 - np.sum(lmda[:-1,0]*C_right[:-1,0]) - miu
print ('z_0 ordinary kriging:', z_0)
print('variansi ordinary kriging:', variansi)

• Script Soal 2A

#Muhammad Ichsan 12117143
import numpy as np
import matplotlib.pyplot as plt
import pykrige.kriging_tools as kt
from pykrige.ok import OrdinaryKriging
from pykrige.uk import UniversalKriging

#00_Import data
data = np.loadtxt('data_magnetik.txt', skiprows = 1)
X = data [:, 0 ]
Y = data [:, 1 ]
T = data [:, 2 ]

#01_definisi grid UTM X dan UTM Y, yang ingin diinterpolasi
dx,dy = 20, 20
gridx = np.arange(X.min(), X.max(),dx)
gridy = np.arange(Y.min(), Y.max(),dy)

#02_melakukan interpolasi dengan menggunakan Ordinary Kriging
## variogram_model='linear', merupakan model variogram dapat diubah 
OK = OrdinaryKriging(X,Y,T, variogram_model = 'hole-effect', verbose = Tr
ue,
                     enable_plotting = True)
z, ss  = OK.execute('grid', gridx, gridy)

#03_Simpan titik interpolasi ke dalam ASCII data 
kt.write_asc_grid(gridx, gridy, z, filename = "OKinterpolasi.asc")

#03_Ploting hasil interpolasi
plt.figure(1)
plt.imshow(z,cmap = 'jet', aspect = 'auto', origin = 'lower', extent = [X
.min(),X.max(), Y.min(), Y.max()])

plt.xlabel ('UTM X')
plt.ylabel ('UTM Y')
plt.colorbar (label = 'Tobs [mT]')
plt.show()

• Script Soal 2B

#Muhammad Ichsan 12117143
import numpy as np
import matplotlib.pyplot as plt
import pykrige.kriging_tools as kt
from pykrige.ok import OrdinaryKriging
from pykrige.uk import UniversalKriging

#00_Import data
data = np.loadtxt('data_magnetik.txt', skiprows=1)
X = data[:, 0] 
Y = data[:, 1] 
T = data[:, 2] 

#01_definisi grid UTM X dan UTM Y, yang ingin di interpolasi
dx, dy = 20,20 #dx, dy merupakan lebar grid
gridx = np.arange(X.min(), X.max(), dx)
gridy = np.arange(Y.min(), Y.max(), dy)

#02_melakukan interpolasi dengan menggunakan Ordinary Kriging
## variogram_model = 'linear', merupakan model variogram dapat diubah
UK = UniversalKriging(X, Y, T, variogram_model='hole-effect',
                        drift_terms=['regional_hole-effect'],)
z, ss = UK.execute('grid', gridx, gridy)

#03_Simpan titik interpolasi kedalam ASCII data
kt.write_asc_grid(gridx, gridy, z, filename="OKInterpolasi.asc")

#03_Plotting hasil interpolasi
plt.figure(1)
plt.imshow(z,cmap='jet', aspect='auto', origin ='lower', extent=[X.min(),
                X.max(), Y.min(), Y.max()])
plt.xlabel('UTM X')
plt.ylabel('UTM Y')
plt.colorbar(label='Tobs [mT]')
plt.show()

• Script Soal 3A

#Muhammad Ichsan 12117143
import numpy as np
import matplotlib.pyplot as plt
import pykrige.kriging_tools as kt
from pykrige.ok import OrdinaryKriging
from pykrige.uk import UniversalKriging

#00_Import data
data = np.loadtxt('data_magnetik2.txt', skiprows = 1)
X = data [:, 0 ]
Y = data [:, 1 ]
T = data [:, 2 ]

#01_definisi grid UTM X dan UTM Y, yang ingin diinterpolasi
dx,dy = 20, 20
gridx = np.arange(X.min(), X.max(),dx)
gridy = np.arange(Y.min(), Y.max(),dy)

#02_melakukan interpolasi dengan menggunakan Ordinary Kriging
## variogram_model='linear', merupakan model variogram dapat diubah 
OK = OrdinaryKriging(X,Y,T, variogram_model = 'hole-effect', verbose = Tr
ue,
                     enable_plotting = True)
z, ss  = OK.execute('grid', gridx, gridy)

#03_Simpan titik interpolasi ke dalam ASCII data 
kt.write_asc_grid(gridx, gridy, z, filename = "OKinterpolasi.asc")

#03_Ploting hasil interpolasi
plt.figure(1)
plt.imshow(z,cmap = 'jet', aspect = 'auto', origin = 'lower', extent = [X
.min(),X.max(), Y.min(), Y.max()])

plt.xlabel ('UTM X')
plt.ylabel ('UTM Y')
plt.colorbar (label = 'Tobs [mT]')
plt.show()

• Script Soal 3B

#Muhammad Ichsan
import numpy as np
import matplotlib.pyplot as plt
import pykrige.kriging_tools as kt
from pykrige.ok import OrdinaryKriging
from pykrige.uk import UniversalKriging

#00_Import data
data = np.loadtxt('data_magnetik2.txt', skiprows=1)
X = data[:, 0] #load UTM X, ke variabel X
Y = data[:, 1] #load UTM Y, ke variabel Y
T = data[:, 2] #load UTM T, ke variabel T

#01_definisi grid UTM X dan UTM Y, yang ingin di interpolasi
dx, dy = 20,20 #dx, dy merupakan lebar grid
gridx = np.arange(X.min(), X.max(), dx)
gridy = np.arange(Y.min(), Y.max(), dy)

#02_melakukan interpolasi dengan menggunakan Ordinary Kriging
## variogram_model = 'linear', merupakan model variogram dapat diubah
UK = UniversalKriging(X, Y, T, variogram_model='hole-effect',
                        drift_terms=['regional_hole-effect'],)
z, ss = UK.execute('grid', gridx, gridy)

#03_Simpan titik interpolasi kedalam ASCII data
kt.write_asc_grid(gridx, gridy, z, filename="OKInterpolasi.asc")

#03_Plotting hasil interpolasi
plt.figure(1)
plt.imshow(z,cmap='jet', aspect='auto', origin ='lower', extent=[X.min(),
                X.max(), Y.min(), Y.max()])
plt.xlabel('UTM X')
plt.ylabel('UTM Y')
plt.colorbar(label='Tobs [mT]')
plt.show()

3.2. Langkah Kerja


Adapun langkah pengerjaan sebagai berikut:

1. Siapkan IDE Visual Studio Code, Pycharm atau yang lainnya.


2. Pastikan modul yang akan digunakan sudah terinstal semuanya, yaitu pada kali ini
menggunakan modul numpy, matplotlib.pyplot, dan pykrige.
3. Setelah itu pastikan kembali data data_magnetik; data_magnetik2; yang telah
diberikan asisten praktikum tersimpan dengan satu file script .py yang akan
digunakan.
4. Konfigurasi A dan B
 Import modul yang digunakan
 Masukkan data dan menyimpan koordinat
 Masukkan persamaan variogram
 Membentuk covarians data observasi
 Menghitung z_0 dengan ordinary kriging
 Print hasil
5. Ordinary Kriging dan Universal Kriging “data_magnetik”
 Import modul yang digunakan
 Import data
 Mendefinisikan grid UTM X dan UTM Y
 Melakukan interpolasi dengan menggunakan Ordinary Kriging dan disini
akan diubah variogram model menjadi yang akan digunakan
 Menyimpan titik interpolasi dalam data ASCII
 Plot hasil interpolasi
6. Ordinary Kriging dan Universal Kriging “data_magnetik2”
 Import modul yang digunakan
 Masukkan data yang akan digunakan
 Menetukan nilai grid UTM X dan UTM Y
 Melakukan interpolasi dengan menggunakan Ordinary Kriging dan disini
akan diubah variogram model menjadi yang akan digunakan
 Menyimpan titik interpolasi dalam data ASCII
 Plot hasil interpolasi

IV. Hasil dan Analisis

• Output Soal 1A

• Output Soal 1B
• Output Soal 2A (Ordinary Kriging)

- Linear

Gambar 1. Variogram Model

Gambar 2. Plot Interpolasi


- Power
Gambar 3. Variogram Model

Gambar 4. Plot Interpolasi

- Gaussian

Gambar 5. Variogram Model


Gambar 6. Plot Interpolasi

- Spherical

Gambar 7. Variogram Model

Gambar 8. Plot Interpolasi


- Eksponential

Gambar 9. Variogram Model

Gambar 10. Plot Interpolasi

- Hole-Effect
Gambar 11. Variogram Model

Gambar 12. Plot Interpolasi

• Output Soal 2B (Universal Kriging)

- Linear

Gambar 13. Plot Interpolasi


- Power

Gambar 14. Plot Interpolasi


- Gaussian

Gambar 15. Plot Interpolasi

- Spherical

Gambar 16. Plot Interpolasi


- Exponential

Gambar 17. Plot Interpolasi


- Hole-Effect

Gambar 18. Plot Interpolasi

• Output Soal 3A (Ordinary Kriging)

- Linear
Gambar 19. Variogram Model

Gambar 20. Plot Interpolasi

- Power

Gambar 21. Variogram Model


Gambar 22. Plot Interpolasi

- Gaussian

Gambar 23. Variogram Model

Gambar 24. Plot Interpolasi


- Spherical

Gambar 25. Variogram Model

Gambar 26. Plot Interpolasi

- Exponential
Gambar 27. Variogram Model

Gambar 28. Plot Interpolasi

- Hole-Effect

Gambar 29. Variogram Model


Gambar 30. Plot Interpolasi

• Output Soal 3B (Universal Kriging)

- Linear

Gambar 31. Plot Interpolasi


- Power

Gambar 32. Plot Interpolasi


- Gaussian

Gambar 33. Plot Interpolasi

- Spherical

Gambar 34. Plot Interpolasi


- Exponential

Gambar 35. Plot Interpolasi


- Hole-Effect

Gambar 36. Plot Interpolasi

Analisis
Pada Soal nomor 1 dilakukan perbandingkan ketidakpastian antara konfigurasi (a) dan
(b) antara Simple dan Ordinary Kriging. Dengan menggunakan model eksponensial
sehingga terjadi peningkatan dalam semivariogram yang sangat curam dan mencapai
nilai sill secara asimtotik. Simple Kriging (SK) memiliki asumsi bahwa rata-rata (mean)
diketahui dan bernilai konstan sedangkan Ordinary Kriging (OK) memiliki asumsi
bahwa rata-rata (mean) tidak diketahui dan bernilai konstan. Hal inilah yang
menyebabkan error variance dari Ordinary Kriging lebih besar dibandingkan Simple
Kriging.

Pada soal 2 dilakukan analisa model variogram yang dihasilkan. Model variogram
tersebut berupa variogram Linear, Power, Gaussian, Spherical, Exponential, dan Hole-
Effect. Dari model variogram tersebut dipilih model linear sebagai model terbaik. Dari
penggunaan kriging baik Ordinary Kriging maupun Universal Kriging tidak menjadi
kendala dan menghasilkan interpolasi yang mirip. Hal ini dikarenakan data memiliki
kecenderungan trend yang cukup baik.

Pada soal 3 dilakukan analisa model variogram yang dihasilkan. Model variogram
tersebut berupa variogram Linear, Power, Gaussian, Spherical, Exponential, dan Hole-
Effect. Dari model variogram tersebut dipilih model hole-effect sebagai model terbaik.
Dari penggunaan kriging baik Ordinary Kriging maupun Universal Kriging tidak
menjadi kendala dan menghasilkan interpolasi yang mirip. Hal ini dikarenakan data
memiliki kecenderungan trend yang cukup baik. Data mempunyai kecenderungan
tertentu yaitu terdapat pola perubahan rata-rata seiring dengan berbedanya lokasi,
sehingga sifat second-order stationarity (stasioner orde dua) tidak berlaku.

Kriging digunakan untuk mengestimasi besarnya nilai karakteristik Z pada titik


tersampel berdasarkan informasi dan karakteristik titik-titik tersampel yang berada di
sekitarnya dengan mempertimbangkan korelasi spasisal yang ada dalam data tersebut.
Kriging menghasilkan estimator tidak bias terbaik efisien linear unbiased estimation
(BLUE) dari variabel yang ingin diketahui nilainya. Regresi hanya mampu
memperlihatkan hubungan antara satu atau lebih peubah/variabel bebas (X) dengan satu
peubah tak bebas (Y). Hasil prediksi kriging lebih akurat daripada metode regresi.
Sebab metode ini mampu membaca error yang berkorelasi, sehingga dapat diketahui
nilai kedekatannya.

V. Kesimpulan
Pada praktikum kali ini dapat diambil kesimpulan, yaitu:

1. Error variance dari Ordinary Kriging lebih besar dibandingkan Simple Kriging.
2. Simple Kriging (SK) memiliki asumsi bahwa rata-rata (mean) diketahui dan
bernilai konstan
3. Ordinary Kriging (OK) memiliki asumsi bahwa rata-rata (mean) tidak diketahui
dan bernilai konstan
4. Universal Kriging dapat diterapkan pada data yang mempunyai kecenderungan
trend tertentu atau data yang non-stasioner.
5. Hasil prediksi kriging lebih akurat daripada metode regresi.

DAFTAR PUSTAKA

Dajan, Anto. (1995). Pengantar Metode Statistik Jilid I. Jakarta: LP3S.

Bailey, Kenneth D. (1994). Methods of Social Research. 4th ed. New York: The Free Press

Modul Praktikum Geostatistika Geofisika: Institut Teknologi Sumatera


LAMPIRAN

SS SCRIPT SOAL 1A
SS SCRIPT SOAL 1B
SS SCRIPT SOAL 2A

SS SCRIPT SOAL 2B
SS SCRIPT SOAL 3A

SS SCRIPT SOAL 3B

Anda mungkin juga menyukai