mirror of
https://gitlab.science.ru.nl/mthesis-edeboone/m-thesis-introduction.git
synced 2024-12-22 03:23:34 +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…
Reference in a new issue