mirror of
				https://gitlab.science.ru.nl/mthesis-edeboone/m-thesis-introduction.git
				synced 2025-10-31 03:46:44 +01:00 
			
		
		
		
	Pulse: fix save hilbert timing + figsizing
This commit is contained in:
		
							parent
							
								
									95594c59ab
								
							
						
					
					
						commit
						e9f459b8fa
					
				
					 1 changed files with 28 additions and 15 deletions
				
			
		|  | @ -199,9 +199,9 @@ def read_time_residuals_cache(cache_fname, template_dt, antenna_dt, snr_sigma_fa | |||
|             if len(ret.shape) > 2: | ||||
|                 return ret[0,:], ret[1,:], ret[2,:] | ||||
|             elif len(ret.shape) > 1: | ||||
|                 return ret[0,:], ret[1,:], np.array([np.nan]*len(ret)) | ||||
|                 return ret[0,:], ret[1,:], np.array([np.nan]*len(ret[0])) | ||||
|             else: | ||||
|                 return ret[:], np.array([np.nan]*len(ret)), np.array([np.nan]*len(ret)) | ||||
|                 return ret[:], np.array([np.nan]*len(ret[0])), np.array([np.nan]*len(ret[0])) | ||||
|     except (KeyError, FileNotFoundError): | ||||
|         return np.array([]), np.array([]), np.array([]) | ||||
| 
 | ||||
|  | @ -215,7 +215,8 @@ def write_time_residuals_cache(cache_fname, data, template_dt, antenna_dt, noise | |||
|         if ds_name in pgroup2.keys(): | ||||
|             del pgroup2[ds_name] | ||||
| 
 | ||||
|         ds = pgroup2.create_dataset(ds_name, (3, len(time_residuals)), dtype='f', maxshape=(None)) | ||||
| 
 | ||||
|         ds = pgroup2.create_dataset(ds_name, (3, len(data[0])), dtype='f', maxshape=(None)) | ||||
|         ds[0] = data[0] | ||||
|         ds[1] = data[1] | ||||
|         ds[2] = data[2] | ||||
|  | @ -472,7 +473,7 @@ def get_time_residuals_for_template( | |||
| 
 | ||||
|     # Were new time residuals calculated? | ||||
|     # Add them to the cache file | ||||
|     if len(time_residuals) > 1: | ||||
|     if len(time_residuals) >= 1: | ||||
|         # merge cached and calculated time residuals | ||||
|         time_residuals = np.concatenate((cached_time_residuals, time_residuals), axis=None) | ||||
|         snrs = np.concatenate( (cached_snrs, snrs), axis=None) | ||||
|  | @ -495,6 +496,12 @@ if __name__ == "__main__": | |||
|     if os.name == 'posix' and "DISPLAY" not in os.environ: | ||||
|         matplotlib.use('Agg') | ||||
| 
 | ||||
| 
 | ||||
|     if False: | ||||
|         plt.rc('font', size=25) | ||||
| 
 | ||||
|     figsize = (12,12) | ||||
| 
 | ||||
|     bp_freq = (30e-3, 80e-3) # GHz | ||||
|     interp_template_dt = 5e-5 # ns | ||||
|     template_length = 200 # ns | ||||
|  | @ -521,6 +528,9 @@ if __name__ == "__main__": | |||
|     use_cache = True | ||||
|     write_cache = None # Leave None for default action | ||||
| 
 | ||||
|     wrong_peak_condition_multiple = 2 | ||||
|     wrong_peak_condition = lambda t_res: abs(t_res) > antenna_dt*wrong_peak_condition_multiple | ||||
| 
 | ||||
|     # | ||||
|     # Interpolation Template | ||||
|     # to create an 'analog' sampled antenna | ||||
|  | @ -580,7 +590,6 @@ if __name__ == "__main__": | |||
|             print()# separating tqdm | ||||
|             print()# separating tqdm | ||||
| 
 | ||||
|             wrong_peak_condition = lambda t_res: abs(t_res) > antenna_dt*4 | ||||
|             mask = wrong_peak_condition(time_residuals) | ||||
| 
 | ||||
|             # Save directly to large data array | ||||
|  | @ -677,10 +686,11 @@ if __name__ == "__main__": | |||
|     # SNR time accuracy plot | ||||
|     # | ||||
|     if True: | ||||
|         enable_threshold_markers = [False, False, True, True] | ||||
|         threshold_markers = ['^', 'v', '8', 'X'] # make sure to have filled markers here | ||||
|         mask_thresholds = np.array([np.inf, N_residuals*0.5, N_residuals*0.1, 1, 0]) | ||||
| 
 | ||||
|         fig, ax = plt.subplots() | ||||
|         fig, ax = plt.subplots(figsize=figsize) | ||||
|         ax.set_title(f"Template matching SNR vs time accuracy") | ||||
|         ax.set_xlabel("Signal to Noise Factor") | ||||
|         ax.set_ylabel("Time Accuracy [ns]") | ||||
|  | @ -706,13 +716,14 @@ if __name__ == "__main__": | |||
|                 # calculate absolute deviation from the mean | ||||
|                 residual_mean_deviation = np.sqrt( (time_residuals - mean_residual)**2 ) | ||||
| 
 | ||||
|                 snr_std = np.std(snrs) | ||||
|                 time_accuracy_std = np.std(residual_mean_deviation) | ||||
|                 snr_std = np.std(snrs[valid_mask]) | ||||
|                 time_accuracy_std = np.std(residual_mean_deviation[valid_mask]) | ||||
| 
 | ||||
|                 scatter_kwargs = dict( | ||||
|                         ls='none', | ||||
|                         marker='.', | ||||
|                         alpha=0.3, | ||||
|                         marker='o', | ||||
|                         alpha=0.2, | ||||
|                         ms=1, | ||||
|                         zorder=1.8, | ||||
|                 ) | ||||
| 
 | ||||
|  | @ -780,7 +791,8 @@ if __name__ == "__main__": | |||
|             # limit y-axis upper limit to 1e1 | ||||
|             if True: | ||||
|                 this_lim = 1e1 | ||||
|                 ax.set_ylim([None, this_lim]) | ||||
|                 if ax.get_ylim()[1] >= this_lim: | ||||
|                     ax.set_ylim([None, this_lim]) | ||||
| 
 | ||||
|             # require y-axis lower limit to be at least 1e-1 | ||||
|             if True: | ||||
|  | @ -796,10 +808,11 @@ if __name__ == "__main__": | |||
|                 if low_ylims <= this_lim: | ||||
|                     ax.set_ylim([this_lim, None]) | ||||
| 
 | ||||
|         if True: # require y-axis lower limit to be at least 1e-1 | ||||
|             low_ylims = ax.get_ylim()[0] | ||||
|             if low_ylims >= 1e-1: | ||||
|                 ax.set_ylim([1e-1, None]) | ||||
|             # require x-axis lower limit to be under 1e0 | ||||
|             if True: | ||||
|                 this_lim = 1e0 | ||||
|                 if ax.get_xlim()[0] >= this_lim: | ||||
|                     ax.set_xlim([this_lim, None]) | ||||
| 
 | ||||
|         fig.tight_layout() | ||||
|         if len(template_dts) == 1: | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue