Create new class on addition by aggregating list of image views
parent
eb1841a8
No related branches found
No related tags found
This commit is part of merge request !170. Comments created here will be created in the context of that merge request.
... | ... | @@ -367,11 +367,21 @@ class hRIXS: |
return (px + mx) / 2, py - my | ||
def __add__(self, other): | ||
ix, iy = self.spectrum(normalize=False) | ||
jx, jy = other.spectrum(normalize=False) | ||
images = split_images(self.images) + split_images(other.images) | ||
return self.__class__(images=images, | ||
norm=self.norm + other.norm) | ||
i_n = self.norm or 0 | ||
j_n = other.norm or 0 | ||
norm = ((i_n + j_n) or 1) | ||
return ix, (iy + jy) / norm | ||
def split_images(images): | ||
""" Split the images by the number of trains | ||
and return the list of their views. """ | ||
# Check if the images has already been splitted | ||
if isinstance(images, list): | ||
return images | ||
# Check if the images is a numpy of of 2d image that follows | ||
# the shape (num, y_dim, x_dim) | ||
assert len(images.shape) == 3 | ||
return [np.squeeze(image) for image in np.vsplit(images, images.shape[0])] | ||
|