Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions nd2reader/raw_metadata.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from collections.abc import Sequence
import re
import xmltodict
import six
Expand Down Expand Up @@ -137,13 +138,21 @@ def _process_channels_metadata(self, metadata):
channels.append('Unknown')
return channels

def _parse_validity(self):
parsed = self.image_metadata[six.b('SLxExperiment')]
for _ in range(2):
parsed = parsed[six.b('ppNextLevelEx')][six.b('')]
if isinstance(parsed, Sequence):
# Old format had this structure.
parsed = parsed[0]
return parsed[six.b('pItemValid')]

def _get_channel_validity_list(self, metadata):
try:
validity = self.image_metadata[six.b('SLxExperiment')][six.b('ppNextLevelEx')][six.b('')][0][
six.b('ppNextLevelEx')][six.b('')][0][six.b('pItemValid')]
validity = self._parse_validity()
except (KeyError, TypeError):
# If none of the channels have been deleted, there is no validity list, so we just make one
validity = [True for _ in metadata]
validity = [True for _ in metadata[six.b('sPlaneNew')]]
return validity

def _parse_fields_of_view(self):
Expand Down