diff --git a/nd2reader/raw_metadata.py b/nd2reader/raw_metadata.py index 1152219..5f0de72 100644 --- a/nd2reader/raw_metadata.py +++ b/nd2reader/raw_metadata.py @@ -45,6 +45,8 @@ def get_parsed_metadata(self): "frames": self._parse_frames(), "z_levels": self._parse_z_levels(), "z_coordinates": parse_if_not_none(self.z_data, self._parse_z_coordinates), + "x_coordinates": parse_if_not_none(self.x_data, self._parse_x_coordinates), + "y_coordinates": parse_if_not_none(self.y_data, self._parse_y_coordinates), "total_images_per_channel": frames_per_channel, "channels": self._parse_channels(), "pixel_microns": parse_if_not_none(self.image_calibration, self._parse_calibration) @@ -195,6 +197,22 @@ def _parse_z_coordinates(self): """ return self.z_data.tolist() + def _parse_x_coordinates(self): + """The coordinate in micron for all x. + + Returns: + list: the x coordinates in micron + """ + return self.x_data.tolist() + + def _parse_y_coordinates(self): + """The coordinate in micron for all y. + + Returns: + list: the y coordinates in micron + """ + return self.y_data.tolist() + def _parse_dimension_text(self): """While there are metadata values that represent a lot of what we want to capture, they seem to be unreliable. Sometimes certain elements don't exist, or change their data type randomly. However, the human-readable text @@ -662,4 +680,3 @@ def image_events(self): if self._label_map.image_metadata: for event in self._metadata_parsed["events"]: yield event - diff --git a/nd2reader/reader.py b/nd2reader/reader.py index 4e14f42..0a4e20b 100644 --- a/nd2reader/reader.py +++ b/nd2reader/reader.py @@ -227,7 +227,7 @@ def get_timesteps(self): return self._timesteps self._timesteps = ( - np.array(list(self._parser._raw_metadata.acquisition_times), dtype=np.float) + np.array(list(self._parser._raw_metadata.acquisition_times), dtype='float') * 1000.0 )