ZH: rename clock repair-all mode to repair-full

This commit is contained in:
Eric Teunis de Boone 2023-05-01 17:43:20 +02:00
parent 278d029f8e
commit 7eaa97d0cb
5 changed files with 22 additions and 15 deletions

View file

@ -79,8 +79,8 @@ vary-fixes:
# #
reconstruct: reconstruct:
./da_reconstruction.py --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR} --input-fname ${INPUT_DIR} ./da_reconstruction.py --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR} --input-fname ${INPUT_DIR} --clock-repair full
./db_longitudinal_figure.py --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR} ./db_longitudinal_figure.py --no-show-plots --fig-dir=${FIG_DIR} --data-dir ${DATA_DIR} --clock-repair full
dist-clean: dist-clean:
rm -vf ${DATA_DIR}/ rm -vf ${DATA_DIR}/

View file

@ -22,8 +22,8 @@ beacon_snr_fname = 'beacon_snr.json'
airshower_snr_fname = 'airshower_snr.json' airshower_snr_fname = 'airshower_snr.json'
c_light = lib.c_light c_light = lib.c_light
def read_antenna_clock_repair_offsets(antennas, mode='all', freq_name=None): def read_antenna_clock_repair_offsets(antennas, mode='full', freq_name=None):
valid_modes = ['orig', 'ks', 'phases', 'all'] valid_modes = ['orig', 'ks', 'phases', 'full']
time_offsets = [] time_offsets = []
for i, ant in enumerate(antennas): for i, ant in enumerate(antennas):

View file

@ -32,6 +32,7 @@ if __name__ == "__main__":
from scriptlib import MyArgumentParser from scriptlib import MyArgumentParser
parser = MyArgumentParser() parser = MyArgumentParser()
parser.add_argument('--input-fname', type=str, default=None, help='Path to mysim.sry, either directory or path. If empty it takes DATA_DIR and appends mysim.sry. (Default: %(default)s)') parser.add_argument('--input-fname', type=str, default=None, help='Path to mysim.sry, either directory or path. If empty it takes DATA_DIR and appends mysim.sry. (Default: %(default)s)')
parser.add_argument('--clock-repair', type=str, default='full', choices=['orig', 'ks', 'phases', 'full'], help='How to repair the clock offsets. (Default: %(default)s)')
args = parser.parse_args() args = parser.parse_args()
if not args.input_fname: if not args.input_fname:
@ -43,7 +44,8 @@ if __name__ == "__main__":
figsize = (12,8) figsize = (12,8)
fig_dir = args.fig_dir fig_dir = args.fig_dir
fig_subdir = path.join(fig_dir, 'reconstruction') clock_repair_mode = args.clock_repair
fig_subdir = path.join(fig_dir, 'reconstruction', clock_repair_mode)
show_plots = args.show_plots show_plots = args.show_plots
apply_signal_window_from_max = True apply_signal_window_from_max = True
@ -52,7 +54,7 @@ if __name__ == "__main__":
#### ####
fname_dir = args.data_dir fname_dir = args.data_dir
antennas_fname = path.join(fname_dir, beacon.antennas_fname) antennas_fname = path.join(fname_dir, beacon.antennas_fname)
pickle_fname = path.join(fname_dir, 'res.pkl') pickle_fname = path.join(fname_dir, 'res-'+clock_repair_mode+'.pkl')
tx_fname = path.join(fname_dir, beacon.tx_fname) tx_fname = path.join(fname_dir, beacon.tx_fname)
beacon_snr_fname = path.join(fname_dir, beacon.beacon_snr_fname) beacon_snr_fname = path.join(fname_dir, beacon.beacon_snr_fname)
@ -82,7 +84,7 @@ if __name__ == "__main__":
f_beacon = ev.antennas[0].beacon_info[freq_name]['freq'] f_beacon = ev.antennas[0].beacon_info[freq_name]['freq']
# Repair clock offsets with the measured offsets # Repair clock offsets with the measured offsets
measured_repair_offsets = beacon.read_antenna_clock_repair_offsets(ev.antennas, mode='phases', freq_name=freq_name) measured_repair_offsets = beacon.read_antenna_clock_repair_offsets(ev.antennas, mode=clock_repair_mode, freq_name=freq_name)
for i, ant in enumerate(ev.antennas): for i, ant in enumerate(ev.antennas):
# t_AxB will be set by the rit.set_pol_and_bp function # t_AxB will be set by the rit.set_pol_and_bp function
ev.antennas[i].orig_t = ev.antennas[i].t ev.antennas[i].orig_t = ev.antennas[i].t
@ -201,7 +203,11 @@ if __name__ == "__main__":
fig.savefig(path.join(fig_dir, path.basename(__file__)+f'.traces.A{i}.pdf')) fig.savefig(path.join(fig_dir, path.basename(__file__)+f'.traces.A{i}.pdf'))
if False: # very fine grid
N_X, Xlow, Xhigh = 23, 100, 1200 N_X, Xlow, Xhigh = 23, 100, 1200
else:
N_X, Xlow, Xhigh = 6, 200, 1200
with joblib.parallel_backend("loky"): with joblib.parallel_backend("loky"):
res = rit.reconstruction(ev, outfile=fig_subdir+'/fig.pdf', slice_outdir=fig_subdir+'/', Xlow=Xlow, N_X=N_X, Xhigh=Xhigh, disable_pol_and_bp=True) res = rit.reconstruction(ev, outfile=fig_subdir+'/fig.pdf', slice_outdir=fig_subdir+'/', Xlow=Xlow, N_X=N_X, Xhigh=Xhigh, disable_pol_and_bp=True)

View file

@ -26,15 +26,17 @@ if __name__ == "__main__":
from scriptlib import MyArgumentParser from scriptlib import MyArgumentParser
parser = MyArgumentParser() parser = MyArgumentParser()
parser.add_argument('--clock-repair', type=str, default='full', choices=['orig', 'ks', 'phases', 'full'], help='How to repair the clock offsets. (Default: %(default)s)')
args = parser.parse_args() args = parser.parse_args()
fig_dir = args.fig_dir fig_dir = args.fig_dir
clock_repair_mode = args.clock_repair
show_plots = args.show_plots show_plots = args.show_plots
#### ####
fname_dir = args.data_dir fname_dir = args.data_dir
antennas_fname = path.join(fname_dir, beacon.antennas_fname) antennas_fname = path.join(fname_dir, beacon.antennas_fname)
pickle_fname = path.join(fname_dir, 'res.pkl') pickle_fname = path.join(fname_dir, 'res-'+clock_repair_mode+'.pkl')
# create fig_dir # create fig_dir
if fig_dir: if fig_dir:
@ -53,4 +55,4 @@ if __name__ == "__main__":
fig = rit.longitudinal_figure(res.dl[0], res.dX[0], res.profile_rit[0], mode=mode) fig = rit.longitudinal_figure(res.dl[0], res.dX[0], res.profile_rit[0], mode=mode)
if fig_dir: if fig_dir:
fig.savefig(path.join(fig_dir, path.basename(__file__) + f".{mode}.pdf")) fig.savefig(path.join(fig_dir, path.basename(__file__) + f".{clock_repair_mode}.{mode}.pdf"))

View file

@ -79,7 +79,7 @@ def save_overlapping_traces_figure(test_location, ev, N_plot = 30, wx=200, title
return fig return fig
if __name__ == "__main__": if __name__ == "__main__":
valid_cases = ['no_offset', 'repair_none', 'repair_phases', 'repair_all'] valid_cases = ['no_offset', 'repair_none', 'repair_phases', 'repair_full']
import sys import sys
import os import os
@ -121,7 +121,6 @@ if __name__ == "__main__":
#### ####
fname_dir = args.data_dir fname_dir = args.data_dir
antennas_fname = path.join(fname_dir, beacon.antennas_fname) antennas_fname = path.join(fname_dir, beacon.antennas_fname)
pickle_fname = path.join(fname_dir, 'res.pkl')
tx_fname = path.join(fname_dir, beacon.tx_fname) tx_fname = path.join(fname_dir, beacon.tx_fname)
beacon_snr_fname = path.join(fname_dir, beacon.beacon_snr_fname) beacon_snr_fname = path.join(fname_dir, beacon.beacon_snr_fname)
@ -165,7 +164,7 @@ if __name__ == "__main__":
'no_offset': "no clock offset", 'no_offset': "no clock offset",
'repair_none': "unrepaired clock offset", 'repair_none': "unrepaired clock offset",
'repair_phases': "phase resolved clock offsets repaired", 'repair_phases': "phase resolved clock offsets repaired",
'repair_all': "final measured clock offsets repaired" 'repair_full': "final measured clock offsets repaired"
} }
# For now only implement using one freq_name # For now only implement using one freq_name
@ -248,7 +247,7 @@ if __name__ == "__main__":
for case in wanted_cases: for case in wanted_cases:
print(f"Starting {case} figure") print(f"Starting {case} figure")
# Repair clock offsets with the measured offsets # Repair clock offsets with the measured offsets
transl_modes = {'no_offset':'orig', 'repair_phases':'phases', 'repair_all':'all'} transl_modes = {'no_offset':'orig', 'repair_phases':'phases', 'repair_full':'full'}
if case in transl_modes: if case in transl_modes:
transl_mode = transl_modes[case] transl_mode = transl_modes[case]
@ -310,7 +309,7 @@ if __name__ == "__main__":
# #
# and plot overlapping traces at two other locations # and plot overlapping traces at two other locations
# #
if True: if False:
for dist in [ 0.5, 5, 10, 50, 100]: for dist in [ 0.5, 5, 10, 50, 100]:
# 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])