Skip to content
Snippets Groups Projects

MISC: Scrap work for A&O plenary

Open David McKenna requested to merge ao_plenary_modifications into main
1 file
+ 53
7
Compare changes
  • Side-by-side
  • Inline
+ 53
7
@@ -130,7 +130,7 @@ def plot_antenna(antenna_idx, input_hdf5_files, outdir: str = "./", fade=0.8, de
solt = sol
if i == count:
src = SkyCoord.from_name(sol.attrs["observation_source"])
src = SkyCoord.from_name(sol.attrs["observation_source"].split(',')[0])
obstime = Time(sol.attrs["observation_date"])
alt = src.transform_to(AltAz(obstime=obstime, location=el)).alt.deg
alts.append(alt)
@@ -179,7 +179,7 @@ def plot_antenna(antenna_idx, input_hdf5_files, outdir: str = "./", fade=0.8, de
if i != 0:
solt.close()
src = SkyCoord.from_name(sol.attrs["observation_source"])
src = SkyCoord.from_name(sol.attrs["observation_source"].split(',')[0])
obstime = Time(sol.attrs["observation_date"])
alt = src.transform_to(AltAz(obstime=obstime, location=el)).alt.deg
fig.suptitle(
@@ -198,7 +198,19 @@ def plot_antenna(antenna_idx, input_hdf5_files, outdir: str = "./", fade=0.8, de
res.append((phases, offsets))
return res, alts
def plot_single_int_antenna(antenna_idx, input_hdf5_file, outdir: str = "./", freq = None, pols = None):
def build_jones_arr(dataset):
output = np.zeros((512, 2,2), dtype = np.complex128)
output[:, 0, 0] = dataset["x"]
output[:, 1, 1] = dataset["y"]
output[:, 0, 1] = dataset["xy"]
output[:, 1, 0] = dataset["yx"]
return output
def plot_single_int_antenna(antenna_idx, input_hdf5_file, outdir: str = "./", freq = None, pols = None, reference_antenna: None | int = None):
if not os.path.exists(outdir):
os.mkdir(outdir)
plot_dims = int(np.sqrt(len(antenna_idx)))
print(plot_dims)
@@ -241,14 +253,36 @@ def plot_single_int_antenna(antenna_idx, input_hdf5_file, outdir: str = "./", fr
obstime = Time(sol.attrs["observation_date"])
alt = src.transform_to(AltAz(obstime=obstime, location=el)).alt.deg
if reference_antenna is not None:
ref_ant_component = np.zeros((512, 2, 2), dtype = np.complex128)
ref_ant_component[:, ...] = np.exp(-1.0j * np.angle(np.linalg.det(build_jones_arr(solt["antennas"][f"{prefix}{reference_antenna:02d}"]))))[:, np.newaxis, np.newaxis]
# ref_data = build_jones_arr(solt["antennas"][f"{prefix}{reference_antenna:02d}"])
# ref_data[ref_data[:, 0, 0] == 0.0, 0, 0] = 1.0
# ref_data[ref_data[:, 1, 1] == 0.0, 1, 1] = 1.0
# ref_ant_component = np.exp(-1.0j * np.angle(ref_data))
for x in range(plot_dims):
for y in range(plot_dims):
antenna = antenna_idx[x * plot_dims + y]
data = solt["antennas"][f"{prefix}{antenna:02d}"]
if reference_antenna is not None:
expanded_data = build_jones_arr(data)
for i in range(512):
expanded_data[i] = expanded_data[i] @ ref_ant_component[i]
data = {
'x': expanded_data[:, 0, 0],
'y': expanded_data[:, 1, 1],
'xy': expanded_data[:, 0, 1],
'yx': expanded_data[:, 1, 1],
}
axs[x, y].set_title(f"Antenna {antenna}")
for pol in pols or ["x", "y"]:
datum = np.angle(np.array(data[f"{pol}"]))
# datum = np.angle(np.conj(np.array(data[f"{pol}"])))
axs[x, y].plot(
freq,
datum,
@@ -317,7 +351,7 @@ if __name__ == "__main__":
# '/Users/mckenna/l2_data/CS001/2024-12-06T16:27:59.604236/LBA/tmp/gains_nomask/CalTable-CS001-LBA_50MHz_2024-12-06T16:28:01_Merged Sky Model_NONE.h5',
# outdir='cs1_noblmask', freq=np.arange(512) * 100 / 512)
# plot_single_int_antenna([0, 4, 6, 12, 29, 45, 52, 64, 78],
# plot_single_int_antenna([0, 4, 6, 12, 29, 45, 52, 64, 78],
# '/Users/mckenna/l2_data/CS001/2024-12-06T16:27:59.604236/LBA/tmp/gains/CalTable-CS001-LBA_50MHz_2024-12-06T16:29:41_Merged Sky Model_NONE.h5',
# outdir="./32_3x3/", freq=np.arange(512) * 100 / 512)
# for file in os.listdir("/Users/mckenna/l2_data/LBA_2024-12-06_60hr_run_gains_6step/"):
@@ -331,12 +365,24 @@ if __name__ == "__main__":
# os.path.join("/Users/mckenna/l2_data/LBA_2024-12-06_60hr_run_gains_6step", file),
# outdir="./ani_lba_cross/", freq=np.arange(512) * 100 / 512, pols = ['xy', 'yx'])
# lba_dir = "./folder_save_solutions_lba"
basepath = "/Users/mckenna/cal_pres/sb30_480_src_fix/gains/"
for file in os.listdir(basepath):
if not os.path.isfile(os.path.join(basepath, file)) or not file.endswith("5"):
continue
plot_single_int_antenna([0, 4, 6, 12, 29, 45, 52, 64, 78],
os.path.join(basepath, file),
outdir=os.path.join(basepath, "./ani_lba_ref/"), freq=np.arange(512) * 100 / 512, reference_antenna = 45)
plot_single_int_antenna([0, 4, 6, 12, 29, 45, 52, 64, 78],
os.path.join(basepath, file),
outdir=os.path.join(basepath, "./ani_lba_cross_ref/"), freq=np.arange(512) * 100 / 512, pols = ['xy', 'yx'], reference_antenna = 45)
# lba_dir = os.path.join(basepath, "folder_save_solutions")
# lba_cal_ref_files = [os.path.join(lba_dir, file) for file in os.listdir(lba_dir) if "SolTable" in file and "old" not in file]
# lba_cal_ref_files.sort()
# # visualise_baseline_flagging("CS001LBA", 10.0)
# # plot_antenna([0, 47, 3, 83], lba_cal_ref_files)
# # plot_antenna([0, 5, 6, 42, 60, 80, 46, 47, 94], lba_cal_ref_files, lba_dir, fade = 0.5)
# plot_antenna([0, 47, 3, 83], lba_cal_ref_files)
# plot_antenna([0, 5, 6, 42, 60, 80, 46, 47, 94], lba_cal_ref_files, lba_dir, fade = 0.5)
#
# hba_dir = "./folder_save_solutions"
# hba_cal_ref_files = [os.path.join(hba_dir, file) for file in os.listdir(hba_dir) if
Loading