From 1f2b3147fd69ce1ea1a9e518fd9e75b63bef958e Mon Sep 17 00:00:00 2001 From: Marcel Date: Thu, 21 Sep 2017 15:03:14 +0200 Subject: [PATCH] [cleanup] remove old files pt.2 --- inputs/autoPyLoT.in | 100 -------- inputs/autoPyLoT_local.in | 99 -------- inputs/autoPyLoT_regional.in | 100 -------- makePyLoT.py | 6 +- pylot/core/pick/autopick.py | 6 +- pylot/testing/__init__.py | 0 pylot/testing/testHelpForm.py | 13 -- pylot/testing/testPickDlg.py | 20 -- pylot/testing/testPropDlg.py | 13 -- pylot/testing/testUIcomponents.py | 19 -- pylot/testing/testUtils.py | 23 -- pylot/testing/testWidgets.py | 17 -- pylot/testing/test_autopick.py | 311 ------------------------- pylot/testing/test_pdf.py | 8 - scripts/pylot-noisewindow.py | 16 -- scripts/pylot-pick-earliest-latest.py | 29 --- scripts/pylot-pick-firstmotion.py | 25 -- scripts/pylot-reasses-pilot-db.py | 41 ---- scripts/pylot-reasses-pilot-event.py | 38 ---- scripts/pylot-signalwindow.py | 15 -- scripts/pylot-snr.py | 32 --- scripts/run_makeCF.py | 314 -------------------------- 22 files changed, 6 insertions(+), 1239 deletions(-) delete mode 100644 inputs/autoPyLoT.in delete mode 100644 inputs/autoPyLoT_local.in delete mode 100644 inputs/autoPyLoT_regional.in delete mode 100644 pylot/testing/__init__.py delete mode 100644 pylot/testing/testHelpForm.py delete mode 100644 pylot/testing/testPickDlg.py delete mode 100644 pylot/testing/testPropDlg.py delete mode 100644 pylot/testing/testUIcomponents.py delete mode 100644 pylot/testing/testUtils.py delete mode 100644 pylot/testing/testWidgets.py delete mode 100644 pylot/testing/test_autopick.py delete mode 100644 pylot/testing/test_pdf.py delete mode 100644 scripts/pylot-noisewindow.py delete mode 100644 scripts/pylot-pick-earliest-latest.py delete mode 100644 scripts/pylot-pick-firstmotion.py delete mode 100644 scripts/pylot-reasses-pilot-db.py delete mode 100644 scripts/pylot-reasses-pilot-event.py delete mode 100644 scripts/pylot-signalwindow.py delete mode 100644 scripts/pylot-snr.py delete mode 100644 scripts/run_makeCF.py diff --git a/inputs/autoPyLoT.in b/inputs/autoPyLoT.in deleted file mode 100644 index 8155b07c..00000000 --- a/inputs/autoPyLoT.in +++ /dev/null @@ -1,100 +0,0 @@ -%This is a parameter input file for autoPyLoT. -%All main and special settings regarding data handling -%and picking are to be set here! -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -#main settings# -/DATA/Insheim #rootpath# %project path -EVENT_DATA/LOCAL #datapath# %data path -2013.02_Insheim #database# %name of data base -e0019.048.13 #eventID# %certain evnt ID for processing -True #apverbose# -PILOT #datastructure# %choose data structure -0 #iplot# %flag for plotting: 0 none, 1, partly, >1 everything -AUTOPHASES_AIC_HOS4_ARH #phasefile# %name of autoPILOT output phase file -AUTOLOC_AIC_HOS4_ARH #locfile# %name of autoPILOT output location file -AUTOFOCMEC_AIC_HOS4_ARH.in #focmecin# %name of focmec input file containing polarities -HYPOSAT #locrt# %location routine used ("HYPOINVERSE" or "HYPOSAT") -6 #pmin# %minimum required P picks for location -4 #p0min# %minimum required P picks for location if at least - %3 excellent P picks are found -2 #smin# %minimum required S picks for location -/home/ludger/bin/run_HYPOSAT4autoPILOT.csh #cshellp# %path and name of c-shell script to run location routine -7.6 8.5 #blon# %longitude bounding for location map -49 49.4 #blat# %lattitude bounding for location map -#parameters for moment magnitude estimation# -5000 #vp# %average P-wave velocity -2800 #vs# %average S-wave velocity -2200 #rho# %rock density [kg/m^3] -300 #Qp# %quality factor for P waves -100 #Qs# %quality factor for S waves -#common settings picker# -15 #pstart# %start time [s] for calculating CF for P-picking -40 #pstop# %end time [s] for calculating CF for P-picking --1.0 #sstart# %start time [s] after or before(-) P-onset for calculating CF for S-picking -7 #sstop# %end time [s] after P-onset for calculating CF for S-picking -2 20 #bpz1# %lower/upper corner freq. of first band pass filter Z-comp. [Hz] -2 30 #bpz2# %lower/upper corner freq. of second band pass filter Z-comp. [Hz] -2 15 #bph1# %lower/upper corner freq. of first band pass filter H-comp. [Hz] -2 20 #bph2# %lower/upper corner freq. of second band pass filter z-comp. [Hz] -#special settings for calculating CF# -%!!Be careful when editing the following!! -#Z-component# -HOS #algoP# %choose algorithm for P-onset determination (HOS, ARZ, or AR3) -7 #tlta# %for HOS-/AR-AIC-picker, length of LTA window [s] -4 #hosorder# %for HOS-picker, order of Higher Order Statistics -2 #Parorder# %for AR-picker, order of AR process of Z-component -1.2 #tdet1z# %for AR-picker, length of AR determination window [s] for Z-component, 1st pick -0.4 #tpred1z# %for AR-picker, length of AR prediction window [s] for Z-component, 1st pick -0.6 #tdet2z# %for AR-picker, length of AR determination window [s] for Z-component, 2nd pick -0.2 #tpred2z# %for AR-picker, length of AR prediction window [s] for Z-component, 2nd pick -0.001 #addnoise# %add noise to seismogram for stable AR prediction -3 0.1 0.5 0.1 #tsnrz# %for HOS/AR, window lengths for SNR-and slope estimation [tnoise,tsafetey,tsignal,tslope] [s] -3 #pickwinP# %for initial AIC pick, length of P-pick window [s] -8 #Precalcwin# %for HOS/AR, window length [s] for recalculation of CF (relative to 1st pick) -0 #peps4aic# %for HOS/AR, artificial uplift of samples of AIC-function (P) -0.2 #aictsmooth# %for HOS/AR, take average of samples for smoothing of AIC-function [s] -0.1 #tsmoothP# %for HOS/AR, take average of samples for smoothing CF [s] -0.001 #ausP# %for HOS/AR, artificial uplift of samples (aus) of CF (P) -1.3 #nfacP# %for HOS/AR, noise factor for noise level determination (P) -#H-components# -ARH #algoS# %choose algorithm for S-onset determination (ARH or AR3) -0.8 #tdet1h# %for HOS/AR, length of AR-determination window [s], H-components, 1st pick -0.4 #tpred1h# %for HOS/AR, length of AR-prediction window [s], H-components, 1st pick -0.6 #tdet2h# %for HOS/AR, length of AR-determinaton window [s], H-components, 2nd pick -0.3 #tpred2h# %for HOS/AR, length of AR-prediction window [s], H-components, 2nd pick -4 #Sarorder# %for AR-picker, order of AR process of H-components -6 #Srecalcwin# %for AR-picker, window length [s] for recalculation of CF (2nd pick) (H) -3 #pickwinS# %for initial AIC pick, length of S-pick window [s] -2 0.2 1.5 0.5 #tsnrh# %for ARH/AR3, window lengths for SNR-and slope estimation [tnoise,tsafetey,tsignal,tslope] [s] -0.05 #aictsmoothS# %for AIC-picker, take average of samples for smoothing of AIC-function [s] -0.02 #tsmoothS# %for AR-picker, take average of samples for smoothing CF [s] (S) -0.2 #pepsS# %for AR-picker, artificial uplift of samples of CF (S) -0.4 #ausS# %for HOS/AR, artificial uplift of samples (aus) of CF (S) -1.5 #nfacS# %for AR-picker, noise factor for noise level determination (S) -%first-motion picker% -1 #minfmweight# %minimum required p weight for first-motion determination -2 #minFMSNR# %miniumum required SNR for first-motion determination -0.2 #fmpickwin# %pick window around P onset for calculating zero crossings -%quality assessment% -#inital AIC onset# -0.01 0.02 0.04 0.08 #timeerrorsP# %discrete time errors [s] corresponding to picking weights [0 1 2 3] for P -0.04 0.08 0.16 0.32 #timeerrorsS# %discrete time errors [s] corresponding to picking weights [0 1 2 3] for S -80 #minAICPslope# %below this slope [counts/s] the initial P pick is rejected -1.2 #minAICPSNR# %below this SNR the initial P pick is rejected -50 #minAICSslope# %below this slope [counts/s] the initial S pick is rejected -1.5 #minAICSSNR# %below this SNR the initial S pick is rejected -#check duration of signal using envelope function# -1.5 #prepickwin# %pre-signal window length [s] for noise level estimation -0.7 #minsiglength# %minimum required length of signal [s] -0.2 #sgap# %safety gap between noise and signal window [s] -2 #noisefactor# %noiselevel*noisefactor=threshold -60 #minpercent# %per cent of samples required higher than threshold -#check for spuriously picked S-onsets# -3.0 #zfac# %P-amplitude must exceed zfac times RMS-S amplitude -#jackknife-processing for P-picks# -3 #thresholdweight#%minimum required weight of picks -3 #dttolerance# %maximum allowed deviation of P picks from median [s] -4 #minstats# %minimum number of stations with reliable P picks -3 #Sdttolerance# %maximum allowed deviation from Wadati-diagram - diff --git a/inputs/autoPyLoT_local.in b/inputs/autoPyLoT_local.in deleted file mode 100644 index d6f4ccf7..00000000 --- a/inputs/autoPyLoT_local.in +++ /dev/null @@ -1,99 +0,0 @@ -%This is a parameter input file for autoPyLoT. -%All main and special settings regarding data handling -%and picking are to be set here! -%Parameters are optimized for local data sets! -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -#main settings# -/DATA/Insheim #rootpath# %project path -EVENT_DATA/LOCAL #datapath# %data path -2016.08_Insheim #database# %name of data base -e0007.224.16 #eventID# %event ID for single event processing -/DATA/Insheim/STAT_INFO #invdir# %full path to inventory or dataless-seed file -PILOT #datastructure#%choose data structure -0 #iplot# %flag for plotting: 0 none, 1 partly, >1 everything -True #apverbose# %choose 'True' or 'False' for terminal output -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -#NLLoc settings# -/home/ludger/NLLOC #nllocbin# %path to NLLoc executable -/home/ludger/NLLOC/Insheim #nllocroot# %root of NLLoc-processing directory -AUTOPHASES.obs #phasefile# %name of autoPyLoT-output phase file for NLLoc - %(in nllocroot/obs) -Insheim_min1d032016_auto.in #ctrfile# %name of autoPyLoT-output control file for NLLoc - %(in nllocroot/run) -ttime #ttpatter# %pattern of NLLoc ttimes from grid - %(in nllocroot/times) -AUTOLOC_nlloc #outpatter# %pattern of NLLoc-output file - %(returns 'eventID_outpatter') -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -#parameters for seismic moment estimation# -3530 #vp# %average P-wave velocity -2500 #rho# %average rock density [kg/m^3] -300 0.8 #Qp# %quality factor for P waves ([Qp, ap], Qp*f^a) -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -AUTOFOCMEC_AIC_HOS4_ARH.in #focmecin# %name of focmec input file containing derived polarities -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -#common settings picker# -15.0 #pstart# %start time [s] for calculating CF for P-picking -60.0 #pstop# %end time [s] for calculating CF for P-picking --1.0 #sstart# %start time [s] relative to P-onset for calculating CF for S-picking -10.0 #sstop# %end time [s] after P-onset for calculating CF for S-picking -2 20 #bpz1# %lower/upper corner freq. of first band pass filter Z-comp. [Hz] -2 30 #bpz2# %lower/upper corner freq. of second band pass filter Z-comp. [Hz] -2 15 #bph1# %lower/upper corner freq. of first band pass filter H-comp. [Hz] -2 20 #bph2# %lower/upper corner freq. of second band pass filter z-comp. [Hz] -#special settings for calculating CF# -%!!Edit the following only if you know what you are doing!!% -#Z-component# -HOS #algoP# %choose algorithm for P-onset determination (HOS, ARZ, or AR3) -7.0 #tlta# %for HOS-/AR-AIC-picker, length of LTA window [s] -4 #hosorder# %for HOS-picker, order of Higher Order Statistics -2 #Parorder# %for AR-picker, order of AR process of Z-component -1.2 #tdet1z# %for AR-picker, length of AR determination window [s] for Z-component, 1st pick -0.4 #tpred1z# %for AR-picker, length of AR prediction window [s] for Z-component, 1st pick -0.6 #tdet2z# %for AR-picker, length of AR determination window [s] for Z-component, 2nd pick -0.2 #tpred2z# %for AR-picker, length of AR prediction window [s] for Z-component, 2nd pick -0.001 #addnoise# %add noise to seismogram for stable AR prediction -3 0.1 0.5 0.5 #tsnrz# %for HOS/AR, window lengths for SNR-and slope estimation [tnoise,tsafetey,tsignal,tslope] [s] -3.0 #pickwinP# %for initial AIC pick, length of P-pick window [s] -6.0 #Precalcwin# %for HOS/AR, window length [s] for recalculation of CF (relative to 1st pick) -0.2 #aictsmooth# %for HOS/AR, take average of samples for smoothing of AIC-function [s] -0.1 #tsmoothP# %for HOS/AR, take average of samples for smoothing CF [s] -0.001 #ausP# %for HOS/AR, artificial uplift of samples (aus) of CF (P) -1.3 #nfacP# %for HOS/AR, noise factor for noise level determination (P) -#H-components# -ARH #algoS# %choose algorithm for S-onset determination (ARH or AR3) -0.8 #tdet1h# %for HOS/AR, length of AR-determination window [s], H-components, 1st pick -0.4 #tpred1h# %for HOS/AR, length of AR-prediction window [s], H-components, 1st pick -0.6 #tdet2h# %for HOS/AR, length of AR-determinaton window [s], H-components, 2nd pick -0.3 #tpred2h# %for HOS/AR, length of AR-prediction window [s], H-components, 2nd pick -4 #Sarorder# %for AR-picker, order of AR process of H-components -5.0 #Srecalcwin# %for AR-picker, window length [s] for recalculation of CF (2nd pick) (H) -3.0 #pickwinS# %for initial AIC pick, length of S-pick window [s] -2 0.2 1.5 0.5 #tsnrh# %for ARH/AR3, window lengths for SNR-and slope estimation [tnoise,tsafetey,tsignal,tslope] [s] -0.5 #aictsmoothS# %for AIC-picker, take average of samples for smoothing of AIC-function [s] -0.7 #tsmoothS# %for AR-picker, take average of samples for smoothing CF [s] (S) -0.9 #ausS# %for HOS/AR, artificial uplift of samples (aus) of CF (S) -1.5 #nfacS# %for AR-picker, noise factor for noise level determination (S) -%first-motion picker% -1 #minfmweight# %minimum required P weight for first-motion determination -2 #minFMSNR# %miniumum required SNR for first-motion determination -0.2 #fmpickwin# %pick window around P onset for calculating zero crossings -%quality assessment% -#inital AIC onset# -0.05 0.10 0.20 0.40 #timeerrorsP# %discrete time errors [s] corresponding to picking weights [0 1 2 3] for P -0.10 0.20 0.40 0.80 #timeerrorsS# %discrete time errors [s] corresponding to picking weights [0 1 2 3] for S -4 #minAICPslope# %below this slope [counts/s] the initial P pick is rejected -1.2 #minAICPSNR# %below this SNR the initial P pick is rejected -2 #minAICSslope# %below this slope [counts/s] the initial S pick is rejected -1.5 #minAICSSNR# %below this SNR the initial S pick is rejected -#check duration of signal using envelope function# -3 #minsiglength# %minimum required length of signal [s] -1.0 #noisefactor# %noiselevel*noisefactor=threshold -40 #minpercent# %required percentage of samples higher than threshold -#check for spuriously picked S-onsets# -2.0 #zfac# %P-amplitude must exceed at least zfac times RMS-S amplitude -#check statistics of P onsets# -2.5 #mdttolerance# %maximum allowed deviation of P picks from median [s] -#wadati check# -1.0 #wdttolerance# %maximum allowed deviation from Wadati-diagram - diff --git a/inputs/autoPyLoT_regional.in b/inputs/autoPyLoT_regional.in deleted file mode 100644 index 14972000..00000000 --- a/inputs/autoPyLoT_regional.in +++ /dev/null @@ -1,100 +0,0 @@ -%This is a parameter input file for autoPyLoT. -%All main and special settings regarding data handling -%and picking are to be set here! -%Parameters are optimized for regional data sets! -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -#main settings# -/DATA/Egelados #rootpath# %project path -EVENT_DATA/LOCAL #datapath# %data path -2006.01_Nisyros #database# %name of data base -e1412.008.06 #eventID# %event ID for single event processing -/DATA/Egelados/STAT_INFO #invdir# %full path to inventory or dataless-seed file -PILOT #datastructure# %choose data structure -0 #iplot# %flag for plotting: 0 none, 1, partly, >1 everything -True #apverbose# %choose 'True' or 'False' for terminal output -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -#NLLoc settings# -/home/ludger/NLLOC #nllocbin# %path to NLLoc executable -/home/ludger/NLLOC/Insheim #nllocroot# %root of NLLoc-processing directory -AUTOPHASES.obs #phasefile# %name of autoPyLoT-output phase file for NLLoc - %(in nllocroot/obs) -Insheim_min1d2015_auto.in #ctrfile# %name of autoPyLoT-output control file for NLLoc - %(in nllocroot/run) -ttime #ttpatter# %pattern of NLLoc ttimes from grid - %(in nllocroot/times) -AUTOLOC_nlloc #outpatter# %pattern of NLLoc-output file - %(returns 'eventID_outpatter') -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -#parameters for seismic moment estimation# -3530 #vp# %average P-wave velocity -2700 #rho# %average rock density [kg/m^3] -1000f**0.8 #Qp# %quality factor for P waves (Qp*f^a) -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -AUTOFOCMEC_AIC_HOS4_ARH.in #focmecin# %name of focmec input file containing derived polarities -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -#common settings picker# -20 #pstart# %start time [s] for calculating CF for P-picking -100 #pstop# %end time [s] for calculating CF for P-picking -1.0 #sstart# %start time [s] after or before(-) P-onset for calculating CF for S-picking -100 #sstop# %end time [s] after P-onset for calculating CF for S-picking -3 10 #bpz1# %lower/upper corner freq. of first band pass filter Z-comp. [Hz] -3 12 #bpz2# %lower/upper corner freq. of second band pass filter Z-comp. [Hz] -3 8 #bph1# %lower/upper corner freq. of first band pass filter H-comp. [Hz] -3 6 #bph2# %lower/upper corner freq. of second band pass filter H-comp. [Hz] -#special settings for calculating CF# -%!!Be careful when editing the following!! -#Z-component# -HOS #algoP# %choose algorithm for P-onset determination (HOS, ARZ, or AR3) -7 #tlta# %for HOS-/AR-AIC-picker, length of LTA window [s] -4 #hosorder# %for HOS-picker, order of Higher Order Statistics -2 #Parorder# %for AR-picker, order of AR process of Z-component -1.2 #tdet1z# %for AR-picker, length of AR determination window [s] for Z-component, 1st pick -0.4 #tpred1z# %for AR-picker, length of AR prediction window [s] for Z-component, 1st pick -0.6 #tdet2z# %for AR-picker, length of AR determination window [s] for Z-component, 2nd pick -0.2 #tpred2z# %for AR-picker, length of AR prediction window [s] for Z-component, 2nd pick -0.001 #addnoise# %add noise to seismogram for stable AR prediction -5 0.2 3.0 1.5 #tsnrz# %for HOS/AR, window lengths for SNR-and slope estimation [tnoise,tsafetey,tsignal,tslope] [s] -3 #pickwinP# %for initial AIC and refined pick, length of P-pick window [s] -8 #Precalcwin# %for HOS/AR, window length [s] for recalculation of CF (relative to 1st pick) -1.0 #aictsmooth# %for HOS/AR, take average of samples for smoothing of AIC-function [s] -0.3 #tsmoothP# %for HOS/AR, take average of samples for smoothing CF [s] -0.3 #ausP# %for HOS/AR, artificial uplift of samples (aus) of CF (P) -1.3 #nfacP# %for HOS/AR, noise factor for noise level determination (P) -#H-components# -ARH #algoS# %choose algorithm for S-onset determination (ARH or AR3) -0.8 #tdet1h# %for HOS/AR, length of AR-determination window [s], H-components, 1st pick -0.4 #tpred1h# %for HOS/AR, length of AR-prediction window [s], H-components, 1st pick -0.6 #tdet2h# %for HOS/AR, length of AR-determinaton window [s], H-components, 2nd pick -0.3 #tpred2h# %for HOS/AR, length of AR-prediction window [s], H-components, 2nd pick -4 #Sarorder# %for AR-picker, order of AR process of H-components -10 #Srecalcwin# %for AR-picker, window length [s] for recalculation of CF (2nd pick) (H) -25 #pickwinS# %for initial AIC and refined pick, length of S-pick window [s] -5 0.2 3.0 3.0 #tsnrh# %for ARH/AR3, window lengths for SNR-and slope estimation [tnoise,tsafetey,tsignal,tslope] [s] -3.5 #aictsmoothS# %for AIC-picker, take average of samples for smoothing of AIC-function [s] -1.0 #tsmoothS# %for AR-picker, take average of samples for smoothing CF [s] (S) -0.2 #ausS# %for HOS/AR, artificial uplift of samples (aus) of CF (S) -1.5 #nfacS# %for AR-picker, noise factor for noise level determination (S) -%first-motion picker% -1 #minfmweight# %minimum required p weight for first-motion determination -2 #minFMSNR# %miniumum required SNR for first-motion determination -6.0 #fmpickwin# %pick window around P onset for calculating zero crossings -%quality assessment% -#inital AIC onset# -0.04 0.08 0.16 0.32 #timeerrorsP# %discrete time errors [s] corresponding to picking weights [0 1 2 3] for P -0.04 0.08 0.16 0.32 #timeerrorsS# %discrete time errors [s] corresponding to picking weights [0 1 2 3] for S -3 #minAICPslope# %below this slope [counts/s] the initial P pick is rejected -1.2 #minAICPSNR# %below this SNR the initial P pick is rejected -5 #minAICSslope# %below this slope [counts/s] the initial S pick is rejected -2.5 #minAICSSNR# %below this SNR the initial S pick is rejected -#check duration of signal using envelope function# -30 #minsiglength# %minimum required length of signal [s] -2.5 #noisefactor# %noiselevel*noisefactor=threshold -60 #minpercent# %required percentage of samples higher than threshold -#check for spuriously picked S-onsets# -0.5 #zfac# %P-amplitude must exceed at least zfac times RMS-S amplitude -#check statistics of P onsets# -45 #mdttolerance# %maximum allowed deviation of P picks from median [s] -#wadati check# -3.0 #wdttolerance# %maximum allowed deviation from Wadati-diagram - diff --git a/makePyLoT.py b/makePyLoT.py index 4c932ff1..cb74a36b 100644 --- a/makePyLoT.py +++ b/makePyLoT.py @@ -158,8 +158,8 @@ def buildPyLoT(verbosity=None): def installPyLoT(verbosity=None): - files_to_copy = {'autoPyLoT_local.in': ['~', '.pylot'], - 'autoPyLoT_regional.in': ['~', '.pylot']} + files_to_copy = {'pylot.in': ['~', '.pylot'], + 'pylot_global.in': ['~', '.pylot']} if verbosity > 0: print('starting installation of PyLoT ...') if verbosity > 1: @@ -174,7 +174,7 @@ def installPyLoT(verbosity=None): link_file = ans in file if link_file: link_dest = copy.deepcopy(destination) - link_dest.append('autoPyLoT.in') + link_dest.append('pylot.in') link_dest = os.path.join(*link_dest) destination.append(file) destination = os.path.join(*destination) diff --git a/pylot/core/pick/autopick.py b/pylot/core/pick/autopick.py index f0758d00..0350a640 100644 --- a/pylot/core/pick/autopick.py +++ b/pylot/core/pick/autopick.py @@ -38,7 +38,7 @@ def autopickevent(data, param, iplot=0, fig_dict=None, fig_dict_wadatijack=None, # get some parameters for quality control from - # parameter input file (usually autoPyLoT.in). + # parameter input file (usually pylot.in). wdttolerance = param.get('wdttolerance') mdttolerance = param.get('mdttolerance') jackfactor = param.get('jackfactor') @@ -113,7 +113,7 @@ def autopickstation(wfstream, pickparam, verbose=False, :type wfstream: obspy.core.stream.Stream :param pickparam: container of picking parameters from input file, - usually autoPyLoT.in + usually pylot.in :type pickparam: PylotParameter :param verbose: :type verbose: bool @@ -121,7 +121,7 @@ def autopickstation(wfstream, pickparam, verbose=False, """ # declaring pickparam variables (only for convenience) - # read your autoPyLoT.in for details! + # read your pylot.in for details! plt_flag = 0 # special parameters for P picking diff --git a/pylot/testing/__init__.py b/pylot/testing/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/pylot/testing/testHelpForm.py b/pylot/testing/testHelpForm.py deleted file mode 100644 index a12e782b..00000000 --- a/pylot/testing/testHelpForm.py +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import sys - -from PySide.QtGui import QApplication -from pylot.core.util.widgets import HelpForm - -app = QApplication(sys.argv) - -win = HelpForm() -win.show() -app.exec_() diff --git a/pylot/testing/testPickDlg.py b/pylot/testing/testPickDlg.py deleted file mode 100644 index 2b6125ca..00000000 --- a/pylot/testing/testPickDlg.py +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import sys - -import matplotlib - -matplotlib.use('Qt4Agg') -matplotlib.rcParams['backend.qt4'] = 'PySide' - -from PySide.QtGui import QApplication -from obspy.core import read -from pylot.core.util.widgets import PickDlg - -app = QApplication(sys.argv) - -data = read() -win = PickDlg(data=data) -win.show() -app.exec_() diff --git a/pylot/testing/testPropDlg.py b/pylot/testing/testPropDlg.py deleted file mode 100644 index 0934a8fd..00000000 --- a/pylot/testing/testPropDlg.py +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import sys - -from PySide.QtGui import QApplication -from pylot.core.util.widgets import PropertiesDlg - -app = QApplication(sys.argv) - -win = PropertiesDlg() -win.show() -app.exec_() diff --git a/pylot/testing/testUIcomponents.py b/pylot/testing/testUIcomponents.py deleted file mode 100644 index db09a08f..00000000 --- a/pylot/testing/testUIcomponents.py +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - - -import sys -import time - -from PySide.QtGui import QApplication -from pylot.core.util.widgets import FilterOptionsDialog, PropertiesDlg, HelpForm - -dialogs = [FilterOptionsDialog, PropertiesDlg, HelpForm] - -app = QApplication(sys.argv) - -for dlg in dialogs: - win = dlg() - win.show() - time.sleep(1) - win.destroy() diff --git a/pylot/testing/testUtils.py b/pylot/testing/testUtils.py deleted file mode 100644 index 15cf8c94..00000000 --- a/pylot/testing/testUtils.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -''' -Created on 10.11.2014 - -@author: sebastianw -''' -import unittest - - -class Test(unittest.TestCase): - def setUp(self): - pass - - def tearDown(self): - pass - - def testName(self): - pass - - -if __name__ == "__main__": - # import sys;sys.argv = ['', 'Test.testName'] - unittest.main() diff --git a/pylot/testing/testWidgets.py b/pylot/testing/testWidgets.py deleted file mode 100644 index cd240237..00000000 --- a/pylot/testing/testWidgets.py +++ /dev/null @@ -1,17 +0,0 @@ -# -*- coding: utf-8 -*- -''' -Created on 10.11.2014 - -@author: sebastianw -''' -import unittest - - -class Test(unittest.TestCase): - def testName(self): - pass - - -if __name__ == "__main__": - # import sys;sys.argv = ['', 'Test.testName'] - unittest.main() diff --git a/pylot/testing/test_autopick.py b/pylot/testing/test_autopick.py deleted file mode 100644 index 6ff5a7d7..00000000 --- a/pylot/testing/test_autopick.py +++ /dev/null @@ -1,311 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -""" - Script to run autoPyLoT-script "makeCF.py". - Only for test purposes! -""" - -import argparse -import glob - -from obspy.core import read -from pylot.core.pick.charfuns import * -from pylot.core.pick.picker import * - - -def run_makeCF(project, database, event, iplot, station=None): - # parameters for CF calculation - t2 = 7 # length of moving window for HOS calculation [sec] - p = 4 # order of HOS - cuttimes = [10, 50] # start and end time for CF calculation - bpz = [2, 30] # corner frequencies of bandpass filter, vertical component - bph = [2, 15] # corner frequencies of bandpass filter, horizontal components - tdetz = 1.2 # length of AR-determination window [sec], vertical component - tdeth = 0.8 # length of AR-determination window [sec], horizontal components - tpredz = 0.4 # length of AR-prediction window [sec], vertical component - tpredh = 0.4 # length of AR-prediction window [sec], horizontal components - addnoise = 0.001 # add noise to seismogram for stable AR prediction - arzorder = 2 # chosen order of AR process, vertical component - arhorder = 4 # chosen order of AR process, horizontal components - TSNRhos = [5, 0.5, 1, 0.1] # window lengths [s] for calculating SNR for earliest/latest pick and quality assessment - # from HOS-CF [noise window, safety gap, signal window, slope determination window] - TSNRarz = [5, 0.5, 1, 0.5] # window lengths [s] for calculating SNR for earliest/lates pick and quality assessment - # from ARZ-CF - # get waveform data - if station: - dpz = '/data/%s/EVENT_DATA/LOCAL/%s/%s/%s*HZ.msd' % (project, database, event, station) - dpe = '/data/%s/EVENT_DATA/LOCAL/%s/%s/%s*HE.msd' % (project, database, event, station) - dpn = '/data/%s/EVENT_DATA/LOCAL/%s/%s/%s*HN.msd' % (project, database, event, station) - # dpz = '/DATA/%s/EVENT_DATA/LOCAL/%s/%s/%s*_z.gse' % (project, database, event, station) - # dpe = '/DATA/%s/EVENT_DATA/LOCAL/%s/%s/%s*_e.gse' % (project, database, event, station) - # dpn = '/DATA/%s/EVENT_DATA/LOCAL/%s/%s/%s*_n.gse' % (project, database, event, station) - else: - # dpz = '/DATA/%s/EVENT_DATA/LOCAL/%s/%s/*_z.gse' % (project, database, event) - # dpe = '/DATA/%s/EVENT_DATA/LOCAL/%s/%s/*_e.gse' % (project, database, event) - # dpn = '/DATA/%s/EVENT_DATA/LOCAL/%s/%s/*_n.gse' % (project, database, event) - dpz = '/data/%s/EVENT_DATA/LOCAL/%s/%s/*HZ.msd' % (project, database, event) - dpe = '/data/%s/EVENT_DATA/LOCAL/%s/%s/*HE.msd' % (project, database, event) - dpn = '/data/%s/EVENT_DATA/LOCAL/%s/%s/*HN.msd' % (project, database, event) - wfzfiles = glob.glob(dpz) - wfefiles = glob.glob(dpe) - wfnfiles = glob.glob(dpn) - if wfzfiles: - for i in range(len(wfzfiles)): - print - 'Vertical component data found ...' - print - wfzfiles[i] - st = read('%s' % wfzfiles[i]) - st_copy = st.copy() - # filter and taper data - tr_filt = st[0].copy() - tr_filt.filter('bandpass', freqmin=bpz[0], freqmax=bpz[1], zerophase=False) - tr_filt.taper(max_percentage=0.05, type='hann') - st_copy[0].data = tr_filt.data - ############################################################## - # calculate HOS-CF using subclass HOScf of class CharacteristicFunction - hoscf = HOScf(st_copy, cuttimes, t2, p) # instance of HOScf - ############################################################## - # calculate AIC-HOS-CF using subclass AICcf of class CharacteristicFunction - # class needs stream object => build it - tr_aic = tr_filt.copy() - tr_aic.data = hoscf.getCF() - st_copy[0].data = tr_aic.data - aiccf = AICcf(st_copy, cuttimes) # instance of AICcf - ############################################################## - # get prelimenary onset time from AIC-HOS-CF using subclass AICPicker of class AutoPicking - aicpick = AICPicker(aiccf, None, TSNRhos, 3, 10, None, 0.1) - ############################################################## - # get refined onset time from HOS-CF using class Picker - hospick = PragPicker(hoscf, None, TSNRhos, 2, 10, 0.001, 0.2, aicpick.getpick()) - # get earliest and latest possible picks - hosELpick = EarlLatePicker(hoscf, 1.5, TSNRhos, None, 10, None, None, hospick.getpick()) - ############################################################## - # calculate ARZ-CF using subclass ARZcf of class CharcteristicFunction - # get stream object of filtered data - st_copy[0].data = tr_filt.data - arzcf = ARZcf(st_copy, cuttimes, tpredz, arzorder, tdetz, addnoise) # instance of ARZcf - ############################################################## - # calculate AIC-ARZ-CF using subclass AICcf of class CharacteristicFunction - # class needs stream object => build it - tr_arzaic = tr_filt.copy() - tr_arzaic.data = arzcf.getCF() - st_copy[0].data = tr_arzaic.data - araiccf = AICcf(st_copy, cuttimes, tpredz, 0, tdetz) # instance of AICcf - ############################################################## - # get onset time from AIC-ARZ-CF using subclass AICPicker of class AutoPicking - aicarzpick = AICPicker(araiccf, 1.5, TSNRarz, 2, 10, None, 0.1) - ############################################################## - # get refined onset time from ARZ-CF using class Picker - arzpick = PragPicker(arzcf, 1.5, TSNRarz, 2.0, 10, 0.1, 0.05, aicarzpick.getpick()) - # get earliest and latest possible picks - arzELpick = EarlLatePicker(arzcf, 1.5, TSNRarz, None, 10, None, None, arzpick.getpick()) - elif not wfzfiles: - print - 'No vertical component data found!' - - if wfefiles and wfnfiles: - for i in range(len(wfefiles)): - print - 'Horizontal component data found ...' - print - wfefiles[i] - print - wfnfiles[i] - # merge streams - H = read('%s' % wfefiles[i]) - H += read('%s' % wfnfiles[i]) - H_copy = H.copy() - # filter and taper data - trH1_filt = H[0].copy() - trH2_filt = H[1].copy() - trH1_filt.filter('bandpass', freqmin=bph[0], freqmax=bph[1], zerophase=False) - trH2_filt.filter('bandpass', freqmin=bph[0], freqmax=bph[1], zerophase=False) - trH1_filt.taper(max_percentage=0.05, type='hann') - trH2_filt.taper(max_percentage=0.05, type='hann') - H_copy[0].data = trH1_filt.data - H_copy[1].data = trH2_filt.data - - ############################################################## - # calculate ARH-CF using subclass ARHcf of class CharcteristicFunction - arhcf = ARHcf(H_copy, cuttimes, tpredh, arhorder, tdeth, addnoise) # instance of ARHcf - ############################################################## - # calculate AIC-ARH-CF using subclass AICcf of class CharacteristicFunction - # class needs stream object => build it - tr_arhaic = trH1_filt.copy() - tr_arhaic.data = arhcf.getCF() - H_copy[0].data = tr_arhaic.data - # calculate ARH-AIC-CF - arhaiccf = AICcf(H_copy, cuttimes, tpredh, 0, tdeth) # instance of AICcf - ############################################################## - # get onset time from AIC-ARH-CF using subclass AICPicker of class AutoPicking - aicarhpick = AICPicker(arhaiccf, 1.5, TSNRarz, 4, 10, None, 0.1) - ############################################################### - # get refined onset time from ARH-CF using class Picker - arhpick = PragPicker(arhcf, 1.5, TSNRarz, 2.5, 10, 0.1, 0.05, aicarhpick.getpick()) - # get earliest and latest possible picks - arhELpick = EarlLatePicker(arhcf, 1.5, TSNRarz, None, 10, None, None, arhpick.getpick()) - - # create stream with 3 traces - # merge streams - AllC = read('%s' % wfefiles[i]) - AllC += read('%s' % wfnfiles[i]) - AllC += read('%s' % wfzfiles[i]) - # filter and taper data - All1_filt = AllC[0].copy() - All2_filt = AllC[1].copy() - All3_filt = AllC[2].copy() - All1_filt.filter('bandpass', freqmin=bph[0], freqmax=bph[1], zerophase=False) - All2_filt.filter('bandpass', freqmin=bph[0], freqmax=bph[1], zerophase=False) - All3_filt.filter('bandpass', freqmin=bpz[0], freqmax=bpz[1], zerophase=False) - All1_filt.taper(max_percentage=0.05, type='hann') - All2_filt.taper(max_percentage=0.05, type='hann') - All3_filt.taper(max_percentage=0.05, type='hann') - AllC[0].data = All1_filt.data - AllC[1].data = All2_filt.data - AllC[2].data = All3_filt.data - # calculate AR3C-CF using subclass AR3Ccf of class CharacteristicFunction - ar3ccf = AR3Ccf(AllC, cuttimes, tpredz, arhorder, tdetz, addnoise) # instance of AR3Ccf - # get earliest and latest possible pick from initial ARH-pick - ar3cELpick = EarlLatePicker(ar3ccf, 1.5, TSNRarz, None, 10, None, None, arhpick.getpick()) - ############################################################## - if iplot: - # plot vertical trace - plt.figure() - tr = st[0] - tdata = np.arange(0, tr.stats.npts / tr.stats.sampling_rate, tr.stats.delta) - p1, = plt.plot(tdata, tr_filt.data / max(tr_filt.data), 'k') - p2, = plt.plot(hoscf.getTimeArray(), hoscf.getCF() / max(hoscf.getCF()), 'r') - p3, = plt.plot(aiccf.getTimeArray(), aiccf.getCF() / max(aiccf.getCF()), 'b') - p4, = plt.plot(arzcf.getTimeArray(), arzcf.getCF() / max(arzcf.getCF()), 'g') - p5, = plt.plot(araiccf.getTimeArray(), araiccf.getCF() / max(araiccf.getCF()), 'y') - plt.plot([aicpick.getpick(), aicpick.getpick()], [-1, 1], 'b--') - plt.plot([aicpick.getpick() - 0.5, aicpick.getpick() + 0.5], [1, 1], 'b') - plt.plot([aicpick.getpick() - 0.5, aicpick.getpick() + 0.5], [-1, -1], 'b') - plt.plot([hospick.getpick(), hospick.getpick()], [-1.3, 1.3], 'r', linewidth=2) - plt.plot([hospick.getpick() - 0.5, hospick.getpick() + 0.5], [1.3, 1.3], 'r') - plt.plot([hospick.getpick() - 0.5, hospick.getpick() + 0.5], [-1.3, -1.3], 'r') - plt.plot([hosELpick.getLpick(), hosELpick.getLpick()], [-1.1, 1.1], 'r--') - plt.plot([hosELpick.getEpick(), hosELpick.getEpick()], [-1.1, 1.1], 'r--') - plt.plot([aicarzpick.getpick(), aicarzpick.getpick()], [-1.2, 1.2], 'y', linewidth=2) - plt.plot([aicarzpick.getpick() - 0.5, aicarzpick.getpick() + 0.5], [1.2, 1.2], 'y') - plt.plot([aicarzpick.getpick() - 0.5, aicarzpick.getpick() + 0.5], [-1.2, -1.2], 'y') - plt.plot([arzpick.getpick(), arzpick.getpick()], [-1.4, 1.4], 'g', linewidth=2) - plt.plot([arzpick.getpick() - 0.5, arzpick.getpick() + 0.5], [1.4, 1.4], 'g') - plt.plot([arzpick.getpick() - 0.5, arzpick.getpick() + 0.5], [-1.4, -1.4], 'g') - plt.plot([arzELpick.getLpick(), arzELpick.getLpick()], [-1.2, 1.2], 'g--') - plt.plot([arzELpick.getEpick(), arzELpick.getEpick()], [-1.2, 1.2], 'g--') - plt.yticks([]) - plt.ylim([-1.5, 1.5]) - plt.xlabel('Time [s]') - plt.ylabel('Normalized Counts') - plt.title('%s, %s, CF-SNR=%7.2f, CF-Slope=%12.2f' % (tr.stats.station, - tr.stats.channel, aicpick.getSNR(), - aicpick.getSlope())) - plt.suptitle(tr.stats.starttime) - plt.legend([p1, p2, p3, p4, p5], ['Data', 'HOS-CF', 'HOSAIC-CF', 'ARZ-CF', 'ARZAIC-CF']) - # plot horizontal traces - plt.figure(2) - plt.subplot(2, 1, 1) - tsteph = tpredh / 4 - th1data = np.arange(0, trH1_filt.stats.npts / trH1_filt.stats.sampling_rate, trH1_filt.stats.delta) - th2data = np.arange(0, trH2_filt.stats.npts / trH2_filt.stats.sampling_rate, trH2_filt.stats.delta) - tarhcf = np.arange(0, len(arhcf.getCF()) * tsteph, tsteph) + cuttimes[0] + tdeth + tpredh - p21, = plt.plot(th1data, trH1_filt.data / max(trH1_filt.data), 'k') - p22, = plt.plot(arhcf.getTimeArray(), arhcf.getCF() / max(arhcf.getCF()), 'r') - p23, = plt.plot(arhaiccf.getTimeArray(), arhaiccf.getCF() / max(arhaiccf.getCF())) - plt.plot([aicarhpick.getpick(), aicarhpick.getpick()], [-1, 1], 'b') - plt.plot([aicarhpick.getpick() - 0.5, aicarhpick.getpick() + 0.5], [1, 1], 'b') - plt.plot([aicarhpick.getpick() - 0.5, aicarhpick.getpick() + 0.5], [-1, -1], 'b') - plt.plot([arhpick.getpick(), arhpick.getpick()], [-1, 1], 'r') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [1, 1], 'r') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [-1, -1], 'r') - plt.plot([arhELpick.getLpick(), arhELpick.getLpick()], [-0.8, 0.8], 'r--') - plt.plot([arhELpick.getEpick(), arhELpick.getEpick()], [-0.8, 0.8], 'r--') - plt.plot([arhpick.getpick() + arhELpick.getPickError(), arhpick.getpick() + arhELpick.getPickError()], - [-0.2, 0.2], 'r--') - plt.plot([arhpick.getpick() - arhELpick.getPickError(), arhpick.getpick() - arhELpick.getPickError()], - [-0.2, 0.2], 'r--') - plt.yticks([]) - plt.ylim([-1.5, 1.5]) - plt.ylabel('Normalized Counts') - plt.title([trH1_filt.stats.station, trH1_filt.stats.channel]) - plt.suptitle(trH1_filt.stats.starttime) - plt.legend([p21, p22, p23], ['Data', 'ARH-CF', 'ARHAIC-CF']) - plt.subplot(2, 1, 2) - plt.plot(th2data, trH2_filt.data / max(trH2_filt.data), 'k') - plt.plot(arhcf.getTimeArray(), arhcf.getCF() / max(arhcf.getCF()), 'r') - plt.plot(arhaiccf.getTimeArray(), arhaiccf.getCF() / max(arhaiccf.getCF())) - plt.plot([aicarhpick.getpick(), aicarhpick.getpick()], [-1, 1], 'b') - plt.plot([aicarhpick.getpick() - 0.5, aicarhpick.getpick() + 0.5], [1, 1], 'b') - plt.plot([aicarhpick.getpick() - 0.5, aicarhpick.getpick() + 0.5], [-1, -1], 'b') - plt.plot([arhpick.getpick(), arhpick.getpick()], [-1, 1], 'r') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [1, 1], 'r') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [-1, -1], 'r') - plt.plot([arhELpick.getLpick(), arhELpick.getLpick()], [-0.8, 0.8], 'r--') - plt.plot([arhELpick.getEpick(), arhELpick.getEpick()], [-0.8, 0.8], 'r--') - plt.plot([arhpick.getpick() + arhELpick.getPickError(), arhpick.getpick() + arhELpick.getPickError()], - [-0.2, 0.2], 'r--') - plt.plot([arhpick.getpick() - arhELpick.getPickError(), arhpick.getpick() - arhELpick.getPickError()], - [-0.2, 0.2], 'r--') - plt.title([trH2_filt.stats.station, trH2_filt.stats.channel]) - plt.yticks([]) - plt.ylim([-1.5, 1.5]) - plt.xlabel('Time [s]') - plt.ylabel('Normalized Counts') - # plot 3-component window - plt.figure(3) - plt.subplot(3, 1, 1) - p31, = plt.plot(tdata, tr_filt.data / max(tr_filt.data), 'k') - p32, = plt.plot(ar3ccf.getTimeArray(), ar3ccf.getCF() / max(ar3ccf.getCF()), 'r') - plt.plot([arhpick.getpick(), arhpick.getpick()], [-1, 1], 'b') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [-1, -1], 'b') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [1, 1], 'b') - plt.plot([ar3cELpick.getLpick(), ar3cELpick.getLpick()], [-0.8, 0.8], 'b--') - plt.plot([ar3cELpick.getEpick(), ar3cELpick.getEpick()], [-0.8, 0.8], 'b--') - plt.yticks([]) - plt.xticks([]) - plt.ylabel('Normalized Counts') - plt.title([tr.stats.station, tr.stats.channel]) - plt.suptitle(trH1_filt.stats.starttime) - plt.legend([p31, p32], ['Data', 'AR3C-CF']) - plt.subplot(3, 1, 2) - plt.plot(th1data, trH1_filt.data / max(trH1_filt.data), 'k') - plt.plot(ar3ccf.getTimeArray(), ar3ccf.getCF() / max(ar3ccf.getCF()), 'r') - plt.plot([arhpick.getpick(), arhpick.getpick()], [-1, 1], 'b') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [-1, -1], 'b') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [1, 1], 'b') - plt.plot([ar3cELpick.getLpick(), ar3cELpick.getLpick()], [-0.8, 0.8], 'b--') - plt.plot([ar3cELpick.getEpick(), ar3cELpick.getEpick()], [-0.8, 0.8], 'b--') - plt.yticks([]) - plt.xticks([]) - plt.ylabel('Normalized Counts') - plt.title([trH1_filt.stats.station, trH1_filt.stats.channel]) - plt.subplot(3, 1, 3) - plt.plot(th2data, trH2_filt.data / max(trH2_filt.data), 'k') - plt.plot(ar3ccf.getTimeArray(), ar3ccf.getCF() / max(ar3ccf.getCF()), 'r') - plt.plot([arhpick.getpick(), arhpick.getpick()], [-1, 1], 'b') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [-1, -1], 'b') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [1, 1], 'b') - plt.plot([ar3cELpick.getLpick(), ar3cELpick.getLpick()], [-0.8, 0.8], 'b--') - plt.plot([ar3cELpick.getEpick(), ar3cELpick.getEpick()], [-0.8, 0.8], 'b--') - plt.yticks([]) - plt.ylabel('Normalized Counts') - plt.title([trH2_filt.stats.station, trH2_filt.stats.channel]) - plt.xlabel('Time [s]') - plt.show() - raw_input() - plt.close() - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument('--project', type=str, help='project name (e.g. Insheim)') - parser.add_argument('--database', type=str, help='event data base (e.g. 2014.09_Insheim)') - parser.add_argument('--event', type=str, help='event ID (e.g. e0010.015.14)') - parser.add_argument('--iplot', help='anything, if set, figure occurs') - parser.add_argument('--station', type=str, help='Station ID (e.g. INS3) (optional)') - args = parser.parse_args() - - run_makeCF(args.project, args.database, args.event, args.iplot, args.station) diff --git a/pylot/testing/test_pdf.py b/pylot/testing/test_pdf.py deleted file mode 100644 index a40a620a..00000000 --- a/pylot/testing/test_pdf.py +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -from pylot.core.util.pdf import ProbabilityDensityFunction - -pdf = ProbabilityDensityFunction.from_pick(0.34, 0.5, 0.54, type='exp') -pdf2 = ProbabilityDensityFunction.from_pick(0.34, 0.5, 0.54, type='exp') -diff = pdf - pdf2 diff --git a/scripts/pylot-noisewindow.py b/scripts/pylot-noisewindow.py deleted file mode 100644 index 7af8f9ae..00000000 --- a/scripts/pylot-noisewindow.py +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import argparse - -import numpy -from pylot.core.pick.utils import getnoisewin - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - parser.add_argument('--t', type=numpy.array, help='numpy array of time stamps') - parser.add_argument('--t1', type=float, help='time from which relativ to it noise window is extracted') - parser.add_argument('--tnoise', type=float, help='length of time window [s] for noise part extraction') - parser.add_argument('--tgap', type=float, help='safety gap between signal (t1=onset) and noise') - args = parser.parse_args() - getnoisewin(args.t, args.t1, args.tnoise, args.tgap) diff --git a/scripts/pylot-pick-earliest-latest.py b/scripts/pylot-pick-earliest-latest.py deleted file mode 100644 index f013be44..00000000 --- a/scripts/pylot-pick-earliest-latest.py +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -""" - Created Mar 2015 - Transcription of the rezipe of Diehl et al. (2009) for consistent phase - picking. For a given inital (the most likely) pick, the corresponding earliest - and latest possible pick is calculated based on noise measurements in front of - the most likely pick and signal wavelength derived from zero crossings. - - :author: Ludger Kueperkoch / MAGS2 EP3 working group -""" - -import argparse - -import obspy -from pylot.core.pick.utils import earllatepicker - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - parser.add_argument('--X', type=~obspy.core.stream.Stream, - help='time series (seismogram) read with obspy module read') - parser.add_argument('--nfac', type=int, - help='(noise factor), nfac times noise level to calculate latest possible pick') - parser.add_argument('--TSNR', type=tuple, help='length of time windows around pick used to determine SNR \ - [s] (Tnoise, Tgap, Tsignal)') - parser.add_argument('--Pick1', type=float, help='Onset time of most likely pick') - parser.add_argument('--iplot', type=int, help='if set, figure no. iplot occurs') - args = parser.parse_args() - earllatepicker(args.X, args.nfac, args.TSNR, args.Pick1, args.iplot) diff --git a/scripts/pylot-pick-firstmotion.py b/scripts/pylot-pick-firstmotion.py deleted file mode 100644 index 44316a8a..00000000 --- a/scripts/pylot-pick-firstmotion.py +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -""" - Created Mar 2015 - Function to derive first motion (polarity) for given phase onset based on zero crossings. - - :author: MAGS2 EP3 working group / Ludger Kueperkoch -""" - -import argparse - -import obspy -from pylot.core.pick.utils import fmpicker - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - parser.add_argument('--Xraw', type=obspy.core.stream.Stream, - help='unfiltered time series (seismogram) read with obspy module read') - parser.add_argument('--Xfilt', type=obspy.core.stream.Stream, - help='filtered time series (seismogram) read with obspy module read') - parser.add_argument('--pickwin', type=float, help='length of pick window [s] for first motion determination') - parser.add_argument('--Pick', type=float, help='Onset time of most likely pick') - parser.add_argument('--iplot', type=int, help='if set, figure no. iplot occurs') - args = parser.parse_args() - fmpicker(args.Xraw, args.Xfilt, args.pickwin, args.Pick, args.iplot) diff --git a/scripts/pylot-reasses-pilot-db.py b/scripts/pylot-reasses-pilot-db.py deleted file mode 100644 index d6e599ad..00000000 --- a/scripts/pylot-reasses-pilot-db.py +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import argparse - -from pylot.core.io.phases import reassess_pilot_db -from pylot.core.util.version import get_git_version as _getVersionString - -__version__ = _getVersionString() -__author__ = 'S. Wehling-Benatelli' - -if __name__ == '__main__': - parser = argparse.ArgumentParser( - description='reassess old PILOT event data base in terms of consistent ' - 'automatic uncertainty estimation', - epilog='Script written by {author} belonging to PyLoT version' - ' {version}\n'.format(author=__author__, - version=__version__) - ) - - parser.add_argument( - 'root', type=str, help='specifies the root directory' - ) - parser.add_argument( - 'db', type=str, help='specifies the database name' - ) - parser.add_argument( - '--output', '-o', type=str, help='path to the output directory', - dest='output' - ) - parser.add_argument( - '--parameterfile', '-p', type=str, - help='full path to the parameterfile', dest='parfile' - ) - parser.add_argument( - '--verbosity', '-v', action='count', help='increase output verbosity', - default=0, dest='verbosity' - ) - - args = parser.parse_args() - reassess_pilot_db(args.root, args.db, args.output, args.parfile, args.verbosity) diff --git a/scripts/pylot-reasses-pilot-event.py b/scripts/pylot-reasses-pilot-event.py deleted file mode 100644 index 82f42b91..00000000 --- a/scripts/pylot-reasses-pilot-event.py +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import argparse - -from pylot.core.io.phases import reassess_pilot_event -from pylot.core.util.version import get_git_version as _getVersionString - -__version__ = _getVersionString() -__author__ = 'S. Wehling-Benatelli' - -if __name__ == '__main__': - parser = argparse.ArgumentParser( - description='reassess old PILOT event data in terms of consistent ' - 'automatic uncertainty estimation', - epilog='Script written by {author} belonging to PyLoT version' - ' {version}\n'.format(author=__author__, - version=__version__) - ) - - parser.add_argument( - 'root', type=str, help='specifies the root directory' - ) - parser.add_argument( - 'db', type=str, help='specifies the database name' - ) - parser.add_argument( - 'id', type=str, help='PILOT event identifier' - ) - parser.add_argument( - '--output', '-o', type=str, help='path to the output directory', dest='output' - ) - parser.add_argument( - '--parameterfile', '-p', type=str, help='full path to the parameterfile', dest='parfile' - ) - - args = parser.parse_args() - reassess_pilot_event(args.root, args.db, args.id, args.output, args.parfile) diff --git a/scripts/pylot-signalwindow.py b/scripts/pylot-signalwindow.py deleted file mode 100644 index 37b7b644..00000000 --- a/scripts/pylot-signalwindow.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import argparse - -import numpy -from pylot.core.pick.utils import getsignalwin - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - parser.add_argument('--t', type=numpy.array, help='numpy array of time stamps') - parser.add_argument('--t1', type=float, help='time from which relativ to it signal window is extracted') - parser.add_argument('--tsignal', type=float, help='length of time window [s] for signal part extraction') - args = parser.parse_args() - getsignalwin(args.t, args.t1, args.tsignal) diff --git a/scripts/pylot-snr.py b/scripts/pylot-snr.py deleted file mode 100644 index 1bb5b31b..00000000 --- a/scripts/pylot-snr.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -""" - Created Mar/Apr 2015 - Function to calculate SNR of certain part of seismogram relative - to given time. Returns SNR and SNR [dB]. - - :author: Ludger Kueperkoch /MAGS EP3 working group -""" - -import argparse - -import obspy -from pylot.core.pick.utils import getSNR - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - parser.add_argument('--data', '-d', type=obspy.core.stream.Stream, - help='time series (seismogram) read with obspy module ' - 'read', - dest='data') - parser.add_argument('--tsnr', '-s', type=tuple, - help='length of time windows around pick used to ' - 'determine SNR [s] (Tnoise, Tgap, Tsignal)', - dest='tsnr') - parser.add_argument('--time', '-t', type=float, - help='initial time from which noise and signal windows ' - 'are calculated', - dest='time') - args = parser.parse_args() - print - getSNR(args.data, args.tsnr, args.time) diff --git a/scripts/run_makeCF.py b/scripts/run_makeCF.py deleted file mode 100644 index 635b5710..00000000 --- a/scripts/run_makeCF.py +++ /dev/null @@ -1,314 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -""" - Script to run autoPyLoT-script "run_makeCF.py". - Only for test purposes! -""" - -import argparse -import glob - -from obspy.core import read -from pylot.core.pick.utils import * - - -def run_makeCF(project, database, event, iplot, station=None): - # parameters for CF calculation - t2 = 7 # length of moving window for HOS calculation [sec] - p = 4 # order of HOS - cuttimes = [10, 50] # start and end time for CF calculation - bpz = [2, 30] # corner frequencies of bandpass filter, vertical component - bph = [2, 15] # corner frequencies of bandpass filter, horizontal components - tdetz = 1.2 # length of AR-determination window [sec], vertical component - tdeth = 0.8 # length of AR-determination window [sec], horizontal components - tpredz = 0.4 # length of AR-prediction window [sec], vertical component - tpredh = 0.4 # length of AR-prediction window [sec], horizontal components - addnoise = 0.001 # add noise to seismogram for stable AR prediction - arzorder = 2 # chosen order of AR process, vertical component - arhorder = 4 # chosen order of AR process, horizontal components - TSNRhos = [5, 0.5, 1, .6] # window lengths [s] for calculating SNR for earliest/latest pick and quality assessment - # from HOS-CF [noise window, safety gap, signal window, slope determination window] - TSNRarz = [5, 0.5, 1, 1.0] # window lengths [s] for calculating SNR for earliest/lates pick and quality assessment - # from ARZ-CF - # get waveform data - if station: - dpz = '/DATA/%s/EVENT_DATA/LOCAL/%s/%s/%s*HZ.msd' % (project, database, event, station) - dpe = '/DATA/%s/EVENT_DATA/LOCAL/%s/%s/%s*HE.msd' % (project, database, event, station) - dpn = '/DATA/%s/EVENT_DATA/LOCAL/%s/%s/%s*HN.msd' % (project, database, event, station) - # dpz = '/DATA/%s/EVENT_DATA/LOCAL/%s/%s/%s*_z.gse' % (project, database, event, station) - # dpe = '/DATA/%s/EVENT_DATA/LOCAL/%s/%s/%s*_e.gse' % (project, database, event, station) - # dpn = '/DATA/%s/EVENT_DATA/LOCAL/%s/%s/%s*_n.gse' % (project, database, event, station) - else: - dpz = '/DATA/%s/EVENT_DATA/LOCAL/%s/%s/*HZ.msd' % (project, database, event) - dpe = '/DATA/%s/EVENT_DATA/LOCAL/%s/%s/*HE.msd' % (project, database, event) - dpn = '/DATA/%s/EVENT_DATA/LOCAL/%s/%s/*HN.msd' % (project, database, event) - wfzfiles = glob.glob(dpz) - wfefiles = glob.glob(dpe) - wfnfiles = glob.glob(dpn) - if wfzfiles: - for i in range(len(wfzfiles)): - print - 'Vertical component data found ...' - print - wfzfiles[i] - st = read('%s' % wfzfiles[i]) - st_copy = st.copy() - # filter and taper data - tr_filt = st[0].copy() - tr_filt.filter('bandpass', freqmin=bpz[0], freqmax=bpz[1], zerophase=False) - tr_filt.taper(max_percentage=0.05, type='hann') - st_copy[0].data = tr_filt.data - ############################################################## - # calculate HOS-CF using subclass HOScf of class CharacteristicFunction - hoscf = HOScf(st_copy, cuttimes, t2, p) # instance of HOScf - ############################################################## - # calculate AIC-HOS-CF using subclass AICcf of class CharacteristicFunction - # class needs stream object => build it - tr_aic = tr_filt.copy() - tr_aic.data = hoscf.getCF() - st_copy[0].data = tr_aic.data - aiccf = AICcf(st_copy, cuttimes) # instance of AICcf - ############################################################## - # get prelimenary onset time from AIC-HOS-CF using subclass AICPicker of class AutoPicking - aicpick = AICPicker(aiccf, TSNRhos, 3, 10, None, 0.1) - ############################################################## - # get refined onset time from HOS-CF using class Picker - hospick = PragPicker(hoscf, TSNRhos, 2, 10, 0.001, 0.2, aicpick.getpick()) - ############################################################# - # get earliest and latest possible picks - st_copy[0].data = tr_filt.data - [lpickhos, epickhos, pickerrhos] = earllatepicker(st_copy, 1.5, TSNRhos, hospick.getpick(), 10) - ############################################################# - # get SNR - [SNR, SNRdB] = getSNR(st_copy, TSNRhos, hospick.getpick()) - print - 'SNR:', SNR, 'SNR[dB]:', SNRdB - ########################################################## - # get first motion of onset - hosfm = fmpicker(st, st_copy, 0.2, hospick.getpick(), 11) - ############################################################## - # calculate ARZ-CF using subclass ARZcf of class CharcteristicFunction - arzcf = ARZcf(st, cuttimes, tpredz, arzorder, tdetz, addnoise) # instance of ARZcf - ############################################################## - # calculate AIC-ARZ-CF using subclass AICcf of class CharacteristicFunction - # class needs stream object => build it - tr_arzaic = tr_filt.copy() - tr_arzaic.data = arzcf.getCF() - st_copy[0].data = tr_arzaic.data - araiccf = AICcf(st_copy, cuttimes, tpredz, 0, tdetz) # instance of AICcf - ############################################################## - # get onset time from AIC-ARZ-CF using subclass AICPicker of class AutoPicking - aicarzpick = AICPicker(araiccf, TSNRarz, 2, 10, None, 0.1) - ############################################################## - # get refined onset time from ARZ-CF using class Picker - arzpick = PragPicker(arzcf, TSNRarz, 2.0, 10, 0.1, 0.05, aicarzpick.getpick()) - # get earliest and latest possible picks - st_copy[0].data = tr_filt.data - [lpickarz, epickarz, pickerrarz] = earllatepicker(st_copy, 1.5, TSNRarz, arzpick.getpick(), 10) - elif not wfzfiles: - print - 'No vertical component data found!' - - if wfefiles and wfnfiles: - for i in range(len(wfefiles)): - print - 'Horizontal component data found ...' - print - wfefiles[i] - print - wfnfiles[i] - # merge streams - H = read('%s' % wfefiles[i]) - H += read('%s' % wfnfiles[i]) - H_copy = H.copy() - # filter and taper data - trH1_filt = H[0].copy() - trH2_filt = H[1].copy() - trH1_filt.filter('bandpass', freqmin=bph[0], freqmax=bph[1], zerophase=False) - trH2_filt.filter('bandpass', freqmin=bph[0], freqmax=bph[1], zerophase=False) - trH1_filt.taper(max_percentage=0.05, type='hann') - trH2_filt.taper(max_percentage=0.05, type='hann') - H_copy[0].data = trH1_filt.data - H_copy[1].data = trH2_filt.data - - ############################################################## - # calculate ARH-CF using subclass ARHcf of class CharcteristicFunction - arhcf = ARHcf(H_copy, cuttimes, tpredh, arhorder, tdeth, addnoise) # instance of ARHcf - ############################################################## - # calculate AIC-ARH-CF using subclass AICcf of class CharacteristicFunction - # class needs stream object => build it - tr_arhaic = trH1_filt.copy() - tr_arhaic.data = arhcf.getCF() - H_copy[0].data = tr_arhaic.data - # calculate ARH-AIC-CF - arhaiccf = AICcf(H_copy, cuttimes, tpredh, 0, tdeth) # instance of AICcf - ############################################################## - # get onset time from AIC-ARH-CF using subclass AICPicker of class AutoPicking - aicarhpick = AICPicker(arhaiccf, TSNRarz, 4, 10, None, 0.1) - ############################################################### - # get refined onset time from ARH-CF using class Picker - arhpick = PragPicker(arhcf, TSNRarz, 2.5, 10, 0.1, 0.05, aicarhpick.getpick()) - # get earliest and latest possible picks - H_copy[0].data = trH1_filt.data - [lpickarh1, epickarh1, pickerrarh1] = earllatepicker(H_copy, 1.5, TSNRarz, arhpick.getpick(), 10) - H_copy[0].data = trH2_filt.data - [lpickarh2, epickarh2, pickerrarh2] = earllatepicker(H_copy, 1.5, TSNRarz, arhpick.getpick(), 10) - # get earliest pick of both earliest possible picks - epick = [epickarh1, epickarh2] - lpick = [lpickarh1, lpickarh2] - pickerr = [pickerrarh1, pickerrarh2] - ipick = np.argmin([epickarh1, epickarh2]) - epickarh = epick[ipick] - lpickarh = lpick[ipick] - pickerrarh = pickerr[ipick] - - # create stream with 3 traces - # merge streams - AllC = read('%s' % wfefiles[i]) - AllC += read('%s' % wfnfiles[i]) - AllC += read('%s' % wfzfiles[i]) - # filter and taper data - All1_filt = AllC[0].copy() - All2_filt = AllC[1].copy() - All3_filt = AllC[2].copy() - All1_filt.filter('bandpass', freqmin=bph[0], freqmax=bph[1], zerophase=False) - All2_filt.filter('bandpass', freqmin=bph[0], freqmax=bph[1], zerophase=False) - All3_filt.filter('bandpass', freqmin=bpz[0], freqmax=bpz[1], zerophase=False) - All1_filt.taper(max_percentage=0.05, type='hann') - All2_filt.taper(max_percentage=0.05, type='hann') - All3_filt.taper(max_percentage=0.05, type='hann') - AllC[0].data = All1_filt.data - AllC[1].data = All2_filt.data - AllC[2].data = All3_filt.data - # calculate AR3C-CF using subclass AR3Ccf of class CharacteristicFunction - ar3ccf = AR3Ccf(AllC, cuttimes, tpredz, arhorder, tdetz, addnoise) # instance of AR3Ccf - ############################################################## - if iplot: - # plot vertical trace - plt.figure() - tr = st[0] - tdata = np.arange(0, tr.stats.npts / tr.stats.sampling_rate, tr.stats.delta) - p1, = plt.plot(tdata, tr_filt.data / max(tr_filt.data), 'k') - p2, = plt.plot(hoscf.getTimeArray(), hoscf.getCF() / max(hoscf.getCF()), 'r') - p3, = plt.plot(aiccf.getTimeArray(), aiccf.getCF() / max(aiccf.getCF()), 'b') - p4, = plt.plot(arzcf.getTimeArray(), arzcf.getCF() / max(arzcf.getCF()), 'g') - p5, = plt.plot(araiccf.getTimeArray(), araiccf.getCF() / max(araiccf.getCF()), 'y') - plt.plot([aicpick.getpick(), aicpick.getpick()], [-1, 1], 'b--') - plt.plot([aicpick.getpick() - 0.5, aicpick.getpick() + 0.5], [1, 1], 'b') - plt.plot([aicpick.getpick() - 0.5, aicpick.getpick() + 0.5], [-1, -1], 'b') - plt.plot([hospick.getpick(), hospick.getpick()], [-1.3, 1.3], 'r', linewidth=2) - plt.plot([hospick.getpick() - 0.5, hospick.getpick() + 0.5], [1.3, 1.3], 'r') - plt.plot([hospick.getpick() - 0.5, hospick.getpick() + 0.5], [-1.3, -1.3], 'r') - plt.plot([lpickhos, lpickhos], [-1.1, 1.1], 'r--') - plt.plot([epickhos, epickhos], [-1.1, 1.1], 'r--') - plt.plot([aicarzpick.getpick(), aicarzpick.getpick()], [-1.2, 1.2], 'y', linewidth=2) - plt.plot([aicarzpick.getpick() - 0.5, aicarzpick.getpick() + 0.5], [1.2, 1.2], 'y') - plt.plot([aicarzpick.getpick() - 0.5, aicarzpick.getpick() + 0.5], [-1.2, -1.2], 'y') - plt.plot([arzpick.getpick(), arzpick.getpick()], [-1.4, 1.4], 'g', linewidth=2) - plt.plot([arzpick.getpick() - 0.5, arzpick.getpick() + 0.5], [1.4, 1.4], 'g') - plt.plot([arzpick.getpick() - 0.5, arzpick.getpick() + 0.5], [-1.4, -1.4], 'g') - plt.plot([lpickarz, lpickarz], [-1.2, 1.2], 'g--') - plt.plot([epickarz, epickarz], [-1.2, 1.2], 'g--') - plt.yticks([]) - plt.ylim([-1.5, 1.5]) - plt.xlabel('Time [s]') - plt.ylabel('Normalized Counts') - plt.title('%s, %s, CF-SNR=%7.2f, CF-Slope=%12.2f' % (tr.stats.station, - tr.stats.channel, aicpick.getSNR(), - aicpick.getSlope())) - plt.suptitle(tr.stats.starttime) - plt.legend([p1, p2, p3, p4, p5], ['Data', 'HOS-CF', 'HOSAIC-CF', 'ARZ-CF', 'ARZAIC-CF']) - # plot horizontal traces - plt.figure(2) - plt.subplot(2, 1, 1) - tsteph = tpredh / 4 - th1data = np.arange(0, trH1_filt.stats.npts / trH1_filt.stats.sampling_rate, trH1_filt.stats.delta) - th2data = np.arange(0, trH2_filt.stats.npts / trH2_filt.stats.sampling_rate, trH2_filt.stats.delta) - tarhcf = np.arange(0, len(arhcf.getCF()) * tsteph, tsteph) + cuttimes[0] + tdeth + tpredh - p21, = plt.plot(th1data, trH1_filt.data / max(trH1_filt.data), 'k') - p22, = plt.plot(arhcf.getTimeArray(), arhcf.getCF() / max(arhcf.getCF()), 'r') - p23, = plt.plot(arhaiccf.getTimeArray(), arhaiccf.getCF() / max(arhaiccf.getCF())) - plt.plot([aicarhpick.getpick(), aicarhpick.getpick()], [-1, 1], 'b') - plt.plot([aicarhpick.getpick() - 0.5, aicarhpick.getpick() + 0.5], [1, 1], 'b') - plt.plot([aicarhpick.getpick() - 0.5, aicarhpick.getpick() + 0.5], [-1, -1], 'b') - plt.plot([arhpick.getpick(), arhpick.getpick()], [-1, 1], 'r') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [1, 1], 'r') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [-1, -1], 'r') - plt.plot([lpickarh, lpickarh], [-0.8, 0.8], 'r--') - plt.plot([epickarh, epickarh], [-0.8, 0.8], 'r--') - plt.plot([arhpick.getpick() + pickerrarh, arhpick.getpick() + pickerrarh], [-0.2, 0.2], 'r--') - plt.plot([arhpick.getpick() - pickerrarh, arhpick.getpick() - pickerrarh], [-0.2, 0.2], 'r--') - plt.yticks([]) - plt.ylim([-1.5, 1.5]) - plt.ylabel('Normalized Counts') - plt.title([trH1_filt.stats.station, trH1_filt.stats.channel]) - plt.suptitle(trH1_filt.stats.starttime) - plt.legend([p21, p22, p23], ['Data', 'ARH-CF', 'ARHAIC-CF']) - plt.subplot(2, 1, 2) - plt.plot(th2data, trH2_filt.data / max(trH2_filt.data), 'k') - plt.plot(arhcf.getTimeArray(), arhcf.getCF() / max(arhcf.getCF()), 'r') - plt.plot(arhaiccf.getTimeArray(), arhaiccf.getCF() / max(arhaiccf.getCF())) - plt.plot([aicarhpick.getpick(), aicarhpick.getpick()], [-1, 1], 'b') - plt.plot([aicarhpick.getpick() - 0.5, aicarhpick.getpick() + 0.5], [1, 1], 'b') - plt.plot([aicarhpick.getpick() - 0.5, aicarhpick.getpick() + 0.5], [-1, -1], 'b') - plt.plot([arhpick.getpick(), arhpick.getpick()], [-1, 1], 'r') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [1, 1], 'r') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [-1, -1], 'r') - plt.plot([lpickarh, lpickarh], [-0.8, 0.8], 'r--') - plt.plot([epickarh, epickarh], [-0.8, 0.8], 'r--') - plt.plot([arhpick.getpick() + pickerrarh, arhpick.getpick() + pickerrarh], [-0.2, 0.2], 'r--') - plt.plot([arhpick.getpick() - pickerrarh, arhpick.getpick() - pickerrarh], [-0.2, 0.2], 'r--') - plt.title([trH2_filt.stats.station, trH2_filt.stats.channel]) - plt.yticks([]) - plt.ylim([-1.5, 1.5]) - plt.xlabel('Time [s]') - plt.ylabel('Normalized Counts') - # plot 3-component window - plt.figure(3) - plt.subplot(3, 1, 1) - p31, = plt.plot(tdata, tr_filt.data / max(tr_filt.data), 'k') - p32, = plt.plot(ar3ccf.getTimeArray(), ar3ccf.getCF() / max(ar3ccf.getCF()), 'r') - plt.plot([arhpick.getpick(), arhpick.getpick()], [-1, 1], 'b') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [-1, -1], 'b') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [1, 1], 'b') - plt.yticks([]) - plt.xticks([]) - plt.ylabel('Normalized Counts') - plt.title([tr.stats.station, tr.stats.channel]) - plt.suptitle(trH1_filt.stats.starttime) - plt.legend([p31, p32], ['Data', 'AR3C-CF']) - plt.subplot(3, 1, 2) - plt.plot(th1data, trH1_filt.data / max(trH1_filt.data), 'k') - plt.plot(ar3ccf.getTimeArray(), ar3ccf.getCF() / max(ar3ccf.getCF()), 'r') - plt.plot([arhpick.getpick(), arhpick.getpick()], [-1, 1], 'b') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [-1, -1], 'b') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [1, 1], 'b') - plt.yticks([]) - plt.xticks([]) - plt.ylabel('Normalized Counts') - plt.title([trH1_filt.stats.station, trH1_filt.stats.channel]) - plt.subplot(3, 1, 3) - plt.plot(th2data, trH2_filt.data / max(trH2_filt.data), 'k') - plt.plot(ar3ccf.getTimeArray(), ar3ccf.getCF() / max(ar3ccf.getCF()), 'r') - plt.plot([arhpick.getpick(), arhpick.getpick()], [-1, 1], 'b') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [-1, -1], 'b') - plt.plot([arhpick.getpick() - 0.5, arhpick.getpick() + 0.5], [1, 1], 'b') - plt.yticks([]) - plt.ylabel('Normalized Counts') - plt.title([trH2_filt.stats.station, trH2_filt.stats.channel]) - plt.xlabel('Time [s]') - plt.show() - raw_input() - plt.close() - - -parser = argparse.ArgumentParser() -parser.add_argument('--project', type=str, help='project name (e.g. Insheim)') -parser.add_argument('--database', type=str, help='event data base (e.g. 2014.09_Insheim)') -parser.add_argument('--event', type=str, help='event ID (e.g. e0010.015.14)') -parser.add_argument('--iplot', help='anything, if set, figure occurs') -parser.add_argument('--station', type=str, help='Station ID (e.g. INS3) (optional)') -args = parser.parse_args() - -run_makeCF(args.project, args.database, args.event, args.iplot, args.station)