Skip to content
Open
Show file tree
Hide file tree
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
3 changes: 2 additions & 1 deletion sidpy/sid/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@

from .dimension import Dimension, DimensionType
from .translator import Translator
from .dataset import Dataset, DataType, convert_hyperspy
from .dataset import Dataset, convert_hyperspy
from .reader import Reader
from .datatype import DataType

__all__ = ['Dimension', 'DimensionType', 'Dataset', 'DataType', 'Reader',
'Translator', 'convert_hyperspy']
36 changes: 21 additions & 15 deletions sidpy/sid/dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,31 +38,23 @@
from ..base.dict_utils import print_nested_dict
from ..viz.dataset_viz import CurveVisualizer, ImageVisualizer, ImageStackVisualizer
from ..viz.dataset_viz import SpectralImageVisualizer, FourDimImageVisualizer, ComplexSpectralImageVisualizer
from ..viz.dataset_viz import PointCloudVisualizer, DictionaryVisualizer
from ..viz.dataset_viz import PointCloudVisualizer, DictionaryVisualizer, DP_PointCloudVisualizer
# from ..hdf.hdf_utils import is_editable_h5
from .dimension import DimensionType
from copy import deepcopy, copy
from sidpy.base.string_utils import validate_single_string_arg
import logging
from ..__version__ import version

from .datatype import DataType

def is_simple_list(lst):
if isinstance(lst, list):
return any(hasattr(item, '__getitem__') for item in lst)
return False


class DataType(Enum):
UNKNOWN = -1
SPECTRUM = 1
LINE_PLOT = 2
LINE_PLOT_FAMILY = 3
IMAGE = 4
IMAGE_MAP = 5
IMAGE_STACK = 6 # 3d
SPECTRAL_IMAGE = 7
IMAGE_4D = 8
POINT_CLOUD = 9



def view_subclass(dask_array, cls):
Expand Down Expand Up @@ -281,7 +273,7 @@ def from_array(cls, x, title='generic', chunks='auto', lock=False,

sid_dataset._axes = {}

if sid_dataset.data_type == DataType.POINT_CLOUD and coordinates is None:
if sid_dataset.data_type in [DataType.POINT_CLOUD, DataType.DP_POINT_CLOUD] and coordinates is None:
raise ValueError("coordinates must be specified for a point cloud dataset")

for dim in range(sid_dataset.ndim):
Expand All @@ -293,6 +285,13 @@ def from_array(cls, x, title='generic', chunks='auto', lock=False,
2: 'channel'
}
dimension_type = dimension_map.get(dim, None)
elif datatype == "dp_point_cloud":
dimension_map = {
0: 'point_cloud',
1: 'reciprocal',
2: 'reciprocal'
}
dimension_type = dimension_map.get(dim, None)
else:
dimension_type = 'unknown'
sid_dataset.set_dimension(dim, Dimension(np.arange(sid_dataset.shape[dim]),
Expand All @@ -309,6 +308,8 @@ def from_array(cls, x, title='generic', chunks='auto', lock=False,
sid_dataset.point_cloud = {'coordinates': coordinates}
else:
sid_dataset.point_cloud = None


return sid_dataset

def like_data(self, data, title=None, chunks='auto', lock=False,
Expand Down Expand Up @@ -667,7 +668,7 @@ def plot(self, verbose=False, figure=None, dict_data=None, **kwargs):
self.view.fig: matplotlib figure reference

"""

if verbose:
print('Shape of dataset is: ', self.shape)

Expand All @@ -692,8 +693,9 @@ def plot(self, verbose=False, figure=None, dict_data=None, **kwargs):
elif self.data_type.value <= DataType['LINE_PLOT'].value:
# self.data_type in ['spectrum_family', 'line_family', 'line_plot_family', 'spectra']:
self.view = CurveVisualizer(self, figure=figure, **kwargs)
elif self.data_type == DataType.POINT_CLOUD:
elif self.data_type in [DataType.POINT_CLOUD, DataType.DP_POINT_CLOUD]:
self.view = PointCloudVisualizer(self, figure=figure, **kwargs)

elif self.data_type == DataType.SPECTRAL_IMAGE:
print('sp')
self.view = SpectralImageVisualizer(self, figure=figure, **kwargs)
Expand Down Expand Up @@ -721,6 +723,10 @@ def plot(self, verbose=False, figure=None, dict_data=None, **kwargs):
self.view = SpectralImageVisualizer(self, figure=figure, **kwargs)
elif self.data_type == DataType.POINT_CLOUD:
self.view = PointCloudVisualizer(self, figure=figure, **kwargs)
elif self.data_type == DataType.DP_POINT_CLOUD:

self.view = DP_PointCloudVisualizer(self, figure=figure, **kwargs)

else:
raise NotImplementedError('Datasets with data_type {} cannot be plotted, yet.'.format(self.data_type))
elif len(self.shape) == 4:
Expand Down
13 changes: 13 additions & 0 deletions sidpy/sid/datatype.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from enum import Enum
class DataType(Enum):
UNKNOWN = -1
SPECTRUM = 1
LINE_PLOT = 2
LINE_PLOT_FAMILY = 3
IMAGE = 4
IMAGE_MAP = 5
IMAGE_STACK = 6 # 3d
SPECTRAL_IMAGE = 7
IMAGE_4D = 8
POINT_CLOUD = 9
DP_POINT_CLOUD = 10
Loading