def __getitem__(self, item): if item is None or (isinstance(item, tuple) and None in item): raise IndexError("None indices not supported") pixels = cu.pixelize_slice(item, self.axes_wcs) if self.data.ndim == 3: return cu.getitem_3d(self, pixels) else: return cu.getitem_4d(self, pixels)
def __getitem__(self, item): if item is None or (isinstance(item, tuple) and None in item): raise IndexError("None indices not supported") if isinstance(item, tuple) and len(item) > 2: spectral_slice = item[2] else: spectral_slice = slice(None, None, None) if isinstance(item, int): pixels = cu.pixelize_slice(item, self.wcs, _source='other') else: pixels = cu.pixelize_slice(item[:2], self.wcs, _source='other') if cu.iter_isinstance(pixels, (int, int)): return self.spectra[pixels][spectral_slice] else: newspectra = self.spectra[item] for i in newspectra.shape[0]: for j in newspectra.shape[1]: spec = newspectra[i, j] newspectra[i, j] = spec[spectral_slice]
def __getitem__(self, item): if item is None or (isinstance(item, tuple) and None in item): raise IndexError("None indices not supported") if not self._array_is_aligned(): raise cu.CubeError(6, "Slicing on unaligned wcs-array systems " + "not supported at the moment") pixels = cu.pixelize_slice(item, self.axes_wcs) if self.data.ndim == 3: return cu.getitem_3d(self, pixels) else: return cu.getitem_4d(self, pixels)
def test_pixelize_slice(): sl = [((slice(1, None, 3), 3.2, slice(None, None, 2)), wt), ((0.3 * u.deg, 2474.5 * u.deg, 10.75 * u.Angstrom), wm), ((slice(None, 3 * u.deg, 2), slice(99.5 * u.deg, 124.5, 1 * u.deg), slice(90 * u.Angstrom, 300, 60)), wm)] results = [(slice(1, None, 3), 3.2, slice(None, None, 2)), (0, 4950, 4), (slice(None, 7, 5), slice(200, 250, 2), slice(400, 1450, 300))] for i in range(len(sl)): assert cu.pixelize_slice(*sl[i]) == results[i]