Merge branch 'develop' of ariadne:/data/git/pylot into develop
This commit is contained in:
commit
27e425844a
17
autoPyLoT.py
17
autoPyLoT.py
@ -346,7 +346,8 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even
|
|||||||
picks[stats]['P'].update(props)
|
picks[stats]['P'].update(props)
|
||||||
evt = moment_mag.updated_event()
|
evt = moment_mag.updated_event()
|
||||||
net_mw = moment_mag.net_magnitude()
|
net_mw = moment_mag.net_magnitude()
|
||||||
print("Network moment magnitude: %4.1f" % net_mw.mag)
|
if net_mw is not None:
|
||||||
|
print("Network moment magnitude: %4.1f" % net_mw.mag)
|
||||||
# calculate local (Richter) magntiude
|
# calculate local (Richter) magntiude
|
||||||
WAscaling = parameter.get('WAscaling')
|
WAscaling = parameter.get('WAscaling')
|
||||||
magscaling = parameter.get('magscaling')
|
magscaling = parameter.get('magscaling')
|
||||||
@ -363,8 +364,15 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even
|
|||||||
evt = local_mag.updated_event(magscaling)
|
evt = local_mag.updated_event(magscaling)
|
||||||
net_ml = local_mag.net_magnitude(magscaling)
|
net_ml = local_mag.net_magnitude(magscaling)
|
||||||
print("Network local magnitude: %4.1f" % net_ml.mag)
|
print("Network local magnitude: %4.1f" % net_ml.mag)
|
||||||
print("Network local magnitude scaled with:")
|
if magscaling == None:
|
||||||
print("%f * Ml + %f" % (magscaling[0], magscaling[1]))
|
scaling = False
|
||||||
|
elif magscaling[0] != 0 and magscaling[1] != 0:
|
||||||
|
scaling = False
|
||||||
|
else:
|
||||||
|
scaling = True
|
||||||
|
if scaling:
|
||||||
|
print("Network local magnitude scaled with:")
|
||||||
|
print("%f * Ml + %f" % (magscaling[0], magscaling[1]))
|
||||||
else:
|
else:
|
||||||
print("autoPyLoT: No NLLoc-location file available!")
|
print("autoPyLoT: No NLLoc-location file available!")
|
||||||
print("No source parameter estimation possible!")
|
print("No source parameter estimation possible!")
|
||||||
@ -421,7 +429,8 @@ def autoPyLoT(input_dict=None, parameter=None, inputfile=None, fnames=None, even
|
|||||||
picks[stats]['P'].update(props)
|
picks[stats]['P'].update(props)
|
||||||
evt = moment_mag.updated_event()
|
evt = moment_mag.updated_event()
|
||||||
net_mw = moment_mag.net_magnitude()
|
net_mw = moment_mag.net_magnitude()
|
||||||
print("Network moment magnitude: %4.1f" % net_mw.mag)
|
if net_mw is not None:
|
||||||
|
print("Network moment magnitude: %4.1f" % net_mw.mag)
|
||||||
# calculate local (Richter) magntiude
|
# calculate local (Richter) magntiude
|
||||||
WAscaling = parameter.get('WAscaling')
|
WAscaling = parameter.get('WAscaling')
|
||||||
magscaling = parameter.get('magscaling')
|
magscaling = parameter.get('magscaling')
|
||||||
|
@ -4,19 +4,19 @@
|
|||||||
%Parameters are optimized for %extent data sets!
|
%Parameters are optimized for %extent data sets!
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
#main settings#
|
#main settings#
|
||||||
#rootpath# %project path
|
/DATA/Insheim #rootpath# %project path
|
||||||
#datapath# %data path
|
EVENT_DATA/LOCAL #datapath# %data path
|
||||||
#database# %name of data base
|
2018.02_Insheim #database# %name of data base
|
||||||
#eventID# %event ID for single event processing (* for all events found in database)
|
e0006.038.18 #eventID# %event ID for single event processing (* for all events found in database)
|
||||||
#invdir# %full path to inventory or dataless-seed file
|
/DATA/Insheim/STAT_INFO #invdir# %full path to inventory or dataless-seed file
|
||||||
PILOT #datastructure# %choose data structure
|
PILOT #datastructure# %choose data structure
|
||||||
True #apverbose# %choose 'True' or 'False' for terminal output
|
True #apverbose# %choose 'True' or 'False' for terminal output
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
#NLLoc settings#
|
#NLLoc settings#
|
||||||
None #nllocbin# %path to NLLoc executable
|
/home/ludger/NLLOC #nllocbin# %path to NLLoc executable
|
||||||
None #nllocroot# %root of NLLoc-processing directory
|
/home/ludger/NLLOC/Insheim #nllocroot# %root of NLLoc-processing directory
|
||||||
None #phasefile# %name of autoPyLoT-output phase file for NLLoc
|
AUTOPHASES.obs #phasefile# %name of autoPyLoT-output phase file for NLLoc
|
||||||
None #ctrfile# %name of autoPyLoT-output control file for NLLoc
|
Insheim_min1d032016_auto.in #ctrfile# %name of autoPyLoT-output control file for NLLoc
|
||||||
ttime #ttpatter# %pattern of NLLoc ttimes from grid
|
ttime #ttpatter# %pattern of NLLoc ttimes from grid
|
||||||
AUTOLOC_nlloc #outpatter# %pattern of NLLoc-output file
|
AUTOLOC_nlloc #outpatter# %pattern of NLLoc-output file
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
@ -27,31 +27,31 @@ AUTOLOC_nlloc #outpatter# %pattern of
|
|||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
#settings local magnitude#
|
#settings local magnitude#
|
||||||
1.11 0.0009 -2.0 #WAscaling# %Scaling relation (log(Ao)+Alog(r)+Br+C) of Wood-Anderson amplitude Ao [nm] If zeros are set, original Richter magnitude is calculated!
|
1.11 0.0009 -2.0 #WAscaling# %Scaling relation (log(Ao)+Alog(r)+Br+C) of Wood-Anderson amplitude Ao [nm] If zeros are set, original Richter magnitude is calculated!
|
||||||
1.0382 -0.447 #magscaling# %Scaling relation for derived local magnitude [a*Ml+b]. If zeros are set, no scaling of network magnitude is applied!
|
0.0 0.0 #magscaling# %Scaling relation for derived local magnitude [a*Ml+b]. If zeros are set, no scaling of network magnitude is applied!
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
#filter settings#
|
#filter settings#
|
||||||
1.0 1.0 #minfreq# %Lower filter frequency [P, S]
|
2.0 2.0 #minfreq# %Lower filter frequency [P, S]
|
||||||
10.0 10.0 #maxfreq# %Upper filter frequency [P, S]
|
30.0 15.0 #maxfreq# %Upper filter frequency [P, S]
|
||||||
2 2 #filter_order# %filter order [P, S]
|
3 3 #filter_order# %filter order [P, S]
|
||||||
bandpass bandpass #filter_type# %filter type (bandpass, bandstop, lowpass, highpass) [P, S]
|
bandpass bandpass #filter_type# %filter type (bandpass, bandstop, lowpass, highpass) [P, S]
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
#common settings picker#
|
#common settings picker#
|
||||||
local #extent# %extent of array ("local", "regional" or "global")
|
local #extent# %extent of array ("local", "regional" or "global")
|
||||||
15.0 #pstart# %start time [s] for calculating CF for P-picking
|
7.0 #pstart# %start time [s] for calculating CF for P-picking
|
||||||
60.0 #pstop# %end time [s] for calculating CF for P-picking
|
16.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
|
-0.5 #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
|
10.0 #sstop# %end time [s] after P-onset for calculating CF for S-picking
|
||||||
True #use_taup# %use estimated traveltimes from TauPy for calculating windows for CF
|
False #use_taup# %use estimated traveltimes from TauPy for calculating windows for CF
|
||||||
iasp91 #taup_model# %define TauPy model for traveltime estimation
|
iasp91 #taup_model# %define TauPy model for traveltime estimation
|
||||||
2.0 10.0 #bpz1# %lower/upper corner freq. of first band pass filter Z-comp. [Hz]
|
2.0 20.0 #bpz1# %lower/upper corner freq. of first band pass filter Z-comp. [Hz]
|
||||||
2.0 12.0 #bpz2# %lower/upper corner freq. of second band pass filter Z-comp. [Hz]
|
2.0 30.0 #bpz2# %lower/upper corner freq. of second band pass filter Z-comp. [Hz]
|
||||||
2.0 8.0 #bph1# %lower/upper corner freq. of first band pass filter H-comp. [Hz]
|
2.0 10.0 #bph1# %lower/upper corner freq. of first band pass filter H-comp. [Hz]
|
||||||
2.0 10.0 #bph2# %lower/upper corner freq. of second band pass filter z-comp. [Hz]
|
2.0 15.0 #bph2# %lower/upper corner freq. of second band pass filter z-comp. [Hz]
|
||||||
#special settings for calculating CF#
|
#special settings for calculating CF#
|
||||||
%!!Edit the following only if you know what you are doing!!%
|
%!!Edit the following only if you know what you are doing!!%
|
||||||
#Z-component#
|
#Z-component#
|
||||||
HOS #algoP# %choose algorithm for P-onset determination (HOS, ARZ, or AR3)
|
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.0 #tlta# %for HOS-/AR-AIC-picker, length of LTA window [s]
|
||||||
4 #hosorder# %for HOS-picker, order of Higher Order Statistics
|
4 #hosorder# %for HOS-picker, order of Higher Order Statistics
|
||||||
2 #Parorder# %for AR-picker, order of AR process of Z-component
|
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
|
1.2 #tdet1z# %for AR-picker, length of AR determination window [s] for Z-component, 1st pick
|
||||||
@ -59,12 +59,12 @@ HOS #algoP# %choose algo
|
|||||||
0.6 #tdet2z# %for AR-picker, length of AR determination window [s] for Z-component, 2nd 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.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
|
0.001 #addnoise# %add noise to seismogram for stable AR prediction
|
||||||
3.0 0.1 0.5 1.0 #tsnrz# %for HOS/AR, window lengths for SNR-and slope estimation [tnoise, tsafetey, tsignal, tslope] [s]
|
3.0 0.0 1.0 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]
|
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)
|
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.4 #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.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)
|
0.4 #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)
|
1.3 #nfacP# %for HOS/AR, noise factor for noise level determination (P)
|
||||||
#H-components#
|
#H-components#
|
||||||
ARH #algoS# %choose algorithm for S-onset determination (ARH or AR3)
|
ARH #algoS# %choose algorithm for S-onset determination (ARH or AR3)
|
||||||
@ -75,7 +75,7 @@ ARH #algoS# %choose algo
|
|||||||
4 #Sarorder# %for AR-picker, order of AR process of H-components
|
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)
|
5.0 #Srecalcwin# %for AR-picker, window length [s] for recalculation of CF (2nd pick) (H)
|
||||||
4.0 #pickwinS# %for initial AIC pick, length of S-pick window [s]
|
4.0 #pickwinS# %for initial AIC pick, length of S-pick window [s]
|
||||||
2.0 0.3 1.5 1.0 #tsnrh# %for ARH/AR3, window lengths for SNR-and slope estimation [tnoise, tsafetey, tsignal, tslope] [s]
|
2.0 0.2 1.5 1.0 #tsnrh# %for ARH/AR3, window lengths for SNR-and slope estimation [tnoise, tsafetey, tsignal, tslope] [s]
|
||||||
1.0 #aictsmoothS# %for AIC-picker, take average of samples for smoothing of AIC-function [s]
|
1.0 #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.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)
|
0.9 #ausS# %for HOS/AR, artificial uplift of samples (aus) of CF (S)
|
||||||
@ -85,16 +85,16 @@ ARH #algoS# %choose algo
|
|||||||
2.0 #minFMSNR# %miniumum required SNR for first-motion determination
|
2.0 #minFMSNR# %miniumum required SNR for first-motion determination
|
||||||
0.2 #fmpickwin# %pick window around P onset for calculating zero crossings
|
0.2 #fmpickwin# %pick window around P onset for calculating zero crossings
|
||||||
#quality assessment#
|
#quality assessment#
|
||||||
0.02 0.04 0.08 0.16 #timeerrorsP# %discrete time errors [s] corresponding to picking weights [0 1 2 3] for P
|
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
|
0.05 0.10 0.20 0.40 #timeerrorsS# %discrete time errors [s] corresponding to picking weights [0 1 2 3] for S
|
||||||
0.8 #minAICPslope# %below this slope [counts/s] the initial P pick is rejected
|
0.8 #minAICPslope# %below this slope [counts/s] the initial P pick is rejected
|
||||||
1.1 #minAICPSNR# %below this SNR the initial P pick is rejected
|
1.1 #minAICPSNR# %below this SNR the initial P pick is rejected
|
||||||
1.0 #minAICSslope# %below this slope [counts/s] the initial S pick is rejected
|
1.0 #minAICSslope# %below this slope [counts/s] the initial S pick is rejected
|
||||||
1.5 #minAICSSNR# %below this SNR the initial S pick is rejected
|
1.5 #minAICSSNR# %below this SNR the initial S pick is rejected
|
||||||
1.0 #minsiglength# %length of signal part for which amplitudes must exceed noiselevel [s]
|
1.0 #minsiglength# %length of signal part for which amplitudes must exceed noiselevel [s]
|
||||||
1.0 #noisefactor# %noiselevel*noisefactor=threshold
|
1.1 #noisefactor# %noiselevel*noisefactor=threshold
|
||||||
10.0 #minpercent# %required percentage of amplitudes exceeding threshold
|
50.0 #minpercent# %required percentage of amplitudes exceeding threshold
|
||||||
1.5 #zfac# %P-amplitude must exceed at least zfac times RMS-S amplitude
|
1.1 #zfac# %P-amplitude must exceed at least zfac times RMS-S amplitude
|
||||||
6.0 #mdttolerance# %maximum allowed deviation of P picks from median [s]
|
5.0 #mdttolerance# %maximum allowed deviation of P picks from median [s]
|
||||||
1.0 #wdttolerance# %maximum allowed deviation from Wadati-diagram
|
1.0 #wdttolerance# %maximum allowed deviation from Wadati-diagram
|
||||||
5.0 #jackfactor# %pick is removed if the variance of the subgroup with the pick removed is larger than the mean variance of all subgroups times safety factor
|
2.0 #jackfactor# %pick is removed if the variance of the subgroup with the pick removed is larger than the mean variance of all subgroups times safety factor
|
||||||
|
@ -240,12 +240,17 @@ class AICPicker(AutoPicker):
|
|||||||
return
|
return
|
||||||
# calculate SNR from CF
|
# calculate SNR from CF
|
||||||
self.SNR = max(abs(self.Data[0].data[isignal])) / \
|
self.SNR = max(abs(self.Data[0].data[isignal])) / \
|
||||||
max(abs(self.Data[0].data[inoise] - np.mean(self.Data[0].data[inoise])))
|
abs(np.mean(self.Data[0].data[inoise]))
|
||||||
# calculate slope from CF after initial pick
|
# calculate slope from CF after initial pick
|
||||||
# get slope window
|
# get slope window
|
||||||
tslope = self.TSNR[3] # slope determination window
|
tslope = self.TSNR[3] # slope determination window
|
||||||
islope = np.where((self.Tcf <= min([self.Pick + tslope, self.Tcf[-1]])) \
|
tsafety = self.TSNR[1] # safety gap, AIC is usually a little bit too late
|
||||||
& (self.Tcf >= self.Pick)) # TODO: put this in a seperate function like getsignalwin
|
if tsafety >= 0:
|
||||||
|
islope = np.where((self.Tcf <= min([self.Pick + tslope + tsafety, self.Tcf[-1]])) \
|
||||||
|
& (self.Tcf >= self.Pick)) # TODO: put this in a seperate function like getsignalwin
|
||||||
|
else:
|
||||||
|
islope = np.where((self.Tcf <= min([self.Pick + tslope, self.Tcf[-1]])) \
|
||||||
|
& (self.Tcf >= self.Pick + tsafety)) # TODO: put this in a seperate function like getsignalwin
|
||||||
# find maximum within slope determination window
|
# find maximum within slope determination window
|
||||||
# 'cause slope should be calculated up to first local minimum only!
|
# 'cause slope should be calculated up to first local minimum only!
|
||||||
try:
|
try:
|
||||||
|
Loading…
Reference in New Issue
Block a user