Commit fd9acd3d authored by Tomas Farago's avatar Tomas Farago
Browse files

Merge branch 'master' of gitlab.esrf.fr:tomotools/tomoscan

parents 0b5f22f7 cb256fbc
Pipeline #26039 passed with stages
in 3 minutes and 16 seconds
......@@ -161,6 +161,8 @@ class HDF5TomoScan(TomoScanBase):
# image dimensions
self._x_pixel_size = None
self._y_pixel_size = None
self._x_magnified_pixel_size = None
self._y_magnified_pixel_size = None
# pixel dimensions (tuple)
self._frames = None
self._image_keys = None
......@@ -235,7 +237,7 @@ class HDF5TomoScan(TomoScanBase):
if not os.path.isfile(file_path):
raise ValueError('given file path should be a file')
with h5py.File(file_path, 'r') as h5f:
with h5py.File(file_path, 'r', swmr=True) as h5f:
for root_node in h5f.keys():
node = h5f[root_node]
if HDF5TomoScan.node_is_nxtomo(node) is True:
......@@ -403,7 +405,7 @@ class HDF5TomoScan(TomoScanBase):
def rotation_angle(self) -> typing.Union[None, list]:
if self._rotation_angles is None:
self._check_hdf5scan_validity()
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
_rotation_angles = h5_file[self._entry][self._ROTATION_ANGLE_PATH][()]
# cast in float
self._rotation_angles = tuple([float(angle) for angle in _rotation_angles])
......@@ -413,7 +415,7 @@ class HDF5TomoScan(TomoScanBase):
def image_key(self) -> typing.Union[list, None]:
if self._entry and self._image_keys is None:
self._check_hdf5scan_validity()
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
self._image_keys = h5_file[self._entry][self._IMG_KEY_PATH][()]
return self._image_keys
......@@ -421,7 +423,7 @@ class HDF5TomoScan(TomoScanBase):
def image_key_control(self) -> typing.Union[list, None]:
if self._entry and self._image_keys_control is None:
self._check_hdf5scan_validity()
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
if self._IMG_KEY_CONTROL_PATH in h5_file[self._entry]:
self._image_keys_control = h5_file[self._entry][self._IMG_KEY_CONTROL_PATH][()]
else:
......@@ -492,7 +494,7 @@ class HDF5TomoScan(TomoScanBase):
def _get_x_y_pixel_values(self):
"""read x and y pixel values"""
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
x_pixel_dataset = h5_file[self._entry][self._X_PIXEL_SIZE_PATH]
_x_pixel_size = self._get_value(x_pixel_dataset, default_unit='micrometer')
y_pixel_dataset = h5_file[self._entry][self._Y_PIXEL_SIZE_PATH]
......@@ -500,7 +502,7 @@ class HDF5TomoScan(TomoScanBase):
return _x_pixel_size, _y_pixel_size
def _get_x_y_magnified_pixel_values(self):
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
x_m_pixel_dataset = h5_file[self._entry][self._X_PIXEL_MAG_SIZE_PATH]
_x_m_pixel_size = self._get_value(x_m_pixel_dataset, default_unit='micrometer')
y_m_pixel_dataset = h5_file[self._entry][self._Y_PIXEL_MAG_SIZE_PATH]
......@@ -539,7 +541,7 @@ class HDF5TomoScan(TomoScanBase):
if (self._distance is None and self.master_file and
os.path.exists(self.master_file)):
self._check_hdf5scan_validity()
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
distance_dataset = h5_file[self._entry][self._DISTANCE_PATH]
self._distance = self._get_value(distance_dataset, default_unit='m')
return self._distance
......@@ -549,7 +551,7 @@ class HDF5TomoScan(TomoScanBase):
if (self._energy is None and self.master_file and
os.path.exists(self.master_file)):
self._check_hdf5scan_validity()
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
energy_dataset = h5_file[self._entry][self._ENERGY_PATH]
self._energy = self._get_value(energy_dataset, default_unit='keV')
return self._energy
......@@ -659,7 +661,7 @@ class HDF5TomoScan(TomoScanBase):
raise ValueError('No master file provided')
if self.entry is None:
raise ValueError('No entry provided')
with h5py.File(self.master_file, 'r') as h5_file:
with h5py.File(self.master_file, 'r', swmr=True) as h5_file:
if self._entry not in h5_file:
raise ValueError('Given entry %s is not in the master '
'file %s' % (self._entry, self.master_file))
......
......@@ -246,7 +246,7 @@ class MockHDF5(_ScanMock):
def _append_frame(self, data_, rotation_angle, image_key,
image_key_control):
with h5py.File(self.scan_master_file, 'r+') as h5_file:
with h5py.File(self.scan_master_file, 'r+', swmr=True) as h5_file:
entry_one = h5_file.require_group(self.scan_entry)
instrument_grp = entry_one.require_group('instrument')
detector_grp = instrument_grp.require_group('detector')
......@@ -297,7 +297,7 @@ class MockHDF5(_ScanMock):
else:
new_count_time = [self._PROJ_COUNT, ]
with h5py.File(self.scan_master_file, 'a') as h5_file:
with h5py.File(self.scan_master_file, 'a', swmr=True) as h5_file:
entry_one = h5_file.require_group(self.scan_entry)
instrument_grp = entry_one.require_group('instrument')
if 'NX_class' not in instrument_grp.attrs:
......@@ -317,7 +317,7 @@ class MockHDF5(_ScanMock):
sample_grp['rotation_angle'] = new_rot_angle
def write_metadata(self, n_radio, scan_range, ref_n, dark_n):
with h5py.File(self.scan_master_file, 'a') as h5_file:
with h5py.File(self.scan_master_file, 'a', swmr=True) as h5_file:
entry_one = h5_file.require_group(self.scan_entry)
instrument_grp = entry_one.require_group('instrument')
detector_grp = instrument_grp.require_group('detector')
......
......@@ -68,7 +68,7 @@ RELEASE_LEVEL_VALUE = {"dev": 0,
MAJOR = 0
MINOR = 2
MICRO = 2
MICRO = 3
RELEV = "dev" # <16
SERIAL = 0 # <16
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment