From 85d568fe52af33ced982d7a34a2423cfc945992a Mon Sep 17 00:00:00 2001 From: GotthardG <51994228+GotthardG@users.noreply.github.com> Date: Tue, 30 Jun 2026 15:01:46 +0200 Subject: [PATCH] adding beam center to raster shots, correcting test logic --- src/aare/daq/operations/raster/service.py | 21 +++++++++++++++++++-- tests/unit/daq/test_raster_logic.py | 14 +++++++++++--- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/aare/daq/operations/raster/service.py b/src/aare/daq/operations/raster/service.py index d7096a8d..25fed126 100644 --- a/src/aare/daq/operations/raster/service.py +++ b/src/aare/daq/operations/raster/service.py @@ -92,7 +92,7 @@ class RasterService: return try: - diffraction_image = self.ctx.deps.jfjoch.get_diffraction_image(image_id) + diffraction_image = self.ctx.deps.jfjoch.get_diffraction_image(image_id, show_spots=True, show_res_est=True, show_beam_center=True) except NotFoundException: self.logger.warning( "JFJoch diffraction preview image was not found after raster; continuing without upload", @@ -108,7 +108,24 @@ class RasterService: ) return - self.ctx.deps.aare.upload_jpg(sample_id, filename, diffraction_image) + # Stamp spots/resolution from the best cell into the comment so the + # Results diffraction modal can show them as a legend (like screening). + comment = "Raster diffraction" + try: + best = scan_result.images[image_id] + bits = [] + spots = getattr(best, "spots", None) + res = getattr(best, "res", None) + if spots is not None: + bits.append(f"{spots} spots") + if res is not None: + bits.append(f"{res:.2f} Å") + if bits: + comment = f"Raster diffraction ({', '.join(bits)})" + except Exception: + pass + + self.ctx.deps.aare.upload_jpg(sample_id, filename, diffraction_image, message=comment) def ml_bounding_box( self, diff --git a/tests/unit/daq/test_raster_logic.py b/tests/unit/daq/test_raster_logic.py index 900a3ad8..1dfb66b6 100644 --- a/tests/unit/daq/test_raster_logic.py +++ b/tests/unit/daq/test_raster_logic.py @@ -194,7 +194,9 @@ def test_upload_raster_diffraction_preview_ignores_not_found(): request=request, ) - service.ctx.deps.jfjoch.get_diffraction_image.assert_called_once_with(2) + service.ctx.deps.jfjoch.get_diffraction_image.assert_called_once_with( + 2, show_spots=True, show_res_est=True, show_beam_center=True + ) service.ctx.deps.aare.upload_jpg.assert_not_called() @@ -204,6 +206,8 @@ def test_upload_raster_diffraction_preview_uploads_when_present(): request = make_request(2, 2) scan_result = MagicMock() scan_result.images = [MagicMock(), MagicMock(), MagicMock(), MagicMock()] + scan_result.images[2].spots = 479 + scan_result.images[2].res = 2.23 service.ctx.deps.jfjoch.get_diffraction_image.return_value = b"jpeg-bytes" service._upload_raster_diffraction_preview( @@ -214,5 +218,9 @@ def test_upload_raster_diffraction_preview_uploads_when_present(): request=request, ) - service.ctx.deps.jfjoch.get_diffraction_image.assert_called_once_with(2) - service.ctx.deps.aare.upload_jpg.assert_called_once_with(123, "preview", b"jpeg-bytes") \ No newline at end of file + service.ctx.deps.jfjoch.get_diffraction_image.assert_called_once_with( + 2, show_spots=True, show_res_est=True, show_beam_center=True + ) + service.ctx.deps.aare.upload_jpg.assert_called_once_with( + 123, "preview", b"jpeg-bytes", message="Raster diffraction (479 spots, 2.23 Å)" + ) \ No newline at end of file