Add deep learning resolution estimation model from Stanford
This commit is contained in:
@@ -33,12 +33,16 @@ HDF5DataFile::~HDF5DataFile() {
|
||||
if (data_file) {
|
||||
HDF5Group group_exp(*data_file, "/entry/jungfrau");
|
||||
group_exp.NXClass("NXcollection");
|
||||
|
||||
group_exp.SaveVector("info", jf_info);
|
||||
group_exp.SaveVector("timestamp", timestamp);
|
||||
group_exp.SaveVector("storage_cell", storage_cell);
|
||||
group_exp.SaveVector("exptime", exptime);
|
||||
group_exp.SaveVector("receiver_aq_dev_delay", receiver_aq_dev_delay);
|
||||
data_file->SaveVector("/entry/result/strong_pixel_count", strong_pixel_count);
|
||||
group_exp.SaveVector("receiverAqDevDelay", receiver_aq_dev_delay);
|
||||
|
||||
data_file->SaveVector("/entry/result/strongPixelCount", strong_pixel_count);
|
||||
if (!resolution_estimation.empty())
|
||||
data_file->SaveVector("/entry/result/resolutionEstimation", resolution_estimation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,21 +62,18 @@ void HDF5DataFile::CreateFile() {
|
||||
data_set_indexed_lattice = std::make_unique<HDF5DataSet>(*data_file, "/entry/result/latticeIndexed");
|
||||
if (!rad_int_bin_to_q.empty())
|
||||
data_set_az_int = std::make_unique<HDF5DataSet>(*data_file, "/entry/result/azimIntegration");
|
||||
|
||||
jf_info.resize(1);
|
||||
receiver_aq_dev_delay.resize(1);
|
||||
timestamp.resize(1);
|
||||
storage_cell.resize(1);
|
||||
exptime.resize(1);
|
||||
strong_pixel_count.resize(1);
|
||||
}
|
||||
|
||||
void HDF5DataFile::Write(const DataMessage &msg, uint64_t image_number) {
|
||||
std::lock_guard<std::mutex> lock(hdf5_mutex);
|
||||
if (!data_file)
|
||||
CreateFile();
|
||||
bool new_file = false;
|
||||
|
||||
if (image_number > max_image_number) {
|
||||
if (!data_file) {
|
||||
CreateFile();
|
||||
new_file = true;
|
||||
}
|
||||
|
||||
if (new_file || (static_cast<int64_t>(image_number) > max_image_number)) {
|
||||
max_image_number = image_number;
|
||||
data_set->SetExtent({max_image_number+1, ypixel, xpixel});
|
||||
data_set_spot_x->SetExtent({max_image_number+1, max_spots});
|
||||
@@ -93,6 +94,9 @@ void HDF5DataFile::Write(const DataMessage &msg, uint64_t image_number) {
|
||||
timestamp.resize(max_image_number + 1);
|
||||
exptime.resize(max_image_number + 1);
|
||||
storage_cell.resize(max_image_number + 1);
|
||||
|
||||
if (msg.resolution_estimation)
|
||||
resolution_estimation.resize(max_image_number + 1);
|
||||
}
|
||||
|
||||
nimages++;
|
||||
@@ -128,6 +132,9 @@ void HDF5DataFile::Write(const DataMessage &msg, uint64_t image_number) {
|
||||
storage_cell[image_number] = msg.storage_cell;
|
||||
exptime[image_number] = msg.exptime;
|
||||
|
||||
if (msg.resolution_estimation)
|
||||
resolution_estimation[image_number] = msg.resolution_estimation.value();
|
||||
|
||||
if (!msg.az_int_profile.empty() && (msg.az_int_profile.size() == rad_int_bin_to_q.size()))
|
||||
data_set_az_int->WriteVec(msg.az_int_profile, {image_number, 0}, {1, rad_int_bin_to_q.size()});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user