fix: from debugging #180
@@ -20,7 +20,6 @@ from aarecommon.math.find_xtal import (
|
||||
raster_highest_score,
|
||||
)
|
||||
from aarecommon.math.raster_grid import grid_to_image_id
|
||||
from aarecommon.math.simulate_raster import generate_no_beam_scan_result
|
||||
from aarecommon.models.models import BeamlineStateEnum, MLBoxType
|
||||
from aarecommon.models.raster_grid import (
|
||||
CompletedRasterGrid,
|
||||
@@ -460,89 +459,78 @@ class RasterService:
|
||||
x = None
|
||||
y = None
|
||||
|
||||
if self.ctx.deps.cfg.simulated_detector:
|
||||
self.logger.info("Simulated detector mode enabled; using fake raster result.")
|
||||
scan_result = generate_no_beam_scan_result(request)
|
||||
com = raster_highest_score(scan_result.images)
|
||||
target_coor = com.get_com_mm(request)
|
||||
target_coor_offset = self.ctx.sample_geometry.smargon_nudge(target_coor)
|
||||
target_smargon = SmargonCoordinate(
|
||||
sh_mm=request.smargon_top_left.sh_mm + target_coor_offset,
|
||||
phi_deg=request.smargon_top_left.phi_deg,
|
||||
chi_deg=request.smargon_top_left.chi_deg,
|
||||
scan_result = self.ctx.deps.jfjoch.wait_till_done(60)
|
||||
if scan_result is None:
|
||||
self.logger.error(
|
||||
"JFJoch returned no ScanResult for raster",
|
||||
extra=merge_log_context(
|
||||
sample_log_context(self.ctx.sample),
|
||||
raster_request_log_context(request),
|
||||
{"exp_time_s": request.exp_time_s},
|
||||
),
|
||||
)
|
||||
raise RasterScanException("JFJoch returned no ScanResult for raster")
|
||||
else:
|
||||
self.logger.info(
|
||||
f"Raster scan results from JFJoch: file {scan_result.file_prefix} with images {scan_result.images}"
|
||||
)
|
||||
com = raster_highest_score(scan_result.images)
|
||||
if com is None:
|
||||
self.logger.info("Calcualted COM is None -> using centre image")
|
||||
if request.n_x == 1:
|
||||
x = request.grid_size_mm.x / 2.0
|
||||
else:
|
||||
x = ((request.n_x - 1) * request.grid_size_mm.x) / 2.0
|
||||
y = ((request.n_y - 1) * request.grid_size_mm.y) / 2.0
|
||||
|
||||
target_coor_offset = self.ctx.sample_geometry.smargon_nudge(Coordinate(x=x, y=y))
|
||||
|
||||
self.logger.info(
|
||||
"Calculated raster centre offset",
|
||||
extra=merge_log_context(
|
||||
sample_log_context(self.ctx.sample),
|
||||
raster_request_log_context(request),
|
||||
{
|
||||
"centre_offset_x_mm": target_coor_offset.x,
|
||||
"centre_offset_y_mm": target_coor_offset.y,
|
||||
"centre_offset_z_mm": target_coor_offset.z,
|
||||
"grid_half_width_x_mm": x,
|
||||
"grid_half_height_y_mm": y,
|
||||
"top_left_x_mm": getattr(request.smargon_top_left.sh_mm, "x", None),
|
||||
"top_left_y_mm": getattr(request.smargon_top_left.sh_mm, "y", None),
|
||||
"top_left_z_mm": getattr(request.smargon_top_left.sh_mm, "z", None),
|
||||
},
|
||||
),
|
||||
)
|
||||
else:
|
||||
scan_result = self.ctx.deps.jfjoch.wait_till_done(60)
|
||||
if scan_result is None:
|
||||
self.logger.error(
|
||||
"JFJoch returned no ScanResult for raster",
|
||||
extra=merge_log_context(
|
||||
sample_log_context(self.ctx.sample),
|
||||
raster_request_log_context(request),
|
||||
{"exp_time_s": request.exp_time_s},
|
||||
),
|
||||
)
|
||||
raise RasterScanException("JFJoch returned no ScanResult for raster")
|
||||
|
||||
com = raster_highest_score(scan_result.images)
|
||||
if com is None:
|
||||
self.logger.info("Calcualted COM is None -> using centre image")
|
||||
if request.n_x == 1:
|
||||
x = request.grid_size_mm.x / 2.0
|
||||
else:
|
||||
x = ((request.n_x - 1) * request.grid_size_mm.x) / 2.0
|
||||
y = ((request.n_y - 1) * request.grid_size_mm.y) / 2.0
|
||||
|
||||
target_coor_offset = self.ctx.sample_geometry.smargon_nudge(
|
||||
Coordinate(x=x, y=y)
|
||||
)
|
||||
|
||||
self.logger.info(
|
||||
"Calculated raster centre offset",
|
||||
extra=merge_log_context(
|
||||
sample_log_context(self.ctx.sample),
|
||||
raster_request_log_context(request),
|
||||
{
|
||||
"centre_offset_x_mm": target_coor_offset.x,
|
||||
"centre_offset_y_mm": target_coor_offset.y,
|
||||
"centre_offset_z_mm": target_coor_offset.z,
|
||||
"grid_half_width_x_mm": x,
|
||||
"grid_half_height_y_mm": y,
|
||||
"top_left_x_mm": getattr(request.smargon_top_left.sh_mm, "x", None),
|
||||
"top_left_y_mm": getattr(request.smargon_top_left.sh_mm, "y", None),
|
||||
"top_left_z_mm": getattr(request.smargon_top_left.sh_mm, "z", None),
|
||||
},
|
||||
),
|
||||
)
|
||||
else:
|
||||
self.logger.info("Calcualted COM is not None, proceeding")
|
||||
target_coor = com.get_com_mm(request)
|
||||
target_coor_offset = self.ctx.sample_geometry.smargon_nudge(target_coor)
|
||||
self.logger.info(
|
||||
"Calculated raster centre offset",
|
||||
extra=merge_log_context(
|
||||
sample_log_context(self.ctx.sample),
|
||||
raster_request_log_context(request),
|
||||
{
|
||||
"centre_offset_x_mm": target_coor_offset.x,
|
||||
"centre_offset_y_mm": target_coor_offset.y,
|
||||
"centre_offset_z_mm": target_coor_offset.z,
|
||||
"grid_half_width_x_mm": x,
|
||||
"grid_half_height_y_mm": y,
|
||||
"top_left_x_mm": getattr(request.smargon_top_left.sh_mm, "x", None),
|
||||
"top_left_y_mm": getattr(request.smargon_top_left.sh_mm, "y", None),
|
||||
"top_left_z_mm": getattr(request.smargon_top_left.sh_mm, "z", None),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
self.logger.info(f"moving Smargon to grid centre offset {target_coor_offset}")
|
||||
target_smargon = SmargonCoordinate(
|
||||
sh_mm=request.smargon_top_left.sh_mm + target_coor_offset,
|
||||
phi_deg=request.smargon_top_left.phi_deg,
|
||||
chi_deg=request.smargon_top_left.chi_deg,
|
||||
self.logger.info("Calcualted COM is not None, proceeding")
|
||||
target_coor = com.get_com_mm(request)
|
||||
target_coor_offset = self.ctx.sample_geometry.smargon_nudge(target_coor)
|
||||
self.logger.info(
|
||||
"Calculated raster centre offset",
|
||||
extra=merge_log_context(
|
||||
sample_log_context(self.ctx.sample),
|
||||
raster_request_log_context(request),
|
||||
{
|
||||
"centre_offset_x_mm": target_coor_offset.x,
|
||||
"centre_offset_y_mm": target_coor_offset.y,
|
||||
"centre_offset_z_mm": target_coor_offset.z,
|
||||
"grid_half_width_x_mm": x,
|
||||
"grid_half_height_y_mm": y,
|
||||
"top_left_x_mm": getattr(request.smargon_top_left.sh_mm, "x", None),
|
||||
"top_left_y_mm": getattr(request.smargon_top_left.sh_mm, "y", None),
|
||||
"top_left_z_mm": getattr(request.smargon_top_left.sh_mm, "z", None),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
self.logger.info(f"moving Smargon to grid centre offset {target_coor_offset}")
|
||||
target_smargon = SmargonCoordinate(
|
||||
sh_mm=request.smargon_top_left.sh_mm + target_coor_offset,
|
||||
phi_deg=request.smargon_top_left.phi_deg,
|
||||
chi_deg=request.smargon_top_left.chi_deg,
|
||||
)
|
||||
|
||||
self.ctx.deps.devs.smargon_pos = target_smargon
|
||||
self.ctx.deps.devs.smargon_wait(timeout=180)
|
||||
|
||||
|
||||
@@ -305,7 +305,8 @@ class JFJochWrapper:
|
||||
if self._simulated:
|
||||
return None
|
||||
try:
|
||||
self._api.wait_till_done_post_with_http_info(timeout=math.ceil(timeout))
|
||||
res = self._api.wait_till_done_post_with_http_info(timeout=math.ceil(timeout))
|
||||
logger.info(f"wait_till_done response: {res}")
|
||||
return self._api.result_scan_get()
|
||||
except Exception as e:
|
||||
raise self._jfjoch_error(
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import secrets
|
||||
from pathlib import Path
|
||||
|
||||
from aarecommon.config.beamline import cfg_get
|
||||
@@ -188,7 +189,7 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
|
||||
|
||||
if is_single_image:
|
||||
r = RotationScanRequest(
|
||||
file_prefix=str(add_screening_to_path(self._filename)),
|
||||
file_prefix=str(add_screening_to_path(self._filename)) + "_" + secrets.token_hex(3),
|
||||
start_omega_deg=self.start_angle.value,
|
||||
incr_omega_deg=self.screening_image_angle.value,
|
||||
wedge_omega_deg=screening_settings["omega_step_deg"],
|
||||
@@ -200,7 +201,7 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
|
||||
)
|
||||
else:
|
||||
r = RotationScanRequest(
|
||||
file_prefix=str(add_screening_to_path(self._filename)),
|
||||
file_prefix=str(add_screening_to_path(self._filename)) + "_" + secrets.token_hex(3),
|
||||
start_omega_deg=self.start_angle.value,
|
||||
wedge_omega_deg=self.screening_image_angle.value,
|
||||
incr_omega_deg=screening_settings["omega_step_deg"],
|
||||
@@ -224,7 +225,7 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
|
||||
logger.error("Cannot run measurement because of check")
|
||||
return
|
||||
r = RotationScanRequest(
|
||||
file_prefix=str(add_data_to_path(self._filename)),
|
||||
file_prefix=str(add_data_to_path(self._filename)) + "_" + secrets.token_hex(3),
|
||||
start_omega_deg=self.start_angle.value,
|
||||
steps=self.image_number(),
|
||||
incr_omega_deg=self.image_angle.value,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import math
|
||||
import secrets
|
||||
|
||||
from aarecommon.config.logger import setup_logger
|
||||
from aarecommon.models.models import CrystalSize, DAQStatusModel, SimpleScanParameters
|
||||
@@ -410,7 +411,7 @@ class SimpleRotationSettingsPanel(QWidget):
|
||||
@Slot()
|
||||
def run_measurement(self):
|
||||
r = RotationScanRequest(
|
||||
file_prefix=str(add_data_to_path(self._filename)),
|
||||
file_prefix=str(add_data_to_path(self._filename)) + "_" + secrets.token_hex(3),
|
||||
start_omega_deg=self.start_angle_enter.value,
|
||||
steps=self.n_images,
|
||||
incr_omega_deg=self.image_angle_enter.value,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import math
|
||||
import secrets
|
||||
from enum import Enum
|
||||
|
||||
import numpy as np
|
||||
@@ -458,7 +459,7 @@ class RasterGridManager(QObject):
|
||||
grid = RasterGridRequest(
|
||||
dtz=ag.dtz,
|
||||
transmission=ag.transmission,
|
||||
file_prefix=ag.file_prefix,
|
||||
file_prefix=ag.file_prefix + "_" + secrets.token_hex(3),
|
||||
exp_time_s=ag.exp_time_s,
|
||||
n_x=ag.n_x,
|
||||
n_y=ag.n_y,
|
||||
@@ -484,7 +485,7 @@ class RasterGridManager(QObject):
|
||||
grid = RasterGridRequest(
|
||||
dtz=ag.dtz,
|
||||
transmission=ag.transmission,
|
||||
file_prefix=ag.file_prefix,
|
||||
file_prefix=ag.file_prefix + "_" + secrets.token_hex(3),
|
||||
exp_time_s=ag.exp_time_s,
|
||||
n_x=ag.n_x,
|
||||
n_y=ag.n_y,
|
||||
|
||||
Reference in New Issue
Block a user