v1.0.0-rc.117 #24
@@ -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"));
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user