From 35bdc425ac05ac21bd5da75ae12c410bfdfa0b02 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Sun, 23 Nov 2025 12:56:18 +0100 Subject: [PATCH] jfjoch_writer: Handle writing properly when not indexing --- writer/HDF5DataFilePluginMX.cpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/writer/HDF5DataFilePluginMX.cpp b/writer/HDF5DataFilePluginMX.cpp index 29ca00ff..ae5247cd 100644 --- a/writer/HDF5DataFilePluginMX.cpp +++ b/writer/HDF5DataFilePluginMX.cpp @@ -114,13 +114,14 @@ void HDF5DataFilePluginMX::Write(const DataMessage &msg, uint64_t image_number) spot_x[max_spots * image_number + i] = msg.spots[i].x; spot_y[max_spots * image_number + i] = msg.spots[i].y; spot_int[max_spots * image_number + i] = msg.spots[i].intensity; - if (indexing) + if (indexing) { spot_indexed[max_spots * image_number + i] = msg.spots[i].indexed; - spot_ice_ring[max_spots * image_number + i] = msg.spots[i].ice_ring; - spot_h[max_spots * image_number + i] = msg.spots[i].h; - spot_k[max_spots * image_number + i] = msg.spots[i].k; - spot_l[max_spots * image_number + i] = msg.spots[i].l; + spot_h[max_spots * image_number + i] = msg.spots[i].h; + spot_k[max_spots * image_number + i] = msg.spots[i].k; + spot_l[max_spots * image_number + i] = msg.spots[i].l; spot_dist_ewald[max_spots * image_number + i] = msg.spots[i].dist_ewald_sphere; + } + spot_ice_ring[max_spots * image_number + i] = msg.spots[i].ice_ring; } npeaks[image_number] = spot_cnt; @@ -165,17 +166,20 @@ void HDF5DataFilePluginMX::WriteFinal(HDF5File &data_file) { data_file.SaveVector("/entry/MX/peakXPosRaw", spot_x, {(hsize_t) (max_image_number + 1), max_spots}); data_file.SaveVector("/entry/MX/peakYPosRaw", spot_y, {(hsize_t) (max_image_number + 1), max_spots}); data_file.SaveVector("/entry/MX/peakTotalIntensity", spot_int, {(hsize_t) (max_image_number + 1), max_spots}); - data_file.SaveVector("/entry/MX/peakIndexed", spot_indexed, {(hsize_t) (max_image_number + 1), max_spots}); data_file.SaveVector("/entry/MX/peakIceRingRes", spot_ice_ring, {(hsize_t) (max_image_number + 1), max_spots}); data_file.SaveVector("/entry/MX/nPeaks", npeaks.vec()); - data_file.SaveVector("/entry/MX/peakH", spot_h, {(hsize_t) (max_image_number + 1), max_spots}); - data_file.SaveVector("/entry/MX/peakK", spot_k, {(hsize_t) (max_image_number + 1), max_spots}); - data_file.SaveVector("/entry/MX/peakL", spot_l, {(hsize_t) (max_image_number + 1), max_spots}); - data_file.SaveVector("/entry/MX/peakDistEwaldSphere", spot_dist_ewald, - {(hsize_t) (max_image_number + 1), max_spots}); + if (indexing) { + data_file.SaveVector("/entry/MX/peakH", spot_h, {(hsize_t) (max_image_number + 1), max_spots}); + data_file.SaveVector("/entry/MX/peakK", spot_k, {(hsize_t) (max_image_number + 1), max_spots}); + data_file.SaveVector("/entry/MX/peakL", spot_l, {(hsize_t) (max_image_number + 1), max_spots}); + data_file.SaveVector("/entry/MX/peakDistEwaldSphere", spot_dist_ewald, + {(hsize_t) (max_image_number + 1), max_spots}); + data_file.SaveVector("/entry/MX/peakIndexed", spot_indexed, {(hsize_t) (max_image_number + 1), max_spots}); + } } + if (!strong_pixel_count.empty()) data_file.SaveVector("/entry/MX/strongPixels", strong_pixel_count.vec());