# Bulk waveform gather st = gather_waveforms_bulk(FBX_LON, FBX_LAT, MAX_RADIUS, STARTTIME, ENDTIME, INFRASOUND_CHANNELS, time_buffer=TIME_BUFFER, remove_response=True) # Add in AVO's Sand Point infrasound array st += gather_waveforms('AVO', 'AV', 'SDPI', '0?', 'BDF', STARTTIME, ENDTIME, time_buffer=TIME_BUFFER, remove_response=True) st_proc = process_waveforms(st, freqmin=FREQ_MIN, freqmax=FREQ_MAX, envelope=True, smooth_win=SMOOTH_WIN, decimation_rate=DECIMATION_RATE, normalize=True) #%% (3) Perform grid search
MAX_STATION_DIST = 0.8 # [km] Max. dist. from grid center to station (approx.) FREQ_MIN = 0.5 # [Hz] Lower bandpass corner FREQ_MAX = 10 # [Hz] Upper bandpass corner DECIMATION_RATE = 10 # [Hz] New sampling rate to use for decimation SMOOTH_WIN = 1 # [s] Smoothing window duration # Automatically determine appropriate time buffer in s time_buffer = calculate_time_buffer(grid, MAX_STATION_DIST) st = gather_waveforms(source=SOURCE, network=NETWORK, station=STATION, location=LOCATION, channel=CHANNEL, starttime=STARTTIME, endtime=ENDTIME, time_buffer=time_buffer) st_proc = process_waveforms(st, freqmin=FREQ_MIN, freqmax=FREQ_MAX, envelope=True, smooth_win=SMOOTH_WIN, decimation_rate=DECIMATION_RATE, normalize=True) #%% (3) Perform grid search from rtm import grid_search
from obspy import UTCDateTime from waveform_collection import gather_waveforms, gather_waveforms_bulk # Time window of data to gather for all examples STARTTIME = UTCDateTime(2019, 9, 22, 6) ENDTIME = UTCDateTime(2019, 9, 22, 6, 10) #%% Example 1 - Gather all infrasound records from Dillingham infrasound array st = gather_waveforms(source='IRIS', network='AV', station='DLL', location='*', channel='*', starttime=STARTTIME, endtime=ENDTIME) #%% Example 2 - Gather all BHN channel seismic records from within a 200 km radius of Iliamna volcano, Alaska st_bulk = gather_waveforms_bulk(lon_0=-153.0918, lat_0=60.0319, max_radius=200, starttime=STARTTIME, endtime=ENDTIME, channel='BHN')
LOCATION = '*' CHANNEL = '*' START = UTCDateTime('2018-12-19T01:45:00') END = START + 20*60 # Filtering FMIN = 0.1 # [Hz] FMAX = 1 # [Hz] # Array processing WINLEN = 50 # [s] WINOVER = 0.5 #%% Grab and filter waveforms st = gather_waveforms(SOURCE, NETWORK, STATION, LOCATION, CHANNEL, START, END, remove_response=True) st.filter('bandpass', freqmin=FMIN, freqmax=FMAX, corners=2, zerophase=True) st.taper(max_percentage=0.01) #%% Array processing and plotting using least squares from array_processing.algorithms.helpers import getrij from array_processing.tools.plotting import array_plot from lts_array import ltsva latlist = [tr.stats.latitude for tr in st] lonlist = [tr.stats.longitude for tr in st] rij = getrij(latlist, lonlist)