[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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user