UNIVERSITAS NDONESIA
KADNAN
NPM: 2306196804
UNIVERSITAS INDONESIA
I. PENDAHULLUAN
Peringatan Dini Gempabumi pertama kali diperkenalkan oleh Cooper tahun 1868
dalam usaha memberikan peringatan dini gempa di sesar Hayward bagian timur teluk San
Francisco dengan menggunakan jaringan kabel telegrap yang dapat mengirim sinyal dan
membunyikan alarm di pusat kota jika terjadi guncangan yang cukup kuat (Cooper, 1868).
Istilah ini juga populer pada saat era perang dingin yang merupakan bagian dari strategi
militer untuk memberikan peringatan pergerakan misil balistik antar benua yang terdeteksi
oleh radar dan satelit sehingga muncul istilah lead time, yaitu waktu tunda antara
terdeteksinya misil sampai saat misil mencapai area target. Konsep Peringatan Dini yang
diperkenalkan oleh Cooper ini sangat sederhana, Cooper memanfaatkan perbedaan kecepatan
rambat gelombang elekromagnetik dengan sinyal seismik untuk memberikan peringatan dini,
gempa kuat yang berpotensi merusak pada satu tempat dideteksi kemudian alarm peringatan
dini diterbitkan pada lokasi tertentu.
Perkembangan selanjutnya dari konsep PDG telah mengalami kemajuan pada 10 tahun
terakhir baik dari sisi metodologi maupun instrumentasi yang digunakan. Perkembangan
tersebut membawa pengembangan metode baru dalam penentuan waktu tiba gelombang P
seperti IPP (the initial power of P-wave) yang lebih baik disbanding metode STA/LTA atau
metode tradisional lain yang telah dikenal. Metode IPP saat ini menjadi metode yang cukup
handal dalam prediksi parameter-parameter gempa yang mengubah paradigma dalam studi
PDG di dunia seismologi.
Beberapa negara seperti Jepang, Taiwan, Meksiko, Turki, dan Rumania telah
mengimplementasikan sistem PDG untuk peringatan dini dalam skala lokal dan regional.
Beberapa negara lain seperti Cina, Italia, dan California masih terus melakukan uji coba.
Sistem PDG di Taiwan, sebagai contoh, telah beroperasi sejak tahun 2002 dan hampir tidak
pernah gagal menerbitkan alarm peringatan dini untuk gempa-gempa merusak dengan M > 6,
(Wu dkk, 2006). Dua pendekatan yang umum digunakan dalam implementasi Sistem PDG
adalah Regional Warning dan Onsite Warning. Metode yang digunakan dalam pendekatan
Regional warning hampir mirip dengan apa yang dilakukan oleh Cooper. Pendekatan ini
berbasis pada jaringan seismik, sensor seismik yang rapat ditempatkan pada daerah
seismogenik, kemudian sinyal gempa yang terekam diolah di pusat pengolah data dan
dilakukan perhitungan parameter, kemudian peringatan dini diterbitkan pada daerah target.
Sebagai contoh, Biro Cuaca Pusat Taiwan (The Taiwan Central Weather Bureau, CWB) telah
menerapkan sistem regional yang membutuhkan kurang lebih 22 detik dalam menetukan
parameter gempa dengan kesalahan perhitungan magnitudo 0,25, (Wu dkk, 2007). Sedangkan
dalam pendekatan Onsite warning, atau yang biasa disebut pendekatan stasiun tunggal,
metode yang digunakan adalah melakukan prediksi parameter gempa menggunakan fase awal
gelombang P. Teknik ini pertama kali dikembangkan oleh UrEDAS (Urgent Earthquake
Detection and Alert System), Jepang. UrEDAS menggunakan 3 detik pertama fase awal
gelombang P untuk memprediksi parameter-parameter sumber.
Gambar 1. Pendekatan Regional Warning dan Onsite Warning (Allen, R.M dkk, 2009).
II. STUDI PUSTAKA
Penentuan waktu tiba gelombang P akan sulit dilakukan jika SNR dari sinyal gempa
memiliki nilai rasio yang rendah. Dari berbagai studi literatur dalam penentuan parameter
kunci PDG, proses filtering yang banyak digunakan dan memberikan hasil baik adalah
menerapkan filter Butterworth orde 2 tapis lolos tengah 0,075 – 4 Hz untuk menghilangkan
efek drift dan gangguan gelombang panjang baik karena pengaruh efek tidal dan gelombang
laut (Gunawan 2012). Berdasarkan penelitian Laghari, dkk (2014), filter Butterworth
memiliki respon amplitudo passband yang hampir datar (maximally flat) dan tidak memiliki
riak sehingga relatif lebih baik daripada filter Chebyshev dan Elliptic yang juga termasuk
desain filter yang umum digunakan.
Metode IPP dalam penentuan waktu tiba gelombang P, mirip dengan STA/LTA yang telah
lama dikenal. Dalam metode IPP, long time window terdiri dari short time window dengan posisi di
sebelah kanan, seperti gambar berikut. Power relative dari sinyal seismic yang tercatat di shortime dan
long time kemudian akan dihitung berurutan, pada saat gelombang P tiba, nilai IPP niak secara
signifikan dan akan melewati threshold yang ditentukan.
Gambar 2. Diagram dari long window dan short-time window dari metode IPP.
Perbedaan yang cukup signifikan dengan STA/LTA adalah, dalam metode IPP mampu
mengeliminasi interferensi noise sehingga mempermudah melihat gelombang P dengan lebih
jelas. Eliminasi background noise tidak terjadi pada metode STA/LTA yang membutuhkan
rasio sinyal terhadap noise yang cukup tinggi jika ingin membaca waktu kedatangan
gelombang P yang jelas. Penentuan Picking gelombang P dalam metode STA/LTA dijelaskan
dalam gambar berikut. Metode ini hanya efektif untuk sinyal-sinyal seismic pada data dengan
signal to noise ratio (SNR) tinggi
Gambar 3. Diagram long time dan short time dalam metode STA/LTA
Dalam kontek peringatan dini gempa, setelah waktu tiba dapat ditentukan dengan tepat.
Parameter arameter kunci yang banyak digunakan dalam PDG adalah τ c dan Pd. Parameter τ c
merupakan parameter yang menggambarkan periode rata-rata fase awal gelombang P, τ c juga
menggambarkan pulse width yang bertambah seiring dengan ukuran gempa sehingga dapat
digunakan untuk mengestimasi magnitudo. Sedangkan parameter Pd yang didefinisikan
sebagai amplitudo maksimum yang diukur pada komponen vertikal seismogram pergeseran.
Perhitungan parameter τ c dan Pd dari komponen vertikal seismogram pergeseran
diperlihatkan pada gambar berikut:
Gambar 4. Komponen vertikal seismogram percepatan, kecepatan dan pergeseran gempa Niigata Chuetsu-Oki,
Jepang tahun 2007. Parameterτ c dan Pd ditentukan dari 3 detik pertama gelombang P dari seismogram
pergeseran, Wu dan Kanamori (2008).
Wu dan Zhao (2006) menggunakan 3 detik pertama gelombang P untuk menentukan τ c dan
Pd dalam prediksi besaran Magnitudo dan jarak Hiposenter, melalui persanaan:
log (τ c) = a M + b (1)
III. METODE
Dalam melakukan filter lowpass, highpass maupun bandpass, tidak terdapat rumus
matematis yang digunakan, prosedur yang dilakukan untuk memperoleh hasil yang baik
adalah seperti flowchart gambar berikut. Langkah pertama adalah melakukan import data
sinyal, kemudian melakukan analisis spektrum menggunakan FFT untuk mengubah domain
waktu menjadi frekuensi. Menetapkan cut-off bawah dan atas frekuensi 0,075 – 4 Hz sampai
dihasilkan sinyal utama yang cukup bersih dari noise. Diagram alir penentuan waktu tiba
gelombang P dijelaskan dalam gambar 5 berikut. Jika Nilai rasio STA/LTA dan IPP tidak
melampaui batas threshold, perhitungan akan diulang melalui perubahan lebar window yang
digunakan sampai nilai rasio yang diinginkan.
Gambar 5. Flowchart proses penentuan waktu tiba gelobang P menggunakan STA/LTA dan IPP
IV. PEMBAHASAN
Sinyal gempa bumi dalam penelitian ini menggunakan sinya accelerometer yang terekam di stasiun
BMKG di wilayah Jawa bagian barat dan Lampung dengan total sinyal 4.482 yang tercatat di tahun
2021-2022.
Gambar 6. Posisi stasiun Accelerometer BMKG di wilayah Jawa bagian barat dan Lampung
Hasil perhitungan waktu tiba gelombang P menggunakan STA/LTA dan IPP adalah seperti
pada gambar 7 dan 8 berikut.
Gambar 7. Perhitungan waktu tiba gembang P menggunakan IPP method sinyal gempa M 6,0 stasiun LTZN,
threshold 0,001. Waktu tiba Gel P: 07:00:33.17.
Gambar 8. Perhitungan waktu tiba gembang P menggunakan STA/LTA method sinyal gempa M 6,0 stasiun
LTZN, threshold 3. Waktu tiba Gel P: 07:00:33,06
Ringkasan hasil perihitungan dari 4.482 sinyal gempa bumi dan membandingkannya dengan
perhitungan secara manual yang dilakukan oleh seismologist BMKG ditunjulan pada tebel
berikut.
Tabel 1. Perbandingan waktu tiba gelombang P dari 20 sampel sinyal gempa menggunakan
STA/LTA dan IPP
Arrival time Of P
No Station Magnitude Seismologist IPP STA/LTA
Wave
1 SSSR 5,6 17:28 46,21 46,34 46,57
2 MBSR 5,6 17:28 45,34 45,55 45,94
3 UTSM 5,6 17:28 46,10 46,07 46,30
4 MNAI 5,6 17:28 47,27 46,17 46,29
5 BEFA 5,6 17:28 49,05 49,13 50,34
6 BTSR 5,6 17:28 49,66 49,75 50,39
7 KSI 5,6 17:28 51,27 51,32 51,87
8 BEKI 5,6 17:28 51,28 51,31 52,41
9 PKSI 5,6 17:28 50,83 47,98 50,98
10 MKSM 5,6 17:28 50,62 50,55 50,72
11 LTJN 6 07:00 32,00 33,06 33,17
12 PKJM 4,9 16:57 9,15 9,30 9,27
13 KPJI 5 22:16 1,00 1,70 4,42
14 LTJN 5 02:21 31,24 50,51 62,46
15 PTSN 6,2 21:00 20,77 21,58 22,20
16 MSBA 6,2 21:00 32,91 33,24 34,94
17 SUSM 6,3 21:53 12,32 12,23 17,11
18 KASI 4,5 00:18 16,76 16,75 16,86
19 TMSN 4,5 01:18 18,01 18,05 18,17
20 TTSM 6,7 06:33 54,04 54,33 55,24
Mean Deviation 1,37 2,57
Rata-rata deviasi hasil perhitungan menggunakan metode IPP adalah 1,37 detik, sedangkan
metode STA/LTA adalah 2,57 detik. Hasil perhitungan STA/LTA Sebagian besar sinyal
gelombang P bergeser ke kanan yang disebabkan proses filtering menurunkan SNR pada awal
gelombang P tiba, interferensi noisi masih terjadi yang juga menyebabkan SNR yang rendah
dan menyulitkan threshold terlewati.
Dari hasil perhitungan ini, terlihat bahwa metode IPP menawarkan akurasi
perhitungan waktu tiba gelombang P yang lebih baik dibandingkan metode STA/LTA yang
telah lama digunakan oleh BMKG dan menjadi alternatif penentuan waktu tiba gelombang P
secara otomatis dalam studi awal peringatan dini gempa (PDG) di BMKG.
V. KESIMPULAN
Filter butterwort horde 2 dengan frekuensi cut-off 0,075-4Hz dapat digunakan dalam
pra prosesing sinyal gempa sebelum melakukan perhitungan waktu tiba gelombang P
menggunakan metode STA/LTA dan IPP.
Metode IPP memberikan deviasi rata-rata 1,37, sedangkan metode STA/LTA
memberikan deviasi rata-rata 2,57. Nilai deviasi yang besar STA/LTA disebabkan pengaruh
noise pada saat sinyal gel P tiba yang menuruknan SNR yang dibawa oleh gelombangP.
DAFTAR PUSTAKA
Allen, R.M., Gasparini, P., Kamigaichi, O., dan Bose, M. (2009) : The Status of Earthquake
Early Warning Around The World: An Introductory Overview, Seismological Research
Letters, Vol. 80, No. 5, September/Oktober 2009.
Cooper JD. (1868): Letter to editor. San Francisco Daily Evening Bulletin, November 3.
Dingwen Zhang, Zhitao Li, Jihua Fu, Linyue Wang, and Jianjun Wang (2022): IPP: A Seismic
P-Wave’s Detection Method Based on the Initial Power of the P-Wave: JOURNAL OF
EARTHQUAKE ENGINEERING, https://doi.org/10.1080/13632469.2023.2217934.
Gunawan, H., Puspito, N.T., Ibrahim, G., Harjadi, P.J. (2011): Analysis The First Arrival of P-
Wave of Ina-TEWS and CTBTO Stations to Support Earthquake Early Warning.
http://www.ctbto.org/fileadmin/ user_upload/SandT_2011. Diakses 4 April 2012.
Wu, Y.M., dan Zhao, Li.(2006) : Magnitude Estimation Using the Three Second P wave
Amplitude in Earthquake Early Warning; Geophysical Research Letter, Vol. 33. L
16312, doi 10.1029/2006.
Wu, Y.M., Kanamori, H., Allen, R.M., dan Hauksson, E. (2007) : Determination Of
Earthquake Early Warning Parameters, Tc and Pd For Southern California, Geophysical
Journal International, gji’3430doi:10.1111/j.1365-246X,2007.03430.x.
Wu, Y.M.,Yen, H.Y., Zhao, L., Huang, B.S., dan Liang, W.T. (2006): Magnitude
Determination Using Initial P waves: A Single-Station Approach, Geophysical Research
Letters, Vol. 33, L05306, doi:10.1029/2005GL025395, 2006.
Wu, Y.M., Kanamori, H., Allen, R.M., dan Hauksson, E. (2007) : Determination Of
Earthquake Early Warning Parameters, Tc and Pd For Southern California, Geophysical
Journal International, gji’3430doi:10.1111/j.1365-246X,2007.03430.x.
IPP Method
import obspy
import json
from obspy import read
from statistics import mean
import numpy as np
from obspy import read_inventory
import matplotlib.pyplot as plt
from scipy.signal import detrend
from obspy.signal.trigger import classic_sta_lta
from obspy.signal.trigger import plot_trigger
from obspy.signal.trigger import recursive_sta_lta, trigger_onset
from obspy.core import UTCDateTime
import pandas as pd
import os
%matplotlib inline
import mpld3
mpld3.disable_notebook()
def tipe_sensor(fname):
f = open('data_map.json')
data = json.load(f)
output_dict = [x for x in data if x['properties']["station_id"] == fname]
output_json = json.dumps(output_dict)
jenis = output_dict[0]["properties"]["sensor_type"]
tipe=jenis.split(' ')
f.close()
return tipe[0]
#tes cek sensor
tipe_sensor("RSJR")
work_dir="waveform_pakkadnan"
dir_list = os.listdir(work_dir)
print("#############################################################################
######################")
print("#############################################################################
######################")
print("PROSESING IPP "+x)
nama_file = x.replace(".mseed", "")
st = obspy.read(work_dir+"/"+x)
stasiun=st[0].stats.station
st.merge(method=0, fill_value='interpolate', interpolation_samples=0)
st.detrend("spline", order=3, dspline=500)
print(st[0].stats);
inv = read_inventory("http://202.90.199.206:8080/fdsnws/station/1/query?
station="+stasiun+"&level=response&nodata=404")
inv = inv[0][0][0].response.instrument_sensitivity.value
tes=len(st[0].data)
print(tes)
if tipe_sensor(stasiun) =="Accelerograph":
for i in range(len(st)):
st[i].data = (st[i].data/inv)*100
#st[i].data = st[i].data*100
else:
for i in range(len(st)):
st[i].data = (st[i].data*inv)*100
st[0].filter('bandpass', freqmin=0.075, freqmax=4, corners=2, zerophase=True)
st[0].stats.starttime
st[0].plot()
df = st[0].stats.sampling_rate
dt = UTCDateTime(st[0].stats.starttime)
npts = st[0].stats.npts
time = list(range(0,npts,1))
#st.plot()
#tentukan short window (s) dan long window (l)
n=0
s=5
l=8
treshold = 0.001
print(treshold)
B=[]
C=[]
D=[]
ind=[]
#perhitungan IPP
for t in time:
#PP
win_l=st[n].data[t:(t+l)]
win_l_pd = pd.DataFrame(win_l)
vari=win_l_pd.var()
B.append(vari.values[0])
#PS
win_s=win_l[-s:len(win_l)]
win_s_pd = pd.DataFrame(win_s)
vari2=win_s_pd.var()
C.append(vari2.values[0])
#perhitungan IPP 2
for i in range(0, len(B), 1):
IPP = ((C[i]-B[i])*l)/(l-s)
#print(IPP.values[0])
if abs(IPP) >= treshold:
ind.append(i)
D.append(IPP)
detik=location/df
start3=(dt+detik)
print(start3)
#PLOTTING
fig, subplt = plt.subplots(2,1)
subplt[1].plot(st[n].data, color = 'black', label='tes')
subplt[0].plot(D, color = 'black', label='tes')
subplt[0].axhline(y = treshold, color = 'r', linestyle = '-')
subplt[0].axhline(y = -treshold, color = 'r', linestyle = '-')
subplt[1].axvline(x = location, color = 'r', label = 'axvline - full height')
#PLOTTING
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(st[n].times("matplotlib"), st[n].data, "b-")
ax.axvline(x = st[n].times("matplotlib")[location], color = 'r', label = 'axvline - full height')
ax.xaxis_date()
fig.autofmt_xdate()
plt.show()
#SIMPAN DATA DALAM TXT
file_object = open('IPP.txt', 'a')
file_object.write("\n")
file_object.write(str(x))
file_object.write(",")
file_object.write(str(start3))
file_object.close()
STA/LTA
import obspy
import json
from obspy import read
from statistics import mean
import numpy as np
from obspy import read_inventory
import matplotlib.pyplot as plt
from scipy.signal import detrend
from obspy.signal.trigger import classic_sta_lta
from obspy.signal.trigger import plot_trigger
from obspy.signal.trigger import recursive_sta_lta, trigger_onset
from obspy.core import UTCDateTime
import os
%matplotlib inline
import mpld3
mpld3.disable_notebook()
#def tipe_sensor(fname):
# f = open('data_map.json')
# data = json.load(f)
# output_dict = [x for x in data if x['properties']["station_id"] == fname]
# output_json = json.dumps(output_dict)
# jenis = output_dict[0]["properties"]["sensor_type"]
# tipe=jenis.split(' ')
# f.close()
# return tipe[0]
##tes cek sensor
#tipe_sensor("RSJR")
work_dir="waveform_pakkadnan"
dir_list = os.listdir(work_dir)
index = st[0].stats.npts
treshold = 3
dt = UTCDateTime(st[0].stats.starttime)
cft = classic_sta_lta(st[0],int(2 * df), int(10 * df))
plot_trigger(st[0], cft, treshold, 0.5)
location = 1
checkdata =0
#plt.savefig("data_waveform_trigger/"+stasiun+'_trigger.png')
for i in range(index):
checkdata = cft[i]
# print(checkdata)
if checkdata >= treshold:
print(checkdata)
location = i
break
# location = index-i
print(location)
detik=location/df
start3=(dt+detik)
star=location-100
ended=location+200
print("waktu picking STA/LTA:")
print(start3)
file_object = open('STALTA.txt', 'a')
file_object.write("\n")
file_object.write(str(x))
file_object.write(",")
file_object.write(str(start3))
file_object.close()