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
Esempio n. 2
0
 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