Esempio n. 1
0
    def __init__(self, data, pixel_scale, cadence, interop, savedir, **kwargs):
        all_axes = list(range(data.ndim))
        image_axes = [all_axes[i] for i in kwargs.get('image_axes', [-2, -1])]
        self.slider_axes = list(range(data.ndim))
        for x in image_axes:
            self.slider_axes.remove(x)

        if 'cmap' not in kwargs:
            kwargs['cmap'] = plt.get_cmap('gray')

        axis_range = [None, None,
                      [0, pixel_scale * data[0, 0, :, :].shape[0]],
                      [0, pixel_scale * data[0, 0, :, :].shape[1]]]
        axis_range = kwargs.pop('axis_range', axis_range)

        axis_range = self._sanitize_axis_range(axis_range, data)

        self.image_extent = list(itertools.chain.from_iterable([axis_range[i] for i in image_axes]))
        self.pixel_scale = pixel_scale
        self.cadence = cadence
        self.slits = []
        self.savedir = savedir
        self.nt = data.shape[0]
        self.nlambda = data.shape[1]
        self.interop = interop
        self.range = range(0, data.shape[1])
        
        button_labels, button_func = self.create_buttons()

        slider_functions = [self._updateimage]*len(self.slider_axes) + [self.update_range]*2 + [self.update_im_clim]*2
        slider_ranges = [axis_range[i] for i in self.slider_axes] + [range(0, self.nlambda)]*2 + [np.arange(0, 99.9)]*2

        ImageAnimator.__init__(self, data, axis_range=axis_range,
                               button_labels=button_labels,
                               button_func=button_func,
                               slider_functions=slider_functions,
                               slider_ranges=slider_ranges,
                               **kwargs)

        # Sets up the slit sliders
        self.sliders[2]._slider.set_val(self.nlambda)
        self.sliders[3]._slider.slidermax = self.sliders[2]._slider
        self.sliders[2]._slider.slidermin = self.sliders[3]._slider
        self.slider_buttons[3].set_visible(False)
        self.slider_buttons[2].set_visible(False)
        self.label_slider(3, "Start")
        self.label_slider(2, "End")

        # Sets up the intensity scaling sliders
        self.sliders[-2]._slider.set_val(100)
        self.sliders[-1]._slider.slidermax = self.sliders[-2]._slider
        self.sliders[-2]._slider.slidermin = self.sliders[-1]._slider
        self.slider_buttons[-1].set_visible(False)
        self.slider_buttons[-2].set_visible(False)
        self.axes.autoscale(False)
        self.label_slider(-1, "Min")
        self.label_slider(-2, "Max")
Esempio n. 2
0
    def __init__(self, data, pixel_scale, savedir, **kwargs):
        all_axes = list(range(data.ndim))
        image_axes = [all_axes[i] for i in kwargs.get('image_axes', [-2,-1])]
        self.slider_axes = list(range(data.ndim))
        for x in image_axes:
            self.slider_axes.remove(x)

        axis_range = [None,None,
                      [0, pixel_scale * data[0,0,:,:].shape[0]],
                      [0, pixel_scale * data[0,0,:,:].shape[1]]]
        axis_range = kwargs.pop('axis_range', axis_range)

        axis_range = self._sanitize_axis_range(axis_range, data)

        self.image_extent = list(itertools.chain.from_iterable([axis_range[i] for i in image_axes]))
        self.pixel_scale = pixel_scale
        self.r_diff = []
        self.slits = []
        self.savedir = savedir
        self.nlambda = data.shape[1]
        self.nt = data.shape[0]

        button_labels, button_func = self.create_buttons()

        slider_functions = [self._updateimage]*len(self.slider_axes) + [self.update_im_clim]*2
        slider_ranges = [axis_range[i] for i in self.slider_axes] + [np.arange(0,99.9)]*2
        
        ImageAnimator.__init__(self, data, axis_range=axis_range,
                                  button_labels=button_labels,
                                  button_func=button_func,
                                  slider_functions=slider_functions,
                                  slider_ranges=slider_ranges,
                                  **kwargs)

        self.sliders[-2]._slider.set_val(100)
        self.sliders[-1]._slider.slidermax = self.sliders[-2]._slider
        self.sliders[-2]._slider.slidermin = self.sliders[-1]._slider
        self.slider_buttons[-1].set_visible(False)
        self.slider_buttons[-2].set_visible(False)
        self.axes.autoscale(False)
        self.label_slider(-1, "Min")
        self.label_slider(-2, "Max")