Ejemplo n.º 1
0
 def apply(self, dobj):
     with dobj._chunked_read(dobj._current_chunk):
         with dobj._field_type_state(self.filtered_type, dfi):
             # We won't be storing the field data from the whole read, so we
             # start by filtering now.
             filter = self.function(self, dobj)
             yield
             # Retain a reference here, and we'll filter all appropriate fields
             # later.
             fd = dobj.field_data
     for f, tr in fd.items():
         if f[0] != self.filtered_type: continue
         if tr.shape != filter.shape and tr.shape[0] != filter.shape[0]:
             raise YTIllDefinedFilter(self, tr.shape, filter.shape)
         else:
             d = tr[filter]
         dobj.field_data[self.name, f[1]] = d
Ejemplo n.º 2
0
 def apply(self, dobj):
     with dobj._chunked_read(dobj._current_chunk):
         with dobj._field_type_state(self.filtered_type, dfi):
             # We won't be storing the field data from the whole read, so we
             # start by filtering now.
             filter = self.function(self, dobj)
             yield
             # Retain a reference here, and we'll filter all appropriate fields
             # later.
             fd = dobj.field_data
     for f, tr in fd.items():
         if f[0] != self.filtered_type: continue
         if tr.shape != filter.shape and tr.shape[0] != filter.shape[0]:
             raise YTIllDefinedFilter(self, tr.shape, filter.shape)
         elif filter.size == 0:
             # Filtering empty set.  This keeps our dimensions correct.
             # Otherwise we end up with out-of-axis and shape problems.
             d = tr.copy()
         elif len(tr.shape) > len(filter.shape):
             # Filter must always be 1D
             d = tr[filter, :]
         else:
             d = tr[filter]
         dobj.field_data[self.name, f[1]] = d