Skip to content

Commit c055756

Browse files
author
Arthur Glowacki
committed
Load and save POLAR scalers as double
1 parent 1664a4c commit c055756

5 files changed

Lines changed: 19 additions & 14 deletions

File tree

src/io/file/hdf5_io.h

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,9 +1038,9 @@ class DLL_EXPORT HDF5_IO
10381038
}
10391039

10401040
//-----------------------------------------------------------------------------
1041-
1042-
template<typename T_real>
1043-
bool load_spectra_vol_polar_energy_scan(std::string path, std::string filename, size_t detector_num, data_struct::Spectra_Volume<T_real>* spec_vol, data_struct::Scan_Info<T_real> &scan_info, bool logerr = true)
1041+
// load spectra volume as float (T_real) but scan_info as double (T_real2)
1042+
template<typename T_real, typename T_real2>
1043+
bool load_spectra_vol_polar_energy_scan(std::string path, std::string filename, size_t detector_num, data_struct::Spectra_Volume<T_real>* spec_vol, data_struct::Scan_Info<T_real2> &scan_info, bool logerr = true)
10441044
{
10451045
std::stack<std::pair<hid_t, H5_OBJECTS> > close_map;
10461046
hid_t file_id, dset_id, space_id, x_dset_id, y_dset_id, x_space_id, y_space_id;
@@ -1256,13 +1256,13 @@ class DLL_EXPORT HDF5_IO
12561256
scan_info.meta_info.y_axis.resize(scan_info.meta_info.requested_rows);
12571257
spec_vol->resize_and_zero(scan_info.meta_info.requested_rows, scan_info.meta_info.requested_cols, dims3[2]);
12581258

1259-
struct data_struct::Scaler_Map<T_real> energy_map;
1259+
struct data_struct::Scaler_Map<T_real2> energy_map;
12601260
energy_map.name = "Energy";
12611261
energy_map.unit = "";
12621262
energy_map.time_normalized = false;
12631263
energy_map.values.resize(scan_info.meta_info.requested_rows, scan_info.meta_info.requested_cols);
12641264

1265-
struct data_struct::Scaler_Map<T_real> i0_map;
1265+
struct data_struct::Scaler_Map<T_real2> i0_map;
12661266
i0_map.name = "I0";
12671267
i0_map.unit = "counts";
12681268
i0_map.time_normalized = false;
@@ -1273,8 +1273,8 @@ class DLL_EXPORT HDF5_IO
12731273
data_struct::ArrayTr<T_real> icr_array(dims3[0]);
12741274
data_struct::ArrayTr<T_real> ocr_array(dims3[0]);
12751275

1276-
data_struct::ArrayTr<T_real> i0_array(dims3[0]);
1277-
data_struct::ArrayTr<T_real> energy_array(dims3[0]);
1276+
data_struct::ArrayTr<T_real2> i0_array(dims3[0]);
1277+
data_struct::ArrayTr<T_real2> energy_array(dims3[0]);
12781278

12791279
err = _read_h5d<T_real>(elt_dset_id, H5S_ALL, elt_space_id, H5P_DEFAULT, elt_array.data());
12801280
if(err < 0)
@@ -1301,13 +1301,13 @@ class DLL_EXPORT HDF5_IO
13011301
ocr_array.setOnes();
13021302
}
13031303

1304-
err = _read_h5d<T_real>(energy_dset_id, H5S_ALL, energy_space_id, H5P_DEFAULT, energy_array.data());
1304+
err = _read_h5d<T_real2>(energy_dset_id, H5S_ALL, energy_space_id, H5P_DEFAULT, energy_array.data());
13051305
if(err < 0)
13061306
{
13071307
logE<< "Could not read energy data, setting it all to 1's\n";
13081308
energy_array.setOnes();
13091309
}
1310-
err = _read_h5d<T_real>(i0_dset_id, H5S_ALL, i0_space_id, H5P_DEFAULT, i0_array.data());
1310+
err = _read_h5d<T_real2>(i0_dset_id, H5S_ALL, i0_space_id, H5P_DEFAULT, i0_array.data());
13111311
if(err < 0)
13121312
{
13131313
logE<< "Could not read i0 data, setting it all to 1's\n";
@@ -6980,6 +6980,10 @@ class DLL_EXPORT HDF5_IO
69806980

69816981
_save_scalers(maps_grp_id, &(scan_info->scaler_maps), params_override->us_amp_sens_num, params_override->us_amp_sens_unit, params_override->ds_amp_sens_num, params_override->ds_amp_sens_unit);
69826982
}
6983+
else
6984+
{
6985+
_save_scalers(maps_grp_id, &(scan_info->scaler_maps), (T_real)0.0, "0.0", (T_real)0.0, "0.0");
6986+
}
69836987
_close_h5_objects(_global_close_map);
69846988

69856989
end = std::chrono::system_clock::now();

src/io/file/hl_file_io.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -848,13 +848,14 @@ DLL_EXPORT bool load_spectra_volume(std::string dataset_directory,
848848
if (dataset_file[dlen - 4] == '.' && dataset_file[dlen - 3] == 'h' && dataset_file[dlen - 2] == 'd' && dataset_file[dlen - 1] == 'f')
849849
{
850850
// try to load polar hdf master file
851-
data_struct::Scan_Info<T_real> scan_info;
851+
data_struct::Scan_Info<double> scan_info;
852852
if(true == io::file::HDF5_IO::inst()->load_spectra_vol_polar_energy_scan(dataset_directory, dataset_file, detector_num, spectra_volume, scan_info))
853853
{
854854
scan_type = STR_SCAN_TYPE_POLAR_XANES;
855855
if(io::file::HDF5_IO::inst()->start_save_seq(true))
856856
{
857-
io::file::HDF5_IO::inst()->save_scan_scalers(detector_num, &scan_info, params_override);
857+
data_struct::Params_Override<double>* null_po = nullptr;
858+
io::file::HDF5_IO::inst()->save_scan_scalers(detector_num, &scan_info, null_po);
858859
return true;
859860
}
860861
else

src/support/eigen-git-mirror

Submodule eigen-git-mirror updated from e986838 to 6dbbf0a

src/support/pybind11

Submodule pybind11 updated 298 files

vcpkg

Submodule vcpkg updated 3537 files

0 commit comments

Comments
 (0)