- Fix bug wrt. supporting non-file images.
- Make layers optional in czi metadata. - Delta_t for tif.
This commit is contained in:
@@ -962,11 +962,11 @@ class AbstractReader(Imread, metaclass=ABCMeta):
|
|||||||
if isinstance(path, str):
|
if isinstance(path, str):
|
||||||
path = Path(path)
|
path = Path(path)
|
||||||
self.path, self.series = self.split_path_series(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.title = self.path.name
|
||||||
self.acquisitiondate = datetime.fromtimestamp(self.path.stat().st_mtime).strftime('%y-%m-%dT%H:%M:%S')
|
self.acquisitiondate = datetime.fromtimestamp(self.path.stat().st_mtime).strftime('%y-%m-%dT%H:%M:%S')
|
||||||
else: # ndarray
|
else: # ndarray
|
||||||
self.title = 'ndarray'
|
self.title = self.__class__.__name__
|
||||||
self.acquisitiondate = 'now'
|
self.acquisitiondate = 'now'
|
||||||
|
|
||||||
self.reader = None
|
self.reader = None
|
||||||
|
|||||||
@@ -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]))
|
model.Plane(the_c=c, the_z=z, the_t=t, delta_t=delta_ts[t], exposure_time=exposure_times[c]))
|
||||||
|
|
||||||
idx = 0
|
idx = 0
|
||||||
for layer in metadata.find("Layers"):
|
for layer in metadata.find("Layers") or []:
|
||||||
rectangle = layer.find("Elements").find("Rectangle")
|
rectangle = layer.find("Elements").find("Rectangle")
|
||||||
if rectangle is not None:
|
if rectangle is not None:
|
||||||
geometry = rectangle.find("Geometry")
|
geometry = rectangle.find("Geometry")
|
||||||
@@ -552,7 +552,7 @@ class Reader(AbstractReader, ABC):
|
|||||||
position_z=float(positions.attrib["Z"]), position_z_unit=um))
|
position_z=float(positions.attrib["Z"]), position_z_unit=um))
|
||||||
|
|
||||||
idx = 0
|
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")
|
rectangle = layer.find("Elements").find("Rectangle")
|
||||||
if rectangle is not None:
|
if rectangle is not None:
|
||||||
geometry = rectangle.find("Geometry")
|
geometry = rectangle.find("Geometry")
|
||||||
|
|||||||
@@ -51,6 +51,8 @@ class Reader(AbstractReader, ABC):
|
|||||||
'float', 'double', 'complex', 'double-complex', 'bit'):
|
'float', 'double', 'complex', 'double-complex', 'bit'):
|
||||||
dtype = 'float'
|
dtype = 'float'
|
||||||
|
|
||||||
|
interval_t = metadata.get('interval', 0)
|
||||||
|
|
||||||
ome = model.OME()
|
ome = model.OME()
|
||||||
ome.instruments.append(model.Instrument(id='Instrument:0'))
|
ome.instruments.append(model.Instrument(id='Instrument:0'))
|
||||||
ome.instruments[0].objectives.append(model.Objective(id='Objective: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),
|
dimension_order="XYCZT", type=dtype, physical_size_x=pxsize, physical_size_y=pxsize),
|
||||||
objective_settings=model.ObjectiveSettings(id="Objective:0")))
|
objective_settings=model.ObjectiveSettings(id="Objective:0")))
|
||||||
for c, z, t in product(range(size_c), range(size_z), range(size_t)):
|
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
|
return ome
|
||||||
|
|
||||||
def open(self):
|
def open(self):
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "ndbioimage"
|
name = "ndbioimage"
|
||||||
version = "2023.12.2"
|
version = "2024.2.0"
|
||||||
description = "Bio image reading, metadata and some affine registration."
|
description = "Bio image reading, metadata and some affine registration."
|
||||||
authors = ["W. Pomp <w.pomp@nki.nl>"]
|
authors = ["W. Pomp <w.pomp@nki.nl>"]
|
||||||
license = "GPLv3"
|
license = "GPLv3"
|
||||||
|
|||||||
Reference in New Issue
Block a user