mirror of
https://gitlab.science.ru.nl/mthesis-edeboone/m-thesis-introduction.git
synced 2024-12-21 11:03:37 +01:00
ZH: dc_grid_power_time_fixes as used for Thesis Figures
This commit is contained in:
parent
8e5a8b608d
commit
869ef6dc29
1 changed files with 42 additions and 19 deletions
|
@ -18,14 +18,21 @@ import aa_generate_beacon as beacon
|
||||||
import lib
|
import lib
|
||||||
from lib import rit
|
from lib import rit
|
||||||
|
|
||||||
|
try:
|
||||||
|
from tqdm import tqdm
|
||||||
|
except:
|
||||||
|
tqdm = lambda x: x
|
||||||
|
|
||||||
def save_overlapping_traces_figure(test_location, ev, N_plot = 30, wx=200, title_extra=None, fname_distinguish='', fig_dir=None, location_in_plot_text_loc=(0.02, 0.95), location_text=None, **fig_kwargs):
|
def save_overlapping_traces_figure(test_location, ev, N_plot = 30, wx=200, title_extra=None, fname_distinguish='', fig_dir=None, location_in_plot_text_loc=(0.02, 0.95), location_text=None, **fig_kwargs):
|
||||||
P, t_, a_, a_sum, t_sum = rit.pow_and_time(test_location, ev, dt=1)
|
P, t_, a_, a_sum, t_sum = rit.pow_and_time(test_location, ev, dt=1)
|
||||||
|
|
||||||
fig, axs = plt.subplots(**fig_kwargs)
|
fig, axs = plt.subplots(**fig_kwargs)
|
||||||
axs.set_title("Antenna traces" + (("\n" + title_extra) if title_extra is not None else '') )
|
#axs.set_title(
|
||||||
|
#"Antenna traces" + ("\n" if title_extra is not None else '') +
|
||||||
|
# title_extra )
|
||||||
axs.set_xlabel("Time [ns]")
|
axs.set_xlabel("Time [ns]")
|
||||||
axs.set_ylabel("Amplitude [$\\mu V/m$]")
|
axs.set_ylabel("Amplitude [$\\mu V/m$]")
|
||||||
if location_in_plot_text_loc:
|
if False and location_in_plot_text_loc:
|
||||||
text_loc = location_in_plot_text_loc
|
text_loc = location_in_plot_text_loc
|
||||||
|
|
||||||
if not location_text:
|
if not location_text:
|
||||||
|
@ -37,6 +44,9 @@ def save_overlapping_traces_figure(test_location, ev, N_plot = 30, wx=200, title
|
||||||
a_max = [ np.amax(ant.E_AxB) for ant in ev.antennas ]
|
a_max = [ np.amax(ant.E_AxB) for ant in ev.antennas ]
|
||||||
power_sort_idx = np.argsort(a_max)
|
power_sort_idx = np.argsort(a_max)
|
||||||
|
|
||||||
|
if N_plot is None:
|
||||||
|
N_plot = len(a_max)
|
||||||
|
|
||||||
for i, idx in enumerate(reversed(power_sort_idx)):
|
for i, idx in enumerate(reversed(power_sort_idx)):
|
||||||
if i >= N_plot:
|
if i >= N_plot:
|
||||||
break
|
break
|
||||||
|
@ -46,7 +56,7 @@ def save_overlapping_traces_figure(test_location, ev, N_plot = 30, wx=200, title
|
||||||
axs.plot(t_[idx], a_[idx], color='r', alpha=alpha, lw=2)
|
axs.plot(t_[idx], a_[idx], color='r', alpha=alpha, lw=2)
|
||||||
|
|
||||||
axs.set_ylim([None, max(a_max)*1.2])
|
axs.set_ylim([None, max(a_max)*1.2])
|
||||||
if False:
|
if True:
|
||||||
axs.set_xlim([-28000, -27300])
|
axs.set_xlim([-28000, -27300])
|
||||||
|
|
||||||
if fig_dir:
|
if fig_dir:
|
||||||
|
@ -56,7 +66,7 @@ def save_overlapping_traces_figure(test_location, ev, N_plot = 30, wx=200, title
|
||||||
fig.tight_layout()
|
fig.tight_layout()
|
||||||
|
|
||||||
fig.savefig(path.join(fig_dir, path.basename(__file__) + f'{fname_distinguish}.trace_overlap.{case}.pdf'))
|
fig.savefig(path.join(fig_dir, path.basename(__file__) + f'{fname_distinguish}.trace_overlap.{case}.pdf'))
|
||||||
fig.savefig(path.join(fig_dir, path.basename(__file__) + f'{fname_distinguish}.trace_overlap.{case}.png'), transparent=True)
|
#fig.savefig(path.join(fig_dir, path.basename(__file__) + f'{fname_distinguish}.trace_overlap.{case}.png'), transparent=True)
|
||||||
|
|
||||||
# Take center between t_low and t_high
|
# Take center between t_low and t_high
|
||||||
if True:
|
if True:
|
||||||
|
@ -82,7 +92,7 @@ def save_overlapping_traces_figure(test_location, ev, N_plot = 30, wx=200, title
|
||||||
|
|
||||||
axs.set_xlim(low_xlim, high_xlim)
|
axs.set_xlim(low_xlim, high_xlim)
|
||||||
fig.savefig(path.join(fig_dir, path.basename(__file__) + f'{fname_distinguish}.trace_overlap.zoomed.{case}.pdf'))
|
fig.savefig(path.join(fig_dir, path.basename(__file__) + f'{fname_distinguish}.trace_overlap.zoomed.{case}.pdf'))
|
||||||
fig.savefig(path.join(fig_dir, path.basename(__file__) + f'{fname_distinguish}.trace_overlap.zoomed.{case}.png'), transparent=True)
|
#fig.savefig(path.join(fig_dir, path.basename(__file__) + f'{fname_distinguish}.trace_overlap.zoomed.{case}.png'), transparent=True)
|
||||||
|
|
||||||
return fig
|
return fig
|
||||||
|
|
||||||
|
@ -95,9 +105,6 @@ if __name__ == "__main__":
|
||||||
if os.name == 'posix' and "DISPLAY" not in os.environ:
|
if os.name == 'posix' and "DISPLAY" not in os.environ:
|
||||||
matplotlib.use('Agg')
|
matplotlib.use('Agg')
|
||||||
|
|
||||||
if False: # change overall fontsize
|
|
||||||
plt.rc('font', size=25)
|
|
||||||
|
|
||||||
atm = AtmoCal()
|
atm = AtmoCal()
|
||||||
|
|
||||||
from scriptlib import MyArgumentParser
|
from scriptlib import MyArgumentParser
|
||||||
|
@ -122,7 +129,16 @@ if __name__ == "__main__":
|
||||||
if not wanted_cases or 'all' in wanted_cases:
|
if not wanted_cases or 'all' in wanted_cases:
|
||||||
wanted_cases = valid_cases
|
wanted_cases = valid_cases
|
||||||
|
|
||||||
figsize = (12,8)
|
figsize = (6, 4.5)
|
||||||
|
figsize_map = (6, 4.8)
|
||||||
|
if True:
|
||||||
|
from matplotlib import rcParams
|
||||||
|
#rcParams["text.usetex"] = True
|
||||||
|
rcParams["font.family"] = "serif"
|
||||||
|
rcParams["font.size"] = "15"
|
||||||
|
rcParams["grid.linestyle"] = 'dotted'
|
||||||
|
rcParams["figure.figsize"] = figsize
|
||||||
|
figsize = rcParams['figure.figsize']
|
||||||
|
|
||||||
fig_dir = args.fig_dir
|
fig_dir = args.fig_dir
|
||||||
show_plots = args.show_plots
|
show_plots = args.show_plots
|
||||||
|
@ -162,14 +178,15 @@ if __name__ == "__main__":
|
||||||
scale4d = dXref*np.tan(np.deg2rad(4.))
|
scale4d = dXref*np.tan(np.deg2rad(4.))
|
||||||
scale02d = dXref*np.tan(np.deg2rad(0.2))
|
scale02d = dXref*np.tan(np.deg2rad(0.2))
|
||||||
|
|
||||||
Nx, Ny = 21, 21
|
Nx, Ny = 31, 31
|
||||||
|
#Nx, Ny = 15, 15
|
||||||
scales = {
|
scales = {
|
||||||
'scale2d': scale2d,
|
'scale2d': scale2d,
|
||||||
'scale4d': scale4d,
|
'scale4d': scale4d,
|
||||||
'scale02d': scale02d,
|
'scale02d': scale02d,
|
||||||
}
|
}
|
||||||
|
|
||||||
N_plot = 30
|
N_plot = None
|
||||||
trace_zoom_wx = 100
|
trace_zoom_wx = 100
|
||||||
|
|
||||||
plot_titling = {
|
plot_titling = {
|
||||||
|
@ -180,7 +197,7 @@ if __name__ == "__main__":
|
||||||
}
|
}
|
||||||
|
|
||||||
power_on_grid_sc_kwargs = dict(
|
power_on_grid_sc_kwargs = dict(
|
||||||
s=250,
|
s=90, # 250 for (10,8)
|
||||||
cmap='inferno'
|
cmap='inferno'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -293,6 +310,9 @@ if __name__ == "__main__":
|
||||||
xx, yy, p, maxp_loc = rit.shower_plane_slice(ev, X=X, Nx=1, Ny=1, wx=0, wy=0, zgr=zgr)
|
xx, yy, p, maxp_loc = rit.shower_plane_slice(ev, X=X, Nx=1, Ny=1, wx=0, wy=0, zgr=zgr)
|
||||||
|
|
||||||
no_offset_maximum_power = p
|
no_offset_maximum_power = p
|
||||||
|
if True and np.isclose(X, 400):
|
||||||
|
no_offset_maximum_power = 200
|
||||||
|
|
||||||
|
|
||||||
# we forced no_offset for determing the reference vmax
|
# we forced no_offset for determing the reference vmax
|
||||||
# simply continue with the rest
|
# simply continue with the rest
|
||||||
|
@ -313,28 +333,31 @@ if __name__ == "__main__":
|
||||||
loc = (0)*ev.uAxB + (0)*ev.uAxAxB + dX * ev.uA
|
loc = (0)*ev.uAxB + (0)*ev.uAxAxB + dX * ev.uA
|
||||||
loc[0:1] = 0
|
loc[0:1] = 0
|
||||||
|
|
||||||
fig = save_overlapping_traces_figure(loc, ev, N_plot=N_plot, wx=trace_zoom_wx, title_extra = plot_titling[case], fname_distinguish=f'{case}.axis', location_text=f"on simulation axis, $X={X}$", fig_dir=fig_dir, figsize=figsize)
|
fig = save_overlapping_traces_figure(loc, ev, N_plot=N_plot, wx=trace_zoom_wx, title_extra = plot_titling[case], fname_distinguish=f'{case}.axis.X{X}', location_text=f"on simulation axis, $X={X}$", fig_dir=fig_dir, figsize=figsize)
|
||||||
plt.close(fig)
|
plt.close(fig)
|
||||||
|
|
||||||
|
if not True:
|
||||||
|
continue;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Measure power on grid
|
# Measure power on grid
|
||||||
# and plot overlapping traces at position with highest power
|
# and plot overlapping traces at position with highest power
|
||||||
#
|
#
|
||||||
for scalename, scale in scales.items():
|
for scalename, scale in tqdm(scales.items()):
|
||||||
wx, wy = scale, scale
|
wx, wy = scale, scale
|
||||||
print(f"Starting grid measurement for figure {case} with {scalename}")
|
print(f"Starting grid measurement for figure {case} with {scalename}")
|
||||||
xx, yy, p, maxp_loc = rit.shower_plane_slice(ev, X=X, Nx=Nx, Ny=Nx, wx=wx, wy=wy, zgr=zgr)
|
xx, yy, p, maxp_loc = rit.shower_plane_slice(ev, X=X, Nx=Nx, Ny=Nx, wx=wx, wy=wy, zgr=zgr)
|
||||||
fig, axs = rit.slice_figure(ev, X, xx, yy, p, mode='sp', scatter_kwargs={**dict(
|
fig, axs = rit.slice_figure(ev, X, xx, yy, p, mode='sp', scatter_kwargs={**dict(
|
||||||
vmax=no_offset_maximum_power,
|
vmax=no_offset_maximum_power,
|
||||||
vmin=0,
|
vmin=0,
|
||||||
), **power_on_grid_sc_kwargs} )
|
), **power_on_grid_sc_kwargs},
|
||||||
|
figsize=figsize_map)
|
||||||
|
|
||||||
suptitle = fig._suptitle.get_text()
|
suptitle = fig._suptitle.get_text()
|
||||||
fig.suptitle("")
|
fig.suptitle("")
|
||||||
axs.set_title("Shower plane slice\n" + plot_titling[case] + "\n" + suptitle)
|
#axs.set_title("Shower plane slice\n" + plot_titling[case] + "\n" + suptitle)
|
||||||
axs.set_aspect('equal', 'datalim')
|
axs.set_aspect('equal', 'datalim')
|
||||||
axs.legend(title=snr_str)
|
#axs.legend(title=snr_str,loc='upper right')
|
||||||
|
|
||||||
axs.set_xlim(1.1*min(xx)/1e3, 1.1*max(xx)/1e3)
|
axs.set_xlim(1.1*min(xx)/1e3, 1.1*max(xx)/1e3)
|
||||||
axs.set_ylim(1.1*min(yy)/1e3, 1.1*max(yy)/1e3)
|
axs.set_ylim(1.1*min(yy)/1e3, 1.1*max(yy)/1e3)
|
||||||
|
@ -347,7 +370,7 @@ if __name__ == "__main__":
|
||||||
#
|
#
|
||||||
# Plot overlapping traces at highest power of each scale
|
# Plot overlapping traces at highest power of each scale
|
||||||
#
|
#
|
||||||
fig = save_overlapping_traces_figure(maxp_loc, ev, N_plot=N_plot, wx=trace_zoom_wx, title_extra = plot_titling[case] + ', ' + scalename + ' best', fname_distinguish=scalename+'.best', fig_dir=fig_dir, figsize=figsize)
|
fig = save_overlapping_traces_figure(maxp_loc, ev, N_plot=N_plot, wx=trace_zoom_wx, title_extra = plot_titling[case] + ', ' + scalename + ' best', fname_distinguish=scalename+f'.best.X{X}', fig_dir=fig_dir, figsize=figsize)
|
||||||
|
|
||||||
#
|
#
|
||||||
# and plot overlapping traces at two other locations
|
# and plot overlapping traces at two other locations
|
||||||
|
@ -357,7 +380,7 @@ if __name__ == "__main__":
|
||||||
# only add distance horizontally
|
# only add distance horizontally
|
||||||
location = maxp_loc + np.sqrt(dist*1e3)*np.array([1,1,0])
|
location = maxp_loc + np.sqrt(dist*1e3)*np.array([1,1,0])
|
||||||
|
|
||||||
fig = save_overlapping_traces_figure(location, ev, N_plot=N_plot, wx=wx, title_extra = plot_titling[case] + ', ' + scalename + f', x + {dist}km', fname_distinguish=f'{scalename}.x{dist}', fig_dir=fig_dir, figsize=figsize)
|
fig = save_overlapping_traces_figure(location, ev, N_plot=N_plot, wx=wx, title_extra = plot_titling[case] + ', ' + scalename + f', x + {dist}km', fname_distinguish=f'{scalename}.x{dist}.X{X}', fig_dir=fig_dir, figsize=figsize)
|
||||||
plt.close(fig)
|
plt.close(fig)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue