Loading DataReductionGIANOB/Frame_Gofio.py +19 −21 Changes for DataReductionGIANOB/Frame_Gofio.py: 19 added lines, 21 removed lines. Original line number Diff line number Diff line import re import tkinter as tk import traceback from pathlib import Path from tkinter import ttk Loading Loading @@ -1329,30 +1330,22 @@ class Frame_Gofio: listB = list() if instrument == "criresp": folder = Path(dirr) mjd_key = yaml_file['MJD'] if obs_mode == "Nodding": # Trova file A e B dictA = {int(f.stem.split("_")[-1]): f for f in folder.glob("cr2res_obs_nodding_extractedA_*.fits")} dictB = {int(f.stem.split("_")[-1]): f for f in folder.glob("cr2res_obs_nodding_extractedB_*.fits")} # Collect A and B nodding files filesA = list(folder.glob("cr2res_obs_nodding_extractedA_*.fits")) filesB = list(folder.glob("cr2res_obs_nodding_extractedB_*.fits")) if separate_A_B: all_indices = sorted(set(dictA.keys()) | set(dictB.keys())) for i in all_indices: if i in dictA: listA.append(dictA[i]) if i in dictB: listB.append(dictB[i]) # Sort A and B separately by MJD listA = sorted(filesA, key=lambda f: fits.getheader(f)[mjd_key]) listB = sorted(filesB, key=lambda f: fits.getheader(f)[mjd_key]) else: # Tutti gli indici trovati all_indices = sorted(set(dictA.keys()) | set(dictB.keys())) listAB = [] for i in all_indices: if i in dictA: listAB.append(dictA[i]) if i in dictB: listAB.append(dictB[i]) # Sort all A+B files together by MJD listAB = sorted(filesA + filesB, key=lambda f: fits.getheader(f)[mjd_key]) else: listAB = list(folder.glob("cr2res_obs_staring_extracted_*.fits")) # Staring mode: sort by MJD staring_files = list(folder.glob("cr2res_obs_staring_extracted*.fits")) listAB = sorted(staring_files, key=lambda f: fits.getheader(f)[mjd_key]) else: # for file in os.listdir(dirr): Loading @@ -1367,6 +1360,7 @@ class Frame_Gofio: listAB.append(os.path.join(dirr, file)) # self.run_from_gofio.configure(state="disabled") try: if separate_A_B and instrument in ["gianob", "criresp"] and obs_mode == "Nodding": if len(listA) == len(listB): self.procedure_fromgofio(listA, "A_", night, dirn, threshold_SNR_f, target, yaml_file, instrument) Loading @@ -1375,6 +1369,9 @@ class Frame_Gofio: print("The amount of files A is not equal to the amount of file B") else: # for nodding/stare mode of gianob/criresp and for espresso or harpsn self.procedure_fromgofio(listAB, "", night, dirn, threshold_SNR_f, target, yaml_file, instrument) except Exception as e: print(str(e), traceback.format_exc()) tk.messagebox.showerror("Error", "An error occurred during the reduction/separation process. Please check the log file for details.") self.run_from_gofio.configure(state="normal") def procedure_fromgofio( Loading @@ -1392,14 +1389,15 @@ class Frame_Gofio: m = re.match(r"(\d+)_01_SPEC", name) if m: order = m.group(1) # es. '07' print(f"Chip: {chip_idx}; Order: {order} ") if order not in channels_per_order: channels_per_order[order] = len(chip.data[name]) struct_crires.append((chip_idx, order)) else: struct_crires = None list_file.sort() orders_str = "" SNR_mean_str = "" list_file.sort() nimages = len(list_file) curr_image = ImageAnalysis(list_file[0], target_f, yaml_file, struct_crires) norder = curr_image.norder Loading DataReductionGIANOB/Image.py +2 −0 Changes for DataReductionGIANOB/Image.py: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -98,6 +98,8 @@ class ImageAnalysis: self.npix = yaml_file['npix'] # Total number of spectral orders in the echelle spectrum self.norder = yaml_file['norder'] if self.norder == "xx": self.norder = len(struct_crires) # ======================== OPEN AND READ FITS FILE ======================== # Open the FITS file containing the spectroscopic data Loading DataReductionGIANOB/Instruments/criresp.yaml +1 −1 Changes for DataReductionGIANOB/Instruments/criresp.yaml: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ index_header : 0 data_in_columns : "None" files_type : RAW npix : 2048 norder : 24 norder : xx # 24 ra_dec_deg : 1 corr_zero : 0 NEED_SUM_EXPOSURE_TO_MJD : 1 Loading Loading
DataReductionGIANOB/Frame_Gofio.py +19 −21 Changes for DataReductionGIANOB/Frame_Gofio.py: 19 added lines, 21 removed lines. Original line number Diff line number Diff line import re import tkinter as tk import traceback from pathlib import Path from tkinter import ttk Loading Loading @@ -1329,30 +1330,22 @@ class Frame_Gofio: listB = list() if instrument == "criresp": folder = Path(dirr) mjd_key = yaml_file['MJD'] if obs_mode == "Nodding": # Trova file A e B dictA = {int(f.stem.split("_")[-1]): f for f in folder.glob("cr2res_obs_nodding_extractedA_*.fits")} dictB = {int(f.stem.split("_")[-1]): f for f in folder.glob("cr2res_obs_nodding_extractedB_*.fits")} # Collect A and B nodding files filesA = list(folder.glob("cr2res_obs_nodding_extractedA_*.fits")) filesB = list(folder.glob("cr2res_obs_nodding_extractedB_*.fits")) if separate_A_B: all_indices = sorted(set(dictA.keys()) | set(dictB.keys())) for i in all_indices: if i in dictA: listA.append(dictA[i]) if i in dictB: listB.append(dictB[i]) # Sort A and B separately by MJD listA = sorted(filesA, key=lambda f: fits.getheader(f)[mjd_key]) listB = sorted(filesB, key=lambda f: fits.getheader(f)[mjd_key]) else: # Tutti gli indici trovati all_indices = sorted(set(dictA.keys()) | set(dictB.keys())) listAB = [] for i in all_indices: if i in dictA: listAB.append(dictA[i]) if i in dictB: listAB.append(dictB[i]) # Sort all A+B files together by MJD listAB = sorted(filesA + filesB, key=lambda f: fits.getheader(f)[mjd_key]) else: listAB = list(folder.glob("cr2res_obs_staring_extracted_*.fits")) # Staring mode: sort by MJD staring_files = list(folder.glob("cr2res_obs_staring_extracted*.fits")) listAB = sorted(staring_files, key=lambda f: fits.getheader(f)[mjd_key]) else: # for file in os.listdir(dirr): Loading @@ -1367,6 +1360,7 @@ class Frame_Gofio: listAB.append(os.path.join(dirr, file)) # self.run_from_gofio.configure(state="disabled") try: if separate_A_B and instrument in ["gianob", "criresp"] and obs_mode == "Nodding": if len(listA) == len(listB): self.procedure_fromgofio(listA, "A_", night, dirn, threshold_SNR_f, target, yaml_file, instrument) Loading @@ -1375,6 +1369,9 @@ class Frame_Gofio: print("The amount of files A is not equal to the amount of file B") else: # for nodding/stare mode of gianob/criresp and for espresso or harpsn self.procedure_fromgofio(listAB, "", night, dirn, threshold_SNR_f, target, yaml_file, instrument) except Exception as e: print(str(e), traceback.format_exc()) tk.messagebox.showerror("Error", "An error occurred during the reduction/separation process. Please check the log file for details.") self.run_from_gofio.configure(state="normal") def procedure_fromgofio( Loading @@ -1392,14 +1389,15 @@ class Frame_Gofio: m = re.match(r"(\d+)_01_SPEC", name) if m: order = m.group(1) # es. '07' print(f"Chip: {chip_idx}; Order: {order} ") if order not in channels_per_order: channels_per_order[order] = len(chip.data[name]) struct_crires.append((chip_idx, order)) else: struct_crires = None list_file.sort() orders_str = "" SNR_mean_str = "" list_file.sort() nimages = len(list_file) curr_image = ImageAnalysis(list_file[0], target_f, yaml_file, struct_crires) norder = curr_image.norder Loading
DataReductionGIANOB/Image.py +2 −0 Changes for DataReductionGIANOB/Image.py: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -98,6 +98,8 @@ class ImageAnalysis: self.npix = yaml_file['npix'] # Total number of spectral orders in the echelle spectrum self.norder = yaml_file['norder'] if self.norder == "xx": self.norder = len(struct_crires) # ======================== OPEN AND READ FITS FILE ======================== # Open the FITS file containing the spectroscopic data Loading
DataReductionGIANOB/Instruments/criresp.yaml +1 −1 Changes for DataReductionGIANOB/Instruments/criresp.yaml: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ index_header : 0 data_in_columns : "None" files_type : RAW npix : 2048 norder : 24 norder : xx # 24 ra_dec_deg : 1 corr_zero : 0 NEED_SUM_EXPOSURE_TO_MJD : 1 Loading