Example #1
0
def FieldsApp():
    Q1 = interactive(csem_fields_app,
                     rho0=FloatText(value=1e8,
                                    description='$\\rho_{0} \ (\Omega m)$'),
                     rho1=FloatText(value=0.3,
                                    description='$\\rho_{1} \ (\Omega m)$'),
                     rho2=FloatText(value=1.,
                                    description='$\\rho_{2} \ (\Omega m)$'),
                     rho3=FloatText(value=100.,
                                    description='$\\rho_{3} \ (\Omega m)$'),
                     rho4=FloatText(value=1.,
                                    description='$\\rho_{4} \ (\Omega m)$'),
                     zsrc=FloatText(value=-950., description='src height (m)'),
                     rv_rh=FloatText(
                         value=1.,
                         description='$\\rho_{2 \ v} / \\rho_{2 \ h}$'),
                     dz1=FloatText(value=1000., description="dz1 (m)"),
                     dz2=FloatText(value=1000., description="dz2 (m)"),
                     dz3=FloatText(value=200., description="dz3 (m)"),
                     frequency=FloatText(value=0.5, description='f (Hz)'),
                     Field=ToggleButtons(options=['E', 'H', 'P'], value='E'),
                     Plane=ToggleButtons(options=['XZ', 'YZ'], value='XZ'),
                     Fixed=widgets.widget_bool.Checkbox(value=False),
                     vmin=FloatText(value=None),
                     vmax=FloatText(value=None),
                     __manual=True)
    return Q1
Example #2
0
def DC2DfwdWidget():
    return widgetify(DC2DfwdWrapper,
                     manual=True,
                     rhohalf=FloatText(min=10,
                                       max=1000,
                                       value=1000,
                                       continuous_update=False,
                                       description='$\\rho_1$'),
                     rhosph=FloatText(min=10,
                                      max=1000,
                                      value=50,
                                      continuous_update=False,
                                      description='$\\rho_2$'),
                     xc=FloatSlider(min=-40,
                                    max=40,
                                    step=1,
                                    value=0,
                                    continuous_update=False),
                     zc=FloatSlider(min=-20,
                                    max=0,
                                    step=1,
                                    value=-10,
                                    continuous_update=False),
                     r=FloatSlider(min=0,
                                   max=15,
                                   step=0.5,
                                   value=5,
                                   continuous_update=False),
                     predmis=ToggleButtons(options=['pred', 'mis']),
                     surveyType=ToggleButtons(
                         options=['DipoleDipole', 'PoleDipole', 'DipolePole']))
Example #3
0
 def show(self, **kwargs):
     if not self.show_menu:
         if kwargs.get('type') == 'contextmenu':
             self.show_menu = True
             options = ['Show marker']
             if self.geojson is None:
                 options += ['Show GeoJSON']
             if self.marker_or_geojson is not None:
                 options += [f'Remove {self.marker_or_geojson}']
             options += ['Close']
             self.s = ToggleButtons(options=options, value=None)
             self.s.observe(self.get_choice, names='value')
             self.p = Popup(location=self.coord,
                            child=self.s,
                            max_width=160,
                            close_button=False,
                            auto_close=True,
                            close_on_escape_key=False)
             self.m.add_layer(self.p)
         elif kwargs.get('type') == 'mousemove':
             self.coord = kwargs.get('coordinates')
             lat, lon = self.coord
             if self.da is not None:
                 self.label.value = str(
                     self.da.sel(lat=lat, lon=lon, method='nearest').values)
Example #4
0
def cylinder_app():
    app = widgetify(plot_Surface_Potentials,
                    survey=ToggleButtons(options=[
                                         'Dipole-Dipole', 'Dipole-Pole', 'Pole-Dipole', 'Pole-Pole'], value='Dipole-Dipole'),
                    rhocyl=FloatText(min=1e-8, max=1e8, value=500.,
                                     continuous_update=False, description='$\\rho_2$'),
                    rhohalf=FloatText(
                        min=1e-8, max=1e8, value=500., continuous_update=False, description='$\\rho_1$'),
                    r=FloatSlider(min=1., max=20., step=1.,
                                  value=10., continuous_update=False),
                    xc=FloatSlider(min=-20., max=20., step=1.,
                                   value=0., continuous_update=False),
                    zc=FloatSlider(min=-20., max=0., step=1.,
                                   value=-30., continuous_update=False),
                    A=FloatSlider(min=-30.25, max=30.25, step=0.5,
                                  value=-30.25, continuous_update=False),
                    B=FloatSlider(min=-30.25, max=30.25, step=0.5,
                                  value=30.25, continuous_update=False),
                    M=FloatSlider(min=-30.25, max=30.25, step=0.5,
                                  value=-10.25, continuous_update=False),
                    N=FloatSlider(min=-30.25, max=30.25, step=0.5,
                                  value=10.25, continuous_update=False),
                    Field=ToggleButtons(
                        options=['Model', 'Potential', 'E', 'J', 'Charge', 'Sensitivity'], value='Model'),
                    Type=ToggleButtons(
                        options=['Total', 'Primary', 'Secondary'], value='Total'),
                    Scale=ToggleButtons(
                        options=['Linear', 'Log'], value='Linear')
                    )
    return app
Example #5
0
    def _init_pointcloud_widgets(self):
        self.points_size_wid = FloatSlider(description='Size',
                                           min=1.,
                                           max=20.,
                                           value=self.points_size)
        self.percentage_points_wid = FloatSlider(description='Nb points',
                                                 step=0.01,
                                                 min=0.0,
                                                 max=1.0,
                                                 value=self.percentage_points,
                                                 readout_format='.2%')
        self.distribution_wid = ToggleButtons(description='Distribution',
                                              options=['ordered', 'random'],
                                              value=self.distribution)

        # Check if it's a volumetric mesh
        block = self
        while not isinstance(block, DataBlock):
            block = block._parent_block
        if len(block.mesh.tetrahedrons) != 0:
            self.mode_wid = ToggleButtons(description='Mode',
                                          options=['volume', 'surface'],
                                          value=self.mode)

            link((self, 'mode'), (self.mode_wid, 'value'))

        link((self, 'points_size'), (self.points_size_wid, 'value'))
        link((self, 'percentage_points'),
             (self.percentage_points_wid, 'value'))
        link((self, 'distribution'), (self.distribution_wid, 'value'))
Example #6
0
 def show(self, **kwargs):
     if not self.show_menu:
         if kwargs.get('type') == 'mousemove':
             self.coord = kwargs.get('coordinates')
             if self.show_flow:
                 self.io, flow = show_acc(self.label, self.coord, self.m, self.io, self.width, self.da)
                 self.label.value = f'lat/lon = {self.coord}, flow = {flow}'
             else:
                 self.label.value = f'lat/lon = {self.coord}'
                 pass
         elif 'width' in kwargs:
             self.width = kwargs.get('width')
             if self.coord and self.show_flow:
                 self.io, flow = show_acc(self.label, self.coord, self.m, self.io, self.width, self.da)
     if kwargs.get('type') == 'contextmenu':
         self.show_menu = True
         if self.show_flow:
             showHideFlow = 'Hide flow'
         else:
             showHideFlow = 'Show flow'
         if showHideFlow == 'Hide flow':
             self.s = ToggleButtons(options=[showHideFlow, 'Delineate watershed', 'Set marker', 'Close'], value=None)
         else:
             self.s = ToggleButtons(options=[showHideFlow, 'Set marker', 'Close'], value=None)
         self.s.observe(self.get_choice, names='value')
         self.p = Popup(location=self.coord, child=self.s, max_width=160, close_button=False, auto_close=True, close_on_escape_key=False)
         self.m.add_layer(self.p)
Example #7
0
    def _init_vectorfield_widgets(self):
        self.length_factor_wid = FloatText(description='Length factor',
                                           value=self.length_factor)
        self.width_wid = IntSlider(description='Width',
                                   min=1,
                                   max=10,
                                   value=self.width)
        self.percentage_vectors_wid = FloatSlider(
            description='Nb vectors',
            step=0.01,
            min=0.0,
            max=1.0,
            value=self.percentage_vectors,
            readout_format='.2%')
        self.distribution_wid = ToggleButtons(description='Distribution',
                                              options=['ordered', 'random'],
                                              value=self.distribution)
        self.mode_wid = ToggleButtons(description='Mode',
                                      options=['volume', 'surface'],
                                      value=self.mode)

        link((self, 'length_factor'), (self.length_factor_wid, 'value'))
        link((self, 'width'), (self.width_wid, 'value'))
        link((self, 'percentage_vectors'),
             (self.percentage_vectors_wid, 'value'))
        link((self, 'distribution'), (self.distribution_wid, 'value'))
        link((self, 'mode'), (self.mode_wid, 'value'))
Example #8
0
    def _init_vectorfield_widgets(self):
        self.length_factor_wid = FloatText(description='Length factor',
                                           value=self.length_factor)
        self.width_wid = IntSlider(description='Width',
                                   min=1,
                                   max=10,
                                   value=self.width)
        self.percentage_vectors_wid = FloatSlider(
            description='Nb vectors',
            step=0.01,
            min=0.0,
            max=1.0,
            value=self.percentage_vectors,
            readout_format='.2%')
        self.distribution_wid = ToggleButtons(description='Distribution',
                                              options=['ordered', 'random'],
                                              value=self.distribution)

        # Check if it's a volumetric mesh
        block = self
        while not isinstance(block, DataBlock):
            block = block._parent_block
        if len(block.mesh.tetrahedrons) != 0:
            self.mode_wid = ToggleButtons(description='Mode',
                                          options=['volume', 'surface'],
                                          value=self.mode)

            link((self, 'mode'), (self.mode_wid, 'value'))

        link((self, 'length_factor'), (self.length_factor_wid, 'value'))
        link((self, 'width'), (self.width_wid, 'value'))
        link((self, 'percentage_vectors'),
             (self.percentage_vectors_wid, 'value'))
        link((self, 'distribution'), (self.distribution_wid, 'value'))
Example #9
0
 def interact_plot_inversion(self, n_beta=81):
     interact(
         self.plot_inversion,
         mode=RadioButtons(
             description="mode", options=["Run", "Explore"], value="Run"
         ),
         mref=FloatSlider(
             min=-2, max=2, step=0.05, value=0.0, continuous_update=False
         ),
         percentage=FloatText(value=self.percentage),
         floor=FloatText(value=self.floor),
         beta_min=FloatText(value=1e-3),
         beta_max=FloatText(value=1e5),
         n_beta=IntText(value=n_beta, min=10, max=100),
         alpha_s=FloatText(value=1.0),
         alpha_x=FloatText(value=0),
         option=ToggleButtons(options=["misfit", "tikhonov"], value="tikhonov"),
         data_option=ToggleButtons(
             options=["obs/pred", "misfit"], value="obs/pred", description="data"
         ),
         scale=ToggleButtons(options=["linear", "log"], value="log"),
         i_beta=IntSlider(
             min=0, max=n_beta - 1, step=1, value=0, continuous_update=False
         ),
         chifact=FloatText(value=1.0),
     )
def ResCylLayer_app():
    app = widgetify(
        PLOT,
        survey_type=ToggleButtons(
            options=["Wenner", "Dipole-Dipole"],
            value="Wenner",
        ),
        a_spacing=FloatSlider(
            min=2,
            max=10.0,
            step=1.0,
            value=4.0,
            continuous_update=False,
            description="a",
        ),
        array_center=FloatSlider(
            min=-30.25,
            max=30.25,
            step=0.5,
            value=-10.25,
            continuous_update=False,
            description="array center",
        ),
        xc=FloatSlider(min=-30.0,
                       max=30.0,
                       step=1.0,
                       value=0.0,
                       continuous_update=False),
        zc=FloatSlider(min=-30.0,
                       max=-3.0,
                       step=0.5,
                       value=-10,
                       continuous_update=False),
        r=FloatSlider(min=1.0,
                      max=10.0,
                      step=0.5,
                      value=8.0,
                      continuous_update=False),
        rhohalf=FloatText(
            min=1e-8,
            max=1e8,
            value=500.0,
            continuous_update=False,
            description="$\\rho_{half}$",
        ),
        rhoTarget=FloatText(
            min=1e-8,
            max=1e8,
            value=50.0,
            continuous_update=False,
            description="$\\rho_{cyl}$",
        ),
        Field=ToggleButtons(
            options=["Model", "Potential", "E", "J"],
            value="Model",
        ),
        Scale=ToggleButtons(options=["Linear", "Log"], value="Log"),
    )
    return app
def plot_layer_potentials_app():
    def plot_layer_potentials_interact(survey, A, B, M, N, rho1, rho2, h,
                                       Plot):
        return plot_layer_potentials(survey, rho1, rho2, h, A, B, M, N, Plot)

    app = widgetify(
        plot_layer_potentials_interact,
        survey=ToggleButtons(
            options=[
                "Dipole-Dipole", "Dipole-Pole", "Pole-Dipole", "Pole-Pole"
            ],
            value="Dipole-Dipole",
        ),
        A=FloatSlider(min=-40.0,
                      max=40.0,
                      step=1.0,
                      value=-30.0,
                      continuous_update=False),
        B=FloatSlider(min=-40.0,
                      max=40.0,
                      step=1.0,
                      value=30.0,
                      continuous_update=False),
        M=FloatSlider(min=-40.0,
                      max=40.0,
                      step=1.0,
                      value=-10.0,
                      continuous_update=False),
        N=FloatSlider(min=-40.0,
                      max=40.0,
                      step=1.0,
                      value=10.0,
                      continuous_update=False),
        rho1=FloatText(
            min=rhomin,
            max=rhomax,
            value=500.0,
            continuous_update=False,
            description="$\\rho_1$",
        ),
        rho2=FloatText(
            min=rhomin,
            max=rhomax,
            value=500.0,
            continuous_update=False,
            description="$\\rho_2$",
        ),
        h=FloatSlider(min=0.0,
                      max=40.0,
                      step=1.0,
                      value=5.0,
                      continuous_update=False),
        Plot=ToggleButtons(options=["Model", "Potential", "E", "J"],
                           value="Model"),
    )
    return app
def valley_app():
    app = widgetify(
        PLOT,
        survey=ToggleButtons(
            options=[
                "Dipole-Dipole", "Dipole-Pole", "Pole-Dipole", "Pole-Pole"
            ],
            value="Dipole-Dipole",
        ),
        xc=FloatSlider(min=-1005.0, max=1000.0, step=10.0,
                       value=0.0),  # , continuous_update=False),
        zc=FloatSlider(min=-1000.0, max=1000.0, step=10.0,
                       value=250.0),  # , continuous_update=False),
        ellips_a=FloatSlider(min=10.0, max=4000.0, step=50.0,
                             value=1000.0),  # , continuous_update=False),
        ellips_b=FloatSlider(min=10.0, max=2000.0, step=50.0,
                             value=500.0),  # , continuous_update=False),
        rhohalf=FloatText(
            min=1e-8, max=1e8, value=1000.0, description="$\\rho_1$"
        ),  # , continuous_update=False, description='$\\rho_1$'),
        rholayer=FloatText(
            min=1e-8, max=1e8, value=100.0, description="$\\rho_2$"
        ),  # , continuous_update=False, description='$\\rho_2$'),
        rhoTarget=FloatText(
            min=1e-8, max=1e8, value=500.0, description="$\\rho_3$"
        ),  # , continuous_update=False, description='$\\rho_3$'),
        overburden_thick=FloatSlider(
            min=0.0,
            max=1000.0,
            step=10.0,
            value=200.0,
        ),  # , continuous_update=False),
        overburden_wide=fixed(2000.0),  # , continuous_update=False),
        target_thick=FloatSlider(min=0.0, max=1000.0, step=10.0,
                                 value=200.0),  # , continuous_update=False),
        target_wide=FloatSlider(min=0.0, max=1000.0, step=10.0,
                                value=200.0),  # , continuous_update=False),
        A=FloatSlider(min=-1010.0, max=1010.0, step=20.0,
                      value=-510.0),  # , continuous_update=False),
        B=FloatSlider(min=-1010.0, max=1010.0, step=20.0,
                      value=510.0),  # , continuous_update=False),
        M=FloatSlider(min=-1010.0, max=1010.0, step=20.0,
                      value=-210.0),  # , continuous_update=False),
        N=FloatSlider(min=-1010.0, max=1010.0, step=20.0,
                      value=210.0),  # , continuous_update=False),
        Field=ToggleButtons(
            options=["Model", "Potential", "E", "J", "Charge", "Sensitivity"],
            value="J"),
        whichprimary=ToggleButtons(options=["air", "overburden"],
                                   value="overburden"),
        Type=ToggleButtons(options=["Total", "Primary", "Secondary"],
                           value="Total"),
        Scale=ToggleButtons(options=["Linear", "Log"], value="Log"),
    )
    return app
Example #13
0
def ThreeLayer_app():
    app = widgetify(
        PLOT,
        survey=ToggleButtons(
            options=["Wenner", "Schlumberger"],
            value="Wenner",
        ),
        AB2=FloatText(value=20,
                      min=0.001,
                      continuous_update=False,
                      description="$\\frac{AB}{2}$"),
        h0=FloatText(
            min=0.0,
            value=10.0,
            continuous_update=False,
            description="$h_1$",
        ),
        h1=FloatText(
            min=0.0,
            value=10,
            continuous_update=False,
            description="$h_2$",
        ),
        rho0=FloatText(
            min=1e-8,
            max=1e8,
            value=5000.0,
            continuous_update=False,
            description="$\\rho_{1}$",
        ),
        rho1=FloatText(
            min=1e-8,
            max=1e8,
            value=500.0,
            continuous_update=False,
            description="$\\rho_{2}$",
        ),
        rho2=FloatText(
            min=1e-8,
            max=1e8,
            value=5000.0,
            continuous_update=False,
            description="$\\rho_{3}$",
        ),
        Field=ToggleButtons(
            options=["Model", "Potential", "E", "J", "Charge"],
            value="Model",
        ),
        Type=ToggleButtons(options=["Total", "Primary", "Secondary"],
                           value="Total"),
        Scale=ToggleButtons(options=["Linear", "Log"], value="Log"),
    )
    return app
Example #14
0
def valley_app():
    app = widgetify(
        PLOT,
        manual=True,
        survey=ToggleButtons(options=[
            'Dipole-Dipole', 'Dipole-Pole', 'Pole-Dipole', 'Pole-Pole'
        ],
                             value='Dipole-Dipole'),
        xc=FloatSlider(min=-1005., max=1000., step=10.,
                       value=0.),  #, continuous_update=False),
        zc=FloatSlider(min=-1000., max=1000., step=10.,
                       value=250.),  #, continuous_update=False),
        ellips_a=FloatSlider(min=10., max=10000., step=100.,
                             value=1000.),  #, continuous_update=False),
        ellips_b=FloatSlider(min=10., max=10000., step=100.,
                             value=500.),  #, continuous_update=False),
        rhohalf=FloatText(
            min=1e-8, max=1e8, value=1000., description='$\\rho_1$'
        ),  #, continuous_update=False, description='$\\rho_1$'),
        rholayer=FloatText(
            min=1e-8, max=1e8, value=100., description='$\\rho_2$'
        ),  #, continuous_update=False, description='$\\rho_2$'),
        rhoTarget=FloatText(
            min=1e-8, max=1e8, value=500., description='$\\rho_3$'
        ),  #, continuous_update=False, description='$\\rho_3$'),
        overburden_thick=FloatSlider(min=0., max=1000., step=10.,
                                     value=200.),  #, continuous_update=False),
        overburden_wide=fixed(2000.),  #, continuous_update=False),
        target_thick=FloatSlider(min=0., max=1000., step=10.,
                                 value=200.),  #, continuous_update=False),
        target_wide=FloatSlider(min=0., max=1000., step=10.,
                                value=200.),  #, continuous_update=False),
        A=FloatSlider(min=-1010., max=1010., step=20.,
                      value=-510.),  #, continuous_update=False),
        B=FloatSlider(min=-1010., max=1010., step=20.,
                      value=510.),  #, continuous_update=False),
        M=FloatSlider(min=-1010., max=1010., step=20.,
                      value=-210.),  #, continuous_update=False),
        N=FloatSlider(min=-1010., max=1010., step=20.,
                      value=210.),  #, continuous_update=False),
        Field=ToggleButtons(
            options=['Model', 'Potential', 'E', 'J', 'Charge', 'Sensitivity'],
            value='J'),
        whichprimary=ToggleButtons(options=['air', 'overburden'],
                                   value='overburden'),
        Type=ToggleButtons(options=['Total', 'Primary', 'Secondary'],
                           value='Total'),
        Scale=ToggleButtons(options=['Linear', 'Log'], value='Log'))
    return app
Example #15
0
def cylinder_app():
    app = widgetify(
        plot_Surface_Potentials,
        survey=ToggleButtons(
            options=["Dipole-Dipole", "Dipole-Pole", "Pole-Dipole", "Pole-Pole"],
            value="Dipole-Dipole",
        ),
        rhocyl=FloatText(
            min=1e-8,
            max=1e8,
            value=500.0,
            continuous_update=False,
            description="$\\rho_2$",
        ),
        rhohalf=FloatText(
            min=1e-8,
            max=1e8,
            value=500.0,
            continuous_update=False,
            description="$\\rho_1$",
        ),
        r=FloatSlider(min=1.0, max=20.0, step=1.0, value=10.0, continuous_update=False),
        xc=FloatSlider(
            min=-20.0, max=20.0, step=1.0, value=0.0, continuous_update=False
        ),
        zc=FloatSlider(
            min=-20.0, max=0.0, step=1.0, value=-30.0, continuous_update=False
        ),
        A=FloatSlider(
            min=-30.25, max=30.25, step=0.5, value=-30.25, continuous_update=False
        ),
        B=FloatSlider(
            min=-30.25, max=30.25, step=0.5, value=30.25, continuous_update=False
        ),
        M=FloatSlider(
            min=-30.25, max=30.25, step=0.5, value=-10.25, continuous_update=False
        ),
        N=FloatSlider(
            min=-30.25, max=30.25, step=0.5, value=10.25, continuous_update=False
        ),
        Field=ToggleButtons(
            options=["Model", "Potential", "E", "J", "Charge", "Sensitivity"],
            value="Model",
        ),
        Type=ToggleButtons(options=["Total", "Primary", "Secondary"], value="Total"),
        Scale=ToggleButtons(options=["Linear", "Log"], value="Linear"),
    )
    return app
Example #16
0
def interactive_responseFct():
	app = interactive(plot_ResponseFct,h_boom = FloatSlider(min=h_boom, max = h_boom_max, step = 0.1, value = h_boom),
                  h_1 = FloatSlider(min=0., max=zmax,value=0.1, step = 0.1),
                  sigma_1 = FloatSlider(min=sigmin, max = sigmax,value=sigmin, step = sigmin),
                  sigma_2 = FloatSlider(min=sigmin, max = sigmax,value=sigmin, step = sigmin),
                  orientation=ToggleButtons(options=['vertical','horizontal']))
	return app
Example #17
0
 def interact_plot_G(self):
     Q = interact(
         self.plot_G,
         N=IntSlider(min=1,
                     max=100,
                     step=1,
                     value=20,
                     continuous_update=False),
         M=IntSlider(min=1,
                     max=100,
                     step=1,
                     value=100,
                     continuous_update=False),
         p=FloatSlider(min=-1,
                       max=0,
                       step=0.05,
                       value=-0.15,
                       continuous_update=False),
         q=FloatSlider(min=0,
                       max=1,
                       step=0.05,
                       value=0.25,
                       continuous_update=False),
         j1=FloatText(value=1.0),
         jn=FloatText(value=19.0),
         scale=ToggleButtons(options=["linear", "log"], value="log"),
         fixed=False,
         ymin=FloatText(value=-0.005),
         ymax=FloatText(value=0.011),
     )
     return Q
Example #18
0
    def _init_grid_widgets(self):
        self.axis_wid = ToggleButtons(
            description='Axis',
            options=['x', 'y', 'z'],
            value=self.axis
        )

        self.color_wid = ColorPicker(
            concise=True,
            description='Color',
            value=self.color
        )

        self.step_wid = FloatText(
            description='Step',
            value=self.step
        )

        self.width_wid = FloatText(
            description='Width',
            value=self.width
        )

        link((self.axis_wid, 'value'), (self, 'axis'))
        link((self.color_wid, 'value'), (self, 'color'))
        link((self.step_wid, 'value'), (self, 'step'))
        link((self.width_wid, 'value'), (self, 'width'))
    def interactive_stream(self, Tsec=2, numChan=1):
        """
        Stream audio with start and stop radio buttons
        
        Interactive stream is designed for streaming audio through this object using
        a callback function. This stream is threaded, so it can be used with ipywidgets.
        Click on the "Start Streaming" button to start streaming and click on "Stop Streaming"
        button to stop streaming.

        Parameters
        ----------

        Tsec : stream time in seconds if Tsec > 0. If Tsec = 0, then stream goes to infinite 
        mode. When in infinite mode, the "Stop Streaming" radio button or Tsec.stop() can be 
        used to stop the stream.
        
        numChan : number of channels. Use 1 for mono and 2 for stereo.
        
        
        """
        self.Tsec = Tsec
        self.numChan = numChan
        self.interactiveFG = 1
        self.play = interactive(
            self.interaction,
            Stream=ToggleButtons(options=['Start Streaming', 'Stop Streaming'],
                                 description=' ',
                                 value='Stop Streaming'))
        display(self.play)
Example #20
0
 def interact_plot_inversion(self, maxIter=30):
     interact(
         self.plot_inversion,
         mode=RadioButtons(
             description="mode", options=["Run", "Explore"], value="Run"
         ),
         maxIter=IntText(value=maxIter),
         m0=FloatSlider(
             min=-2, max=2, step=0.05, value=0.0, continuous_update=False
         ),
         mref=FloatSlider(
             min=-2, max=2, step=0.05, value=0.0, continuous_update=False
         ),
         percentage=FloatText(value=self.percentage),
         floor=FloatText(value=self.floor),
         chifact=FloatText(value=1.0),
         beta0_ratio=FloatText(value=100),
         coolingFactor=FloatSlider(
             min=0.1, max=10, step=1, value=2, continuous_update=False
         ),
         coolingRate=IntSlider(
             min=1, max=10, step=1, value=1, continuous_update=False
         ),
         alpha_s=FloatText(value=1e-10),
         alpha_x=FloatText(value=0),
         target=False,
         option=ToggleButtons(options=["misfit", "tikhonov"], value="misfit"),
         i_iteration=IntSlider(
             min=0, max=maxIter, step=1, value=0, continuous_update=False
         ),
     )
Example #21
0
    def __init__(self, layer_state):

        self.state = layer_state

        self.widget_visible = Checkbox(description='visible', value=self.state.visible)
        link((self.state, 'visible'), (self.widget_visible, 'value'))

        self.widget_marker = ToggleButtons(options=['sphere', 'box', 'diamond'])
        link((self.state, 'geo'), (self.widget_marker, 'value'))

        self.widget_size = Size(state=self.state)
        self.widget_color = Color(state=self.state)

        # vector/quivers
        self.widget_vector = Checkbox(description='show vectors', value=self.state.vector_visible)

        self.widget_vector_x = LinkedDropdown(self.state, 'vx_att', label='vx')
        self.widget_vector_y = LinkedDropdown(self.state, 'vy_att', label='vy')
        self.widget_vector_z = LinkedDropdown(self.state, 'vz_att', label='vz')

        link((self.state, 'vector_visible'), (self.widget_vector, 'value'))
        dlink((self.widget_vector, 'value'), (self.widget_vector_x.layout, 'display'),
              lambda value: None if value else 'none')
        dlink((self.widget_vector, 'value'), (self.widget_vector_y.layout, 'display'),
              lambda value: None if value else 'none')
        dlink((self.widget_vector, 'value'), (self.widget_vector_z.layout, 'display'),
              lambda value: None if value else 'none')

        link((self.state, 'vector_visible'), (self.widget_vector, 'value'))

        super().__init__([self.widget_visible, self.widget_marker,
                         self.widget_size, self.widget_color,
                         self.widget_vector, self.widget_vector_x,
                         self.widget_vector_y, self.widget_vector_z])
def DC2DPseudoWidget():
    return interactive(
        DC2DPseudoWidgetWrapper,
        rhohalf=FloatText(
            min=10,
            max=1000,
            value=1000,
            continuous_update=False,
            description="$\\rho_1$",
        ),
        rhosph=FloatText(
            min=10,
            max=1000,
            value=1000,
            continuous_update=False,
            description="$\\rho_2$",
        ),
        xc=FloatText(min=-40, max=40, step=1, value=0,
                     continuous_update=False),
        zc=FloatText(min=-20,
                     max=0,
                     step=1,
                     value=-10,
                     continuous_update=False),
        r=FloatText(min=0, max=15, step=0.5, value=5, continuous_update=False),
        surveyType=ToggleButtons(
            options=["PolePole", "PoleDipole", "DipolePole", "DipoleDipole"],
            value="DipoleDipole",
        ),
    )
Example #23
0
def plate_app():
    app = widgetify(PLOT, manual = True,
        survey = ToggleButtons(options =['Dipole-Dipole','Dipole-Pole','Pole-Dipole','Pole-Pole'],value='Dipole-Dipole'),
        dx = FloatSlider(min=1.,max=1000.,step=1.,value=10., continuous_update=False),
        dz = FloatSlider(min=1.,max=200.,step=1.,value=10., continuous_update=False),
        xc = FloatSlider(min=-30.,max=30.,step=1.,value=0., continuous_update=False),
        zc = FloatSlider(min=-30.,max=0.,step=1.,value=-10., continuous_update=False),
        rotAng = FloatSlider(min=-90.,max=90.,step=1.,value=0., continuous_update=False,description='$\\theta$'),
        rhoplate = FloatText(min=1e-8,max=1e8, value = 500., continuous_update=False,description='$\\rho_2$'),
        rhohalf  = FloatText(min=1e-8,max=1e8, value = 500., continuous_update=False,description='$\\rho_1$'),
        A = FloatSlider(min=-30.25,max=30.25,step=0.5,value=-30.25, continuous_update=False),
        B = FloatSlider(min=-30.25,max=30.25,step=0.5,value=30.25, continuous_update=False),
        M = FloatSlider(min=-30.25,max=30.25,step=0.5,value=-10.25, continuous_update=False),
        N = FloatSlider(min=-30.25,max=30.25,step=0.5,value=10.25, continuous_update=False),
        Field = ToggleButtons(options =['Model','Potential','E','J','Charge','Sensitivity'],value='Model'),
        Type = ToggleButtons(options =['Total','Primary','Secondary'],value='Total'),
        Scale = ToggleButtons(options =['Linear','Log'],value='Linear'),
        )
    return app
Example #24
0
def rt_adt_demo1():

    demo = Demo(input_device_index=0,
                output_device_index=0,
                fs=fs,
                frame_length=Msize)

    # Note, need named args
    runstop_widget = interactive(demo.runstop,
                                 command=ToggleButtons(options=['Run', 'Stop'],
                                                       description=' ',
                                                       value='Stop'))

    alpha_widget = interactive(demo.alpha_set,
                               alpha=FloatSlider(description='alpha',
                                                 continuous_update=True,
                                                 value=0.2,
                                                 min=0.0,
                                                 max=2.0,
                                                 step=0.01))

    M_widget = interactive(demo.M_set,
                           M=IntSlider(description='M',
                                       continuous_update=True,
                                       value=1440,
                                       min=0,
                                       max=Mmax,
                                       step=100))

    depth_widget = interactive(demo.depth_set,
                               depth=IntSlider(description='depth',
                                               continuous_update=True,
                                               value=1440,
                                               min=0,
                                               max=depthmax,
                                               step=100))

    rate_widget = interactive(demo.rate_set,
                              rate=FloatSlider(description='rate',
                                               continuous_update=True,
                                               value=4,
                                               min=0,
                                               max=ratemax,
                                               step=0.1))

    enable_widget = interactive(demo.enable_set,
                                enable=Checkbox(description='enable',
                                                value=True))

    display(M_widget)
    display(alpha_widget)
    display(depth_widget)
    display(rate_widget)
    display(enable_widget)
    display(runstop_widget)
Example #25
0
    def enable(self, interactions):
        if isinstance(interactions, str):
            interactions = [interactions]

        for inter in interactions:
            if inter in self.interactions:
                self.active[inter] = self.interactions[inter]

        self.selection_interacts = ToggleButtons(options=self.active)

        link((self.selection_interacts, 'value'), (self.fig, 'interaction'))

        self.vbox = VBox([self.fig, self.deb, self.deb2, self.selection_interacts], align_self='stretch')
Example #26
0
def feature3_picker():
    '''
    Return a string of feature name from users' manual pick
    '''
    return ToggleButtons(options={'Deaths': 'kills',
                                  'Wounds': 'wounds',
                                  'Casualties': 'casualties'
                                  },
                         value='casualties',
                         description='Feature',
                         disabled=False,
                         button_style='',  # 'success', 'info', 'warning', 'danger' or ''
                         tooltip='Description')
Example #27
0
def FieldsApp():
    Q1 = interactive(
        csem_fields_app,
        rho0=FloatText(value=1e8, description="$\\rho_{0} \ (\Omega m)$"),
        rho1=FloatText(value=0.3, description="$\\rho_{1} \ (\Omega m)$"),
        rho2=FloatText(value=1.0, description="$\\rho_{2} \ (\Omega m)$"),
        rho3=FloatText(value=100.0, description="$\\rho_{3} \ (\Omega m)$"),
        rho4=FloatText(value=1.0, description="$\\rho_{4} \ (\Omega m)$"),
        zsrc=FloatText(value=-950.0, description="src height (m)"),
        rv_rh=FloatText(value=1.0, description="$\\rho_{2 \ v} / \\rho_{2 \ h}$"),
        dz1=FloatText(value=1000.0, description="dz1 (m)"),
        dz2=FloatText(value=1000.0, description="dz2 (m)"),
        dz3=FloatText(value=200.0, description="dz3 (m)"),
        frequency=FloatText(value=0.5, description="f (Hz)"),
        Field=ToggleButtons(options=["E", "H", "P"], value="E"),
        Plane=ToggleButtons(options=["XZ", "YZ"], value="XZ"),
        Fixed=widgets.widget_bool.Checkbox(value=False),
        vmin=FloatText(value=None),
        vmax=FloatText(value=None),
        __manual=True,
    )
    return Q1
Example #28
0
def plot_Layer_Potentials_app():
    plot_Layer_Potentials_interact = lambda rho1,rho2,h,A,B,M,N,Plot: plot_Layer_Potentials(rho1,rho2,h,A,B,M,N,Plot)
    app = interact(plot_Layer_Potentials_interact,
                rho1 = FloatSlider(min=rhomin,max=rhomax,step=10., value = 500.),
                rho2 = FloatSlider(min=rhomin,max=rhomax,step=10., value = 500.),
                h = FloatSlider(min=0.,max=40.,step=1.,value=5.),
                A = FloatSlider(min=-40.,max=40.,step=1.,value=-30.),
                B = FloatSlider(min=-40.,max=40.,step=1.,value=30.),
                M = FloatSlider(min=-40.,max=40.,step=1.,value=-10.),
                N = FloatSlider(min=-40.,max=40.,step=1.,value=10.),
                Plot = ToggleButtons(options =['Model','Potential','E','J',],value='Model'),
                )
    return app
Example #29
0
def interactive_widget(data_matrix, target_dict, true_target):
    """interactive_widget."""
    w = interactive(
        _display_graph_embedder,
        data_matrix=fixed(data_matrix),
        target_dict=fixed(target_dict),
        true_target=fixed(true_target),
        mode=ToggleButtons(
            options=['default', 'links', 'hull', 'hull_link'],
            description='Display:',
            disabled=False,
            button_style='',  # 'success', 'info', 'warning', 'danger' or ''
            tooltip='default'),
        bias=FloatSlider(min=0.0,
                         max=40.0,
                         step=0.1,
                         value=1.0,
                         continuous_update=False),
        outliers=IntSlider(min=0,
                           max=20,
                           step=1,
                           value=0,
                           continuous_update=False),
        size=IntSlider(min=7,
                       max=20,
                       step=1,
                       value=12,
                       continuous_update=False),
        k=IntSlider(min=1, max=10, step=1, value=5, continuous_update=False),
        shift=IntSlider(min=1,
                        max=10,
                        step=1,
                        value=1,
                        continuous_update=False),
        horizon=IntSlider(min=0,
                          max=50,
                          step=1,
                          value=10,
                          continuous_update=False),
        frac=FloatSlider(min=0.01,
                         max=1.0,
                         step=0.01,
                         value=1.0,
                         continuous_update=False))
    int_w = VBox([
        HBox((w.children[0], )),
        HBox(w.children[1:4]),
        HBox(w.children[4:7]),
        HBox(w.children[7:])
    ])
    return int_w
Example #30
0
    def make_all_buttons() -> (Dict[str, ToggleButtons], Button):
        """Build all necessary buttons.

        Return
        ------
        buttons : (dict of {str: ToggleButtons}, Button)
            label buttons (for number, color, shape and shading) and submit button

        """
        number_button = ToggleButtons(
            options=[('1', Number.ONE), ('2', Number.TWO),
                     ('3', Number.THREE)],
            description=ButtonName.NUMBER.value,
        )
        color_button = ToggleButtons(
            options=[('red', Color.RED), ('green', Color.GREEN),
                     ('purple', Color.PURPLE)],
            description=ButtonName.COLOR.value,
        )
        shape_button = ToggleButtons(
            options=[('oval', Shape.OVAL), ('diamond', Shape.DIAMOND),
                     ('squiggle', Shape.SQUIGGLE)],
            description=ButtonName.SHAPE.value,
        )
        shading_button = ToggleButtons(
            options=[('open', Shading.OPEN), ('striped', Shading.STRIPED),
                     ('solid', Shading.SOLID)],
            description=ButtonName.SHADING.value,
        )
        submit_button = Button(description=ButtonName.SUBMIT.value)

        label_buttons = {
            number_button.description: number_button,
            color_button.description: color_button,
            shape_button.description: shape_button,
            shading_button.description: shading_button,
        }
        return label_buttons, submit_button
Example #31
0
def generatePara(templateFile):
    items = []
    with open(templateFile, 'r') as fd:
        for line in fd.readlines():
            g = re.search(r'[\w:]*\s*.*=*\s*\${(.*)}',line)
            if g:
                label_value = ''
                isTB = False
                for match in re.findall(r'(\w+)=("[^"]*"|\'[^\']*|[^,\n]*)', g.group(1)):
                    if match[0] == 'label':
                        lbs = match[1].split('/')
                        label_value = lbs[0]
                        if len(lbs) == 2:
                            isTB = True
                    if match[0] == 'option':
                        ops = match[1].split('/')
                        # if the first element of options is 'CO', remove it's label name.
                        if ops[0] == 'CO':
                            label = Label(layout = Layout(width = "150px"))
                            if not isTB:
                                togBtns = ToggleButtons(options = ops[1:])
                            else:
                                togBtns = ToggleButton(description = ops[1], value = True)
                        else:
                            label = Label(value = label_value, layout = Layout(width = "150px"))
                            if not isTB:
                                togBtns = ToggleButtons(options = ops)
                            else:
                                togBtns = ToggleButton(description = ops[0], value = True)
                        box = Box([label, togBtns], layout = Layout(width = '100%', justify_content = 'flex-start'))
                        items.append(box)
                    if match[0] == 'value':
                        label = Label(value = label_value, layout = Layout(width = "150px"))
                        text = Text(value = match[1])
                        box = Box([label, text], layout = Layout(width = '100%', justify_content = 'flex-start'))
                        items.append(box)
    fd.close()
    return items
Example #32
0
class Flow(object):
    def __init__(self, m, label):
        self.m = m
        self.label = label
        self.width = 0.1
        self.coord = None
        self.io = None
        self.s = None
        self.p = None
        self.show_flow = False
        self.show_menu = False
        self.da = xr.open_rasterio('../data/hydrosheds/acc.vrt')
        self.marker = None
    def show(self, **kwargs):
        if not self.show_menu:
            if kwargs.get('type') == 'mousemove':
                self.coord = kwargs.get('coordinates')
                if self.show_flow:
                    self.io, flow = show_acc(self.label, self.coord, self.m, self.io, self.width, self.da)
                    self.label.value = f'lat/lon = {self.coord}, flow = {flow}'
                else:
                    self.label.value = f'lat/lon = {self.coord}'
                    pass
            elif 'width' in kwargs:
                self.width = kwargs.get('width')
                if self.coord and self.show_flow:
                    self.io, flow = show_acc(self.label, self.coord, self.m, self.io, self.width, self.da)
        if kwargs.get('type') == 'contextmenu':
            self.show_menu = True
            if self.show_flow:
                showHideFlow = 'Hide flow'
            else:
                showHideFlow = 'Show flow'
            if showHideFlow == 'Hide flow':
                self.s = ToggleButtons(options=[showHideFlow, 'Delineate watershed', 'Set marker', 'Close'], value=None)
            else:
                self.s = ToggleButtons(options=[showHideFlow, 'Set marker', 'Close'], value=None)
            self.s.observe(self.get_choice, names='value')
            self.p = Popup(location=self.coord, child=self.s, max_width=160, close_button=False, auto_close=True, close_on_escape_key=False)
            self.m.add_layer(self.p)
    def get_choice(self, x):
        self.show_menu = False
        self.s.close()
        self.m.remove_layer(self.p)
        self.p = None
        choice = x['new']
        if choice == 'Show flow':
            self.show_flow = True
        elif choice == 'Hide flow':
            self.show_flow = False
            self.m.remove_layer(self.io)
            self.io = None
        elif choice == 'Delineate watershed':
            self.show_flow = False
            self.m.remove_layer(self.io)
            self.io = None
            self.label.value = 'Delineating watershed, please wait...'
            delineate(*self.coord)
            self.label.value = 'Watershed delineated'
            ds_mask = xr.open_zarr('tmp/ds_mask/0').compute()
            mask = ds_mask['mask'].values
            polygon = get_polygon(mask, ds_mask.lat.values[0]+0.5/1200, ds_mask.lon.values[0]-0.5/1200)
            self.m.add_layer(polygon)
            self.label.value = 'Watershed displayed'
        elif choice == 'Set marker':
            if self.marker is not None:
                self.m.remove_layer(self.marker)
            self.marker = Marker(location=self.coord)
            self.m.add_layer(self.marker)
        elif choice == 'Close':
            pass