From 8a66c570a67ed08c7874789cd0084a919b597712 Mon Sep 17 00:00:00 2001 From: Wim Pomp Date: Tue, 13 Feb 2024 17:46:23 +0100 Subject: [PATCH] - Fix bug wrt. supporting non-file images. - Make layers optional in czi metadata. - Delta_t for tif. --- ndbioimage/__init__.py | 4 ++-- ndbioimage/readers/cziread.py | 4 ++-- ndbioimage/readers/tifread.py | 4 +++- pyproject.toml | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ndbioimage/__init__.py b/ndbioimage/__init__.py index f80ef42..8aafc8e 100755 --- a/ndbioimage/__init__.py +++ b/ndbioimage/__init__.py @@ -962,11 +962,11 @@ class AbstractReader(Imread, metaclass=ABCMeta): if isinstance(path, str): path = Path(path) self.path, self.series = self.split_path_series(path) - if isinstance(path, Path): + if isinstance(path, Path) and path.exists(): self.title = self.path.name self.acquisitiondate = datetime.fromtimestamp(self.path.stat().st_mtime).strftime('%y-%m-%dT%H:%M:%S') else: # ndarray - self.title = 'ndarray' + self.title = self.__class__.__name__ self.acquisitiondate = 'now' self.reader = None diff --git a/ndbioimage/readers/cziread.py b/ndbioimage/readers/cziread.py index 43d276b..72ea635 100644 --- a/ndbioimage/readers/cziread.py +++ b/ndbioimage/readers/cziread.py @@ -354,7 +354,7 @@ class Reader(AbstractReader, ABC): model.Plane(the_c=c, the_z=z, the_t=t, delta_t=delta_ts[t], exposure_time=exposure_times[c])) idx = 0 - for layer in metadata.find("Layers"): + for layer in metadata.find("Layers") or []: rectangle = layer.find("Elements").find("Rectangle") if rectangle is not None: geometry = rectangle.find("Geometry") @@ -552,7 +552,7 @@ class Reader(AbstractReader, ABC): position_z=float(positions.attrib["Z"]), position_z_unit=um)) idx = 0 - for layer in metadata.find("Layers"): + for layer in [] if (ml := metadata.find("Layers")) is None else ml: rectangle = layer.find("Elements").find("Rectangle") if rectangle is not None: geometry = rectangle.find("Geometry") diff --git a/ndbioimage/readers/tifread.py b/ndbioimage/readers/tifread.py index 69ae39a..fa6c68b 100644 --- a/ndbioimage/readers/tifread.py +++ b/ndbioimage/readers/tifread.py @@ -51,6 +51,8 @@ class Reader(AbstractReader, ABC): 'float', 'double', 'complex', 'double-complex', 'bit'): dtype = 'float' + interval_t = metadata.get('interval', 0) + ome = model.OME() ome.instruments.append(model.Instrument(id='Instrument:0')) ome.instruments[0].objectives.append(model.Objective(id='Objective:0')) @@ -63,7 +65,7 @@ class Reader(AbstractReader, ABC): dimension_order="XYCZT", type=dtype, physical_size_x=pxsize, physical_size_y=pxsize), objective_settings=model.ObjectiveSettings(id="Objective:0"))) for c, z, t in product(range(size_c), range(size_z), range(size_t)): - ome.images[0].pixels.planes.append(model.Plane(the_c=c, the_z=z, the_t=t, delta_t=0)) + ome.images[0].pixels.planes.append(model.Plane(the_c=c, the_z=z, the_t=t, delta_t=interval_t * t)) return ome def open(self): diff --git a/pyproject.toml b/pyproject.toml index 17172a7..c7f9a64 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "ndbioimage" -version = "2023.12.2" +version = "2024.2.0" description = "Bio image reading, metadata and some affine registration." authors = ["W. Pomp "] license = "GPLv3"