def test_syngine_tour(): (options, args, parser) = command_parse() input_dics = read_input_command(parser) input_dics['datapath'] = './dmt_tour_dir' input_dics['min_date'] = '2011-03-10' input_dics['max_date'] = '2011-03-12' input_dics['min_mag'] = '8.9' input_dics['identity'] = 'TA.1*.*.BHZ' input_dics['event_catalog'] = 'IRIS' input_dics['req_parallel'] = True input_dics['instrument_correction'] = True input_dics['net'] = 'TA' input_dics['sta'] = '1*' input_dics['loc'] = '*' input_dics['cha'] = 'BHZ' input_dics['syngine'] = True from obspyDMT import obspyDMT input_dics = obspyDMT.dmt_core(input_dics) from glob import glob assert len(glob('./dmt_tour_dir/*')) == 2 assert len(glob('./dmt_tour_dir/20110311_054623.a/raw/*')) > 10 assert len(glob('./dmt_tour_dir/20110311_054623.a/processed/*')) == len(glob('./dmt_tour_dir/20110311_054623.a/raw/*')) assert len(glob('./dmt_tour_dir/20110311_054623.a/syngine_iasp91_2s/*')) > 10 assert len(glob('./dmt_tour_dir/20110311_054623.a/resp/*')) == len(glob('./dmt_tour_dir/20110311_054623.a/raw/*')) assert len(glob('./dmt_tour_dir/20110311_054623.a/info/*')) == 8 import shutil shutil.rmtree('./dmt_tour_dir') shutil.rmtree('./obspydmt-data')
def test_syngine_tour(): (options, args, parser) = command_parse() input_dics = read_input_command(parser) input_dics['datapath'] = './dmt_tour_dir' input_dics['min_date'] = '2011-03-10' input_dics['max_date'] = '2011-03-12' input_dics['min_mag'] = '8.9' input_dics['identity'] = 'TA.1*.*.BHZ' input_dics['event_catalog'] = 'IRIS' input_dics['req_parallel'] = True input_dics['instrument_correction'] = True input_dics['net'] = 'TA' input_dics['sta'] = '1*' input_dics['loc'] = '*' input_dics['cha'] = 'BHZ' input_dics['syngine'] = True from obspyDMT import obspyDMT input_dics = obspyDMT.dmt_core(input_dics) from glob import glob assert len(glob('./dmt_tour_dir/*')) == 2 assert len(glob('./dmt_tour_dir/20110311_054623.a/raw/*')) > 10 assert len(glob('./dmt_tour_dir/20110311_054623.a/processed/*')) == len(glob('./dmt_tour_dir/20110311_054623.a/raw/*')) assert len(glob('./dmt_tour_dir/20110311_054623.a/syngine_iasp91_2s/*')) > 10 assert len(glob('./dmt_tour_dir/20110311_054623.a/resp/*')) == len(glob('./dmt_tour_dir/20110311_054623.a/raw/*')) assert len(glob('./dmt_tour_dir/20110311_054623.a/info/*')) >= 8 import shutil shutil.rmtree('./dmt_tour_dir') shutil.rmtree('./obspydmt-data')
def test_FDSN_network(): (options, args, parser) = command_parse() input_dics = read_input_command(parser) # Changing the input_dics values for testing input_dics['min_date'] = '2011-03-01' input_dics['max_date'] = '2011-03-20' input_dics['min_mag'] = 8.9 input_dics['datapath'] = 'test_%s' % dir_name input_dics['net'] = 'TA' input_dics['sta'] = 'Z3*' input_dics['cha'] = 'BHZ' input_dics['req_parallel'] = 'Y' input_dics['req_np'] = 4 events = get_Events(input_dics, 'event-based') assert len(events) == 1 FDSN_network(input_dics, events) st_raw = read(os.path.join(input_dics['datapath'], '2011-03-01_2011-03-20', '20110311_1', 'BH_RAW', '*')) assert len(st_raw) == 7 st_wilber = read(os.path.join('tests', 'fdsn_waveforms', 'TA*')) for sta in ['Z35A', 'Z37A', 'Z39A']: tr_raw = st_raw.select(station=sta)[0] tr_wilber = st_wilber.select(station=sta)[0] tr_diff = abs(tr_raw.data - tr_wilber.data) assert max(tr_diff) == 0.
def test_arclink_waveforms(): (options, args, parser) = command_parse() input_dics = read_input_command(parser) import os input_dics['datapath'] = os.path.join(os.path.curdir, 'event_based_dir_ARCLINK') input_dics['min_date'] = '2014-01-01' input_dics['max_date'] = '2015-01-01' input_dics['min_mag'] = '7.9' input_dics['identity'] = 'II.*.00.BHZ' input_dics['event_catalog'] = 'NEIC_USGS' input_dics['data_source'] = ['ARCLINK'] input_dics['req_parallel'] = True input_dics['instrument_correction'] = True input_dics['net'] = 'II' input_dics['sta'] = '*' input_dics['loc'] = '00' input_dics['cha'] = 'BHZ' input_dics['offset'] = 100 from obspyDMT import obspyDMT input_dics = obspyDMT.dmt_core(input_dics) from glob import glob assert len( glob(os.path.join(os.path.curdir, 'event_based_dir_ARCLINK', '*'))) == 3 assert len( glob( os.path.join(os.path.curdir, 'event_based_dir_ARCLINK', '20140401_234647.a', '*'))) == 4 assert len( glob( os.path.join(os.path.curdir, 'event_based_dir_ARCLINK', '20140623_205309.a', '*'))) == 4 assert len( glob( os.path.join(os.path.curdir, 'event_based_dir_ARCLINK', '20140401_234647.a', 'raw', '*'))) >= 5 assert len( glob( os.path.join(os.path.curdir, 'event_based_dir_ARCLINK', '20140623_205309.a', 'raw', '*'))) >= 5 assert len( glob( os.path.join(os.path.curdir, 'event_based_dir_ARCLINK', '20140401_234647.a', 'processed', '*'))) >= 5 assert len( glob( os.path.join(os.path.curdir, 'event_based_dir_ARCLINK', '20140623_205309.a', 'processed', '*'))) >= 5 import shutil shutil.rmtree(os.path.join(os.path.curdir, 'event_based_dir_ARCLINK')) shutil.rmtree('./obspydmt-data')
def test_FDSN_ARC_IC(): (options, args, parser) = command_parse() input_dics = read_input_command(parser) # Changing the input_dics values for testing input_dics['min_date'] = '2011-03-01' input_dics['max_date'] = '2011-03-20' input_dics['min_mag'] = 8.9 input_dics['datapath'] = 'test_%s' % dir_name input_dics['net'] = 'TA' input_dics['sta'] = 'Z3*' input_dics['cha'] = 'BHZ' input_dics['req_parallel'] = 'Y' input_dics['req_np'] = 4 FDSN_ARC_IC(input_dics, input_dics['fdsn_base_url']) st_cor = read(os.path.join(input_dics['datapath'], '2011-03-01_2011-03-20', '20110311_1', 'BH', '*')) assert len(st_cor) == 7 st_wilber = read(os.path.join('tests', 'fdsn_waveforms', 'TA*')) paz_35 = {'gain': 5.714000e+08, 'sensitivity': 6.309070e+08, 'zeros': (0.0, 0.0, 0.0), 'poles': (-3.701000e-02+3.701000e-02j, -3.701000e-02-3.701000e-02j, -1.131000e+03+0.000000e+00j, -1.005000e+03+0.000000e+00j, -5.027000e+02+0.000000e+00j)} for sta in ['Z35A', 'Z37A', 'Z39A']: tr_cor = st_cor.select(station=sta)[0] tr_wilber = st_wilber.select(station=sta)[0] tr_wilber_corr = tr_wilber.copy() tr_wilber_corr.detrend() corr_wilber = seisSim(tr_wilber.data, tr_wilber.stats.sampling_rate, paz_remove=paz_35, paz_simulate=None, remove_sensitivity=True, simulate_sensitivity=False, water_level=600., zero_mean=True, taper=True, taper_fraction=0.05, pre_filt=(0.008, 0.012, 3.0, 4.0), pitsasim=False, sacsim=True) tr_wilber_corr.data = corr_wilber tr_diff = abs(tr_cor.data - tr_wilber_corr.data) # amplitude of the traces is in the order of 1e6 or so assert max(tr_diff) < 0.00001
def test_continuous(): (options, args, parser) = command_parse() input_dics = read_input_command(parser) # Changing the input_dics values for testing input_dics['min_date'] = UTCDateTime('2011-03-01') input_dics['max_date'] = UTCDateTime('2011-03-20') events, events_QML, successful_read = events_info(input_dics, 'continuous') assert len(events) == 19 input_dics['min_date'] = UTCDateTime('2011-03-01-10-00-00') input_dics['max_date'] = UTCDateTime('2011-03-01-13-00-00') input_dics['interval'] = 1000. events, events_QML, successful_read = events_info(input_dics, 'continuous') assert len(events) == 11
def test_gmt_catalog(): (options, args, parser) = command_parse() input_dics = read_input_command(parser) # Changing the input_dics values for testing input_dics['min_date'] = UTCDateTime('2011-03-01') input_dics['max_date'] = UTCDateTime('2011-03-20') input_dics['min_mag'] = 8.9 evlatmin = input_dics['evlatmin'] evlatmax = input_dics['evlatmax'] evlonmin = input_dics['evlonmin'] evlonmax = input_dics['evlonmax'] evlat = input_dics['evlat'] evlon = input_dics['evlon'] evradmax = input_dics['evradmax'] evradmin = input_dics['evradmin'] client_fdsn = Client_fdsn(base_url=input_dics['event_catalog']) events_QML = client_fdsn.get_events( minlatitude=evlatmin, maxlatitude=evlatmax, minlongitude=evlonmin, maxlongitude=evlonmax, latitude=evlat, longitude=evlon, maxradius=evradmax, minradius=evradmin, mindepth=input_dics['min_depth'], maxdepth=input_dics['max_depth'], starttime=input_dics['min_date'], endtime=input_dics['max_date'], minmagnitude=input_dics['min_mag'], maxmagnitude=input_dics['max_mag'], orderby='time', catalog=None, magnitudetype=input_dics['mag_type']) assert events_QML[0].preferred_origin().latitude == 38.2963 assert events_QML[0].preferred_origin().longitude == 142.498 assert events_QML[0].preferred_origin().depth == 19700.0
def test_process_unit(): (options, args, parser) = command_parse() input_dics = read_input_command(parser) input_dics['datapath'] = './event_based_dir' input_dics['min_date'] = '2014-01-01' input_dics['max_date'] = '2015-01-01' input_dics['min_mag'] = '7.5' input_dics['identity'] = 'II.*.00.BHZ' input_dics['event_catalog'] = 'NEIC_USGS' input_dics['data_source'] = ['IRIS'] input_dics['req_parallel'] = True input_dics['instrument_correction'] = True input_dics['net'] = 'II' input_dics['sta'] = '*' input_dics['loc'] = '00' input_dics['cha'] = 'BHZ' input_dics['preset'] = 100 input_dics['offset'] = 1800 input_dics['process_np'] = 4 input_dics['resample_method'] = 'lanczos' input_dics['sampling_rate'] = 2.0 from obspyDMT import obspyDMT input_dics = obspyDMT.dmt_core(input_dics) from glob import glob assert len(glob('./event_based_dir/*')) == 6 assert len(glob('./event_based_dir/20140401_234647.a/*')) == 4 assert len(glob('./event_based_dir/20140403_024313.a/*')) == 4 assert len(glob('./event_based_dir/20140412_201439.a/*')) == 4 assert len(glob('./event_based_dir/20140419_132800.a/*')) == 4 assert len(glob('./event_based_dir/20140623_205309.a/*')) == 4 from obspy import read tr_process = read('./event_based_dir/20140401_234647.a/processed/*')[0] assert (tr_process.stats.sampling_rate - input_dics['sampling_rate']) < 1e-2 import shutil shutil.rmtree('./obspydmt-data') shutil.rmtree('./event_based_dir')
def test_gmt_catalog(): (options, args, parser) = command_parse() input_dics = read_input_command(parser) # Changing the input_dics values for testing input_dics['min_date'] = UTCDateTime('2011-03-01') input_dics['max_date'] = UTCDateTime('2011-03-20') input_dics['min_mag'] = 8.9 evlatmin = input_dics['evlatmin'] evlatmax = input_dics['evlatmax'] evlonmin = input_dics['evlonmin'] evlonmax = input_dics['evlonmax'] evlat = input_dics['evlat'] evlon = input_dics['evlon'] evradmax = input_dics['evradmax'] evradmin = input_dics['evradmin'] client_fdsn = Client_fdsn(base_url=input_dics['event_url']) events_QML = client_fdsn.get_events(minlatitude=evlatmin, maxlatitude=evlatmax, minlongitude=evlonmin, maxlongitude=evlonmax, latitude=evlat, longitude=evlon, maxradius=evradmax, minradius=evradmin, mindepth=input_dics['min_depth'], maxdepth=input_dics['max_depth'], starttime=input_dics['min_date'], endtime=input_dics['max_date'], minmagnitude=input_dics['min_mag'], maxmagnitude=input_dics['max_mag'], orderby='time', catalog=input_dics['event_catalog'], magnitudetype=input_dics['mag_type']) assert events_QML[0].preferred_origin().latitude == 38.2963 assert events_QML[0].preferred_origin().longitude == 142.498 assert events_QML[0].preferred_origin().depth == 19700.0
def test_read_input_command(): (options, args, parser) = command_parse() assert len(parser.option_groups[0].option_list) == 3 assert len(parser.option_groups[1].option_list) == 2 assert len(parser.option_groups[2].option_list) == 4 assert len(parser.option_groups[3].option_list) == 14 assert len(parser.option_groups[4].option_list) == 8 assert len(parser.option_groups[5].option_list) == 7 assert len(parser.option_groups[6].option_list) == 5 assert len(parser.option_groups[7].option_list) == 2 assert len(parser.option_groups[8].option_list) == 11 assert len(parser.option_groups[9].option_list) == 1 assert len(parser.option_groups[10].option_list) == 7 assert len(parser.option_groups[11].option_list) == 6 assert len(parser.option_groups[12].option_list) == 17 assert len(parser.option_groups[13].option_list) == 13 assert len(parser.option_groups[14].option_list) == 3 input_dics = read_input_command(parser) return input_dics
def test_read_input_command(): (options, args, parser) = command_parse() assert len(parser.option_groups[0].option_list) == 3 assert len(parser.option_groups[1].option_list) == 2 assert len(parser.option_groups[2].option_list) == 13 assert len(parser.option_groups[3].option_list) == 3 assert len(parser.option_groups[4].option_list) == 15 assert len(parser.option_groups[5].option_list) == 7 assert len(parser.option_groups[6].option_list) == 8 assert len(parser.option_groups[7].option_list) == 5 assert len(parser.option_groups[8].option_list) == 3 assert len(parser.option_groups[9].option_list) == 14 assert len(parser.option_groups[10].option_list) == 3 assert len(parser.option_groups[11].option_list) == 7 assert len(parser.option_groups[12].option_list) == 19 assert len(parser.option_groups[13].option_list) == 13 assert len(parser.option_groups[14].option_list) == 3 input_dics = read_input_command(parser) assert input_dics['water_level'] == 600.0 return input_dics
def test_read_input_command(): (options, args, parser) = command_parse() assert len(parser.option_groups[0].option_list) == 3 assert len(parser.option_groups[1].option_list) == 2 assert len(parser.option_groups[2].option_list) == 4 assert len(parser.option_groups[3].option_list) == 14 assert len(parser.option_groups[4].option_list) == 9 assert len(parser.option_groups[5].option_list) == 7 assert len(parser.option_groups[6].option_list) == 5 assert len(parser.option_groups[7].option_list) == 6 assert len(parser.option_groups[8].option_list) == 11 assert len(parser.option_groups[9].option_list) == 1 assert len(parser.option_groups[10].option_list) == 7 assert len(parser.option_groups[11].option_list) == 6 assert len(parser.option_groups[12].option_list) == 17 assert len(parser.option_groups[13].option_list) == 13 assert len(parser.option_groups[14].option_list) == 3 input_dics = read_input_command(parser) return input_dics
def test_read_input_command(): (options, args, parser) = command_parse() assert len(parser.option_groups[0].option_list) == 3 assert len(parser.option_groups[1].option_list) == 2 assert len(parser.option_groups[2].option_list) == 13 assert len(parser.option_groups[3].option_list) == 3 assert len(parser.option_groups[4].option_list) == 15 assert len(parser.option_groups[5].option_list) == 7 assert len(parser.option_groups[6].option_list) == 5 assert len(parser.option_groups[7].option_list) == 5 assert len(parser.option_groups[8].option_list) == 3 assert len(parser.option_groups[9].option_list) == 14 assert len(parser.option_groups[10].option_list) == 3 assert len(parser.option_groups[11].option_list) == 7 assert len(parser.option_groups[12].option_list) == 18 assert len(parser.option_groups[13].option_list) == 13 assert len(parser.option_groups[14].option_list) == 3 input_dics = read_input_command(parser) assert input_dics['water_level'] == 600.0 return input_dics
def test_arclink_waveforms(): (options, args, parser) = command_parse() input_dics = read_input_command(parser) import os input_dics['datapath'] = os.path.join(os.path.curdir, 'event_based_dir_ARCLINK') input_dics['min_date'] = '2014-01-01' input_dics['max_date'] = '2015-01-01' input_dics['min_mag'] = '7.9' input_dics['identity'] = 'II.*.00.BHZ' input_dics['event_catalog'] = 'NEIC_USGS' input_dics['data_source'] = ['ARCLINK'] input_dics['req_parallel'] = True input_dics['instrument_correction'] = True input_dics['net'] = 'II' input_dics['sta'] = '*' input_dics['loc'] = '00' input_dics['cha'] = 'BHZ' input_dics['offset'] = 100 from obspyDMT import obspyDMT input_dics = obspyDMT.dmt_core(input_dics) from glob import glob assert len(glob(os.path.join(os.path.curdir, 'event_based_dir_ARCLINK', '*'))) == 3 # uncomment the following lines #assert len(glob(os.path.join(os.path.curdir, 'event_based_dir_ARCLINK', '20140401_234647.a', '*'))) == 4 #assert len(glob(os.path.join(os.path.curdir, 'event_based_dir_ARCLINK', '20140623_205309.a', '*'))) == 4 #assert len(glob(os.path.join(os.path.curdir, 'event_based_dir_ARCLINK', '20140401_234647.a', 'raw', '*'))) >= 5 #assert len(glob(os.path.join(os.path.curdir, 'event_based_dir_ARCLINK', '20140623_205309.a', 'raw', '*'))) >= 5 #assert len(glob(os.path.join(os.path.curdir, 'event_based_dir_ARCLINK', '20140401_234647.a', 'processed', '*'))) >= 5 #assert len(glob(os.path.join(os.path.curdir, 'event_based_dir_ARCLINK', '20140623_205309.a', 'processed', '*'))) >= 5 import shutil shutil.rmtree(os.path.join(os.path.curdir, 'event_based_dir_ARCLINK')) shutil.rmtree('./obspydmt-data')
def test_FDSN_update(): (options, args, parser) = command_parse() input_dics = read_input_command(parser) # Changing the input_dics values for testing input_dics['min_date'] = '2011-03-01' input_dics['max_date'] = '2011-03-20' input_dics['min_mag'] = 8.9 input_dics['datapath'] = 'test_%s' % dir_name input_dics['net'] = 'TA' input_dics['sta'] = 'T40A' input_dics['cha'] = 'BHZ' input_dics['req_parallel'] = 'N' input_dics['ic_parallel'] = 'Y' input_dics['ic_np'] = 4 input_dics['fdsn_update'] = input_dics['datapath'] FDSN_update(input_dics, address=input_dics['fdsn_update']) FDSN_ARC_IC(input_dics, input_dics['fdsn_base_url']) st_cor = read(os.path.join(input_dics['datapath'], '2011-03-01_2011-03-20', '20110311_1', 'BH', '*')) assert len(st_cor) == 8 st_wilber = read(os.path.join('tests', 'fdsn_waveforms', 'TA*')) paz_t40 = {'gain': 3.484620e+17, 'sensitivity': 6.271920e+08, 'zeros': (+0.000000e+00+0.000000e+00j, +0.000000e+00+0.000000e+00j, +0.000000e+00+0.000000e+00j, -4.631000e+02+4.305000e+02j, -4.631000e+02-4.305000e+02j, -1.766000e+02+0.000000e+00j, -1.515000e+01+0.000000e+00j), 'poles': (-1.330000e+04+0.000000e+00j, -1.053000e+04+1.005000e+04j, -1.053000e+04-1.005000e+04j, -5.203000e+02+0.000000e+00j, -3.748000e+02+0.000000e+00j, -9.734000e+01+4.007000e+02j, -9.734000e+01-4.007000e+02j, -1.564000e+01+0.000000e+00j, -3.700000e-02+3.700000e-02j, -3.700000e-02-3.700000e-02j, -2.551000e+02+0.000000e+00j)} paz_35 = {'gain': 5.714000e+08, 'sensitivity': 6.309070e+08, 'zeros': (0.0, 0.0, 0.0), 'poles': (-3.701000e-02+3.701000e-02j, -3.701000e-02-3.701000e-02j, -1.131000e+03+0.000000e+00j, -1.005000e+03+0.000000e+00j, -5.027000e+02+0.000000e+00j)} for sta in ['T40A', 'Z35A', 'Z37A', 'Z39A']: if sta not in ['T40A']: paz_req = paz_35 else: paz_req = paz_t40 tr_cor = st_cor.select(station=sta)[0] tr_wilber = st_wilber.select(station=sta)[0] tr_wilber_corr = tr_wilber.copy() tr_wilber_corr.detrend() corr_wilber = seisSim(tr_wilber.data, tr_wilber.stats.sampling_rate, paz_remove=paz_req, paz_simulate=None, remove_sensitivity=True, simulate_sensitivity=False, water_level=600., zero_mean=True, taper=True, taper_fraction=0.05, pre_filt=(0.008, 0.012, 3.0, 4.0), pitsasim=False, sacsim=True) tr_wilber_corr.data = corr_wilber tr_diff = abs(tr_cor.data - tr_wilber_corr.data) plt.figure() plt.clf() plt.subplot(2, 1, 1) plt.plot(tr_cor.data, 'b') plt.plot(tr_wilber_corr.data, 'r') plt.subplot(2, 1, 2) plt.plot(tr_diff) plt.savefig(os.path.join(input_dics['datapath'], '%s.png' % sta), format='png') # amplitude of the traces is in the order of 1e13 or so assert max(tr_diff) < 0.00001
def test_command_parse(): (options, args, parser) = command_parse() assert len(parser.option_groups) == 15