Loading cal_config.json +6 −6 Original line number Diff line number Diff line { "Diamond": "/SNS/NOM/IPTS-31346/nexus/NOM_193698.nxs.h5", "Diamond": "/SNS/NOM/IPTS-33585/nexus/NOM_198571.nxs.h5", "Instrument": "NOM", "Date": "2023-07-06", "SampleEnv": "furnace", "OutputDir": "/SNS/NOM/shared/CALIBRATION/autoreduce", "GenShadowMask": "shadow_mask_shifter_193698.in", "Date": "2024-08-13", "SampleEnv": "shifter", "OutputDir": "/SNS/NOM/shared/autoreduce/calibration", "GenShadowMask": "shadow_mask_shifter_198571.in", "DiaLattParam": 3.5671299351, "GroupMethod": "KMEANS_ED", "SaveInitCalTable": true, Loading nom_cal +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ echo "+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- # Generate mask if [ ! $gen_mask_file = "no" ]; then echo "Generating mask..." mantidpython $working_dir/inputs/mask_gen/nom_shadow_mask_gen.py $dia_file rm -rf $running_dir/manual_mask_cache/gen_mask/$gen_mask_file Rscript $working_dir/inputs/mask_gen/find_dip.R $gen_mask_file Loading utils/calib_diag.py +17 −17 Original line number Diff line number Diff line Loading @@ -192,7 +192,7 @@ ax.set_xlabel('d-spacing') ax.set_ylabel('Detectors') tmpfile = BytesIO() fig.savefig(tmpfile, format='png') fig.savefig(tmpfile, format='png', dpi=300) encoded = base64.b64encode(tmpfile.getvalue()).decode('utf-8') diag1_out = os.path.join( Loading @@ -209,22 +209,22 @@ html += "<div>{}</div>".format(html_tmp) # ||||| Diagnostics-2 ||||| # vvvvv Calib versus Engineer vvvvv # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ fig, ax = diagnostics.difc_plot2d("_cal", "_cal_eng", instr_ws="_group", mask="_mask", vrange=(0, 5)) tmpfile = BytesIO() fig.savefig(tmpfile, format='png') encoded = base64.b64encode(tmpfile.getvalue()).decode('utf-8') diag2_out = os.path.join( out_cal_diag_dir, f"{diag_file_stem}_diag2.png" ) fig.savefig(diag2_out, format='png', dpi=300) html_tmp = '<h4>Calibrated vs. Engineering calibration constant</h4>' html_tmp += '<img src=\'data:image/png;base64,{}\'>'.format(encoded) html += "<div>{}</div>".format(html_tmp) # fig, ax = diagnostics.difc_plot2d("_cal", "_cal_eng", instr_ws="_group", # mask="_mask", vrange=(0, 5)) # # tmpfile = BytesIO() # fig.savefig(tmpfile, format='png') # encoded = base64.b64encode(tmpfile.getvalue()).decode('utf-8') # # diag2_out = os.path.join( # out_cal_diag_dir, # f"{diag_file_stem}_diag2.png" # ) # fig.savefig(diag2_out, format='png', dpi=300) # # html_tmp = '<h4>Calibrated vs. Engineering calibration constant</h4>' # html_tmp += '<img src=\'data:image/png;base64,{}\'>'.format(encoded) # html += "<div>{}</div>".format(html_tmp) # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ # ||||| Diagnostics-3 ||||| Loading utils/nom_cal.py +50 −30 Original line number Diff line number Diff line Loading @@ -226,6 +226,7 @@ for wksp_index in range(num_det): # if the chi square is larger than the pre-set threshold. chi_s_min = 1.E5 for sigma_trial in sigma_trials: try: FitPeak(InputWorkspace=wksp_check, OutputWorkspace="dia_calibrant_d_fit", ParameterTableWorkspace="dia_calibrant_d_table", Loading @@ -241,6 +242,22 @@ for wksp_index in range(num_det): FitBackgroundFirst=False, RawParams=False, CostFunction="Rwp") except: FitPeak(InputWorkspace=wksp_check, OutputWorkspace="dia_calibrant_d_fit", ParameterTableWorkspace="dia_calibrant_d_table", WorkspaceIndex=wksp_index, PeakFunctionType="Gaussian", PeakParameterNames="Height, PeakCentre, Sigma", PeakParameterValues=f"{height_init}, {c_est}, {sigma_trial}", BackgroundType="Linear", BackgroundParameterNames="A0, A1", BackgroundParameterValues="10, 0", FitWindow="1.2, 1.45", PeakRange="1.2, 1.45", FitBackgroundFirst=True, RawParams=False, CostFunction="Rwp") if mtd["dia_calibrant_d_table"].row(0)["Value"] < chi_s_min: chi_s_min = mtd["dia_calibrant_d_table"].row(0)["Value"] dia220_c_fitted = mtd["dia_calibrant_d_table"].row(2)["Value"] Loading Loading @@ -678,6 +695,7 @@ for bank in range(mtd["dia_calibrant_d_cc_f_tof"].getNumberHistograms()): tof_cent_trials = [tof_cent + item for item in np.arange(-5 , 6, 0.1)] chi2_min_tmp = 500. tof_cent_opt = tof_cent_trials[0] int_tmp = -1 for tof_cent_trial in tof_cent_trials: try: FitPeak(InputWorkspace=f"dia_calibrant_d_cc_f_tof_{bank + 1}", Loading Loading @@ -727,6 +745,8 @@ for bank in range(mtd["dia_calibrant_d_cc_f_tof"].getNumberHistograms()): d_tmp = mtd[f"dia_calibrant_d_cc_f_tof_{bank + 1}_{row_i}_table"].row(2)["Value"] d_tmp /= difc_arb d_fitted.append(d_tmp) else: print(f"[Warning] dia_calibrant_d_cc_f_tof_{bank + 1}_{row_i} is failing the peak fitting.") else: d_norm.append(float(peak_list[row_i][0])) d_tmp = mtd[f"pdcal_diag_{bank + 1}_fitparam"].row(row_i)["centre"] Loading Loading @@ -1119,21 +1139,21 @@ html += "<div>{}</div>".format(html_tmp) # vvvvv Calib versus Engineer vvvvv # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ fig, ax = diagnostics.difc_plot2d("_cal", "_cal_eng", instr_ws="_group", mask="_mask", vrange=(0, 5)) tmpfile = BytesIO() fig.savefig(tmpfile, format='png') encoded = base64.b64encode(tmpfile.getvalue()).decode('utf-8') diag_file_name = f"{diag_file_stem}_diag2.png" diag_file_png = os.path.join(out_cal_diag_dir, diag_file_name) fig.savefig(diag_file_png, format='png', dpi=300) diag_file_png = os.path.join(out_cal_diag_dir_alt, diag_file_name) fig.savefig(diag_file_png, format='png', dpi=300) html_tmp = '<h4>Calibrated vs. Engineering calibration constant</h4>' html_tmp += '<img src=\'data:image/png;base64,{}\'>'.format(encoded) html += "<div>{}</div>".format(html_tmp) # fig, ax = diagnostics.difc_plot2d("_cal", "_cal_eng", instr_ws="_group", # mask="_mask", vrange=(0, 5)) # tmpfile = BytesIO() # fig.savefig(tmpfile, format='png') # encoded = base64.b64encode(tmpfile.getvalue()).decode('utf-8') # # diag_file_name = f"{diag_file_stem}_diag2.png" # diag_file_png = os.path.join(out_cal_diag_dir, diag_file_name) # fig.savefig(diag_file_png, format='png', dpi=300) # diag_file_png = os.path.join(out_cal_diag_dir_alt, diag_file_name) # fig.savefig(diag_file_png, format='png', dpi=300) # # html_tmp = '<h4>Calibrated vs. Engineering calibration constant</h4>' # html_tmp += '<img src=\'data:image/png;base64,{}\'>'.format(encoded) # html += "<div>{}</div>".format(html_tmp) # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ # ||||| Diagnostics-3 ||||| Loading utils/nom_cal_test.py 0 → 100644 +1179 −0 File added.Preview size limit exceeded, changes collapsed. Show changes Loading
cal_config.json +6 −6 Original line number Diff line number Diff line { "Diamond": "/SNS/NOM/IPTS-31346/nexus/NOM_193698.nxs.h5", "Diamond": "/SNS/NOM/IPTS-33585/nexus/NOM_198571.nxs.h5", "Instrument": "NOM", "Date": "2023-07-06", "SampleEnv": "furnace", "OutputDir": "/SNS/NOM/shared/CALIBRATION/autoreduce", "GenShadowMask": "shadow_mask_shifter_193698.in", "Date": "2024-08-13", "SampleEnv": "shifter", "OutputDir": "/SNS/NOM/shared/autoreduce/calibration", "GenShadowMask": "shadow_mask_shifter_198571.in", "DiaLattParam": 3.5671299351, "GroupMethod": "KMEANS_ED", "SaveInitCalTable": true, Loading
nom_cal +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ echo "+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- # Generate mask if [ ! $gen_mask_file = "no" ]; then echo "Generating mask..." mantidpython $working_dir/inputs/mask_gen/nom_shadow_mask_gen.py $dia_file rm -rf $running_dir/manual_mask_cache/gen_mask/$gen_mask_file Rscript $working_dir/inputs/mask_gen/find_dip.R $gen_mask_file Loading
utils/calib_diag.py +17 −17 Original line number Diff line number Diff line Loading @@ -192,7 +192,7 @@ ax.set_xlabel('d-spacing') ax.set_ylabel('Detectors') tmpfile = BytesIO() fig.savefig(tmpfile, format='png') fig.savefig(tmpfile, format='png', dpi=300) encoded = base64.b64encode(tmpfile.getvalue()).decode('utf-8') diag1_out = os.path.join( Loading @@ -209,22 +209,22 @@ html += "<div>{}</div>".format(html_tmp) # ||||| Diagnostics-2 ||||| # vvvvv Calib versus Engineer vvvvv # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ fig, ax = diagnostics.difc_plot2d("_cal", "_cal_eng", instr_ws="_group", mask="_mask", vrange=(0, 5)) tmpfile = BytesIO() fig.savefig(tmpfile, format='png') encoded = base64.b64encode(tmpfile.getvalue()).decode('utf-8') diag2_out = os.path.join( out_cal_diag_dir, f"{diag_file_stem}_diag2.png" ) fig.savefig(diag2_out, format='png', dpi=300) html_tmp = '<h4>Calibrated vs. Engineering calibration constant</h4>' html_tmp += '<img src=\'data:image/png;base64,{}\'>'.format(encoded) html += "<div>{}</div>".format(html_tmp) # fig, ax = diagnostics.difc_plot2d("_cal", "_cal_eng", instr_ws="_group", # mask="_mask", vrange=(0, 5)) # # tmpfile = BytesIO() # fig.savefig(tmpfile, format='png') # encoded = base64.b64encode(tmpfile.getvalue()).decode('utf-8') # # diag2_out = os.path.join( # out_cal_diag_dir, # f"{diag_file_stem}_diag2.png" # ) # fig.savefig(diag2_out, format='png', dpi=300) # # html_tmp = '<h4>Calibrated vs. Engineering calibration constant</h4>' # html_tmp += '<img src=\'data:image/png;base64,{}\'>'.format(encoded) # html += "<div>{}</div>".format(html_tmp) # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ # ||||| Diagnostics-3 ||||| Loading
utils/nom_cal.py +50 −30 Original line number Diff line number Diff line Loading @@ -226,6 +226,7 @@ for wksp_index in range(num_det): # if the chi square is larger than the pre-set threshold. chi_s_min = 1.E5 for sigma_trial in sigma_trials: try: FitPeak(InputWorkspace=wksp_check, OutputWorkspace="dia_calibrant_d_fit", ParameterTableWorkspace="dia_calibrant_d_table", Loading @@ -241,6 +242,22 @@ for wksp_index in range(num_det): FitBackgroundFirst=False, RawParams=False, CostFunction="Rwp") except: FitPeak(InputWorkspace=wksp_check, OutputWorkspace="dia_calibrant_d_fit", ParameterTableWorkspace="dia_calibrant_d_table", WorkspaceIndex=wksp_index, PeakFunctionType="Gaussian", PeakParameterNames="Height, PeakCentre, Sigma", PeakParameterValues=f"{height_init}, {c_est}, {sigma_trial}", BackgroundType="Linear", BackgroundParameterNames="A0, A1", BackgroundParameterValues="10, 0", FitWindow="1.2, 1.45", PeakRange="1.2, 1.45", FitBackgroundFirst=True, RawParams=False, CostFunction="Rwp") if mtd["dia_calibrant_d_table"].row(0)["Value"] < chi_s_min: chi_s_min = mtd["dia_calibrant_d_table"].row(0)["Value"] dia220_c_fitted = mtd["dia_calibrant_d_table"].row(2)["Value"] Loading Loading @@ -678,6 +695,7 @@ for bank in range(mtd["dia_calibrant_d_cc_f_tof"].getNumberHistograms()): tof_cent_trials = [tof_cent + item for item in np.arange(-5 , 6, 0.1)] chi2_min_tmp = 500. tof_cent_opt = tof_cent_trials[0] int_tmp = -1 for tof_cent_trial in tof_cent_trials: try: FitPeak(InputWorkspace=f"dia_calibrant_d_cc_f_tof_{bank + 1}", Loading Loading @@ -727,6 +745,8 @@ for bank in range(mtd["dia_calibrant_d_cc_f_tof"].getNumberHistograms()): d_tmp = mtd[f"dia_calibrant_d_cc_f_tof_{bank + 1}_{row_i}_table"].row(2)["Value"] d_tmp /= difc_arb d_fitted.append(d_tmp) else: print(f"[Warning] dia_calibrant_d_cc_f_tof_{bank + 1}_{row_i} is failing the peak fitting.") else: d_norm.append(float(peak_list[row_i][0])) d_tmp = mtd[f"pdcal_diag_{bank + 1}_fitparam"].row(row_i)["centre"] Loading Loading @@ -1119,21 +1139,21 @@ html += "<div>{}</div>".format(html_tmp) # vvvvv Calib versus Engineer vvvvv # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ fig, ax = diagnostics.difc_plot2d("_cal", "_cal_eng", instr_ws="_group", mask="_mask", vrange=(0, 5)) tmpfile = BytesIO() fig.savefig(tmpfile, format='png') encoded = base64.b64encode(tmpfile.getvalue()).decode('utf-8') diag_file_name = f"{diag_file_stem}_diag2.png" diag_file_png = os.path.join(out_cal_diag_dir, diag_file_name) fig.savefig(diag_file_png, format='png', dpi=300) diag_file_png = os.path.join(out_cal_diag_dir_alt, diag_file_name) fig.savefig(diag_file_png, format='png', dpi=300) html_tmp = '<h4>Calibrated vs. Engineering calibration constant</h4>' html_tmp += '<img src=\'data:image/png;base64,{}\'>'.format(encoded) html += "<div>{}</div>".format(html_tmp) # fig, ax = diagnostics.difc_plot2d("_cal", "_cal_eng", instr_ws="_group", # mask="_mask", vrange=(0, 5)) # tmpfile = BytesIO() # fig.savefig(tmpfile, format='png') # encoded = base64.b64encode(tmpfile.getvalue()).decode('utf-8') # # diag_file_name = f"{diag_file_stem}_diag2.png" # diag_file_png = os.path.join(out_cal_diag_dir, diag_file_name) # fig.savefig(diag_file_png, format='png', dpi=300) # diag_file_png = os.path.join(out_cal_diag_dir_alt, diag_file_name) # fig.savefig(diag_file_png, format='png', dpi=300) # # html_tmp = '<h4>Calibrated vs. Engineering calibration constant</h4>' # html_tmp += '<img src=\'data:image/png;base64,{}\'>'.format(encoded) # html += "<div>{}</div>".format(html_tmp) # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ # ||||| Diagnostics-3 ||||| Loading
utils/nom_cal_test.py 0 → 100644 +1179 −0 File added.Preview size limit exceeded, changes collapsed. Show changes