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
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']))
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)
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
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'))
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 _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'))
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'))
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
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
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
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
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
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
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)
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 ), )
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", ), )
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
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)
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')
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')
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
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
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
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
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
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