Anda di halaman 1dari 7

Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2018

MODUL 7
VISUALISASI
I. Tujuan Praktikum
Tujuan praktikum adalah sebagai berikut:
• Mahasiswa dapat menvisualisasikan data ASCII di Python.
• Mahasiswa mampu menjelaskan flow chart dari program yang dibuat.
• Mahasiswa mampu menjelaskan pentingnya visualisasi dalam Geofisika.

II. Teori Dasar


Pada dasarnya untuk membuat sebuah grafik di Python sangatlah mudah. Hal ini
karena, di Python sudah disediakan fasilitas untuk menampilkan grafik dari kumpulan
data yang ada. Selain grafik yang ditampilkan, dapat juga ditambahkan aksesoris yang
lain untuk memberikan informasi yang jelas.
Penggunaan perintah plot, bar atau yang lain bisa menampilkan sebuah grafik
dalam bentuk 2D maupun 3D. Tentunya, masing-masing memiliki syarat-syarat yang
harus terpenuhi. Misalnya, untuk menampilkan grafik 2D harus tersedia data matriks 2
dimensi. Jika akan menampilkan grafik 3D maka harus tersedia data matriks 3 dimensi
pula.
Membuat plot data terdapat beberapa bentuk dari fungsi plot, tergantung pada
argumen inputnya. Jika y adalah sebuah vektor, maka sintak plot(y) akan menghasilkan
sebuah grafik linier dengan sumbu x merupakan nilai indeks dari elemen y sedangkan
sumbu y merupakan nilai y itu sendiri. Jika terdapat dua vektor sebagai argumennya,
maka sintaks plot(x,y) akan menghasilkan grafik y versus x. Perhatikan contoh berikut
dan simpan dengan nama pm7a.py.
import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 2 * np.pi, np.pi / 100)


y = np.sin(x)
plt.plot(x, y)
plt.show()

Script diatas merupakan sintaks untuk memplot grafik y vs x dan hasil yang didapatkan
adalah sebagai berikut.

© 2018 Teknik Geofisika, Universitas Pertamina 38


DOI: 10.17605/OSF.IO/H6D5W
Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2018

Gambar 7.1. Plot x vs y


Gambar diatas dapat juga ditambahi aksesoris seperti label x, label y, judul dengan
menambahkan sintaks berikut. Gabunglah script kode pm7a.py dengan kode dibawah ini
dan simpan dengan nama pm7b.py.
import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 2 * np.pi, np.pi / 100)


y1 = np.sin(x)
y2 = np.sin(x + np.pi)
plt.plot(x, y1, '--r', label='sin(x)')
plt.plot(x, y2, '+b', label='sin(x+pi)')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Plot Data')
plt.grid()
plt.legend()
plt.tick_params(axis='both', labelcolor='tab:orange')
plt.show()

Sementera itu plotting data pada Python banyak sekali macamnya bisa menggunakan
package matplotlib, pyqtgraph, bokeh, holoviews, dan lain-lain. Sedangkan pada
Geofisika, plotting data yang sering dilakukan berupa plot line, logaritmik, kontur,
topografi, dan lainnya.

© 2018 Teknik Geofisika, Universitas Pertamina 39


DOI: 10.17605/OSF.IO/H6D5W
Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2018

Gambar 7.2. Contoh plotting dengan holoviews

III. Tugas Pendahuluan


1. Apa pentingnya visualisasi dalam Geofisika?
2. Software apa saja (selain yang berbasis Python) yang kalian ketahui untuk
menvisualisasikan data Geofisika?
3. Apa kelebihan Python dibanding software lainya (soal no. 2) dalam visualisasi?
4. Sebutan dan jelaskan package pada Python yang kalian ketahui untuk
menvisualisasikan data?
5. Jelaskan perbedaan antara plt.plot(), plt.xlabel(), plt.grid(), dan plt.title() pada
kode pm7b.py!

IV. Langkah Praktikum


1. Plot diagram. Salin kode berikut dan simpan dengan nama pm7c.py.
import matplotlib.pyplot as plt

labels = '2016', '2017', '2018'


sizes = [79, 62, 76]

fig1, ax1 = plt.subplots()


ax1.pie(sizes, labels=labels, autopct='%1.1f%%',
startangle=90)
ax1.axis('equal')

© 2018 Teknik Geofisika, Universitas Pertamina 40


DOI: 10.17605/OSF.IO/H6D5W
Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2018

ax1.set_title("Mahasiswa Geofisika UP")


plt.show()

Sehingga menghasilkan gambar berikut

2. Contoh plot data seismogram dalam Geofisika. Salin kode pm7d.py berikut
import matplotlib.pyplot as plt
from obspy import read
kompE = read("Komponen_E.miniseed")
kompN = read("Komponen_N.miniseed")
kompZ = read("Komponen_Z.miniseed")

dataE = kompE[0].data
t = range(1,len(dataE)+1)
dataN = kompN[0].data
dataZ = kompZ[0].data

fig = plt.figure()
sp1 = plt.subplot(311)
sp1.plot(t,dataE)
sp1.set_xlim([0, len(dataE)+1])

sp2 = plt.subplot(312)
sp2.plot(t,dataN)
sp2.set_xlim([0, len(dataN)+1])
plt.ylabel('Amplitude')

sp3 = plt.subplot(313)
sp3.plot(t,dataZ)
sp3.set_xlim([0, len(dataZ)+1])

fig.suptitle('Plot Data Seismogram')


plt.xlabel('Time')
plt.show()

Sehingga menghasilkan gambar berikut

© 2018 Teknik Geofisika, Universitas Pertamina 41


DOI: 10.17605/OSF.IO/H6D5W
Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2018

3. Contoh Plot kontur untuk data CBA Gravity. Salin kode pm7e.py berikut.
import numpy as np
from scipy.interpolate import griddata
import matplotlib.pyplot as plt
data = np.genfromtxt('gravity.txt')
x = data[:, 0]
y = data[:, 1]
cba = data[:, 2]

xm, ym = np.meshgrid(x, y)
cbam = griddata((x, y), cba, (xm, ym), method='linear')
CS = plt.contourf(xm, ym, cbam)
plt.colorbar()
plt.scatter(x, y, marker='o', s=5, zorder=10)
plt.title('Plot Data Gravity')
plt.xlabel('Easting (km)')
plt.ylabel('Northing (km)')
plt.xlim(0, max(x))
plt.ylim(0, max(y))
plt.show()

Sehingga menghasilkan gambar berikut

© 2018 Teknik Geofisika, Universitas Pertamina 42


DOI: 10.17605/OSF.IO/H6D5W
Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2018

4. Plot forward modeling Gravity model patahan. Salin kode pm7f.py berikut.
import numpy as np
import matplotlib.pyplot as plt
t = 10
z1 = 50
z2 = 150
x0 = 100
rho = 1
x = np.arange(-500, 500, 20)
G = 6.67 * 10e-11
v = 2 * G * rho * t
g = []
for i in range(0, len(x)):
g.append(np.pi + (np.arctan((x[i] - x0) / z1)) -
(np.arctan((x[i] - x0) / z2)))

gg = v*np.array(g)

plt.subplot(311)
plt.plot(x, gg, '*r')
plt.xlim(min(x), max(x))
plt.ylabel('Delta g (mGal)')
plt.title('Modeling Gravity - Patahan')

fig = plt.subplot(313)
x1 = [-500, -500, x0, x0]
y1 = [z2, z2 - t, z2 - t, z2]
fig.fill(x1, y1, 'r')
x2 = [x0, x0, 500, 500]
y2 = [z1, z1 - t, z1 - t, z1]
fig.fill(x2, y2, 'r')

© 2018 Teknik Geofisika, Universitas Pertamina 43


DOI: 10.17605/OSF.IO/H6D5W
Modul Praktikum GP2103 Metode Komputasi, Semester I Tahun 2018

plt.xlim(min(x), max(x))
plt.ylim(0, z2+50)
plt.gca().invert_yaxis()
plt.ylabel('Depth (m)')
plt.xlabel('Position (m)')
plt.show()

Sehingga menghasilkan gambar berikut

V. Laporan dan Analisis


Tugas yang harus dilampirkan pada laporan berupa:
1. Buatlah forward modeling magnetik dengan model berupa thin sheet/dyke!

2. Visualisasikan data seismik 2D yang telah diberikan dengan Python,


menggunakan package PyOSGPUP!
3. Buatlah peta kontur dari data pengukuran Gravity 2D di suatu daerah yang
telah diberikan!

~ Selamat Praktikum ~

© 2018 Teknik Geofisika, Universitas Pertamina 44


DOI: 10.17605/OSF.IO/H6D5W

Anda mungkin juga menyukai