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.
Script diatas merupakan sintaks untuk memplot grafik y vs x dan hasil yang didapatkan
adalah sebagai berikut.
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.
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])
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()
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')
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()
~ Selamat Praktikum ~