def METHOD_NAME(self):
    xs = np.arange(self.X_start, self.X_end, self.X_step)
    ys = np.arange(self.Y_start, self.Y_end, self.Y_step)
    nprog = xs.size * ys.size
    progit = 0
    for x in xs:
        for y in ys:
            self.emit('progress', int(100 * progit / nprog))
            progit += 1
            self.emit("results", {
                'X': x,
                'Y': y,
                'pixel_data': np.random.rand(1)[0]
            })
            sleep(self.delay)
            if self.should_stop():
                break
        if self.should_stop():
            break