"""
|
|
Legacy class for backwards compatibility
|
|
"""
|
|
|
|
import warnings
|
|
|
|
from nd2reader import ND2Reader
|
|
|
|
|
|
class Nd2(object):
|
|
""" Warning: this module is deprecated and only maintained for backwards compatibility with the non-PIMS version of
|
|
nd2reader.
|
|
"""
|
|
|
|
def __init__(self, filename):
|
|
warnings.warn(
|
|
"The 'Nd2' class is deprecated, please consider using the new ND2Reader interface which uses pims.",
|
|
DeprecationWarning)
|
|
|
|
self.reader = ND2Reader(filename)
|
|
|
|
def __repr__(self):
|
|
return "\n".join(["<Deprecated ND2 %s>" % self.reader.filename,
|
|
"Created: %s" % (self.date if self.date is not None else "Unknown"),
|
|
"Image size: %sx%s (HxW)" % (self.height, self.width),
|
|
"Frames: %s" % len(self.frames),
|
|
"Channels: %s" % ", ".join(["%s" % str(channel) for channel in self.channels]),
|
|
"Fields of View: %s" % len(self.fields_of_view),
|
|
"Z-Levels: %s" % len(self.z_levels)
|
|
])
|
|
|
|
def __enter__(self):
|
|
return self
|
|
|
|
def __exit__(self, exc_type, exc_val, exc_tb):
|
|
if self.reader is not None:
|
|
self.reader.close()
|
|
|
|
def __len__(self):
|
|
return len(self.reader)
|
|
|
|
def __getitem__(self, item):
|
|
return self.reader[item]
|
|
|
|
def select(self, fields_of_view=None, channels=None, z_levels=None, start=0, stop=None):
|
|
"""Select images based on criteria.
|
|
|
|
Args:
|
|
fields_of_view: the fields of view
|
|
channels: the color channels
|
|
z_levels: the z levels
|
|
start: the starting frame
|
|
stop: the last frame
|
|
|
|
Returns:
|
|
ND2Reader: Sliced ND2Reader which contains the frames
|
|
|
|
"""
|
|
if stop is None:
|
|
stop = len(self.frames)
|
|
|
|
return self.reader[start:stop]
|
|
|
|
def get_image(self, frame_number, field_of_view, channel_name, z_level):
|
|
"""Deprecated. Returns the specified image from the ND2Reader class.
|
|
|
|
Args:
|
|
frame_number: the frame number
|
|
field_of_view: the field of view number
|
|
channel_name: the name of the color channel
|
|
z_level: the z level number
|
|
|
|
Returns:
|
|
Frame: the specified image
|
|
|
|
"""
|
|
return self.reader.parser.get_image_by_attributes(frame_number, field_of_view, channel_name, z_level,
|
|
self.height, self.width)
|
|
|
|
def close(self):
|
|
"""Closes the ND2Reader
|
|
"""
|
|
if self.reader is not None:
|
|
self.reader.close()
|
|
|
|
@property
|
|
def height(self):
|
|
"""Deprecated. Fetches the height of the image.
|
|
|
|
Returns:
|
|
int: the pixel height of the image
|
|
|
|
"""
|
|
return self._get_width_or_height("height")
|
|
|
|
@property
|
|
def width(self):
|
|
"""Deprecated. Fetches the width of the image.
|
|
|
|
Returns:
|
|
int: the pixel width of the image
|
|
|
|
"""
|
|
return self._get_width_or_height("width")
|
|
|
|
def _get_width_or_height(self, key):
|
|
return self.reader.metadata[key] if self.reader.metadata[key] is not None else 0
|
|
|
|
@property
|
|
def z_levels(self):
|
|
"""Deprecated. Fetches the available z levels.
|
|
|
|
Returns:
|
|
list: z levels.
|
|
|
|
"""
|
|
return self.reader.metadata["z_levels"]
|
|
|
|
@property
|
|
def fields_of_view(self):
|
|
"""Deprecated. Fetches the fields of view.
|
|
|
|
Returns:
|
|
list: fields of view.
|
|
|
|
"""
|
|
return self.reader.metadata["fields_of_view"]
|
|
|
|
@property
|
|
def channels(self):
|
|
"""Deprecated. Fetches all color channels.
|
|
|
|
Returns:
|
|
list: the color channels.
|
|
|
|
"""
|
|
return self.reader.metadata["channels"]
|
|
|
|
@property
|
|
def frames(self):
|
|
"""Deprecated. Fetches all frames.
|
|
|
|
Returns:
|
|
list: list of frames
|
|
|
|
"""
|
|
return self.reader.metadata["frames"]
|
|
|
|
@property
|
|
def date(self):
|
|
"""Deprecated. Fetches the acquisition date.
|
|
|
|
Returns:
|
|
string: the date
|
|
|
|
"""
|
|
return self.reader.metadata["date"]
|
|
|
|
@property
|
|
def pixel_microns(self):
|
|
"""Deprecated. Fetches the amount of microns per pixel.
|
|
|
|
Returns:
|
|
float: microns per pixel
|
|
|
|
"""
|
|
return self.reader.metadata["pixel_microns"]
|