Skip to content
Snippets Groups Projects

[AGIPD][CORRECT] Split FF and PC queries

Merged Karim Ahmed requested to merge fix/AGIDP_constants_queries into master
3 unresolved threads
1 file
+ 25
16
Compare changes
  • Side-by-side
  • Inline
## Retrieving constants
## Retrieving constants
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
 
def get_constants_and_update_metadata(cal_data, main_metadata, constants):
 
try:
 
metadata = cal_data.metadata(constants)
 
for key, value in metadata.items():
 
main_metadata.setdefault(key, {}).update(value)
 
except CalCatError as e: # TODO: replace when API errors are improved.
 
warning(f"CalCatError: {e}")
 
%% Cell type:code id: tags:
dark_constants = ["Offset", "Noise", "BadPixelsDark"]
dark_constants = ["Offset", "Noise", "BadPixelsDark"]
if not gain_mode: # Adaptive gain
if not gain_mode: # Adaptive gain
dark_constants.append("ThresholdsDark")
dark_constants.append("ThresholdsDark")
gain_constants = []
 
agipd_metadata = agipd_cal.metadata(dark_constants)
 
 
agipd_cal.gain_mode = None # gain_mode is not used for gain constants
 
pc_constants, ff_constants = [], []
if any(agipd_corr.pc_bools):
if any(agipd_corr.pc_bools):
gain_constants += ["SlopesPC", "BadPixelsPC"]
pc_constants = ["SlopesPC", "BadPixelsPC"]
 
get_constants_and_update_metadata(
 
agipd_cal, agipd_metadata, pc_constants)
 
if agipd_corr.corr_bools.get('xray_corr'):
if agipd_corr.corr_bools.get('xray_corr'):
gain_constants += agipd_cal.illuminated_calibrations
ff_constants = agipd_cal.illuminated_calibrations
 
get_constants_and_update_metadata(
 
agipd_cal, agipd_metadata, ff_constants)
# First retrieve dark constants
agipd_metadata = agipd_cal.metadata(dark_constants)
if gain_constants:
# Then retrieve gain constants without
# using the `gain_mode` condition.
agipd_cal.gain_mode = None
try:
illum_metadata = agipd_cal.metadata(gain_constants)
for key, value in illum_metadata.items():
agipd_metadata.setdefault(key, {}).update(value)
except CalCatError as e: # TODO: replace when API errors are improved.
warning(f"CalCatError: {e}")
step_timer.done_step("Constants were retrieved in")
step_timer.done_step("Constants were retrieved in")
print("Preparing constants ("
print("Preparing constants ("
karabo_da.drop(da)
karabo_da.drop(da)
modules.drop(mod)
modules.drop(mod)
warn_missing_constants = set(dark_constants + gain_constants)
warn_missing_constants = set(dark_constants + pc_constants + ff_constants)
warn_missing_constants -= error_missing_constants
warn_missing_constants -= error_missing_constants
warn_missing_constants -= set(calibrations)
warn_missing_constants -= set(calibrations)
if warn_missing_constants:
if warn_missing_constants:
Loading