Skip to content

Commit

Permalink
fix: SeriesHdf5Qpimage blocked hdf5 file for reading
Browse files Browse the repository at this point in the history
  • Loading branch information
paulmueller committed Jun 15, 2018
1 parent 662a8b3 commit 090ab9c
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 10 deletions.
1 change: 1 addition & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
0.1.7
- fix: SeriesHdf5Qpimage blocked hdf5 file for reading
- fix: background datasets did not get hologram keyword arguments
- feat: allow to cast input data type (qpimage version 0.2.0)
0.1.6
Expand Down
26 changes: 16 additions & 10 deletions qpformat/file_formats/series_hdf5_qpimage.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,30 @@ class SeriesHdf5Qpimage(SeriesData):

def __init__(self, *args, **kwargs):
super(SeriesHdf5Qpimage, self).__init__(*args, **kwargs)
self._qpseries = qpimage.QPSeries(h5file=self.path,
h5mode="r")
self._dataset = None

def __len__(self):
return len(self._qpseries)
with self._qpseries() as qps:
return len(qps)

def _qpseries(self):
return qpimage.QPSeries(h5file=self.path, h5mode="r")

@property
def identifier(self):
identifier = self._qpseries.identifier
with self._qpseries() as qps:
identifier = qps.identifier
if identifier is None:
identifier = super(SeriesHdf5Qpimage, self).identifier
return identifier

def get_identifier(self, idx):
"""Return an identifier for the data at index `idx`"""
if "identifier" in self._qpseries[idx]:
identifier = self._qpseries[idx]["identifier"]
else:
identifier = super(SeriesHdf5Qpimage, self).get_identifier(idx)
with self._qpseries() as qps:
if "identifier" in qps[idx]:
identifier = qps[idx]["identifier"]
else:
identifier = super(SeriesHdf5Qpimage, self).get_identifier(idx)
return identifier

def get_qpimage(self, idx):
Expand All @@ -39,15 +43,17 @@ def get_qpimage(self, idx):
qpi = super(SeriesHdf5Qpimage, self).get_qpimage(idx)
else:
# We can use the background data stored in the qpimage hdf5 file
qpi = self._qpseries.get_qpimage(index=idx).copy()
with self._qpseries() as qps:
qpi = qps.get_qpimage(index=idx).copy()
# Force meta data
for key in self.meta_data:
qpi[key] = self.meta_data[key]
return qpi

def get_qpimage_raw(self, idx):
"""Return QPImage without background correction"""
qpi = self._qpseries.get_qpimage(index=idx).copy()
with self._qpseries() as qps:
qpi = qps.get_qpimage(index=idx).copy()
# Remove previously performed background correction
qpi.set_bg_data(None)
# Force meta data
Expand Down

0 comments on commit 090ab9c

Please sign in to comment.