コード例 #1
0
def overlayViewer(im4d, overlay3d, zz=0, tt=0, th=0, oa=1, im_range=None, o_range=None):
	tt_enable = True
	if im4d.ndim == 3:
	    im4d = im4d[:,:,:,np.newaxis]
	    tt_enable = False
	out = widgets.Output()
	zz_slider = widgets.IntSlider(min=0, max=im4d.shape[2]-1, step=1, value=zz)
	tt_slider = widgets.IntSlider(min=0, max=im4d.shape[3]-1, step=1, value=tt)
	oa_slider = widgets.FloatSlider(min=0, max=1, step=0.1, value=oa)
	if issubclass(overlay3d.dtype.type, np.integer) or overlay3d.dtype == np.bool:
		th = 1
		th_slider = widgets.IntSlider(min=np.amin(overlay3d), max=np.amax(overlay3d), step=1, value=th)
		th_slider.visible = False
		oa_slider.visible = True
	else:
		th_slider = widgets.FloatSlider(min=np.amin(overlay3d), max=np.amax(overlay3d), step=0.01, value=th)
		oa_slider.visible = False
	overlay_button = widgets.ToggleButton(description='Overlay', value=True)
	if not tt_enable:
		tt_slider.visible = False
	with warnings.catch_warnings():
		warnings.simplefilter('ignore')
		w = widgets.interactive(overlayShow, recon=widgets.fixed(im4d), overlay3d=widgets.fixed(overlay3d), 
		              zz=zz_slider, tt=tt_slider, th=th_slider, oa=oa_slider, oe=overlay_button, 
		              im_range=widgets.fixed(im_range), o_range=widgets.fixed(o_range), out=widgets.fixed(out))
	wo = widgets.HBox(children=(w,out))
	display(wo)
コード例 #2
0
def FilterFreqs(audioData, freqDom, freqs):
    """
        Produces UI componants for user. Drives plotting of filtered signal (FilterFreqs)

        ----------

        Parameters

        ----------

        audioData: array_like
            raw audio data
        
        freqDom: array_like
            transformed frequnecy domain data
        
        freqs: array_like
        frequencies
    """
    filter_sldr = widgets.IntRangeSlider(value=[0, 0],
                                         min=0,
                                         max=23e3,
                                         step=1000,
                                         continuous_update=False,
                                         description='Freq Band')
    xlim_sldr = widgets.IntRangeSlider(value=[0, 22.5e3],
                                       min=0,
                                       max=22.5e3,
                                       step=1000,
                                       continuous_update=False,
                                       description='Ax. lim')
    export_btn = widgets.ToggleButton(value=False,
                                      description='Export to .wav')

    display(
        widgets.VBox([
            widgets.interactive_output(
                FilterBand, {
                    'audioData': widgets.fixed(audioData),
                    'freqDom': widgets.fixed(freqDom),
                    'freqs': widgets.fixed(freqs),
                    'filtFreq': filter_sldr,
                    'FALim': xlim_sldr,
                    'export': export_btn
                }),
            widgets.HBox([xlim_sldr, filter_sldr, export_btn])
        ]))
コード例 #3
0
ファイル: advection.py プロジェクト: pohsunChen/riemann_book
def plot_riemann_solution(ql, qr, a):
    c = lambda q, xi: a
    soln = riemann_solution(ql, qr, a)

    plot_advection = riemann_tools.make_plot_function(*soln, plot_chars=[c])

    return interact(plot_advection,
                    t=widgets.FloatSlider(value=0.0, min=0, max=1.0),
                    which_char=widgets.fixed(True))
コード例 #4
0
def reconViewer(im4d, zz=0, tt=0, rgb=False):
	tt_enable = True
	if im4d.ndim == 3:
	    im4d = im4d[:,:,:,np.newaxis]
	    tt_enable = False
	if rgb:
		tt_enable = False
	out = widgets.Output()
	zz_slider = widgets.IntSlider(min=0, max=im4d.shape[2]-1, step=1, value=zz)
	tt_slider = widgets.IntSlider(min=0, max=im4d.shape[3]-1, step=1, value=tt)
	if not tt_enable:
		tt_slider.visible = False
	with warnings.catch_warnings():
		warnings.simplefilter('ignore')
		w = widgets.interactive(reconShow, recon=widgets.fixed(im4d), zz=zz_slider, tt=tt_slider, 
								rgb=widgets.fixed(rgb), out=widgets.fixed(out))
	wo = widgets.HBox(children=(w,out))
	display(wo)
コード例 #5
0
ファイル: advection.py プロジェクト: maojrs/riemann_book
def plot_riemann_solution(ql, qr, a):
    c = lambda q, xi: a
    soln = riemann_solution(ql ,qr, a)

    plot_advection = riemann_tools.make_plot_function(*soln,
                                                      plot_chars=[c])

    return interact(plot_advection,
                    t=widgets.FloatSlider(value=0.0,min=0,max=1.0),
                    which_char=widgets.fixed(True))
コード例 #6
0
def traces_widget(node: TimeSeries,
                  neurodata_vis_spec: dict = None,
                  time_window_controller=None,
                  start=None,
                  dur=None,
                  trace_controller=None,
                  trace_starting_range=None,
                  **kwargs):

    if time_window_controller is None:
        tmax = get_timeseries_maxt(node)
        tmin = get_timeseries_mint(node)
        if start is None:
            start = tmin
        if dur is None:
            dur = min(tmax - tmin, 5)
        time_window_controller = make_time_window_controller(tmin,
                                                             tmax,
                                                             start=start,
                                                             duration=dur)
    if trace_controller is None:
        if trace_starting_range is None:
            trace_starting_range = (0, min(30, node.data.shape[1]))
        trace_controller = int_range_controller(
            node.data.shape[1], start_range=trace_starting_range)

    controls = {
        'time_series': widgets.fixed(node),
        'time_start': time_window_controller.children[0].children[0],
        'time_duration': time_window_controller.children[0].children[1],
        'trace_window': trace_controller.children[0],
    }
    controls.update({key: widgets.fixed(val) for key, val in kwargs.items()})

    out_fig = widgets.interactive_output(plot_traces, controls)

    control_widgets = widgets.HBox(children=(time_window_controller,
                                             trace_controller))
    vbox = widgets.VBox(children=[control_widgets, out_fig])

    return vbox
コード例 #7
0
def traces_widget(node: TimeSeries, neurodata_vis_spec: dict = None,
                  time_window_controller=None, start=None, dur=None,
                  trace_controller=None, trace_starting_range=None,
                  **kwargs):

    if time_window_controller is None:
        tmax = get_timeseries_maxt(node)
        tmin = get_timeseries_mint(node)
        if start is None:
            start = tmin
        if dur is None:
            dur = min(tmax-tmin, 5)
        time_window_controller = StartAndDurationController(tmax, tmin, start=start, duration=dur)
    if trace_controller is None:
        if trace_starting_range is None:
            trace_starting_range = (0, min(30, node.data.shape[1]))
        trace_controller = RangeController(0, node.data.shape[1], start_range=trace_starting_range,
                                           description='channels', dtype='int', orientation='vertical')

    controls = {
        'time_series': widgets.fixed(node),
        'time_window': time_window_controller,
        'trace_window': trace_controller.slider,
    }
    controls.update({key: widgets.fixed(val) for key, val in kwargs.items()})

    out_fig = widgets.interactive_output(plot_traces, controls)

    lower = widgets.HBox(children=[
        trace_controller,
        out_fig
    ])

    out = widgets.VBox(children=[
        time_window_controller,
        lower
    ])

    return out
コード例 #8
0
def symmetryCheck(f1, f2, showSym, showArea):

    a_slider = widgets.FloatSlider(value=1,
                                   min=0,
                                   max=np.pi,
                                   step=0.1,
                                   continuous_update=False)

    if not showSym:
        displayEvenOdd(f1, f2, showArea)
    else:
        display(
            widgets.VBox([
                a_slider,
                widgets.interactive_output(
                    displayEvenOdd, {
                        "f1": widgets.fixed(f1),
                        "f2": widgets.fixed(f2),
                        "showArea": widgets.fixed(showArea),
                        "a": a_slider
                    })
            ]))
コード例 #9
0
def MusicNote(audioData, freqDom, freqs):
    """
        Produces UI componants for user. Drives plotting of PlotFourierAnalysis

        ----------

        Parameters

        ----------

        audioData: array_like
            raw audio data
        
        freqDom: array_like
            transformed frequency domain data
        
        freqs: array_like
            frequencies
    """
    xlim_sldr = widgets.IntRangeSlider(value=[0, 22.5e3],
                                       min=0,
                                       max=22.5e3,
                                       step=1000,
                                       continuous_update=False,
                                       description='Ax. lim')

    return widgets.VBox([
        widgets.interactive_output(
            PlotSignal, {
                'signal': widgets.fixed(audioData),
                'amps': widgets.fixed(freqDom),
                'freqs': widgets.fixed(freqs),
                'FALim': xlim_sldr
            }),
        widgets.HBox([xlim_sldr])
    ])
コード例 #10
0
def wofost_parameter_sweep():
    widgets.interact_manual(
        wofost_parameter_sweep_func,
        crop_start_date=widgets.fixed(dt.date(2011, 7, 1)),
        crop_end_date=widgets.fixed(dt.date(2011, 11, 1)),
        span=widgets.FloatSlider(value=40.0, min=20, max=50),
        cvo=widgets.FloatSlider(value=0.72, min=0.1, max=0.9, step=0.02),
        cvl=widgets.FloatSlider(value=0.72, min=0.1, max=0.9, step=0.02),
        tdwi=widgets.FloatSlider(value=20.0, min=5, max=50),
        tsum1=widgets.FloatSlider(value=750.0, min=100, max=1500),
        tsum2=widgets.FloatSlider(value=859.0, min=100, max=1500),
        tsumem=widgets.FloatSlider(value=70, min=10, max=200),
        rgrlai=widgets.FloatSlider(value=0.05, min=0.001, max=0.3, step=0.01),
        meteo=widgets.fixed("Upper_East"),
        crop=widgets.fixed("maize"),
        variety=widgets.fixed("Maize_VanHeemst_1988"),
        soil=widgets.fixed("ec4.new"),
        wav=widgets.FloatSlider(value=5, min=0, max=100),
        co2=widgets.fixed(400),
        rdmsol=widgets.fixed(100.),
        potential=widgets.Checkbox(value=False,
                                   description='Potential mode',
                                   icon='check'))
コード例 #11
0
    def __init__(
            self,
            time_series: TimeSeries,
            dynamic_table_region_name=None,
            foreign_time_window_controller: StartAndDurationController = None,
            foreign_group_and_sort_controller: GroupAndSortController = None,
            mpl_plotter=plot_grouped_traces,
            **kwargs):
        """

        Parameters
        ----------
        time_series: TimeSeries
        dynamic_table_region_name: str, optional
        foreign_time_window_controller: StartAndDurationController, optional
        foreign_group_and_sort_controller: GroupAndSortController, optional
        mpl_plotter: function
            Choose function to use when creating figures
        kwargs
        """

        if (dynamic_table_region_name is not None
                and foreign_group_and_sort_controller is not None):
            raise TypeError(
                "You cannot supply both `dynamic_table_region_name` and `foreign_group_and_sort_controller`."
            )

        super().__init__()
        self.time_series = time_series

        if foreign_time_window_controller is not None:
            self.time_window_controller = foreign_time_window_controller
        else:
            self.tmin = get_timeseries_mint(time_series)
            self.tmax = get_timeseries_maxt(time_series)
            self.time_window_controller = StartAndDurationController(
                tmin=self.tmin, tmax=self.tmax)

        self.controls = dict(
            time_series=widgets.fixed(self.time_series),
            time_window=self.time_window_controller,
            dynamic_table_region_name=widgets.fixed(dynamic_table_region_name),
        )
        if foreign_group_and_sort_controller is None:
            if dynamic_table_region_name is not None:
                dynamic_table_region = getattr(time_series,
                                               dynamic_table_region_name)
                table = dynamic_table_region.table
                referenced_rows = np.array(dynamic_table_region.data)
                self.gas = GroupAndSortController(
                    dynamic_table=table,
                    keep_rows=referenced_rows,
                )
                self.controls.update(gas=self.gas)
            else:
                self.gas = None
                range_controller_max = min(30, self.time_series.data.shape[1])
                self.range_controller = RangeController(
                    0,
                    self.time_series.data.shape[1],
                    start_value=(0, range_controller_max),
                    dtype="int",
                    description="traces",
                    orientation="vertical",
                )
                self.controls.update(window=self.range_controller)
        else:
            self.gas = foreign_group_and_sort_controller
            self.controls.update(gas=self.gas)

        # Sets up interactive output controller
        out_fig = interactive_output(mpl_plotter, self.controls)

        if foreign_time_window_controller:
            right_panel = out_fig
        else:
            right_panel = widgets.VBox(
                children=[
                    self.time_window_controller,
                    out_fig,
                ],
                layout=widgets.Layout(width="100%"),
            )

        if foreign_group_and_sort_controller or self.gas is None:
            if self.range_controller is None:
                self.children = [right_panel]
            else:
                self.children = [self.range_controller, right_panel]
        else:

            self.children = [self.gas, right_panel]
コード例 #12
0
 def set_controls(self, **kwargs):
     self.controls.update(timeseries=fixed(self.timeseries),
                          time_window=self.time_window_controller)
     self.controls.update(
         {key: widgets.fixed(val)
          for key, val in kwargs.items()})
コード例 #13
0
# パラメータ「threshold1」「threshold2」を設定するスライダー
thresh_slider = widgets.SelectionRangeSlider(options=np.arange(1000),
                                             index=(100, 200),
                                             description=f"threshold")
thresh_slider.layout.width = "400px"

# パラメータ「apertureSize」を設定するスライダー
aperture_size_slider = slider = widgets.IntSlider(min=3,
                                                  max=7,
                                                  step=2,
                                                  value=3,
                                                  description="apertureSize: ")
aperture_size_slider.layout.width = "400px"

# パラメータ「L2gradient」を設定するチェックボックス
l2_gradient_checkbox = widgets.Checkbox(value=False,
                                        description="L2gradient: ")
l2_gradient_checkbox.layout.width = "400px"

# 画像を読み込む。
img = cv2.imread("sample.jpg")

# ウィジェットを表示する。
widgets.interactive(
    canny,
    img=widgets.fixed(img),
    thresh=thresh_slider,
    apertureSize=aperture_size_slider,
    L2gradient=l2_gradient_checkbox,
)
コード例 #14
0
    def __init__(
            self,
            time_series: TimeSeries,
            dynamic_table_region_name=None,
            foreign_time_window_controller: StartAndDurationController = None,
            foreign_group_and_sort_controller: GroupAndSortController = None,
            mpl_plotter=plot_grouped_traces,
            **kwargs):
        """

        Parameters
        ----------
        time_series: TimeSeries
        dynamic_table_region_name: str, optional
        foreign_time_window_controller: StartAndDurationController, optional
        foreign_group_and_sort_controller: GroupAndSortController, optional
        mpl_plotter: function
            Choose function to use when creating figures
        kwargs
        """

        if dynamic_table_region_name is not None and foreign_group_and_sort_controller is not None:
            raise TypeError(
                'You cannot supply both `dynamic_table_region_name` and `foreign_group_and_sort_controller`.'
            )

        super().__init__()
        self.time_series = time_series

        if foreign_time_window_controller is not None:
            self.time_window_controller = foreign_time_window_controller
        else:
            self.tmin = get_timeseries_mint(time_series)
            self.tmax = get_timeseries_maxt(time_series)
            self.time_window_controller = StartAndDurationController(
                tmin=self.tmin, tmax=self.tmax)

        self.controls = dict(
            time_series=widgets.fixed(self.time_series),
            time_window=self.time_window_controller,
        )
        if foreign_group_and_sort_controller is None:
            if dynamic_table_region_name is not None:
                dynamic_table_region = getattr(time_series,
                                               dynamic_table_region_name)
                table = dynamic_table_region.table
                referenced_rows = dynamic_table_region.data
                discard_rows = [
                    x for x in range(len(table)) if x not in referenced_rows
                ]
                self.gas = GroupAndSortController(
                    dynamic_table=table, start_discard_rows=discard_rows)
                self.controls.update(gas=self.gas)
            else:
                self.gas = None
        else:
            self.gas = foreign_group_and_sort_controller
            self.controls.update(gas=self.gas)

        # Sets up interactive output controller
        out_fig = interactive_output(mpl_plotter, self.controls)

        if foreign_time_window_controller:
            right_panel = out_fig
        else:
            right_panel = widgets.VBox(children=[
                self.time_window_controller,
                out_fig,
            ],
                                       layout=widgets.Layout(width="100%"))

        if foreign_group_and_sort_controller or self.gas is None:
            self.children = [right_panel]
        else:

            self.children = [self.gas, right_panel]

        self.layout = widgets.Layout(width="100%")