[add] jackknife safety factor no longer hardcoded, GUI parameter added
This commit is contained in:
parent
71973a5348
commit
bac6d6f5ec
@ -348,6 +348,11 @@ defaults = {'rootpath': {'type': str,
|
|||||||
'value': 1.0,
|
'value': 1.0,
|
||||||
'namestring': 'Wadati tolerance'},
|
'namestring': 'Wadati tolerance'},
|
||||||
|
|
||||||
|
'jackfactor': {'type': float,
|
||||||
|
'tooltip': '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',
|
||||||
|
'value': 5.0,
|
||||||
|
'namestring': 'Jackknife safety factor'},
|
||||||
|
|
||||||
'WAscaling': {'type': (float, float, float),
|
'WAscaling': {'type': (float, float, float),
|
||||||
'tooltip': 'Scaling relation (log(Ao)+Alog(r)+Br+C) of Wood-Anderson amplitude Ao [nm] \
|
'tooltip': 'Scaling relation (log(Ao)+Alog(r)+Br+C) of Wood-Anderson amplitude Ao [nm] \
|
||||||
If zeros are set, original Richter magnitude is calculated!',
|
If zeros are set, original Richter magnitude is calculated!',
|
||||||
@ -481,5 +486,6 @@ settings_special_pick = {
|
|||||||
'minpercent',
|
'minpercent',
|
||||||
'zfac',
|
'zfac',
|
||||||
'mdttolerance',
|
'mdttolerance',
|
||||||
'wdttolerance']
|
'wdttolerance',
|
||||||
|
'jackfactor'],
|
||||||
}
|
}
|
||||||
|
@ -41,6 +41,7 @@ def autopickevent(data, param, iplot=0, fig_dict=None, fig_dict_wadatijack=None,
|
|||||||
# parameter input file (usually autoPyLoT.in).
|
# parameter input file (usually autoPyLoT.in).
|
||||||
wdttolerance = param.get('wdttolerance')
|
wdttolerance = param.get('wdttolerance')
|
||||||
mdttolerance = param.get('mdttolerance')
|
mdttolerance = param.get('mdttolerance')
|
||||||
|
jackfactor = param.get('jackfactor')
|
||||||
apverbose = param.get('apverbose')
|
apverbose = param.get('apverbose')
|
||||||
for n in range(len(data)):
|
for n in range(len(data)):
|
||||||
station = data[n].stats.station
|
station = data[n].stats.station
|
||||||
@ -80,7 +81,7 @@ def autopickevent(data, param, iplot=0, fig_dict=None, fig_dict_wadatijack=None,
|
|||||||
|
|
||||||
# quality control
|
# quality control
|
||||||
# median check and jackknife on P-onset times
|
# median check and jackknife on P-onset times
|
||||||
jk_checked_onsets = checkPonsets(all_onsets, mdttolerance, 1, fig_dict_wadatijack)
|
jk_checked_onsets = checkPonsets(all_onsets, mdttolerance, jackfactor, 1, fig_dict_wadatijack)
|
||||||
#return jk_checked_onsets
|
#return jk_checked_onsets
|
||||||
# check S-P times (Wadati)
|
# check S-P times (Wadati)
|
||||||
wadationsets = wadaticheck(jk_checked_onsets, wdttolerance, 1, fig_dict_wadatijack)
|
wadationsets = wadaticheck(jk_checked_onsets, wdttolerance, 1, fig_dict_wadatijack)
|
||||||
|
@ -803,7 +803,7 @@ def checksignallength(X, pick, TSNR, minsiglength, nfac, minpercent, iplot=0, fi
|
|||||||
return returnflag
|
return returnflag
|
||||||
|
|
||||||
|
|
||||||
def checkPonsets(pickdic, dttolerance, iplot=0, fig_dict=None):
|
def checkPonsets(pickdic, dttolerance, jackfactor, iplot=0, fig_dict=None):
|
||||||
'''
|
'''
|
||||||
Function to check statistics of P-onset times: Control deviation from
|
Function to check statistics of P-onset times: Control deviation from
|
||||||
median (maximum adjusted deviation = dttolerance) and apply pseudo-
|
median (maximum adjusted deviation = dttolerance) and apply pseudo-
|
||||||
@ -840,9 +840,9 @@ def checkPonsets(pickdic, dttolerance, iplot=0, fig_dict=None):
|
|||||||
return
|
return
|
||||||
# get pseudo variances smaller than average variances
|
# get pseudo variances smaller than average variances
|
||||||
# (times safety factor), these picks passed jackknife test
|
# (times safety factor), these picks passed jackknife test
|
||||||
ij = np.where(PHI_pseudo <= 5 * xjack)
|
ij = np.where(PHI_pseudo <= jackfactor * xjack)
|
||||||
# these picks did not pass jackknife test
|
# these picks did not pass jackknife test
|
||||||
badjk = np.where(PHI_pseudo > 5 * xjack)
|
badjk = np.where(PHI_pseudo > jackfactor * xjack)
|
||||||
badjkstations = np.array(stations)[badjk]
|
badjkstations = np.array(stations)[badjk]
|
||||||
print("checkPonsets: %d pick(s) did not pass jackknife test!" % len(badjkstations))
|
print("checkPonsets: %d pick(s) did not pass jackknife test!" % len(badjkstations))
|
||||||
print(badjkstations)
|
print(badjkstations)
|
||||||
|
Loading…
Reference in New Issue
Block a user