def set_beam_stop(data, radius, outer=None): # type: (Data, float, Optional[float]) -> None """ Add a beam stop of the given *radius*. If *outer*, make an annulus. """ from sas.sascalc.dataloader.manipulations import Ringcut if hasattr(data, 'qx_data'): data.mask = Ringcut(0, radius)(data) if outer is not None: data.mask += Ringcut(outer, np.inf)(data) else: data.mask = (data.x < radius) if outer is not None: data.mask |= (data.x >= outer)
def _post_data(self): """ Uses annulus parameters to plot averaged data into 1D data. :param nbins: the number of points to plot """ # Data to average data = self.base.data # If we have no data, just return if data == None: return mask = data.mask from sas.sascalc.dataloader.manipulations import Ringcut rmin = 0 rmax = math.fabs(self.outer_circle.get_radius()) # # create the data1D Q average of data2D mask = Ringcut(r_min=rmin, r_max=rmax) if self.is_inside: out = (mask(data) == False) else: out = (mask(data)) # self.base.data.mask=out return out