def grab_data(scnl, T1, T2, hostname, port, fill_value=0): # scnl = list of station names (eg. ['PS4A.EHZ.AV.--','PVV.EHZ.AV.--','PS1A.EHZ.AV.--']) # T1 and T2 are start/end obspy UTCDateTimes # fill_value can be 0 (default), 'latest', or 'interpolate' # # returns stream of traces with gaps accounted for # # print('{} - {}'.format(T1.strftime('%Y.%m.%d %H:%M:%S'),T2.strftime('%Y.%m.%d %H:%M:%S'))) print('Grabbing data...') st=Stream() client = Client(hostname, int(port)) for sta in scnl: try: tr=client.get_waveforms(sta.split('.')[2], sta.split('.')[0],sta.split('.')[3],sta.split('.')[1], T1, T2, cleanup=True) if len(tr)>1: if fill_value==0 or fill_value==None: tr.detrend('demean') tr.taper(max_percentage=0.01) for sub_trace in tr: # deal with error when sub-traces have different dtypes if sub_trace.data.dtype.name != 'int32': sub_trace.data=sub_trace.data.astype('int32') if sub_trace.data.dtype!=np.dtype('int32'): sub_trace.data=sub_trace.data.astype('int32') # deal with rare error when sub-traces have different sample rates if sub_trace.stats.sampling_rate!=np.round(sub_trace.stats.sampling_rate): sub_trace.stats.sampling_rate=np.round(sub_trace.stats.sampling_rate) print('Merging gappy data...') tr.merge(fill_value=fill_value) # deal where trace length is smaller than expected window length if tr[0].stats.endtime - tr[0].stats.starttime < T2 - T1: tr.detrend('demean') tr.taper(max_percentage=0.01) except: tr=Stream() # if no data, create a blank trace for that channel if not tr: from obspy import Trace from numpy import zeros tr=Trace() tr.stats['station']=sta.split('.')[0] tr.stats['channel']=sta.split('.')[1] tr.stats['network']=sta.split('.')[2] tr.stats['location']=sta.split('.')[3] tr.stats['sampling_rate']=100 tr.stats['starttime']=T1 tr.data=zeros(int((T2-T1)*tr.stats['sampling_rate']),dtype='int32') st+=tr st.trim(T1,T2,pad=True, fill_value=0) print('Detrending data...') st.detrend('demean') return st
def get_fdsn_station_day(network, station, channel, time_step=1, nperseg=2560, nfft=2560): time_now = UTCDateTime.now() time_then = time_now - datetime.timedelta(hours=time_step) #client = Client("IRIS") client = Client("130.118.86.189", 16022) compE = client.get_waveforms(network, station, "--", chn + 'E', time_then, time_now)[0] compN = client.get_waveforms(network, station, "--", chn + 'N', time_then, time_now)[0] compZ = client.get_waveforms(network, station, "--", chn + 'Z', time_then, time_now)[0] Fs = 1 / compE.stats.delta array_length = np.min([len(compE.data), len(compN.data), len(compZ.data)]) - 1 f, t, specE = signal.spectrogram(compE.data[0:array_length], Fs, nperseg=nperseg, nfft=nfft) f, t, specN = signal.spectrogram(compN.data[0:array_length], Fs, nperseg=nperseg, nfft=nfft) f, t, specZ = signal.spectrogram(compZ.data[0:array_length], Fs, nperseg=nperseg, nfft=nfft) t = int(time_then.strftime('%s')) + t HVSR = np.log10(((specE * specN)**.5) / specZ) return t, f, HVSR
def get_waveforms(client: Client, seed_id: str, starttime: UTCDateTime, endtime: UTCDateTime) -> Stream: """ Retrieve waveforms from earthworm wave server specified by client. :param client: Instance of Obspy's Client :type client: Client :param seed_id: Station name formatted to follow SEED format :type seed_id: str :param starttime: Start time for data request :type starttime: UTCDateTime :param endtime: End time for data request :type endtime: UTCDateTime :return: Obspy stream containing the waveform(s) :rtype: Stream """ net, sta, loc, chan = seed_id.split('.') st = client.get_waveforms(net, sta, loc, chan, starttime, endtime) return st
def grab_data(server, port, scnl, T1, T2, fill_value=0): '''GRAB_DATA Wrapper for ObsPy client.get_waveform() USAGE ------------ >>> grab_data( server, port, scnl, T1, T2, fill_value=0 ) >>> grab_data ( 'observatory.org', 16022, 'SEIS.EHZ.US.--', ... UTCDateTime(...), UTCDateTime(...), fill_value=0 ) ''' from obspy import Stream from obspy.clients.earthworm import Client st = Stream() client = Client(server, port) for sta in scnl: station = sta.split('.')[0] channel = sta.split('.')[1] network = sta.split('.')[2] location = sta.split('.')[3] print(station, channel, network, location, T1, T2) try: tr = client.get_waveforms(network, station, location, channel, T1, T2) if len(tr) == 0: tr = create_trace(sta, T1, T2) else: if len(tr) > 1: if fill_value == 0 or fill_value == None: tr.detrend('demean') tr.taper(max_percentage=0.01) tr.merge(fill_value=fill_value) tr.trim(T1, T2, pad=0) tr.detrend('demean') except Exception as err: print(err) print("No data found for " + sta) tr = create_trace(sta, T1, T2) st += tr print(st) return st
def isrpGetWsData(StzPrms, Ti, Te): # ti_str = "20180225_11:00:00" # tf_str = "20180225_12:00:00" ti = UTCDateTime(Ti) tf = UTCDateTime(Te) client = Client(StzPrms['WssClient'][0], StzPrms['WssPort'][0], timeout=20) Wfrm = Stream() for i in range(0, StzPrms['WssChannel'][0]): response = client.get_availability(StzPrms['WssNetwork'][0], StzPrms['StationName'][0], StzPrms['WssLocation'][0], 'CH' + str(i + 1)) print(response) out = client.get_waveforms(StzPrms['WssNetwork'][0], StzPrms['StationName'][0], StzPrms['WssLocation'][0], 'CH' + str(i + 1), ti, tf) Wfrm += out return Wfrm
def get_all_stations(day): from obspy.clients.earthworm import Client from obspy import UTCDateTime from obspy import Stream year1 = 2014 month1 = 11 day1 = 24 hour1 = 0 minute1 = 0 second1 = 0 num = 12 lb_num = 6 #%% LB01 try: sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 + day * 24 * 60 * 60 t2 = t1 + 23 * 60 * 60 + 59 * 60 + 59.999 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st1 = Stream() st1 = client.get_waveforms(net, sta, '', cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sorted_data = st1.copy() sorted_data = abs(sorted_data[0].data) sorted_data.sort() mid_dat = sorted_data[int(len(sorted_data) / 2)] if sum(abs(st1[0].data) ) < 10 or st1[0].stats.npts < 7920000 or mid_dat < 0.1: sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime( year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st1 = Stream() st1 = client.get_waveforms(net, sta, '', cha, t1, t2) st1.detrend(type='linear') st1.detrend(type='demean') st1[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 lb_num = lb_num - 1 except: # give 2 seconds of data instead sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st1 = Stream() st1 = client.get_waveforms(net, sta, '', cha, t1, t2) st1.detrend(type='linear') st1.detrend(type='demean') st1[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 lb_num = lb_num - 1 #%% LB02 try: sta = 'LB02' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 + day * 24 * 60 * 60 t2 = t1 + 23 * 60 * 60 + 59 * 60 + 59.999 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st2 = Stream() st2 = client.get_waveforms(net, sta, '', cha, t1, t2) # st is a stream, we can operate normally as in obspy st2.detrend(type='linear') st2.detrend(type='demean') break_test = st2 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sorted_data = st2.copy() sorted_data = abs(sorted_data[0].data) sorted_data.sort() mid_dat = sorted_data[int(len(sorted_data) / 2)] if sum(abs(st2[0].data) ) < 10 or st2[0].stats.npts < 7920000 or mid_dat < 0.1: sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime( year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st2 = Stream() st2 = client.get_waveforms(net, sta, '', cha, t1, t2) st2.detrend(type='linear') st2.detrend(type='demean') st2[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 lb_num = lb_num - 1 except: # give 2 seconds of data instead sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st2 = Stream() st2 = client.get_waveforms(net, sta, '', cha, t1, t2) st2.detrend(type='linear') st2.detrend(type='demean') st2[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 lb_num = lb_num - 1 #%% LB03 try: sta = 'LB03' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 + day * 24 * 60 * 60 t2 = t1 + 23 * 60 * 60 + 59 * 60 + 59.999 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st3 = Stream() st3 = client.get_waveforms(net, sta, '', cha, t1, t2) # st is a stream, we can operate normally as in obspy st3.detrend(type='linear') st3.detrend(type='demean') break_test = st3 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sorted_data = st3.copy() sorted_data = abs(sorted_data[0].data) sorted_data.sort() mid_dat = sorted_data[int(len(sorted_data) / 2)] if sum(abs(st3[0].data) ) < 10 or st3[0].stats.npts < 7920000 or mid_dat < 0.1: sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime( year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st3 = Stream() st3 = client.get_waveforms(net, sta, '', cha, t1, t2) st3.detrend(type='linear') st3.detrend(type='demean') st3[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 lb_num = lb_num - 1 except: # give 2 seconds of data instead sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st3 = Stream() st3 = client.get_waveforms(net, sta, '', cha, t1, t2) st3.detrend(type='linear') st3.detrend(type='demean') st3[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 lb_num = lb_num - 1 #%% LB04 try: sta = 'LB04' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 + day * 24 * 60 * 60 t2 = t1 + 23 * 60 * 60 + 59 * 60 + 59.999 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st4 = Stream() st4 = client.get_waveforms(net, sta, '', cha, t1, t2) # st is a stream, we can operate normally as in obspy st4.detrend(type='linear') st4.detrend(type='demean') break_test = st4 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sorted_data = st4.copy() sorted_data = abs(sorted_data[0].data) sorted_data.sort() mid_dat = sorted_data[int(len(sorted_data) / 2)] if sum(abs(st4[0].data) ) < 10 or st4[0].stats.npts < 7920000 or mid_dat < 0.1: sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime( year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st4 = Stream() st4 = client.get_waveforms(net, sta, '', cha, t1, t2) st4.detrend(type='linear') st4.detrend(type='demean') st4[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 lb_num = lb_num - 1 except: # give 2 seconds of data instead sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st4 = Stream() st4 = client.get_waveforms(net, sta, '', cha, t1, t2) st4.detrend(type='linear') st4.detrend(type='demean') st4[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 lb_num = lb_num - 1 #%% LB05 try: sta = 'LB05' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 + day * 24 * 60 * 60 t2 = t1 + 23 * 60 * 60 + 59 * 60 + 59.999 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st5 = Stream() st5 = client.get_waveforms(net, sta, '', cha, t1, t2) # st is a stream, we can operate normally as in obspy st5.detrend(type='linear') st5.detrend(type='demean') break_test = st5 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sorted_data = st5.copy() sorted_data = abs(sorted_data[0].data) sorted_data.sort() mid_dat = sorted_data[int(len(sorted_data) / 2)] if sum(abs(st5[0].data) ) < 10 or st5[0].stats.npts < 7920000 or mid_dat < 0.1: sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime( year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st5 = Stream() st5 = client.get_waveforms(net, sta, '', cha, t1, t2) st5.detrend(type='linear') st5.detrend(type='demean') st5[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 lb_num = lb_num - 1 except: # give 2 seconds of data instead sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st5 = Stream() st5 = client.get_waveforms(net, sta, '', cha, t1, t2) st5.detrend(type='linear') st5.detrend(type='demean') st5[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 lb_num = lb_num - 1 #%% LB06 try: sta = 'LB06' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 + day * 24 * 60 * 60 t2 = t1 + 23 * 60 * 60 + 59 * 60 + 59.999 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st6 = Stream() st6 = client.get_waveforms(net, sta, '', cha, t1, t2) # st is a stream, we can operate normally as in obspy st6.detrend(type='linear') st6.detrend(type='demean') break_test = st6 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sorted_data = st6.copy() sorted_data = abs(sorted_data[0].data) sorted_data.sort() mid_dat = sorted_data[int(len(sorted_data) / 2)] if sum(abs(st6[0].data) ) < 10 or st6[0].stats.npts < 7920000 or mid_dat < 0.1: sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime( year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st6 = Stream() st6 = client.get_waveforms(net, sta, '', cha, t1, t2) st6.detrend(type='linear') st6.detrend(type='demean') st6[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 lb_num = lb_num - 1 except: # give 2 seconds of blank data instead sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st6 = Stream() st6 = client.get_waveforms(net, sta, '', cha, t1, t2) st6.detrend(type='linear') st6.detrend(type='demean') st6[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 lb_num = lb_num - 1 #%% LS01 try: sta = 'LS01' # STATION LS01 cha = 'EHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 + day * 24 * 60 * 60 t2 = t1 + 23 * 60 * 60 + 59 * 60 + 59.999 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts1 = Stream() sts1 = client.get_waveforms(net, sta, '', cha, t1, t2) # st is a stream, we can operate normally as in obspy sts1.detrend(type='linear') sts1.detrend(type='demean') break_test = sts1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sorted_data = sts1.copy() sorted_data = abs(sorted_data[0].data) sorted_data.sort() mid_dat = sorted_data[int(len(sorted_data) / 2)] if sum(abs(sts1[0].data) ) < 10 or sts1[0].stats.npts < 7920000 or mid_dat < 0.1: sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime( year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts1 = Stream() sts1 = client.get_waveforms(net, sta, '', cha, t1, t2) sts1.detrend(type='linear') sts1.detrend(type='demean') sts1[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 except: # give 2 seconds of data instead sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts1 = Stream() sts1 = client.get_waveforms(net, sta, '', cha, t1, t2) sts1.detrend(type='linear') sts1.detrend(type='demean') sts1[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 #%% LS02 try: sta = 'LS02' # STATION LS02 cha = 'EHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 + day * 24 * 60 * 60 t2 = t1 + 23 * 60 * 60 + 59 * 60 + 59.999 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts2 = Stream() sts2 = client.get_waveforms(net, sta, '', cha, t1, t2) # st is a stream, we can operate normally as in obspy sts2.detrend(type='linear') sts2.detrend(type='demean') break_test = sts2 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sorted_data = sts2.copy() sorted_data = abs(sorted_data[0].data) sorted_data.sort() mid_dat = sorted_data[int(len(sorted_data) / 2)] if sum(abs(sts2[0].data) ) < 10 or sts2[0].stats.npts < 7920000 or mid_dat < 0.1: sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime( year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts2 = Stream() sts2 = client.get_waveforms(net, sta, '', cha, t1, t2) sts2.detrend(type='linear') sts2.detrend(type='demean') sts2[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 except: # give 2 seconds of data instead sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts2 = Stream() sts2 = client.get_waveforms(net, sta, '', cha, t1, t2) sts2.detrend(type='linear') sts2.detrend(type='demean') sts2[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 #%% LS03 try: sta = 'LS03' # STATION LS03 cha = 'EHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 + day * 24 * 60 * 60 t2 = t1 + 23 * 60 * 60 + 59 * 60 + 59.999 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts3 = Stream() sts3 = client.get_waveforms(net, sta, '', cha, t1, t2) # st is a stream, we can operate normally as in obspy sts3.detrend(type='linear') sts3.detrend(type='demean') break_test = sts3 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sorted_data = sts3.copy() sorted_data = abs(sorted_data[0].data) sorted_data.sort() mid_dat = sorted_data[int(len(sorted_data) / 2)] if sum(abs(sts3[0].data) ) < 10 or sts3[0].stats.npts < 7920000 or mid_dat < 0.1 or sts3[ 0].stats.starttime.timestamp > 1442707190: sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime( year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts3 = Stream() sts3 = client.get_waveforms(net, sta, '', cha, t1, t2) sts3.detrend(type='linear') sts3.detrend(type='demean') sts3[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 except: # give 2 seconds of data instead sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts3 = Stream() sts3 = client.get_waveforms(net, sta, '', cha, t1, t2) sts3.detrend(type='linear') sts3.detrend(type='demean') sts3[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 #%% LS04 try: sta = 'LS04' # STATION LS04 cha = 'EHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 + day * 24 * 60 * 60 t2 = t1 + 23 * 60 * 60 + 59 * 60 + 59.999 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts4 = Stream() sts4 = client.get_waveforms(net, sta, '', cha, t1, t2) # st is a stream, we can operate normally as in obspy sts4.detrend(type='linear') sts4.detrend(type='demean') break_test = sts4 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sorted_data = sts4.copy() sorted_data = abs(sorted_data[0].data) sorted_data.sort() mid_dat = sorted_data[int(len(sorted_data) / 2)] if sum(abs(sts4[0].data) ) < 10 or sts4[0].stats.npts < 7920000 or mid_dat < 0.1: sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime( year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts4 = Stream() sts4 = client.get_waveforms(net, sta, '', cha, t1, t2) sts4.detrend(type='linear') sts4.detrend(type='demean') sts4[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 except: # give 2 seconds of data instead sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts4 = Stream() sts4 = client.get_waveforms(net, sta, '', cha, t1, t2) sts4.detrend(type='linear') sts4.detrend(type='demean') sts4[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 #%% LS05 try: sta = 'LS05' # STATION LB0S cha = 'EHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 + day * 24 * 60 * 60 t2 = t1 + 23 * 60 * 60 + 59 * 60 + 59.999 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts5 = Stream() sts5 = client.get_waveforms(net, sta, '', cha, t1, t2) # st is a stream, we can operate normally as in obspy sts5.detrend(type='linear') sts5.detrend(type='demean') break_test = sts5 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sorted_data = sts5.copy() sorted_data = abs(sorted_data[0].data) sorted_data.sort() mid_dat = sorted_data[int(len(sorted_data) / 2)] if sum(abs(sts5[0].data) ) < 10 or sts5[0].stats.npts < 7920000 or mid_dat < 0.1: sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime( year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts5 = Stream() sts5 = client.get_waveforms(net, sta, '', cha, t1, t2) sts5.detrend(type='linear') sts5.detrend(type='demean') sts5[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 except: # give 2 seconds of data instead sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts5 = Stream() sts5 = client.get_waveforms(net, sta, '', cha, t1, t2) sts5.detrend(type='linear') sts5.detrend(type='demean') sts5[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 #%% LS06 try: sta = 'LS06' # STATION LS06 cha = 'EHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 + day * 24 * 60 * 60 t2 = t1 + 23 * 60 * 60 + 59 * 60 + 59.999 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts6 = Stream() sts6 = client.get_waveforms(net, sta, '', cha, t1, t2) # st is a stream, we can operate normally as in obspy sts6.detrend(type='linear') sts6.detrend(type='demean') break_test = sts6 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sorted_data = sts6.copy() sorted_data = abs(sorted_data[0].data) sorted_data.sort() mid_dat = sorted_data[int(len(sorted_data) / 2)] if sum(abs(sts6[0].data) ) < 10 or sts6[0].stats.npts < 7920000 or mid_dat < 0.1: sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime( year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts6 = Stream() sts6 = client.get_waveforms(net, sta, '', cha, t1, t2) sts6.detrend(type='linear') sts6.detrend(type='demean') sts6[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 except: # give 2 seconds of blank data instead sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. sts6 = Stream() sts6 = client.get_waveforms(net, sta, '', cha, t1, t2) sts6.detrend(type='linear') sts6.detrend(type='demean') sts6[0].filter("bandpass", freqmin=0.1, freqmax=0.1) num = num - 1 #%% return all stations return (st1, st2, st3, st4, st5, st6, sts1, sts2, sts3, sts4, sts5, sts6, num, lb_num) #st7
tStart = response[0][4] # date/time of beginning of data record tEnd = response[0][5] # date/time of end of data record StationName = response[0][1] # eg. 'SHARK' dur = 60*60*hours # 60 seconds * 60 minutes * hours winEnd = tEnd # fixed end time winStart = tEnd - dur print("Requesting " + str(winStart) + " - " + str(winEnd)) startStr = str(winStart) fname = startStr[0:13]+startStr[14:16]+"_"+StationName+".csv" # Specify: network, station, location, channel, startTime, endTime st = client.get_waveforms('PA', 'SHARK', '00', 'EHZ', winStart, winEnd) print(st) print("Writing %s\n" % fname) # DEBUG verbose show filename for i, tr in enumerate(st): f = open("%s" % fname, "w") f.write("%s\n" % StationName) f.write("# STATION %s\n" % (tr.stats.station)) f.write("# CHANNEL %s\n" % (tr.stats.channel)) f.write("# START_TIME %s\n" % (str(winStart))) f.write("# SAMP_FREQ %f\n" % (tr.stats.sampling_rate)) f.write("# NDAT %d\n" % (tr.stats.npts)) np.savetxt(f, tr.data * calibration, fmt="%6.0f") f.close()
def stacked_LBz_eq(fmi, fma): import numpy as np import obspy from obspy.core import read from obspy.clients.earthworm import Client from obspy import UTCDateTime from obspy import Stream import matplotlib.pyplot as plt #%% seisb = Stream() stream1 = seisb.copy() stream2 = stream1.copy() stream3 = stream1.copy() stream4 = stream1.copy() stream5 = stream1.copy() stream6 = stream1.copy() stream7 = stream1.copy() stream1b = stream1.copy() stream2b = stream1.copy() stream3b = stream1.copy() stream4b = stream1.copy() stream5b = stream1.copy() stream6b = stream1.copy() stream7b = stream1.copy() year1 = 2014 month1 = 11 day1 = 24 hour1 = 0 minute1 = 0 second1 = 0 fmin = fmi fmax = fma #%% LB01 sta = 'LB01' # STATION LB02 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month for x in range(0, 13, 1): if x == 0: M = [[1, 57, 18], [8, 30, 14], [18, 42, 56], [18, 59, 57]] if x == 1: M = [[9, 16, 51], [11, 24, 10], [13, 12, 8]] if x == 2: M = [[3, 52, 28], [5, 14, 22], [6, 1, 32], [8, 13, 8], [9, 47, 48], [19, 15, 43]] if x == 3: M = [[6, 50, 47], [8, 4, 14]] if x == 4: M = [[4, 26, 17]] if x == 5: M = [[7, 56, 44]] if x == 6: M = [[12, 47, 4]] if x == 7: M = [[6, 4, 52], [8, 37, 49], [12, 17, 49], [18, 24, 26]] if x == 8: M = [[9, 45, 57], [12, 4, 40]] if x == 9: M = [[0, 4, 49], [10, 34, 41]] if x == 10: M = [[6, 5, 25], [12, 34, 16], [14, 53, 20], [20, 3, 4]] if x == 11: M = [[19, 58, 46]] if x == 12: M = [[8, 59, 48], [14, 25, 20]] for i in range(0, len(M), 1): # input time and length of waveform h = M[i][0] m = M[i][1] s = M[i][2] # t1 = t0 + x * 24 * 60 * 60 + h * 60 * 60 + m * 60 + s - 20 t2 = t1 + 90 seis1 = Stream() seis1 = client.get_waveforms(net, sta, '', cha, t1, t2) seis1[0].filter("bandpass", freqmin=fmin, freqmax=fmax) trc1 = seis1[0].slice(starttime=t1 + 10, endtime=t2 - 10) trc1.detrend(type='demean') trc1.detrend(type='linear') stream1.append(trc1) # trc.plot(type='relative',color='b') for x in range(0, len(stream1)): trc = stream1[x].normalize() stream1b.append(trc) stack_norm1 = np.sum([abs(trc.data) for trc in stream1b], axis=0) stack_norm1 = stack_norm1 / len(stream1b) # plt.figure(1) # plt.plot(stack_norm1,color='r') # plt.title('LB01 stacked earthquake waveform') #%% LB02 sta = 'LB02' # STATION LB02 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month for x in range(0, 13, 1): if x == 0: M = [[1, 57, 18], [8, 30, 14], [18, 42, 55], [18, 59, 58]] if x == 1: M = [[10, 28, 22]] if x == 2: M = [[3, 52, 28], [5, 14, 21], [6, 1, 31], [8, 13, 8], [9, 47, 48], [19, 15, 42]] if x == 3: M = [[6, 50, 47], [12, 23, 45]] if x == 4: M = [[4, 26, 15]] if x == 5: M = [[7, 56, 44]] if x == 6: M = [[12, 47, 2], [12, 55, 0]] if x == 7: M = [[8, 37, 46], [12, 17, 47]] if x == 8: M = [[9, 46, 3], [12, 4, 40]] if x == 9: M = [[0, 4, 49], [10, 34, 41]] if x == 10: M = [[14, 53, 22], [20, 3, 2]] if x == 11: M = [[19, 58, 46]] if x == 12: M = [[8, 59, 48], [14, 25, 20]] for i in range(0, len(M), 1): # input time and length of waveform h = M[i][0] m = M[i][1] s = M[i][2] # t1 = t0 + x * 24 * 60 * 60 + h * 60 * 60 + m * 60 + s - 20 t2 = t1 + 90 seis2 = Stream() seis2 = client.get_waveforms(net, sta, '', cha, t1, t2) seis2[0].filter("bandpass", freqmin=fmin, freqmax=fmax) trc2 = seis2[0].slice(starttime=t1 + 10, endtime=t2 - 10) trc2.detrend(type='demean') trc2.detrend(type='linear') stream2.append(trc2) # trc.plot(type='relative',color='b') for x in range(0, len(stream2)): trc = stream2[x].normalize() stream2b.append(trc) stack_norm2 = np.sum([abs(trc.data) for trc in stream2b], axis=0) stack_norm2 = stack_norm2 / len(stream2b) # plt.figure(2) # plt.plot(stack_norm2,color='r') # plt.title('LB02 stacked earthquake waveform') #%% LB03 sta = 'LB03' # STATION LB02 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month for x in range(1, 13, 1): if x == 1: M = [[5, 6, 46], [9, 16, 52], [11, 24, 10], [13, 12, 9]] if x == 2: M = [[3, 52, 29], [5, 14, 23], [6, 1, 32], [8, 13, 8], [9, 47, 50], [20, 48, 28]] if x == 3: M = [[16, 42, 43]] if x == 4: M = [[8, 56, 14]] if x == 5: M = [[7, 56, 44], [11, 29, 27], [18, 29, 3]] if x == 6: M = [[12, 47, 4], [12, 55, 2], [15, 37, 52]] if x == 7: M = [[8, 37, 49], [12, 17, 49], [18, 24, 26], [22, 52, 27]] if x == 8: M = [[9, 45, 58]] if x == 9: M = [[0, 4, 49], [10, 34, 41]] if x == 10: M = [[12, 34, 17], [14, 53, 22], [19, 29, 32], [20, 3, 4]] if x == 11: M = [[14, 30, 51], [19, 58, 46]] if x == 12: M = [[14, 25, 20]] for i in range(0, len(M), 1): # input time and length of waveform h = M[i][0] m = M[i][1] s = M[i][2] # t1 = t0 + x * 24 * 60 * 60 + h * 60 * 60 + m * 60 + s - 20 t2 = t1 + 90 seis3 = Stream() seis3 = client.get_waveforms(net, sta, '', cha, t1, t2) seis3[0].filter("bandpass", freqmin=fmin, freqmax=fmax) trc3 = seis3[0].slice(starttime=t1 + 10, endtime=t2 - 10) trc3.detrend(type='demean') trc3.detrend(type='linear') stream3.append(trc3) # trc.plot(type='relative',color='b') for x in range(0, len(stream3)): trc = stream3[x].normalize() stream3b.append(trc) stack_norm3 = np.sum([abs(trc.data) for trc in stream3b], axis=0) stack_norm3 = stack_norm3 / len(stream3b) # plt.figure(3) # plt.plot(stack_norm3,color='r') # plt.title('LB03 stacked earthquake waveform') #%% LB04 sta = 'LB04' # STATION LB02 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month for x in range(1, 13, 1): if x == 1: M = [[9, 16, 51], [11, 24, 10], [13, 12, 8]] if x == 2: M = [[3, 52, 28], [5, 14, 22], [6, 1, 32], [8, 13, 8], [9, 47, 48], [19, 15, 43]] if x == 3: M = [[6, 50, 47], [8, 4, 14]] if x == 4: M = [] if x == 5: M = [[7, 56, 44]] if x == 6: M = [[12, 47, 4]] if x == 7: M = [[6, 4, 52], [8, 37, 49], [12, 17, 49], [18, 24, 26]] if x == 8: M = [[9, 45, 57], [12, 4, 40]] if x == 9: M = [[0, 4, 49]] if x == 10: M = [[6, 5, 25], [12, 34, 16], [14, 53, 22], [20, 3, 4]] if x == 11: M = [[19, 58, 46]] if x == 12: M = [[8, 59, 48], [14, 25, 20]] for i in range(0, len(M), 1): # input time and length of waveform h = M[i][0] m = M[i][1] s = M[i][2] # t1 = t0 + x * 24 * 60 * 60 + h * 60 * 60 + m * 60 + s - 20 t2 = t1 + 90 seis4 = Stream() seis4 = client.get_waveforms(net, sta, '', cha, t1, t2) seis4[0].filter("bandpass", freqmin=fmin, freqmax=fmax) trc4 = seis4[0].slice(starttime=t1 + 10, endtime=t2 - 10) trc4.detrend(type='demean') trc4.detrend(type='linear') stream4.append(trc4) # trc.plot(type='relative',color='b') for x in range(0, len(stream4)): trc = stream4[x].normalize() stream4b.append(trc) stack_norm4 = np.sum([abs(trc.data) for trc in stream4b], axis=0) stack_norm4 = stack_norm4 / len(stream4b) # plt.figure(4) # plt.plot(stack_norm4,color='r') # plt.title('LB04 stacked earthquake waveform') #%% LB05 sta = 'LB05' # STATION LB02 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month for x in range(2, 12, 1): if x == 2: M = [[3, 52, 27], [5, 14, 21], [8, 13, 8], [9, 47, 48], [19, 15, 43], [20, 48, 29]] if x == 3: M = [[6, 50, 47]] if x == 4: M = [[8, 56, 15]] if x == 5: M = [[7, 56, 44]] if x == 6: M = [[12, 47, 3], [12, 55, 0], [15, 37, 52]] if x == 7: M = [[6, 4, 52], [8, 37, 50], [12, 17, 49], [18, 24, 26]] if x == 8: M = [[9, 45, 58]] if x == 9: M = [[0, 4, 50], [10, 34, 41]] if x == 10: M = [[6, 5, 25], [12, 34, 17], [14, 53, 22], [20, 3, 4]] if x == 11: M = [[14, 30, 53]] for i in range(0, len(M), 1): # input time and length of waveform h = M[i][0] m = M[i][1] s = M[i][2] # t1 = t0 + x * 24 * 60 * 60 + h * 60 * 60 + m * 60 + s - 20 t2 = t1 + 90 seis5 = Stream() seis5 = client.get_waveforms(net, sta, '', cha, t1, t2) seis5[0].filter("bandpass", freqmin=fmin, freqmax=fmax) trc5 = seis5[0].slice(starttime=t1 + 10, endtime=t2 - 10) trc5.detrend(type='demean') trc5.detrend(type='linear') stream5.append(trc5) # trc.plot(type='relative',color='b') for x in range(0, len(stream5)): trc = stream5[x].normalize() stream5b.append(trc) stack_norm5 = np.sum([abs(trc.data) for trc in stream5b], axis=0) stack_norm5 = stack_norm5 / len(stream5b) # plt.figure(5) # plt.plot(stack_norm5,color='r') # plt.title('LB05 stacked earthquake waveform') #%% LB06 sta = 'LB06' # STATION LB02 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. year2 = 2016 month2 = 6 day2 = 25 client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year2, month2, day2, hour1, minute1, second1) #the format is year:day_of_the_year:month M = [[2, 28, 10, 0], [10, 23, 54, 2], [21, 43, 19, 2], [1, 18, 53, 4], [2, 5, 33, 4], [7, 17, 47, 5], [5, 42, 56, 6], [4, 10, 58, 7], [3, 46, 17, 8], [3, 58, 1, 8], [18, 45, 34, 8], [1, 48, 56, 10], [7, 36, 19, 12], [8, 26, 4, 12], [2, 32, 32, 14], [18, 30, 4, 15], [9, 12, 43, 16], [7, 19, 45, 27], [2, 58, 47, 30]] for i in range(0, len(M), 1): # input time and length of waveform h = M[i][0] m = M[i][1] s = M[i][2] d = M[i][3] # t1 = t0 + d * 24 * 60 * 60 + h * 60 * 60 + m * 60 + s - 20 t2 = t1 + 90 seis6 = Stream() seis6 = client.get_waveforms(net, sta, '', cha, t1, t2) seis6[0].filter("bandpass", freqmin=fmin, freqmax=fmax) trc6 = seis6[0].slice(starttime=t1 + 10, endtime=t2 - 10) trc6.detrend(type='demean') trc6.detrend(type='linear') stream6.append(trc6) # trc6.plot(type='relative',color='b') for x in range(0, len(stream6)): trc = stream6[x].normalize() stream6b.append(trc) stack_norm6 = np.sum([abs(trc.data) for trc in stream6b], axis=0) stack_norm6 = stack_norm6 / len(stream6b) # plt.figure(6) # plt.plot(stack_norm6,color='r') # plt.title('LB06 stacked earthquake waveform') #%% LB07 # sta = 'LB07' # STATION LB02 # cha = 'HHZ' # CHANNEL - Vertical # net = 'Z4' # Santiaguito volcano # loc = '' # location, it depends mostly of which network you are in. # # client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 # t0 = UTCDateTime(year2, month2, day2, hour1, minute1, second1) #the format is year:day_of_the_year:month # # # M=[[21,43,20,2],[1,18,53,4],[5,42,57,6],[4,10,58,7], # [18,45,31,8],[2,58,50,30]]#,[2,5,32,4],[18,30,4,15],[2,32,37,14]] # # for i in range(0,len(M),1): # # # input time and length of waveform # h=M[i][0] # m=M[i][1] # s=M[i][2] # d=M[i][3] # # # t1 = t0 + d*24*60*60 + h*60*60 + m*60 + s -50 # t2 = t1 +90 # seis7 = Stream() # seis7 = client.get_waveforms(net, sta, '', cha, t1 , t2) # # seis7[0].filter("bandpass", freqmin=fmin,freqmax=fmax) # trc7 = seis7[0].slice(starttime = t1 + 30 , endtime= t2 - 10) # trc7.detrend(type='demean') # trc7.detrend(type='linear') # stream7.append(trc7) # # trc7.plot(type='relative',color='b') # # for x in range(0,len(stream7)): # trc=stream7[x].normalize() # stream7b.append(trc) # # # stack_norm7 = np.sum([abs(trc.data) for trc in stream7b], axis=0) # stack_norm7 = stack_norm7/len(stream7b) ## plt.figure(7) ## plt.plot(stack_norm7,color='r') ## plt.title('LB07 stacked earthquake waveform') #%% return (stack_norm1, stack_norm2, stack_norm3, stack_norm4, stack_norm5, stack_norm6) #,stack_norm7)
def event_mag(t1, a): import numpy as np from obspy.clients.earthworm import Client from obspy import UTCDateTime from obspy import Stream #%% magnitudes = np.zeros(shape=(a, 1)) #NEED TO BE CAREFUL FOR INACTIVE STATIONS sta = 'LB01' # STATION cha = 'HHZ' # CHANNEL net = 'Z4' # client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 #t1 = UTCDateTime(2014, 12, 3, 2, 43, 0) #the format is year:day_of_the_year:month t2 = t1 + 60 * 2 st = Stream() st = client.get_waveforms(net, sta, '', cha, t1 - 20, t2) st.detrend(type='linear') st.detrend(type='demean') st.filter(type='bandpass', freqmin=0.25, freqmax=10) tr = st[0].slice(starttime=t1 - 20, endtime=t2) st_c = calibrate1(tr) peak2peak = max(st_c[0].data) - min(st_c[0].data) magnitudes[0] = peak2peak #%% #NEED TO BE CAREFUL FOR INACTIVE STATIONS sta = 'LB02' # STATION cha = 'HHZ' # CHANNEL net = 'Z4' # client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 # t1 = UTCDateTime(2014, 12, 3, 2, 43, 0) #the format is year:day_of_the_year:month t2 = t1 + 60 * 2 st = Stream() st = client.get_waveforms(net, sta, '', cha, t1 - 20, t2) st.detrend(type='linear') st.detrend(type='demean') st.filter(type='bandpass', freqmin=0.25, freqmax=10) tr = st[0].slice(starttime=t1 - 20, endtime=t2) st_c = calibrate1(tr) peak2peak = max(st_c[0].data) - min(st_c[0].data) magnitudes[1] = peak2peak #%% #NEED TO BE CAREFUL FOR INACTIVE STATIONS sta = 'LB03' # STATION cha = 'HHZ' # CHANNEL net = 'Z4' # client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 # t1 = UTCDateTime(2014, 12, 3, 2, 43, 0) #the format is year:day_of_the_year:month t2 = t1 + 60 * 2 st = Stream() st = client.get_waveforms(net, sta, '', cha, t1 - 20, t2) st.detrend(type='linear') st.detrend(type='demean') st.filter(type='bandpass', freqmin=0.25, freqmax=10) tr = st[0].slice(starttime=t1 - 20, endtime=t2) st_c = calibrate1(tr) peak2peak = max(st_c[0].data) - min(st_c[0].data) magnitudes[2] = peak2peak #%% # NEED TO BE CAREFUL FOR INACTIVE STATIONS sta = 'LB04' # STATION cha = 'HHZ' # CHANNEL net = 'Z4' # client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 # t1 = UTCDateTime(2014, 12, 3, 2, 43, 0) #the format is year:day_of_the_year:month t2 = t1 + 60 * 2 st = Stream() st = client.get_waveforms(net, sta, '', cha, t1 - 20, t2) st.detrend(type='linear') st.detrend(type='demean') st.filter(type='bandpass', freqmin=0.25, freqmax=10) tr = st[0].slice(starttime=t1 - 20, endtime=t2) st_c = calibrate1(tr) peak2peak = max(st_c[0].data) - min(st_c[0].data) magnitudes[3] = peak2peak #%% #NEED TO BE CAREFUL FOR INACTIVE STATIONS sta = 'LB05' # STATION cha = 'HHZ' # CHANNEL net = 'Z4' # client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 # t1 = UTCDateTime(2014, 12, 3, 2, 43, 0) #the format is year:day_of_the_year:month t2 = t1 + 60 * 2 st = Stream() st = client.get_waveforms(net, sta, '', cha, t1 - 20, t2) st.detrend(type='linear') st.detrend(type='demean') st.filter(type='bandpass', freqmin=0.25, freqmax=10) tr = st[0].slice(starttime=t1 - 20, endtime=t2) st_c = calibrate1(tr) peak2peak = max(st_c[0].data) - min(st_c[0].data) magnitudes[4] = peak2peak #%% # #NEED TO BE CAREFUL FOR INACTIVE STATIONS # sta = 'LB06' # STATION # cha = 'HHZ' # CHANNEL # net = 'Z4' # # # client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 # # t1 = UTCDateTime(2014, 12, 3, 2, 43, 0) #the format is year:day_of_the_year:month # t2 = t1 + 60*2 # st = Stream() # st = client.get_waveforms(net, sta, '', cha, t1-20 , t2) # # st.detrend(type='linear') # st.detrend(type='demean') # st.filter(type='bandpass',freqmin=0.25, freqmax=10) # tr=st[0].slice(starttime=t1-20, endtime=t2) # st_c = calibrate1(tr) # # peak2peak=max(st_c[0].data)- min(st_c[0].data) # magnitudes[5]=peak2peak #%% #NEED TO BE CAREFUL FOR INACTIVE STATIONS sta = 'LS01' # STATION cha = 'EHZ' # CHANNEL net = 'Z4' # client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 # t1 = UTCDateTime(2014, 12, 3, 2, 43, 0) #the format is year:day_of_the_year:month t2 = t1 + 60 * 2 st = Stream() st = client.get_waveforms(net, sta, '', cha, t1 - 20, t2) st.detrend(type='linear') st.detrend(type='demean') st.filter(type='bandpass', freqmin=0.25, freqmax=10) tr = st[0].slice(starttime=t1 - 20, endtime=t2) st_c = calibrate1(tr) peak2peak = max(st_c[0].data) - min(st_c[0].data) magnitudes[5] = peak2peak #%% #NEED TO BE CAREFUL FOR INACTIVE STATIONS sta = 'LS02' # STATION cha = 'EHZ' # CHANNEL net = 'Z4' # client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 # t1 = UTCDateTime(2014, 12, 3, 2, 43, 0) #the format is year:day_of_the_year:month t2 = t1 + 60 * 2 st = Stream() st = client.get_waveforms(net, sta, '', cha, t1 - 20, t2) st.detrend(type='linear') st.detrend(type='demean') st.filter(type='bandpass', freqmin=0.25, freqmax=10) tr = st[0].slice(starttime=t1 - 20, endtime=t2) st_c = calibrate1(tr) peak2peak = max(st_c[0].data) - min(st_c[0].data) magnitudes[6] = peak2peak #%% #NEED TO BE CAREFUL FOR INACTIVE STATIONS sta = 'LS03' # STATION cha = 'EHZ' # CHANNEL net = 'Z4' # client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 # t1 = UTCDateTime(2014, 12, 3, 2, 43, 0) #the format is year:day_of_the_year:month t2 = t1 + 60 * 2 st = Stream() st = client.get_waveforms(net, sta, '', cha, t1 - 20, t2) st.detrend(type='linear') st.detrend(type='demean') st.filter(type='bandpass', freqmin=0.25, freqmax=10) tr = st[0].slice(starttime=t1 - 20, endtime=t2) st_c = calibrate1(tr) peak2peak = max(st_c[0].data) - min(st_c[0].data) magnitudes[7] = peak2peak #%% #NEED TO BE CAREFUL FOR INACTIVE STATIONS sta = 'LS04' # STATION cha = 'EHZ' # CHANNEL net = 'Z4' # client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 # t1 = UTCDateTime(2014, 12, 3, 2, 43, 0) #the format is year:day_of_the_year:month t2 = t1 + 60 * 2 st = Stream() st = client.get_waveforms(net, sta, '', cha, t1 - 20, t2) st.detrend(type='linear') st.detrend(type='demean') st.filter(type='bandpass', freqmin=0.25, freqmax=10) tr = st[0].slice(starttime=t1 - 20, endtime=t2) st_c = calibrate1(tr) peak2peak = max(st_c[0].data) - min(st_c[0].data) magnitudes[8] = peak2peak #%% #NEED TO BE CAREFUL FOR INACTIVE STATIONS sta = 'LS05' # STATION cha = 'EHZ' # CHANNEL net = 'Z4' # client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 # t1 = UTCDateTime(2014, 12, 3, 2, 43, 0) #the format is year:day_of_the_year:month t2 = t1 + 60 * 2 st = Stream() st = client.get_waveforms(net, sta, '', cha, t1 - 20, t2) st.detrend(type='linear') st.detrend(type='demean') st.filter(type='bandpass', freqmin=0.25, freqmax=10) tr = st[0].slice(starttime=t1 - 20, endtime=t2) st_c = calibrate1(tr) peak2peak = max(st_c[0].data) - min(st_c[0].data) magnitudes[9] = peak2peak #%% #NEED TO BE CAREFUL FOR INACTIVE STATIONS sta = 'LS06' # STATION cha = 'EHZ' # CHANNEL net = 'Z4' # client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 # t1 = UTCDateTime(2014, 12, 3, 2, 43, 0) #the format is year:day_of_the_year:month t2 = t1 + 60 * 2 st = Stream() st = client.get_waveforms(net, sta, '', cha, t1 - 20, t2) st.detrend(type='linear') st.detrend(type='demean') st.filter(type='bandpass', freqmin=0.25, freqmax=10) tr = st[0].slice(starttime=t1 - 20, endtime=t2) st_c = calibrate1(tr) peak2peak = max(st_c[0].data) - min(st_c[0].data) magnitudes[10] = peak2peak return (magnitudes)
from obspy import UTCDateTime from obspy.signal.trigger import trigger_onset #from scipy.signal import welch from obspy import Stream # STATION, CHANNEL (DDF --> 400 Hz), NETWWORK AND LOCATION CODES sta = 'LB01' # STATION cha = 'HHZ' # CHANNEL net = 'Z4' # loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t15 = UTCDateTime(2015, 7, 1, 10, 56, 30) #the format is year:day_of_the_year:month t25 = t15 + 65 st5 = Stream() st5 = client.get_waveforms(net, sta, '', cha, t15 , t25) st5.detrend(type='linear') st5.detrend(type='demean') st5.filter(type='bandpass',freqmin=1, freqmax=10) tr5=st5[0].slice(starttime=t15, endtime=t25) st_c5 = calibrate1(tr5) print('1/10') t16 = UTCDateTime(2015, 6, 25, 15, 44, 8) #the format is year:day_of_the_year:month t26 = t16 + 65 st6 = Stream() st6 = client.get_waveforms(net, sta, '', cha, t16 , t26) st6.detrend(type='linear') st6.detrend(type='demean') st6.filter(type='bandpass',freqmin=1, freqmax=10) tr6=st6[0].slice(starttime=t16, endtime=t26)
net = 'Z4' # loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t_diff=np.zeros(shape=(0,5)) num=0 for x in range(0,len(cat)) : if cat[x,10] == 1 and cat[x,3] == 2016 and 4 < cat[x,4] < 10: try: # Seismics # read in data t1 = UTCDateTime(cat[x,0]-30) #the format is year:day_of_the_year:month t2 = t1 + 90 st2 = Stream() st2 = client.get_waveforms(net, sta, '', cha2, t1 , t2) # print(t1) # Filter data st2.detrend(type='linear') st2.detrend(type='demean') st2.filter(type='bandpass',freqmin=0.5, freqmax=10) trs=st2[0] # sta_lta for Seismics sr = trs.stats.sampling_rate ssta=int(3.5 *sr) #2 slta=int(30*sr) streams=trs.data cfts=recursive_sta_lta(streams, ssta, slta) trig_on=2 #8
16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 for x in range(0, len(events)): if Energy_trip[x, 1] == 0: t1 = UTCDateTime(events[x] - 10) t2 = t1 + 80 try: r = r1 sta = 'LB01' cha1 = 'HHZ' cha2 = 'HHE' cha3 = 'HHN' st_z = client.get_waveforms(net, sta, '', cha1, t1, t2) trsz = st_z[0] trsz.detrend(type='linear') trsz.detrend(type='demean') trsz.filter(type='bandpass', freqmin=0.1, freqmax=10) st_acz = calibrate1(trsz) st_e = client.get_waveforms(net, sta, '', cha2, t1, t2) trse = st_e[0] trse.detrend(type='linear') trse.detrend(type='demean') trse.filter(type='bandpass', freqmin=0.1, freqmax=10) st_ace = calibrate1(trse) st_n = client.get_waveforms(net, sta, '', cha3, t1, t2) trsn = st_n[0]
sta = 'FG12' # STATION cha = 'BHZ' # CHANNEL net = 'GI' # loc = '00' # location, it depends mostly of which network you are in. client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t1 = UTCDateTime(2019,1,24,21,36,0) #the format is year:day_of_the_year:month #t1 =UTCDateTime(1560601280) t2 = t1 + 5*60 #t3 = t2 + 3*24*60*60 st = Stream() st = client.get_waveforms(net, sta, loc, cha, t1 , t2 + 2) #st[0].plot(color='r',starttime=t1, endtime=t2) tr = st[0] tr.data = tr.data * c6 # #st2 = Stream() #st2 = client.get_waveforms(net, sta, loc, cha, t2 - 2 , t3) #tr2= st2[0] #%% #tr = tr1 + tr2 sr = st[0].stats.sampling_rate tr.detrend(type='linear')
def get_LB01z(day): year1 = 2014 month1 = 11 day1 = 24 hour1 = 0 minute1 = 0 second1 = 0 from obspy.core import read from obspy.clients.earthworm import Client from obspy import UTCDateTime from obspy.clients.earthworm import Client from obspy import UTCDateTime #from scipy.signal import welch from obspy import Stream # STATION, CHANNEL (DDF --> 400 Hz), NETWWORK AND LOCATION CODES sta = 'LB01' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. # Corner frequency for high-pass filter # hp_corner = 0.05 # t1. and t2 are in hours:minutes:seconds # Get data from (Liverpool Winston default) wave server between times t1 and t2 for all stations in stalist try: client = Client( '138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 + day * 24 * 60 * 60 t2 = t1 + 23 * 60 * 60 + 59 * 60 + 59.999 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st = Stream() st = client.get_waveforms(net, sta, '', cha, t1, t2) # st is a stream, we can operate normally as in obspy #st.plot(method="full") st.detrend(type='linear') st.detrend(type='demean') break_test = st break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) #st.plot(color='b',starttime=t1, endtime=t2) # print(st) except IndexError: year1 = 2014 month1 = 11 day1 = 24 hour1 = 0 minute1 = 0 second1 = 0 from obspy.core import read from obspy.clients.earthworm import Client from obspy import UTCDateTime from obspy.clients.earthworm import Client from obspy import UTCDateTime #from scipy.signal import welch from obspy import Stream # STATION, CHANNEL (DDF --> 400 Hz), NETWWORK AND LOCATION CODES sta = 'LB03' # STATION LB01 cha = 'HHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client( '138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 t2 = t1 + 2 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. st = Stream() st = client.get_waveforms(net, sta, '', cha, t1, t2) st.detrend(type='linear') st.detrend(type='demean') st[0].filter("bandpass", freqmin=0.1, freqmax=0.1) return (st)
def get_all_Fuego_inf_stations(timestamp): from obspy.clients.earthworm import Client from obspy import UTCDateTime from obspy import Stream import numpy as np station_activity = np.zeros(shape=(0, 3)) num = 0 t1 = UTCDateTime(timestamp) #the format is year:day_of_the_year:month t2 = t1 + 24 * 60 * 60 + 1200 #%% sta = 'VF01' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'XZ' # Fuego volcano loc = '' # location client = Client('138.253.112.23', 16022) t1_2s = UTCDateTime(1526774400) t2_2s = t1_2s + 2 st_blank = Stream() st_blank = client.get_waveforms(net, sta, loc, cha, t1_2s, t2_2s) st_blank.detrend(type='linear') st_blank.detrend(type='demean') st_blank.filter(type='bandpass', freqmin=0.5, freqmax=5) #%% VF01 try: ID = 1 sta = 'VF01' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'XZ' # Fuego volcano loc = '' # location, st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st1[0].stats.sampling_rate if sum(abs(st1[0].data)) > 10 and st1[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st1[0].stats.starttime station_activity[num][2] = st1[0].stats.endtime num += 1 else: st1 = st_blank except: st1 = st_blank #%% VF02 try: ID = 2 sta = 'VF02' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'XZ' # Fuego volcano loc = '' # location, st2 = Stream() st2 = client.get_waveforms(net, sta, loc, cha, t1, t2) st2.detrend(type='linear') st2.detrend(type='demean') break_test = st2 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st2[0].stats.sampling_rate if sum(abs(st2[0].data)) > 10 and st2[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st2[0].stats.starttime station_activity[num][2] = st2[0].stats.endtime num += 1 else: st2 = st_blank except: st2 = st_blank #%% VF03 try: ID = 3 sta = 'VF03' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'XZ' # Fuego volcano loc = '' # location, st3 = Stream() st3 = client.get_waveforms(net, sta, loc, cha, t1, t2) st3.detrend(type='linear') st3.detrend(type='demean') break_test = st3 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st3[0].stats.sampling_rate if sum(abs(st3[0].data)) > 10 and st3[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st3[0].stats.starttime station_activity[num][2] = st3[0].stats.endtime num += 1 else: st3 = st_blank except: st3 = st_blank #%% VF04 try: ID = 4 sta = 'VF04' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'XZ' # Fuego volcano loc = '' # location, st4 = Stream() st4 = client.get_waveforms(net, sta, loc, cha, t1, t2) st4.detrend(type='linear') st4.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st4[0].stats.sampling_rate if sum(abs(st4[0].data)) > 10 and st4[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st4[0].stats.starttime station_activity[num][2] = st4[0].stats.endtime num += 1 else: st4 = st_blank except: st4 = st_blank #%% VF05 try: ID = 5 sta = 'VF05' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'XZ' # Fuego volcano loc = '' # location, st5 = Stream() st5 = client.get_waveforms(net, sta, loc, cha, t1, t2) st5.detrend(type='linear') st5.detrend(type='demean') break_test = st5 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st5[0].stats.sampling_rate if sum(abs(st5[0].data)) > 10 and st5[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st5[0].stats.starttime station_activity[num][2] = st5[0].stats.endtime num += 1 else: st5 = st_blank except: st5 = st_blank #%% VF06 try: ID = 6 sta = 'VF06' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'XZ' # Fuego volcano loc = '' # location, st6 = Stream() st6 = client.get_waveforms(net, sta, loc, cha, t1, t2) st6.detrend(type='linear') st6.detrend(type='demean') break_test = st6 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st6[0].stats.sampling_rate if sum(abs(st6[0].data)) > 10 and st6[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st6[0].stats.starttime station_activity[num][2] = st6[0].stats.endtime num += 1 else: st6 = st_blank except: st6 = st_blank #%% FG8 try: ID = 7 sta = 'FG8' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '01' # location, st7 = Stream() st7 = client.get_waveforms(net, sta, loc, cha, t1, t2) st7.detrend(type='linear') st7.detrend(type='demean') break_test = st7 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st7[0].stats.sampling_rate if sum(abs(st7[0].data)) > 10 and st7[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st7[0].stats.starttime station_activity[num][2] = st7[0].stats.endtime num += 1 else: st7 = st_blank except: st7 = st_blank try: ID = 8 sta = 'FG8' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '02' # location, st8 = Stream() st8 = client.get_waveforms(net, sta, loc, cha, t1, t2) st8.detrend(type='linear') st8.detrend(type='demean') break_test = st8 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st8[0].stats.sampling_rate if sum(abs(st8[0].data)) > 10 and st8[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st8[0].stats.starttime station_activity[num][2] = st8[0].stats.endtime num += 1 else: st8 = st_blank except: st8 = st_blank try: ID = 9 sta = 'FG8' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '03' # location, st9 = Stream() st9 = client.get_waveforms(net, sta, loc, cha, t1, t2) st9.detrend(type='linear') st9.detrend(type='demean') break_test = st9 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st9[0].stats.sampling_rate if sum(abs(st9[0].data)) > 10 and st9[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st9[0].stats.starttime station_activity[num][2] = st9[0].stats.endtime num += 1 else: st9 = st_blank except: st9 = st_blank #%% FG10 try: ID = 10 sta = 'FG10' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '01' # location, st10 = Stream() st10 = client.get_waveforms(net, sta, loc, cha, t1, t2) st10.detrend(type='linear') st10.detrend(type='demean') break_test = st10 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st10[0].stats.sampling_rate if sum(abs(st10[0].data)) > 10 and st10[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st10[0].stats.starttime station_activity[num][2] = st10[0].stats.endtime num += 1 else: st10 = st_blank except: st10 = st_blank try: ID = 11 sta = 'FG10' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '02' # location, st11 = Stream() st11 = client.get_waveforms(net, sta, loc, cha, t1, t2) st11.detrend(type='linear') st11.detrend(type='demean') break_test = st11 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st11[0].stats.sampling_rate if sum(abs(st11[0].data)) > 10 and st11[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st11[0].stats.starttime station_activity[num][2] = st11[0].stats.endtime num += 1 else: st11 = st_blank except: st11 = st_blank try: ID = 12 sta = 'FG10' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '03' # location, st12 = Stream() st12 = client.get_waveforms(net, sta, loc, cha, t1, t2) st12.detrend(type='linear') st12.detrend(type='demean') break_test = st12 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st12[0].stats.sampling_rate if sum(abs(st12[0].data)) > 10 and st12[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st12[0].stats.starttime station_activity[num][2] = st12[0].stats.endtime num += 1 else: st12 = st_blank except: st12 = st_blank #%% FG11 try: ID = 13 sta = 'FG11' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '01' # location, st13 = Stream() st13 = client.get_waveforms(net, sta, loc, cha, t1, t2) st13.detrend(type='linear') st13.detrend(type='demean') break_test = st13 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st13[0].stats.sampling_rate if sum(abs(st13[0].data)) > 10 and st13[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st13[0].stats.starttime station_activity[num][2] = st13[0].stats.endtime num += 1 else: st13 = st_blank except: st13 = st_blank try: ID = 14 sta = 'FG11' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '02' # location, st14 = Stream() st14 = client.get_waveforms(net, sta, loc, cha, t1, t2) st14.detrend(type='linear') st14.detrend(type='demean') break_test = st14 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st14[0].stats.sampling_rate if sum(abs(st14[0].data)) > 10 and st14[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st14[0].stats.starttime station_activity[num][2] = st14[0].stats.endtime num += 1 else: st14 = st_blank except: st14 = st_blank try: ID = 15 sta = 'FG11' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '04' # location, st15 = Stream() st15 = client.get_waveforms(net, sta, loc, cha, t1, t2) st15.detrend(type='linear') st15.detrend(type='demean') break_test = st15 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st15[0].stats.sampling_rate if sum(abs(st15[0].data)) > 10 and st15[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st15[0].stats.starttime station_activity[num][2] = st15[0].stats.endtime num += 1 else: st15 = st_blank except: st15 = st_blank try: ID = 16 sta = 'FG11' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '05' # location, st16 = Stream() st16 = client.get_waveforms(net, sta, loc, cha, t1, t2) st16.detrend(type='linear') st16.detrend(type='demean') break_test = st16 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st16[0].stats.sampling_rate if sum(abs(st16[0].data)) > 10 and st16[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st16[0].stats.starttime station_activity[num][2] = st16[0].stats.endtime num += 1 else: st16 = st_blank except: st16 = st_blank #%% FG12 try: ID = 17 sta = 'FG12' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '01' # location, st17 = Stream() st17 = client.get_waveforms(net, sta, loc, cha, t1, t2) st17.detrend(type='linear') st17.detrend(type='demean') break_test = st17 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st17[0].stats.sampling_rate if sum(abs(st17[0].data)) > 10 and st17[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st17[0].stats.starttime station_activity[num][2] = st17[0].stats.endtime num += 1 else: st17 = st_blank except: st17 = st_blank try: ID = 18 sta = 'FG12' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '02' # location, st18 = Stream() st18 = client.get_waveforms(net, sta, loc, cha, t1, t2) st18.detrend(type='linear') st18.detrend(type='demean') break_test = st18 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st18[0].stats.sampling_rate if sum(abs(st18[0].data)) > 10 and st18[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st18[0].stats.starttime station_activity[num][2] = st18[0].stats.endtime num += 1 else: st18 = st_blank except: st18 = st_blank try: ID = 19 sta = 'FG12' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '03' # location, st19 = Stream() st19 = client.get_waveforms(net, sta, loc, cha, t1, t2) st19.detrend(type='linear') st19.detrend(type='demean') break_test = st19 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st19[0].stats.sampling_rate if sum(abs(st19[0].data)) > 10 and st19[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st19[0].stats.starttime station_activity[num][2] = st19[0].stats.endtime num += 1 else: st19 = st_blank except: st19 = st_blank #%% FG13 try: ID = 20 sta = 'FG13' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '01' # location, st20 = Stream() st20 = client.get_waveforms(net, sta, loc, cha, t1, t2) st20.detrend(type='linear') st20.detrend(type='demean') break_test = st20 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st20[0].stats.sampling_rate if sum(abs(st20[0].data)) > 10 and st20[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st20[0].stats.starttime station_activity[num][2] = st20[0].stats.endtime num += 1 else: st20 = st_blank except: st20 = st_blank try: ID = 21 sta = 'FG13' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '02' # location, st21 = Stream() st21 = client.get_waveforms(net, sta, loc, cha, t1, t2) st21.detrend(type='linear') st21.detrend(type='demean') break_test = st21 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st21[0].stats.sampling_rate if sum(abs(st21[0].data)) > 10 and st21[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st21[0].stats.starttime station_activity[num][2] = st21[0].stats.endtime num += 1 else: st21 = st_blank except: st21 = st_blank try: ID = 22 sta = 'FG13' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '03' # location, st22 = Stream() st22 = client.get_waveforms(net, sta, loc, cha, t1, t2) st22.detrend(type='linear') st22.detrend(type='demean') break_test = st22 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st22[0].stats.sampling_rate if sum(abs(st22[0].data)) > 10 and st22[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st22[0].stats.starttime station_activity[num][2] = st22[0].stats.endtime num += 1 else: st22 = st_blank except: st22 = st_blank #%% FG15 try: ID = 23 sta = 'FG15' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '01' # location, st23 = Stream() st23 = client.get_waveforms(net, sta, loc, cha, t1, t2) st23.detrend(type='linear') st23.detrend(type='demean') break_test = st23 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st23[0].stats.sampling_rate if sum(abs(st23[0].data)) > 10 and st23[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st23[0].stats.starttime station_activity[num][2] = st23[0].stats.endtime num += 1 else: st23 = st_blank except: st23 = st_blank try: ID = 24 sta = 'FG15' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '02' # location, st24 = Stream() st24 = client.get_waveforms(net, sta, loc, cha, t1, t2) st24.detrend(type='linear') st24.detrend(type='demean') break_test = st24 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st24[0].stats.sampling_rate if sum(abs(st24[0].data)) > 10 and st24[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st24[0].stats.starttime station_activity[num][2] = st24[0].stats.endtime num += 1 else: st24 = st_blank except: st24 = st_blank try: ID = 25 sta = 'FG15' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '03' # location, st25 = Stream() st25 = client.get_waveforms(net, sta, loc, cha, t1, t2) st25.detrend(type='linear') st25.detrend(type='demean') break_test = st25 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st25[0].stats.sampling_rate if sum(abs(st25[0].data)) > 10 and st25[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st25[0].stats.starttime station_activity[num][2] = st25[0].stats.endtime num += 1 else: st25 = st_blank except: st25 = st_blank try: ID = 26 sta = 'FG15' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '04' # location, st26 = Stream() st26 = client.get_waveforms(net, sta, loc, cha, t1, t2) st26.detrend(type='linear') st26.detrend(type='demean') break_test = st26 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st26[0].stats.sampling_rate if sum(abs(st26[0].data)) > 10 and st26[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st26[0].stats.starttime station_activity[num][2] = st26[0].stats.endtime num += 1 else: st26 = st_blank except: st26 = st_blank try: ID = 27 sta = 'FG15' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '05' # location, st27 = Stream() st27 = client.get_waveforms(net, sta, loc, cha, t1, t2) st27.detrend(type='linear') st27.detrend(type='demean') break_test = st27 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st27[0].stats.sampling_rate if sum(abs(st27[0].data)) > 10 and st27[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st27[0].stats.starttime station_activity[num][2] = st27[0].stats.endtime num += 1 else: st27 = st_blank except: st27 = st_blank try: ID = 28 sta = 'FG15' # STATION VF01 cha = 'BDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '06' # location, st28 = Stream() st28 = client.get_waveforms(net, sta, loc, cha, t1, t2) st28.detrend(type='linear') st28.detrend(type='demean') break_test = st28 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st28[0].stats.sampling_rate if sum(abs(st28[0].data)) > 10 and st28[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st28[0].stats.starttime station_activity[num][2] = st28[0].stats.endtime num += 1 else: st28 = st_blank except: st28 = st_blank #%% FV01 try: ID = 29 sta = 'FV01' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '' # location, st29 = Stream() st29 = client.get_waveforms(net, sta, loc, cha, t1, t2) st29.detrend(type='linear') st29.detrend(type='demean') break_test = st29 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st29[0].stats.sampling_rate if sum(abs(st29[0].data)) > 10 and st29[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st29[0].stats.starttime station_activity[num][2] = st29[0].stats.endtime num += 1 else: st29 = st_blank except: st29 = st_blank #%% FV02 try: ID = 30 sta = 'FV02' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '' # location, st30 = Stream() st30 = client.get_waveforms(net, sta, loc, cha, t1, t2) st30.detrend(type='linear') st30.detrend(type='demean') break_test = st30 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st30[0].stats.sampling_rate if sum(abs(st30[0].data)) > 10 and st30[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st30[0].stats.starttime station_activity[num][2] = st30[0].stats.endtime num += 1 else: st30 = st_blank except: st30 = st_blank #%% FV03 try: ID = 31 sta = 'FV03' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '' # location, st31 = Stream() st31 = client.get_waveforms(net, sta, loc, cha, t1, t2) st31.detrend(type='linear') st31.detrend(type='demean') break_test = st31 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st31[0].stats.sampling_rate if sum(abs(st31[0].data)) > 10 and st31[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st31[0].stats.starttime station_activity[num][2] = st31[0].stats.endtime num += 1 else: st31 = st_blank except: st31 = st_blank #%% FV04 try: ID = 32 sta = 'FV04' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '' # location, st32 = Stream() st32 = client.get_waveforms(net, sta, loc, cha, t1, t2) st32.detrend(type='linear') st32.detrend(type='demean') break_test = st32 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st32[0].stats.sampling_rate if sum(abs(st32[0].data)) > 10 and st32[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st32[0].stats.starttime station_activity[num][2] = st32[0].stats.endtime num += 1 else: st32 = st_blank except: st32 = st_blank #%% FV08 try: ID = 33 sta = 'FV08' # STATION VF01 cha = 'HDF' # CHANNEL - inf net = 'GI' # Fuego volcano loc = '' # location, st33 = Stream() st33 = client.get_waveforms(net, sta, loc, cha, t1, t2) st33.detrend(type='linear') st33.detrend(type='demean') break_test = st33 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) sr = st33[0].stats.sampling_rate if sum(abs(st33[0].data)) > 10 and st33[0].stats.npts > 7200 * sr: station_activity = np.lib.pad(station_activity, ((0, 1), (0, 0)), 'constant', constant_values=(0)) station_activity[num][0] = ID station_activity[num][1] = st33[0].stats.starttime station_activity[num][2] = st33[0].stats.endtime num += 1 else: st33 = st_blank except: st33 = st_blank #%% give all traces and list of active stations return (st1, st2, st3, st4, st5, st6, st7, st8, st9, st10, st11, st12, st13, st14, st15, st16, st17, st18, st19, st20, st21, st22, st23, st24, st25, st26, st27, st28, st29, st30, st31, st32, st33, station_activity)
def stacked_LS_exp(fmi, fma): import numpy as np import obspy from obspy.core import read from obspy.clients.earthworm import Client from obspy import UTCDateTime from obspy import Stream import matplotlib.pyplot as plt #%% seisb = Stream() stream1 = seisb.copy() stream2 = stream1.copy() stream3 = stream1.copy() stream4 = stream1.copy() stream5 = stream1.copy() stream6 = stream1.copy() stream7 = stream1.copy() stream1b = stream1.copy() stream2b = stream1.copy() stream3b = stream1.copy() stream4b = stream1.copy() stream5b = stream1.copy() stream6b = stream1.copy() stream7b = stream1.copy() year1 = 2014 month1 = 11 day1 = 22 hour1 = 0 minute1 = 0 second1 = 0 fmin = 0.1 fmax = 10 #%% LB01 sta = 'LS01' # STATION LB01 cha = 'EHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month for x in range(0, 10, 1): if x == 0: M = [[2, 37, 16], [4, 44, 34], [20, 21, 25]] if x == 1: M = [[3, 3, 40], [5, 59, 54], [9, 47, 32], [18, 39, 4]] if x == 2: M = [[8, 22, 15], [22, 52, 31]] if x == 3: M = [[1, 49, 10], [2, 25, 57], [7, 38, 37], [8, 56, 5]] if x == 4: M = [[2, 22, 9], [3, 14, 20], [7, 6, 43], [11, 6, 13]] if x == 5: M = [[1, 25, 18]] if x == 6: M = [[3, 21, 26], [4, 20, 18], [7, 7, 37], [12, 42, 54], [22, 16, 3]] if x == 7: M = [[3, 23, 14], [4, 6, 43], [5, 49, 59]] if x == 8: M = [[1, 9, 2], [5, 30, 42], [20, 15, 40]] if x == 9: M = [[5, 27, 21], [10, 13, 51], [22, 1, 42]] for i in range(0, len(M), 1): # input time and length of waveform h = M[i][0] m = M[i][1] s = M[i][2] # t1 = t0 + x * 24 * 60 * 60 + h * 60 * 60 + m * 60 + s - 40 t2 = t1 + 140 seis = Stream() seis = client.get_waveforms(net, sta, '', cha, t1, t2) seis[0].filter("bandpass", freqmin=fmin, freqmax=fmax) trc1 = seis[0].slice(starttime=t1 + 30, endtime=t2 - 10) trc1.detrend(type='demean') trc1.detrend(type='linear') stream1.append(trc1) # trc1.plot(type='relative',color='b') for x in range(0, len(stream1)): trc = stream1[x].normalize() stream1b.append(trc) stack_norm1 = np.sum([abs(trc.data) for trc in stream1b], axis=0) stack_norm1 = stack_norm1 / len(stream1b) # plt.figure(1) # plt.plot(stack_norm1,color='r') # plt.title('LS01 stacked explosion waveform') #%% LB02 sta = 'LS02' # STATION LB02 cha = 'EHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month for x in range(0, 10, 1): if x == 0: M = [[2, 37, 15.5]] if x == 1: M = [[5, 59, 53], [9, 47, 32], [18, 39, 4]] if x == 2: M = [[13, 11, 9], [22, 52, 30.5]] if x == 3: M = [[1, 49, 8], [2, 25, 56], [8, 56, 4.5]] if x == 4: M = [[2, 22, 9], [7, 6, 43], [11, 6, 13]] if x == 5: M = [[1, 25, 18], [12, 59, 18], [15, 5, 45], [19, 11, 42]] if x == 6: M = [[4, 20, 17.5], [7, 7, 37]] if x == 7: M = [[3, 23, 13], [5, 49, 59], [15, 51, 19]] if x == 8: M = [[12, 31, 4]] #,[22,27,19]] if x == 9: M = [[1, 22, 40], [12, 41, 22.5]] for i in range(0, len(M), 1): # input time and length of waveform h = M[i][0] m = M[i][1] s = M[i][2] # t1 = t0 + x * 24 * 60 * 60 + h * 60 * 60 + m * 60 + s - 40 t2 = t1 + 140 seis = Stream() seis = client.get_waveforms(net, sta, '', cha, t1, t2) seis[0].filter("bandpass", freqmin=fmin, freqmax=fmax) trc2 = seis[0].slice(starttime=t1 + 30, endtime=t2 - 10) trc2.detrend(type='demean') trc2.detrend(type='linear') stream2.append(trc2) # trc2.plot(type='relative',color='b') for x in range(0, len(stream2)): trc = stream2[x].normalize() stream2b.append(trc) stack_norm2 = np.sum([abs(trc.data) for trc in stream2b], axis=0) stack_norm2 = stack_norm2 / len(stream2b) # plt.figure(2) # plt.plot(stack_norm2,color='r') # plt.title('LS02 stacked explosion waveform') #%% LB03 sta = 'LS03' # STATION LB03 cha = 'EHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month for x in range(3, 10, 1): if x == 3: M = [[2, 25, 58], [7, 38, 37.5], [8, 56, 6], [13, 40, 51.5]] if x == 4: M = [[2, 22, 11], [3, 14, 21.5], [7, 6, 45], [11, 6, 15]] if x == 5: M = [[12, 59, 22], [19, 11, 42.5], [21, 33, 9]] if x == 6: M = [[12, 42, 54], [22, 16, 4]] if x == 7: M = [[3, 23, 15], [15, 51, 20], [19, 46, 31]] if x == 8: M = [[1, 9, 3], [5, 30, 42.5], [12, 31, 5], [20, 15, 42], [22, 27, 21]] if x == 9: M = [[5, 27, 22], [10, 13, 51], [12, 41, 24], [22, 1, 43]] for i in range(0, len(M), 1): # input time and length of waveform h = M[i][0] m = M[i][1] s = M[i][2] # t1 = t0 + x * 24 * 60 * 60 + h * 60 * 60 + m * 60 + s - 40 t2 = t1 + 140 seis = Stream() seis = client.get_waveforms(net, sta, '', cha, t1, t2) seis[0].filter("bandpass", freqmin=fmin, freqmax=fmax) trc3 = seis[0].slice(starttime=t1 + 30, endtime=t2 - 10) trc3.detrend(type='demean') trc3.detrend(type='linear') stream3.append(trc3) # trc3.plot(type='relative',color='b') for x in range(0, len(stream3)): trc = stream3[x].normalize() stream3b.append(trc) stack_norm3 = np.sum([abs(trc.data) for trc in stream3b], axis=0) stack_norm3 = stack_norm3 / len(stream3b) # plt.figure(3) # plt.plot(stack_norm3,color='r') # plt.title('LS03 stacked explosion waveform') # #%% LB04 sta = 'LS04' # STATION LB04 cha = 'EHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month for x in range(3, 10, 1): if x == 3: M = [[1, 49, 13], [2, 26, 2], [7, 38, 42], [8, 56, 8]] if x == 4: M = [[2, 22, 15], [3, 14, 25], [7, 6, 48], [11, 6, 19]] if x == 5: M = [[1, 25, 24]] if x == 6: M = [[22, 16, 8]] if x == 7: M = [[3, 23, 19], [19, 46, 35]] if x == 8: M = [[1, 9, 8], [5, 30, 48], [20, 15, 45], [22, 27, 25]] if x == 9: M = [[5, 27, 27], [22, 1, 45]] for i in range(0, len(M), 1): # input time and length of waveform h = M[i][0] m = M[i][1] s = M[i][2] # t1 = t0 + x * 24 * 60 * 60 + h * 60 * 60 + m * 60 + s - 40 t2 = t1 + 140 seis = Stream() seis = client.get_waveforms(net, sta, '', cha, t1, t2) seis[0].filter("bandpass", freqmin=fmin, freqmax=fmax) trc4 = seis[0].slice(starttime=t1 + 30, endtime=t2 - 10) trc4.detrend(type='demean') trc4.detrend(type='linear') stream4.append(trc4) # trc4.plot(type='relative',color='b') for x in range(0, len(stream4)): trc = stream4[x].normalize() stream4b.append(trc) stack_norm4 = np.sum([abs(trc.data) for trc in stream4b], axis=0) stack_norm4 = stack_norm4 / len(stream4b) # plt.figure(4) # plt.plot(stack_norm4,color='r') # plt.title('LS04 stacked explosion waveform') #%% LB05 sta = 'LS05' # STATION LB05 cha = 'EHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month for x in range(6, 10, 1): if x == 6: M = [[7, 7, 38], [12, 42, 54], [22, 16, 1]] if x == 7: M = [[3, 23, 15], [4, 6, 45], [5, 50, 2]] if x == 8: M = [[1, 9, 5], [5, 30, 45], [20, 15, 43], [22, 27, 22]] if x == 9: M = [[5, 27, 24], [10, 13, 53], [12, 41, 24], [22, 1, 42]] for i in range(0, len(M), 1): # input time and length of waveform h = M[i][0] m = M[i][1] s = M[i][2] # t1 = t0 + x * 24 * 60 * 60 + h * 60 * 60 + m * 60 + s - 40 t2 = t1 + 140 seis5 = Stream() seis5 = client.get_waveforms(net, sta, '', cha, t1, t2) seis5[0].filter("bandpass", freqmin=fmin, freqmax=fmax) trc5 = seis5[0].slice(starttime=t1 + 30, endtime=t2 - 10) trc5.detrend(type='demean') trc5.detrend(type='linear') stream5.append(trc5) # trc5.plot(type='relative',color='b') for x in range(0, len(stream5)): trc = stream5[x].normalize() stream5b.append(trc) stack_norm5 = np.sum([abs(trc.data) for trc in stream5b], axis=0) stack_norm5 = stack_norm5 / len(stream5b) # plt.figure(5) # plt.plot(stack_norm5,color='r') # plt.title('LS05 stacked explosion waveform') #%% LB06 # STATION, CHANNEL (DDF --> 400 Hz), NETWWORK AND LOCATION CODES sta = 'LS06' # STATION LB01 cha = 'EHZ' # CHANNEL - Vertical net = 'Z4' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t0 = UTCDateTime(2016, 6, 21, hour1, minute1, second1) #the format is year:day_of_the_year:month M = [[16, 2, 38, 8], [4, 42, 5, 22], [5, 14, 34, 22], [6, 43, 16, 33], [10, 59, 19, 33], [1, 11, 17, 36]] for i in range(0, len(M)): h = M[i][0] m = M[i][1] s = M[i][2] d = M[i][3] t1 = t0 + d * 24 * 60 * 60 + h * 60 * 60 + m * 60 + s - 70 t2 = t1 + 140 seis6 = Stream() seis6 = client.get_waveforms(net, sta, '', cha, t1, t2) seis6[0].filter("bandpass", freqmin=fmin, freqmax=fmax) trc6 = seis6[0].slice(starttime=t1 + 30, endtime=t2 - 10) trc6.detrend(type='demean') trc6.detrend(type='linear') stream6.append(trc6) # trc6.plot(type='relative',color='b') for x in range(0, len(stream6)): trc = stream6[x].normalize() stream6b.append(trc) stack_norm6 = np.sum([abs(trc.data) for trc in stream6b], axis=0) stack_norm6 = stack_norm6 / len(stream6) # plt.figure(6) # plt.plot(stack_norm6,color='r') # plt.title('LS06 stacked explosion waveform') #%% return (stack_norm1, stack_norm2, stack_norm3, stack_norm4, stack_norm5, stack_norm6) #,stack_norm7)
from obspy import Stream from numpy import argmax #%% Gas rich reference # STATION, CHANNEL (DDF --> 400 Hz), NETWWORK AND LOCATION CODES sta = 'VF03' # STATION cha = 'HDF' # CHANNEL net = 'XZ' # loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t1r = UTCDateTime(2018, 5, 22, 8, 4, 6) #the format is year:day_of_the_year:month t2r = t1r + 20 gr_r = Stream() gr_r = client.get_waveforms(net, sta, loc, cha, t1r , t2r) gr_r.detrend(type='linear') gr_r.detrend(type='demean') sr_r = gr_r[0].stats.sampling_rate gr_r.filter(type='bandpass',freqmin=0.1, freqmax=(sr_r/2)-(sr_r/20)) gr_r.plot(type='relative',color='r',starttime=t1r, endtime=t2r) #%% Day_start = UTCDateTime(2018,5,20,0,0,0).timestamp st1,st2,st3,st4,st5,st6,station_activity = get_all_Fuego_stations(Day_start) #%% loop over stations
sta2 = 'LB02' # STATION sta3 = 'LB03' # STATION sta4 = 'LB04' # STATION sta5 = 'LB05' # STATION sta6 = 'LB06' cha = 'HHZ' # CHANNEL net = 'Z4' # loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t1 = UTCDateTime(2016, 6, 25, 17, 7, 30) #the format is year:day_of_the_year:month t2 = t1 + 2 * 60 #+0.01 st1 = Stream() st1 = client.get_waveforms(net, sta1, '', cha, t1 - 20, t2) #st1.filter(type='bandpass',freqmin=0.1, freqmax=10) st1.detrend(type='linear') st1.detrend(type='demean') #st.plot(color='b',starttime=t1, endtime=t2) tr1 = st1[0].slice(starttime=t1, endtime=t2) st_c1 = calibrate(tr1) trace1 = st_c1[0].slice(starttime=t1 + 20, endtime=t2) trace1.detrend(type='linear') trace1.detrend(type='demean') #st_c1.plot(color='b',starttime=t1+20, endtime=t2) #st2 = Stream() #st2 = client.get_waveforms(net, sta2, '', cha, t1-20 , t2)
from numpy import argmax #%% Gas rich reference # STATION, CHANNEL (DDF --> 400 Hz), NETWWORK AND LOCATION CODES sta = 'VF03' # STATION cha = 'HDF' # CHANNEL net = 'XZ' # loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t1r = UTCDateTime(2018, 5, 22, 8, 4, 12) #the format is year:day_of_the_year:month t2r = t1r + 14 gr_r = Stream() gr_r = client.get_waveforms(net, sta, loc, cha, t1r, t2r) gr_r.detrend(type='linear') gr_r.detrend(type='demean') sr_r = gr_r[0].stats.sampling_rate gr_r.filter(type='bandpass', freqmin=0.1, freqmax=(sr_r / 2) - (sr_r / 20)) gr_r.plot(type='relative', color='r', starttime=t1r, endtime=t2r) #%% Seismic Reference sta = 'FG8' # STATION cha = 'BHZ' # CHANNEL net = 'GI' # loc = '00' # location, it depends mostly of which network you are in. client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t1r2 = UTCDateTime(2018, 5, 20, 2, 58,
if all4[x, 6] == 8: sta = 'LS702' if all4[x, 6] == 9: sta = 'LS03' if all4[x, 6] == 10: sta = 'LS04' if all4[x, 6] == 11: sta = 'LS05' if all4[x, 6] == 12: sta = 'LS06' # Primary Infrasound t1 = UTCDateTime(all4[x, 0]) t2 = t1 + 120 st = Stream() st = client.get_waveforms(net, sta, '', 'HDF', t1 - 60, t2) st_a1 = st[0] st_a1.detrend(type='linear') st_a1.detrend(type='demean') st_a1.filter("bandpass", freqmin=0.3, freqmax=2.5) st_a1s = st_a1.slice(starttime=t1 - 13, endtime=t1 - 5) # Secondary infrasound t1b = UTCDateTime(all4[x, 2]) t2b = t1b + 120 st = Stream() st = client.get_waveforms(net, sta, '', 'HDF', t1b - 60, t2b) st_a2 = st[0] st_a2.detrend(type='linear') st_a2.detrend(type='demean')
#staCoords = [14.40677 -90.81859]; % FG13 location sta = 'FG12' # STATION cha1 = 'BHZ' # CHANNEL cha2 = 'BDF' # CHANNEL net = 'GI' # loc1 = '00' # location, it depends mostly of which network you are in. loc2 = '02' client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t1 = UTCDateTime(2018, 11, 2, 8, 0, 0) t2 = UTCDateTime(2018, 11, 2, 10, 0, 0) st1 = Stream() st1 = client.get_waveforms(net, sta, loc1, cha1, t1, t2) tr1 = st1[0] print("stream 1 in") sr1 = st1[0].stats.sampling_rate tr1.detrend(type='linear') tr1.detrend(type='demean') tr1.filter(type='bandpass', freqmin=0.5, freqmax=15) r_FG12 = 1 #6962 tAcous = r_FG12 / va tSeis = r_FG12 / vs
def get_activity_fuego(day): from obspy.clients.earthworm import Client from obspy import UTCDateTime from obspy import Stream import numpy as np year1 = 2018 month1 = 3 day1 = 10 hour1 = 0 minute1 = 0 second1 = 0 num = 0 nums = 0 numa = 0 t0 = UTCDateTime(year1, month1, day1, hour1, minute1, second1) #the format is year:day_of_the_year:month t1 = t0 + day * 24 * 60 * 60 t2 = t1 + 23 * 60 * 60 + 59 * 60 + 59.999 #UTCDateTime(year2, month2, day2, hour2, minute2, second2) # notice we have here 10 minutes, but we can select our times. print(UTCDateTime(t1)) port = '138.253.113.19' # ip, port - ip's 138.253.113.19 or 138.253.112.23 #%% FG10 seismic try: sta = 'FG10' # STATION LB01 cha = 'BHZ' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG10s = 1 num += 1 nums += 1 else: FG10s = 0 except: FG10s = 0 #%% FG11 Seismic try: sta = 'FG11' # STATION LB01 cha = 'BHZ' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG11s = 1 num += 1 nums += 1 else: FG11s = 0 except: FG11s = 0 #%% FG12 Seismic try: sta = 'FG12' # STATION LB01 cha = 'BHZ' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '00' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG12s = 1 num += 1 nums += 1 else: FG12s = 0 except: FG12s = 0 #%% FG13 Seismic try: sta = 'FG13' # STATION LB01 cha = 'BHZ' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '00' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG13s = 1 num += 1 nums += 1 else: FG13s = 0 except: FG13s = 0 #%% FG14 Seismic try: sta = 'FG14' # STATION LB01 cha = 'BHZ' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '01' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG14s = 1 num += 1 nums += 1 else: FG14s = 0 except: FG14s = 0 #%% FG16 Seismic try: sta = 'FG16' # STATION LB01 cha = 'BHZ' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '00' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG16s = 1 num += 1 nums += 1 else: FG16s = 0 except: FG16s = 0 #%% FG8 Seismic try: sta = 'FG8' # STATION LB01 cha = 'BHZ' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '00' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG8s = 1 num += 1 nums += 1 else: FG8s = 0 except: FG8s = 0 #%% FG3 Seismic try: sta = 'FG3' # STATION LB01 cha = 'SHZ' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '01' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG3s = 1 num += 1 nums += 1 else: FG3s = 0 except: FG3s = 0 #%% #%% FG10 inf try: sta = 'FG10' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '01' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG10_1 = 1 num += 1 numa += 1 else: FG10_1 = 0 except: FG10_1 = 0 try: sta = 'FG10' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '02' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG10_2 = 1 num += 1 numa += 1 else: FG10_2 = 0 except: FG10_2 = 0 try: sta = 'FG10' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '03' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG10_3 = 1 num += 1 numa += 1 else: FG10_3 = 0 except: FG10_3 = 0 #%% FG11 inf try: sta = 'FG11' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '01' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG11_1 = 1 num += 1 numa += 1 else: FG11_1 = 0 except: FG11_1 = 0 try: sta = 'FG11' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '02' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG11_2 = 1 num += 1 numa += 1 else: FG11_2 = 0 except: FG11_2 = 0 try: sta = 'FG11' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '04' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG11_4 = 1 num += 1 numa += 1 else: FG11_4 = 0 except: FG11_4 = 0 try: sta = 'FG11' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '05' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG11_5 = 1 num += 1 numa += 1 else: FG11_5 = 0 except: FG11_5 = 0 #%% FG12 inf try: sta = 'FG12' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '01' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG12_1 = 1 num += 1 numa += 1 else: FG12_1 = 0 except: FG12_1 = 0 try: sta = 'FG12' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '02' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG12_2 = 1 num += 1 numa += 1 else: FG12_2 = 0 except: FG12_2 = 0 try: sta = 'FG12' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '03' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG12_3 = 1 num += 1 numa += 1 else: FG12_3 = 0 except: FG12_3 = 0 #%% FG13 inf try: sta = 'FG13' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '01' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG13_1 = 1 num += 1 numa += 1 else: FG13_1 = 0 except: FG13_1 = 0 try: sta = 'FG13' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '02' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG13_2 = 1 num += 1 numa += 1 else: FG13_2 = 0 except: FG13_2 = 0 try: sta = 'FG13' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '03' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG13_3 = 1 num += 1 numa += 1 else: FG13_3 = 0 except: FG13_3 = 0 #%% FG15 inf try: sta = 'FG15' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '01' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG15_1 = 1 num += 1 numa += 1 else: FG15_1 = 0 except: FG15_1 = 0 try: sta = 'FG15' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '02' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG15_2 = 1 num += 1 numa += 1 else: FG15_2 = 0 except: FG15_2 = 0 try: sta = 'FG15' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '03' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG15_3 = 1 num += 1 numa += 1 else: FG15_3 = 0 except: FG15_3 = 0 try: sta = 'FG15' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '04' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG15_4 = 1 num += 1 numa += 1 else: FG15_4 = 0 except: FG15_4 = 0 try: sta = 'FG15' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '05' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG15_5 = 1 num += 1 numa += 1 else: FG15_5 = 0 except: FG15_5 = 0 try: sta = 'FG15' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '06' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG15_6 = 1 num += 1 numa += 1 else: FG15_6 = 0 except: FG15_6 = 0 #%% FG8 inf try: sta = 'FG8' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '01' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG8_1 = 1 num += 1 numa += 1 else: FG8_1 = 0 except: FG8_1 = 0 try: sta = 'FG8' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '02' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG8_2 = 1 num += 1 numa += 1 else: FG8_2 = 0 except: FG8_2 = 0 try: sta = 'FG8' # STATION LB01 cha = 'BDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '03' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FG8_3 = 1 num += 1 numa += 1 else: FG8_3 = 0 except: FG8_3 = 0 #%% FV01 inf try: sta = 'FV01' # STATION LB01 cha = 'HDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FV01a = 1 num += 1 numa += 1 else: FV01a = 0 except: FV01a = 0 #%% FV02 inf try: sta = 'FV02' # STATION LB01 cha = 'HDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FV02a = 1 num += 1 numa += 1 else: FV02a = 0 except: FV02a = 0 #%% FV03 inf try: sta = 'FV03' # STATION LB01 cha = 'HDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FV03a = 1 num += 1 numa += 1 else: FV03a = 0 except: FV03a = 0 #%% FV04 inf try: sta = 'FV04' # STATION LB01 cha = 'HDF' # CHANNEL - Vertical net = 'GI' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: FV04a = 1 num += 1 numa += 1 else: FV04a = 0 except: FV04a = 0 #%% VF01 inf try: sta = 'VF01' # STATION LB01 cha = 'HDF' # CHANNEL - Vertical net = 'XZ' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: VF01a = 1 num += 1 numa += 1 else: VF01a = 0 except: VF01a = 0 #%% VF02 inf try: sta = 'VF02' # STATION LB01 cha = 'HDF' # CHANNEL - Vertical net = 'XZ' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: VF02a = 1 num += 1 numa += 1 else: VF02a = 0 except: VF02a = 0 #%% VF03 inf try: sta = 'VF03' # STATION LB01 cha = 'HDF' # CHANNEL - Vertical net = 'XZ' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: VF03a = 1 num += 1 numa += 1 else: VF03a = 0 except: VF03a = 0 #%% VF04 inf try: sta = 'VF04' # STATION LB01 cha = 'HDF' # CHANNEL - Vertical net = 'XZ' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: VF04a = 1 num += 1 numa += 1 else: VF04a = 0 except: VF04a = 0 #%% VF05 inf try: sta = 'VF05' # STATION LB01 cha = 'HDF' # CHANNEL - Vertical net = 'XZ' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: VF05a = 1 num += 1 numa += 1 else: VF05a = 0 except: VF05a = 0 #%% VF06 inf try: sta = 'VF06' # STATION LB01 cha = 'HDF' # CHANNEL - Vertical net = 'XZ' # Santiaguito volcano loc = '' # location, it depends mostly of which network you are in. client = Client(port, 16022) st1 = Stream() st1 = client.get_waveforms(net, sta, loc, cha, t1, t2) # st is a stream, we can operate normally as in obspy st1.detrend(type='linear') st1.detrend(type='demean') break_test = st1 break_test = break_test[0].filter("bandpass", freqmin=1, freqmax=10) if np.mean(abs(st1[0].data)) > 2: VF06a = 1 num += 1 numa += 1 else: VF06a = 0 except: VF06a = 0 #%% return all stations return (num, nums, numa, FG3s, FG8s, FG10s, FG11s, FG12s, FG13s, FG14s, FG16s, FG8_1, FG8_2, FG8_3, FG10_1, FG10_2, FG10_3, FG11_1, FG11_2, FG11_4, FG11_5, FG12_1, FG12_2, FG12_3, FG13_1, FG13_2, FG13_3, FG15_1, FG15_2, FG15_3, FG15_4, FG15_5, FG15_6, FV01a, FV02a, FV03a, FV04a, VF01a, VF02a, VF03a, VF04a, VF05a, VF06a)
from numpy import argmax # STATION, CHANNEL (DDF --> 400 Hz), NETWWORK AND LOCATION CODES sta = 'VF03' # STATION cha = 'HDF' # CHANNEL net = 'XZ' # loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.112.23', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t1 = UTCDateTime(2018, 5, 20, 0, 0, 0) #the format is year:day_of_the_year:month t2 = t1 + 60*60*24 st_day = Stream() st_day = client.get_waveforms(net, sta, loc, cha, t1 , t2) st_day.detrend(type='linear') st_day.detrend(type='demean') sr = st_day[0].stats.sampling_rate st_day.filter(type='bandpass',freqmin=0.1, freqmax=(sr/2)-(sr/20)) st_day.plot(type='dayplot',starttime=t1, endtime=t2) trace = st_day[0] #%% #window endpoints start= t1 + 10 #time window start end= t2 trs = trace.slice(starttime = start , endtime= end) trs.plot(type='relative',color='b')#, starttime=start , endtime=end)
try: avail = wclient.get_availability(NET, STA, channel=CHAN) except Exception: logging.error(f"Unable to get location info for station {STA}") continue locs = [x[2] for x in avail] st = Stream() for loc in locs: try: # Not sure why we can't use a wildcard for loc, but it # doesn't seem to work (at least, not for DLL), so we loop. tr = wclient.get_waveforms(NET, STA, loc, CHAN, STARTTIME - 2 * config.taper_val, ENDTIME + 2 * config.taper_val, cleanup=True) st += tr except Exception: continue if not st: logging.error(f"No data retrieved for {STA}") continue st.merge(fill_value='latest') st.trim(STARTTIME - 2 * config.taper_val, ENDTIME + 2 * config.taper_val, pad='true',
def nuevoGetTraza(request): id = request.data["eventoMacro"] filtrada = request.data["filtrada"] cod_event = getAvistamientoByMacroId(id) ti = UTCDateTime(getEventoMacroId(id).inicio) tf = UTCDateTime(getEventoMacroId(id).fin) client = Client("172.16.40.70", 16022, timeout=15) fulldata = [] #INTENTO QUE FUNCIONA DIEGO TRAER TODAS LAS ESTACIONES CON TRAZAS for i in range(len(cod_event)): volcan = getEstacionByCodeEvent(cod_event[i]["cod_event"])["volcan"] estacion = list(cod_event[i]["cod_event"]) ts = cod_event[i]["t_s"] tp = cod_event[i]["t_p"] tiempoSstamp = time.mktime( datetime.strptime(ts, "%Y-%m-%dT%H:%M:%S.%fZ").timetuple()) nombreEstacion = estacion[0] + estacion[1] + estacion[2] wave = client.get_waveforms('TC', nombreEstacion + "Z", volcan, 'HHZ', ti, tf) tiempos = wave[0].times("timestamp") * 1000 if (filtrada == 1): datos = wave[0].data elif (filtrada == 0): datos = wave.filter(type='bandpass', freqmin=0.8, freqmax=12)[0].data listaF = [] for i in range(len(datos)): listaF.append([tiempos[i], datos[i]]) fulldata.append([listaF, nombreEstacion, ts, tp]) ## Aqui obtenemos el paquete de trazas wave = client.get_waveforms('TC', 'FREZ', '99', 'HHZ', ti, tf) #wave_fil=wave.filter(type='bandpass',freqmin=0.8,freqmax=12) ###### AquĆ haciamos algo que no recuerdo """ INTENTO TRAER FECHAS *FUNCIONA for i in range(len(estaciones)): try: wave=client.get_waveforms('TC',estaciones[i]["estacion_id"]+"Z",estaciones[i]["volcan"]["volcan_id"],'HHZ',ti,tf) datos=wave[0].data fulldata.append([datos,estaciones[i]["estacion_id"]]) except: print(i) tiempos=wave[0].times("utcdatetime") ts=[] tiempos2=wave[0].times("timestamp")*1000 for tiempo in tiempos: d=tiempo.datetime ts.append(time.mktime(d.timetuple())*1000) datosF=wave[0].data listaF=[] for i in range(len(datosF)): listaF.append([tiempos2[i],datosF[i]]) """ return Response(fulldata, status=status.HTTP_200_OK)
# STATION, CHANNEL (DDF --> 400 Hz), NETWWORK AND LOCATION CODES sta = 'LB01' # STATION cha = 'HDF' # CHANNEL net = 'Z4' # loc = '' # location, it depends mostly of which network you are in. client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 for x in range(0, 20): t1 = UTCDateTime( secondary[x][1]) #the format is year:day_of_the_year:month t2 = t1 + 6 st = Stream() st = client.get_waveforms(net, sta, '', cha, t1 - 20, t2 + 60) #print(st) st.detrend(type='linear') st.detrend(type='demean') st.filter(type='bandpass', freqmin=0.2, freqmax=2) st.plot(color='b', starttime=t1 - 15, endtime=t2 + 30) #%% count = 0 #for x in range(0,100): for x in range(0, len(secondary)): primary = secondary[x][0] second = secondary[x][1]
# STATION, CHANNEL (DDF --> 400 Hz), NETWWORK AND LOCATION CODES sta = 'LB03' # STATION cha = 'HHZ' # CHANNEL net = 'Z4' # loc = '' # location, it depends mostly of which network you are in. # Corner frequency for high-pass filter #hp_corner = 0.05 # t1. and t2 are in hours:minutes:seconds # Get data from (Liverpool Winston default) wave server between times t1 and t2 for all stations in stalist client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 t1 = UTCDateTime(2017, 3, 21 ,9 ,37, 0) #the format is year:day_of_the_year:month t2 = t1 + 3*60 st = Stream() st = client.get_waveforms(net, sta, '', cha, t1 , t2) st.filter(type='bandpass',freqmin=0.5, freqmax=15) st.detrend(type='linear') st.detrend(type='demean') #st.plot(color='b',starttime=t1+20, endtime=t2) #peak,cf,bwid50,bwid25=freq_info(st[0].data,t1,t2) #print(peak,cf,bwid50) tr=st[0] st_c = calibrate(tr) st_c.plot(color='r',starttime=t1+20, endtime=t2)
# #secondry = blue # st.plot(color='b',starttime=t1-20, endtime=t2) #%% shift = 1000 sum_cora=0 sum_cors=0 count=0 for x in range(0,len(all4)): try: # Secondary Seismic t1=UTCDateTime(all4[x,3]) t2=t1+120 st = Stream() st = client.get_waveforms(net, sta, '', 'HHZ', t1-60 , t2) st_s2 = st[0] st_s2.detrend(type='linear') st_s2.detrend(type='demean') st_s2.filter("bandpass", freqmin=0.01,freqmax=1) sr = st_s2.stats.sampling_rate nsta=int(1*sr) #2 nlta=int(20*sr) stream=st_s2.data cft=recursive_sta_lta(stream, nsta, nlta) trig_on=8 #8 trig_off=1 #0.2 # plot_trigger(st_s2, cft, trig_on, trig_off)
# STATION, CHANNEL (DDF --> 400 Hz), NETWWORK AND LOCATION CODES sta = 'FG8' # STATION cha = 'BHZ' # CHANNEL net = 'GI' # loc = '00' # location, it depends mostly of which network you are in. client = Client('138.253.113.19', 16022) # ip, port - ip's 138.253.113.19 or 138.253.112.23 #%% reference waveforms t1 = UTCDateTime(2018, 5, 20, 17, 13, 45) #the format is year:day_of_the_year:month t2 = t1 + 40 st_ref = Stream() st_ref = client.get_waveforms(net, sta, loc, cha, t1, t2) st_ref.detrend(type='linear') st_ref.detrend(type='demean') st_ref.filter(type='bandpass', freqmin=12, freqmax=22) st_ref.plot(color='k', starttime=t1, endtime=t2) ref_st = st_ref[0].data # t1 = UTCDateTime(2018, 5, 20, 2, 58, 20) #the format is year:day_of_the_year:month t2 = t1 + 90 st_ref2 = Stream() st_ref2 = client.get_waveforms(net, sta, loc, cha, t1, t2) st_ref2.detrend(type='linear') st_ref2.detrend(type='demean')
print("event found", e) # try: # print(s,e) # import waveform, trim, caibrate, filter dur = cat[e, 1] t1 = UTCDateTime( cat[e, 0]) - 45 # !! may need to make wider time buffer !! t2 = t1 + dur + 90 t_len = t2 - t1 st_ac = Stream() st_ac = client.get_waveforms(net, sta, loc, cha, t1, t2) sr = st_ac[0].stats.sampling_rate st_ac.detrend(type='linear') st_ac.detrend(type='demean') st_ac.filter(type='bandpass', freqmin=0.2, freqmax=10) st_cal = cal * st_ac[0].data[int(5 * sr):int(-5 * sr)] #plot waveform # plt.figure() # points = np.linspace(0,t_len-10,len(st_cal)) # plt.plot(points,st_cal,'b') # plt.title("{}: ".format(st_ac[0].stats.station)+" {}".format(st_ac[0].stats.starttime)) # plt.xlabel('Time [s]') # plt.ylabel('Acoustic units')