v1.0.0-rc.117 #24

Merged
leonarski_f merged 7 commits from 2511-1.0.0-rc.117 into main 2025-12-05 22:03:08 +01:00
2 changed files with 57 additions and 15 deletions
Showing only changes of commit e0e24250b2 - Show all commits

View File

@@ -115,6 +115,7 @@ void JFJochHDF5Reader::ReadFile(const std::string& filename) {
size_t image_size_x = 0;
size_t image_size_y = 0;
if (master_file->Exists("/entry/data/data")) {
legacy_format = false;
auto dim = GetDimension(*master_file, "/entry/data/data");
@@ -127,6 +128,17 @@ void JFJochHDF5Reader::ReadFile(const std::string& filename) {
dataset->efficiency = master_file->ReadVector<float>(
"/entry/instrument/detector/detectorSpecific/data_collection_efficiency_image");
if (master_file->Exists("/entry/roi"))
dataset->roi = master_file->FindLeafs("/entry/roi");
for (const auto &s: dataset->roi) {
dataset->roi_max.emplace_back(master_file->ReadVector<int64_t>("/entry/roi/" + s + "/max"));
dataset->roi_sum.emplace_back(master_file->ReadVector<int64_t>("/entry/roi/" + s + "/sum"));
dataset->roi_sum_sq.emplace_back(master_file->ReadVector<int64_t>("/entry/roi/" + s + "/sum_sq"));
dataset->roi_npixel.emplace_back(master_file->ReadVector<int64_t>("/entry/roi/" + s + "/npixel"));
dataset->roi_x.emplace_back(master_file->ReadVector<float>("/entry/roi/" + s + "/x"));
dataset->roi_y.emplace_back(master_file->ReadVector<float>("/entry/roi/" + s + "/y"));
}
if (master_file->Exists("/entry/MX")) {
if (master_file->Exists("/entry/MX/peakCountUnfiltered"))
@@ -173,7 +185,7 @@ void JFJochHDF5Reader::ReadFile(const std::string& filename) {
auto fname = master_file->GetLinkedFileName(dname);
if (!directory.empty())
fname = fmt::format("{}/{}", directory.string(),fname);
fname = fmt::format("{}/{}", directory.string(), fname);
HDF5ReadOnlyFile data_file(fname);
@@ -181,6 +193,42 @@ void JFJochHDF5Reader::ReadFile(const std::string& filename) {
legacy_format_files.push_back(fname);
if (nfiles == 0 && data_file.Exists("/entry/roi"))
dataset->roi = data_file.FindLeafs("/entry/roi");
dataset->roi_max.resize(dataset->roi.size());
dataset->roi_npixel.resize(dataset->roi.size());
dataset->roi_sum.resize(dataset->roi.size());
dataset->roi_sum_sq.resize(dataset->roi.size());
dataset->roi_x.resize(dataset->roi.size());
dataset->roi_y.resize(dataset->roi.size());
for (int i = 0; i < dataset->roi.size(); i++) {
auto roi_name = dataset->roi[i];
ReadVector(dataset->roi_max.at(i),
data_file, "/entry/roi/" + roi_name + "/max",
number_of_images, fimages);
ReadVector(dataset->roi_npixel.at(i),
data_file, "/entry/roi/" + roi_name + "/npixel",
number_of_images, fimages);
ReadVector(dataset->roi_sum.at(i),
data_file, "/entry/roi/" + roi_name + "/sum",
number_of_images, fimages);
ReadVector(dataset->roi_sum_sq.at(i),
data_file, "/entry/roi/" + roi_name + "/sum_sq",
number_of_images, fimages);
ReadVector(dataset->roi_x.at(i),
data_file, "/entry/roi/" + roi_name + "/x",
number_of_images, fimages);
ReadVector(dataset->roi_y.at(i),
data_file, "/entry/roi/" + roi_name + "/y",
number_of_images, fimages);
}
if (data_file.Exists("/entry/detector")) {
ReadVector(dataset->efficiency,
data_file, "/entry/detector/data_collection_efficiency_image",
@@ -198,16 +246,16 @@ void JFJochHDF5Reader::ReadFile(const std::string& filename) {
number_of_images, fimages);
ReadVector(dataset->spot_count_ice_rings,
data_file, "/entry/MX/peakCountIceRingRes",
number_of_images, fimages);
data_file, "/entry/MX/peakCountIceRingRes",
number_of_images, fimages);
ReadVector(dataset->spot_count_low_res,
data_file, "/entry/MX/peakCountLowRes",
number_of_images, fimages);
data_file, "/entry/MX/peakCountLowRes",
number_of_images, fimages);
ReadVector(dataset->spot_count_indexed,
data_file, "/entry/MX/peakCountIndexed",
number_of_images, fimages);
data_file, "/entry/MX/peakCountIndexed",
number_of_images, fimages);
ReadVector(dataset->indexing_result,
data_file, "/entry/MX/imageIndexed",
@@ -316,14 +364,6 @@ void JFJochHDF5Reader::ReadFile(const std::string& filename) {
dataset->experiment.SampleName(master_file->GetString("/entry/sample/name"));
if (master_file->Exists("/entry/roi"))
dataset->roi = master_file->FindLeafs("/entry/roi");
for (const auto &s: dataset->roi) {
dataset->roi_max.emplace_back(master_file->ReadVector<int64_t>("/entry/roi/" + s + "/max"));
dataset->roi_sum.emplace_back(master_file->ReadVector<int64_t>("/entry/roi/" + s + "/sum"));
dataset->roi_sum_sq.emplace_back(master_file->ReadVector<int64_t>("/entry/roi/" + s + "/sum_sq"));
dataset->roi_npixel.emplace_back(master_file->ReadVector<int64_t>("/entry/roi/" + s + "/npixel"));
}
if (master_file->Exists("/entry/instrument/attenuator"))
dataset->experiment.AttenuatorTransmission(master_file->GetOptFloat("/entry/instrument/attenuator/attenuator_transmission"));
dataset->experiment.TotalFlux(master_file->GetOptFloat("/entry/instrument/beam/total_flux"));

View File

@@ -47,6 +47,8 @@ struct JFJochReaderDataset {
std::vector<std::vector<int64_t>> roi_sum_sq;
std::vector<std::vector<int64_t>> roi_max;
std::vector<std::vector<int64_t>> roi_npixel;
std::vector<std::vector<float>> roi_x;
std::vector<std::vector<float>> roi_y;
std::vector<std::string> calibration_data;