def __clear__(self): """"Clears all stored :py:class:`Stoner.Core.metadataObject` instances stored. Note: We're in the base class here, so we don't call super() if we can't handle this, then we're stuffed! """ self._metadata = regexpDict() self._stack = np.atleast_3d(np.ma.MaskedArray([]))
def __clear__(self): """"Clears all stored :py:class:`Stoner.Core.metadataObject` instances stored. Note: We're in the base class here, so we don't call super() if we can't handle this, then we're stuffed! """ self._metadata = regexpDict() self._stack = np.atleast_3d(np.ma.MaskedArray([]))
def __init__(self, *args, **kargs): """Initialise an ImageStack's pricate data and provide a type argument.""" self._stack = np.atleast_3d(np.ma.MaskedArray([])) self._metadata = regexpDict() self._names = list() self._sizes = np.array([], dtype=int).reshape(0, 2) kargs["type"] = ImageFile if not len(args): super(ImageStackMixin, self).__init__(**kargs) return None # No further initialisation other = args[0] if isinstance(other, ImageStackMixin): super(ImageStackMixin, self).__init__(*args[1:], **kargs) self._stack = other._stack self._metadata = other._metadata self._names = other._names self._sizes = other._sizes elif isinstance( other, ImageFolder): #ImageFolder can already init from itself super(ImageStackMixin, self).__init__(*args, **kargs) elif isinstance(other, np.ndarray) and len( other.shape ) == 3: #Initialise with 3D numpy array, first coordinate is number of images super(ImageStackMixin, self).__init__(*args[1:], **kargs) self.imarray = other self.imarray.shape self._sizes = np.ones( (other.shape[0], 2), dtype=int) * other.shape[1:] self._names = [ "Untitled-{}".format(d) for d in range(other.shape[0]) ] for n in self._names: self._metadata[n] = typeHintedDict() elif isinstance(other, list): try: other = [ImageFile(i) for i in other] except: raise ValueError( 'Failed to initialise ImageStack with list input') super(ImageStackMixin, self).__init__(*args[1:], **kargs) for ot in other: self.append(ot) del (self[-1] ) #Bit of a hack to get rid of initialised zeros data - #this poss needs changing in the append method else: super(ImageStackMixin, self).__init__(*args, **kargs)
def __init__(self, *args, **kargs): """Initialise an ImageStack's pricate data and provide a type argument.""" self._stack = np.atleast_3d(np.ma.MaskedArray([])) self._metadata = regexpDict() self._names = list() self._sizes = np.array([], dtype=int).reshape(0, 2) if not len(args): super(ImageStackMixin, self).__init__(**kargs) return None # No further initialisation other = args[0] if isinstance(other, ImageStackMixin): super(ImageStackMixin, self).__init__(*args[1:], **kargs) self._stack = other._stack self._metadata = other._metadata self._names = other._names self._sizes = other._sizes elif isinstance(other, ImageFolder): # ImageFolder can already init from itself super(ImageStackMixin, self).__init__(*args, **kargs) elif ( isinstance(other, np.ndarray) and len(other.shape) == 3 ): # Initialise with 3D numpy array, first coordinate is number of images super(ImageStackMixin, self).__init__(*args[1:], **kargs) self.imarray = other self.imarray.shape self._sizes = np.ones((other.shape[0], 2), dtype=int) * other.shape[1:] self._names = ["Untitled-{}".format(d) for d in range(other.shape[0])] for n in self._names: self._metadata[n] = typeHintedDict() elif isinstance(other, list): try: other = [ImageFile(i) for i in other] except: raise ValueError("Failed to initialise ImageStack with list input") super(ImageStackMixin, self).__init__(*args[1:], **kargs) for ot in other: self.append(ot) del self[-1] # Bit of a hack to get rid of initialised zeros data - # this poss needs changing in the append method else: super(ImageStackMixin, self).__init__(*args, **kargs)