def select(self, selector, source, dest, offset): mask = self._get_selector_mask(selector) count = self.count(selector) if count == 0: return 0 nodal_flag = source.shape - self.ActiveDimensions if sum(nodal_flag) == 0: dest[offset:offset + count] = source[mask] else: slices = get_nodal_slices(source.shape, nodal_flag) for i, sl in enumerate(slices): dest[offset:offset + count, i] = source[sl][mask] return count
def select(self, selector, source, dest, offset): mask = self._get_selector_mask(selector) count = self.count(selector) if count == 0: return 0 dim = np.squeeze(self.ds.dimensionality) nodal_flag = source.shape[:dim] - self.ActiveDimensions[:dim] if sum(nodal_flag) == 0: dest[offset:offset + count] = source[mask] else: slices = get_nodal_slices(source.shape, nodal_flag, dim) for i, sl in enumerate(slices): dest[offset:offset + count, i] = source[sl][np.squeeze(mask)] return count