ZH: let view_beacon script plot both raw and filtered traces

This commit is contained in:
Eric Teunis de Boone 2023-02-01 13:51:43 +01:00
parent 61d777651b
commit 5fca4a8bda
3 changed files with 71 additions and 53 deletions

View file

@ -10,7 +10,7 @@ beacon:
./aa_generate_beacon.py | tee figures/aa.log ./aa_generate_beacon.py | tee figures/aa.log
./ab_modify_clocks.py 0 | tee figures/ab.log ./ab_modify_clocks.py 0 | tee figures/ab.log
./ac_show_signal_to_noise.py --no-show-plots --fig-dir=${FIG_DIR} ./ac_show_signal_to_noise.py --no-show-plots --fig-dir=${FIG_DIR}
./view_beaconed_antenna.py 72 -p x -p y -p z -p AxB --no-show-plots --fig-dir=${FIG_DIR} ./view_beaconed_antenna.py 72 -p x -p y -p z --no-show-plots --fig-dir=${FIG_DIR}
clocks: clocks:
./ab_modify_clocks.py 15 --gaussian ./ab_modify_clocks.py 15 --gaussian

View file

@ -400,7 +400,7 @@ if __name__ == "__main__":
for j, amp in enumerate(beacon_amplitudes): for j, amp in enumerate(beacon_amplitudes):
traces[j] = traces[j] + amp*beacon + noise_realisation traces[j] = traces[j] + amp*beacon + noise_realisation
append_antenna_hdf5( antennas_fname, antenna, traces, name='raw_traces', prepend_time=True) append_antenna_hdf5( antennas_fname, antenna, traces, name='prefiltered_traces', prepend_time=True)
# .. and apply block_filter to every trace # .. and apply block_filter to every trace
dt = antenna.t[1] - antenna.t[0] dt = antenna.t[1] - antenna.t[0]

View file

@ -20,7 +20,7 @@ if __name__ == "__main__":
from scriptlib import MyArgumentParser from scriptlib import MyArgumentParser
parser = MyArgumentParser() parser = MyArgumentParser()
parser.add_argument('ant_idx', default=[72], nargs='*', help='Antenna Indices') parser.add_argument('ant_idx', default=[72], nargs='*', type=int, help='Antenna Indices')
parser.add_argument('-p', '--polarisations', choices=['x', 'y', 'z', 'b', 'AxB'], action='append', help='Default: x,y,z') parser.add_argument('-p', '--polarisations', choices=['x', 'y', 'z', 'b', 'AxB'], action='append', help='Default: x,y,z')
parser.add_argument('--geom', action='store_true', help='Make a figure containg the geometry from tx to antenna(s)') parser.add_argument('--geom', action='store_true', help='Make a figure containg the geometry from tx to antenna(s)')
parser.add_argument('--ft', action='store_true', help='Add FT strenghts of antenna traces') parser.add_argument('--ft', action='store_true', help='Add FT strenghts of antenna traces')
@ -28,6 +28,7 @@ if __name__ == "__main__":
args = parser.parse_args() args = parser.parse_args()
fname = "ZH_airshower/mysim.sry" fname = "ZH_airshower/mysim.sry"
figsize = (9,6)
plot_ft_amplitude = args.ft plot_ft_amplitude = args.ft
plot_geometry = args.geom plot_geometry = args.geom
@ -57,11 +58,28 @@ if __name__ == "__main__":
idx = [ i for i, ant in enumerate(antennas) if int(ant.name) in names ] idx = [ i for i, ant in enumerate(antennas) if int(ant.name) in names ]
fig1, axs = plt.subplots(1+plot_ft_amplitude*2) for i_fig in range(2):
name_dist=''
if i_fig == 1: #read in the raw_traces
_, __, antennas = beacon.read_beacon_hdf5(antennas_fname, traces_key='prefiltered_traces')
name_dist='.raw'
fig1, axs = plt.subplots(1+plot_ft_amplitude*2, figsize=figsize)
if not plot_ft_amplitude: if not plot_ft_amplitude:
axs = [axs] axs = [axs]
axs[0].set_xlabel('t [ns]') axs[0].set_xlabel('t [ns]')
axs[0].set_ylabel('[$\mu$V/m]') axs[0].set_ylabel('[$\mu$V/m]')
if i_fig == 1:
axs[0].set_title("UnFiltered traces")
else:
axs[0].set_title("Filtered traces")
if True:
axs[0].set_xlim(-250, 250)
if plot_ft_amplitude: if plot_ft_amplitude:
axs[1].set_xlabel('f [GHz]') axs[1].set_xlabel('f [GHz]')
axs[1].set_ylabel('Power') axs[1].set_ylabel('Power')
@ -121,7 +139,7 @@ if __name__ == "__main__":
else: else:
axs[0].legend(loc='upper right', ncol=min(3, len(idx))) axs[0].legend(loc='upper right', ncol=min(3, len(idx)))
if fig_dir: if fig_dir:
fig1.savefig(path.join(fig_dir, path.basename(__file__) + f".trace.pdf")) fig1.savefig(path.join(fig_dir, path.basename(__file__) + f".trace{name_dist}.pdf"))
if plot_geometry: if plot_geometry:
if len(mydict) == 1: if len(mydict) == 1:
@ -130,7 +148,7 @@ if __name__ == "__main__":
# only take the colour belonging to mydict[0] # only take the colour belonging to mydict[0]
geom_colorlist = [ colorlist[len(mydict)*(i)] for i in range(len(colorlist)//len(mydict)) ] geom_colorlist = [ colorlist[len(mydict)*(i)] for i in range(len(colorlist)//len(mydict)) ]
fig2, axs2 = plt.subplots(1) fig2, axs2 = plt.subplots(1, figsize=figsize)
plot_antenna_geometry(antennas, ax=axs2, plot_max_values=False, color='grey', plot_names=False) plot_antenna_geometry(antennas, ax=axs2, plot_max_values=False, color='grey', plot_names=False)
plot_antenna_geometry([ antennas[i] for i in idx], ax=axs2, colors=geom_colorlist, plot_max_values=False) plot_antenna_geometry([ antennas[i] for i in idx], ax=axs2, colors=geom_colorlist, plot_max_values=False)