5 0 2 MB
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
5.
Masukkan data dan menyimpan koordinat
Masukkan persamaan variogram
Membentuk covarians data observasi
Menghitung z_0 dengan ordinary kriging
Print hasil
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
6.
Menyimpan titik interpolasi dalam data ASCII
Plot hasil interpolasi
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
IV.
Menyimpan titik interpolasi dalam data ASCII
Plot hasil interpolasi
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
-
Gaussian
Gambar 14. Plot Interpolasi
Gambar 15. Plot Interpolasi -
Spherical
Gambar 16. Plot Interpolasi
-
Exponential
-
Hole-Effect
Gambar 17. Plot Interpolasi
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
-
Power
Gambar 31. Plot Interpolasi
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 HoleEffect. 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 HoleEffect. 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