Add mechanics to save per spot lattice information (WIP)

This commit is contained in:
2026-06-05 14:17:19 +02:00
parent 74c1a7a828
commit 83f467d4dc
10 changed files with 34 additions and 13 deletions
+5 -1
View File
@@ -72,6 +72,7 @@ void HDF5DataFilePluginMX::OpenFile(HDF5File &data_file, const DataMessage &msg,
spot_h.reserve(max_spots * images_per_file);
spot_k.reserve(max_spots * images_per_file);
spot_l.reserve(max_spots * images_per_file);
spot_lattice.reserve(max_spots * images_per_file);
spot_dist_ewald.reserve(max_spots * images_per_file);
if (indexing)
spot_indexed.reserve(max_spots * images_per_file);
@@ -118,7 +119,8 @@ void HDF5DataFilePluginMX::Write(const DataMessage &msg, uint64_t image_number)
spot_h.resize(max_spots * (max_image_number + 1));
spot_k.resize(max_spots * (max_image_number + 1));
spot_l.resize(max_spots * (max_image_number + 1));
spot_dist_ewald.resize(max_spots * (max_image_number + 1));
spot_lattice.resize(max_spots * (max_image_number + 1), -1);
spot_dist_ewald.resize(max_spots * (max_image_number + 1), NAN);
if (indexing)
spot_indexed.resize(max_spots * (max_image_number + 1));
@@ -134,6 +136,7 @@ void HDF5DataFilePluginMX::Write(const DataMessage &msg, uint64_t image_number)
spot_int[max_spots * image_number + i] = msg.spots[i].intensity;
if (indexing) {
spot_indexed[max_spots * image_number + i] = msg.spots[i].indexed;
spot_lattice[max_spots * image_number + i] = msg.spots[i].lattice;
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;
@@ -204,6 +207,7 @@ void HDF5DataFilePluginMX::WriteFinal(HDF5File &data_file) {
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});
data_file.SaveVector("/entry/MX/peakLattice", spot_lattice, {(hsize_t) (max_image_number + 1), max_spots});
}
}