DAQ: fix to handle automated raster parameters
This commit is contained in:
+30
-15
@@ -1212,30 +1212,45 @@ class AareDAQ:
|
||||
|
||||
params = SimpleScanParameters()
|
||||
|
||||
if (exp := getattr(aaredb_params, 'exposure', 0.04)) is not None:
|
||||
# Exposure
|
||||
exp = getattr(aaredb_params, 'exposure', None)
|
||||
if exp is not None:
|
||||
params.exp_time_s = exp
|
||||
else:
|
||||
params.exp_time_s = 0.04 # Default
|
||||
|
||||
if (trans := getattr(aaredb_params, 'transmission', 100)) is not None:
|
||||
# Transmission
|
||||
trans = getattr(aaredb_params, 'transmission', None)
|
||||
if trans is not None:
|
||||
logger.debug(f"transmission: {trans}")
|
||||
params.transmission = trans / 100.0 if trans > 1.0 else trans
|
||||
|
||||
if (res := getattr(aaredb_params, 'targetresolution', 1.42)) is not None:
|
||||
logger.debug(f"resolution: {res}")
|
||||
logger.debug(f"dtz: {self.diffraction_geometry.calc_dtz_mm(res)}")
|
||||
params.dtz = self.diffraction_geometry.calc_dtz_mm(res)
|
||||
|
||||
if res <= 1.5:
|
||||
params.exp_time_s = 0.02
|
||||
elif 1.5 < res <= 3.0:
|
||||
params.exp_time_s = 0.04
|
||||
else:
|
||||
params.exp_time_s = 0.08
|
||||
params.transmission = 1.0 # Default
|
||||
|
||||
logger.debug(f"res expected {res} using {params.exp_time_s} exp time")
|
||||
# Resolution and DTZ
|
||||
res = getattr(aaredb_params, 'targetresolution', None)
|
||||
if res is not None:
|
||||
logger.debug(f"resolution: {res}")
|
||||
try:
|
||||
params.dtz = self.diffraction_geometry.calc_dtz_mm(res)
|
||||
logger.debug(f"dtz: {params.dtz}")
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to calculate dtz for resolution {res}: {e}")
|
||||
params.dtz = 150 # Fallback default
|
||||
|
||||
# Adjust exposure time based on resolution
|
||||
if res <= 1.5:
|
||||
params.exp_time_s = 0.02
|
||||
elif 1.5 < res <= 3.0:
|
||||
params.exp_time_s = 0.04
|
||||
else:
|
||||
params.exp_time_s = 0.08
|
||||
else:
|
||||
params.dtz = 150
|
||||
params.exp_time_s = 0.04
|
||||
|
||||
return params
|
||||
|
||||
|
||||
def get_collection_params(self, prefer_smart: bool = False) -> tuple[SimpleScanParameters, str]:
|
||||
spreadsheet_params = self.spreadsheet_params()
|
||||
logger.debug(f"spreadsheet_params: {spreadsheet_params}")
|
||||
|
||||
Reference in New Issue
Block a user