def createAdjustMethodSelector(self, start_position): # define widget regtypes = self.node.getAdjustMethods() self.widgets['adjust method'] = Choice(self, -1, choices=regtypes) # make sizer sz = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Adjust exposure dose by changing') sz.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['adjust method'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) # add to main total_length = (1, 1) self.szsettings.Add(sz, start_position, total_length, wx.ALIGN_CENTER) return start_position[0] + total_length[0], start_position[ 1] + total_length[1]
def createTemplateCorrelationChoice(self, sz, start_position): # define widget self.widgets['template type'] = Choice(self, -1, choices=self.node.cortypes) # make sizer szcor = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Use') szcor.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szcor.Add(self.widgets['template type'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'correlation') szcor.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) # add to main total_length = (1, 2) return self.addToSizer(sz, szcor, start_position, total_length)
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sb = wx.StaticBox(self, -1, 'Low Pass Filter (Phase Correlation)') sbszlpf = wx.StaticBoxSizer(sb, wx.VERTICAL) self.widgets['template lpf'] = {} self.widgets['template lpf']['sigma'] = FloatEntry(self, -1, min=0.0, chars=4) szlpf = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Sigma:') szlpf.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szlpf.Add(self.widgets['template lpf']['sigma'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE|wx.ALIGN_RIGHT) szlpf.AddGrowableCol(1) sbszlpf.Add(szlpf, 1, wx.EXPAND|wx.ALL, 5) sb = wx.StaticBox(self, -1, 'Template Correlation') sbsztemplate = wx.StaticBoxSizer(sb, wx.VERTICAL) self.widgets['template rings'] = leginon.gui.wx.Rings.Panel(self) self.widgets['template type'] = Choice(self, -1, choices=self.node.cortypes) szcor = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Use') szcor.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szcor.Add(self.widgets['template type'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'correlation') szcor.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) sztemplate = wx.GridBagSizer(5, 5) sztemplate.Add(szcor, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sztemplate.Add(self.widgets['template rings'], (1, 0), (1, 1), wx.ALIGN_CENTER|wx.FIXED_MINSIZE) sbsztemplate.Add(sztemplate, 1, wx.EXPAND|wx.ALL, 5) self.btest = wx.Button(self, -1, 'Test') szbutton = wx.GridBagSizer(5, 5) szbutton.Add(self.btest, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT) szbutton.AddGrowableCol(0) self.Bind(wx.EVT_BUTTON, self.onTestButton, self.btest) return [sbsztemplate, sbszlpf, szbutton]
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) szcor = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Use') szcor.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['correlation type'] = Choice(self, -1, choices=self.node.cortypes) szcor.Add(self.widgets['correlation type'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'correlation') szcor.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Correlation Low Pass') self.widgets['correlation lpf'] = FloatEntry(self, -1, min=0.0, chars=4) szcor.Add(label, (1, 0), (1, 1)) szcor.Add(self.widgets['correlation lpf'], (1, 1), (1, 1)) self.widgets['rotate'] = wx.CheckBox(self, -1, 'Rotate') szcor.Add(self.widgets['rotate'], (2, 0), (1, 1)) label = wx.StaticText(self, -1, 'Angle Increment') self.widgets['angle increment'] = FloatEntry(self, -1, min=0.0, chars=4) szcor.Add(label, (3, 0), (1, 1)) szcor.Add(self.widgets['angle increment'], (3, 1), (1, 1)) label = wx.StaticText(self, -1, 'SNR Threshold') self.widgets['snr threshold'] = FloatEntry(self, -1, min=0.0, chars=4) szcor.Add(label, (4, 0), (1, 1)) szcor.Add(self.widgets['snr threshold'], (4, 1), (1, 1)) self.bcor = wx.Button(self, -1, 'Correlate') szbutton = wx.GridBagSizer(5, 5) szbutton.Add(self.bcor, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_LEFT) self.Bind(wx.EVT_BUTTON, self.onCorrelate, self.bcor) return [szcor, szbutton]
def addBasicGonModelerSettings(self): sb = wx.StaticBox(self, -1, 'Measurement') sbszmeasure = wx.StaticBoxSizer(sb, wx.VERTICAL) sb = wx.StaticBox(self, -1, 'Modeling') sbszmodel = wx.StaticBoxSizer(sb, wx.VERTICAL) self.widgets['measure axis'] = Choice(self, -1, choices=self.node.axes) self.widgets['measure points'] = IntEntry(self, -1, min=2, chars=5) self.widgets['measure interval'] = FloatEntry(self, -1, chars=9) self.widgets['model mag only'] = wx.CheckBox( self, -1, 'Scale and Rotation Adjustment Only') self.widgets['model terms'] = IntEntry(self, -1, chars=2) szmeasure = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Axis:') szmeasure.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szmeasure.Add(self.widgets['measure axis'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Points:') szmeasure.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szmeasure.Add( self.widgets['measure points'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'Interval') szmeasure.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szmeasure.Add( self.widgets['measure interval'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.FIXED_MINSIZE) sbszmeasure.Add(szmeasure, 1, wx.EXPAND | wx.ALL, 5) szmodel = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Terms:') szmodel.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szmodel.Add( self.widgets['model terms'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.FIXED_MINSIZE) szmodel.Add(self.widgets['model mag only'], (1, 0), (1, 2), wx.ALIGN_CENTER) szmodel.AddGrowableCol(1) sbszmodel.Add(szmodel, 1, wx.EXPAND | wx.ALL, 5) return [sbszmeasure, sbszmodel]
def addSettings(self): self.widgets['correlation type'] = Choice(self, -1, choices=self.node.cortypes) self.widgets['override preset'] = wx.CheckBox(self, -1, 'Override Preset') self.widgets['instruments'] = leginon.gui.wx.Instrument.SelectionPanel( self) self.panel.setInstrumentSelection(self.widgets['instruments']) self.widgets['camera settings'] = leginon.gui.wx.Camera.CameraPanel( self) self.widgets['camera settings'].setGeometryLimits({ 'size': self.node.instrument.camerasize, 'binnings': self.node.instrument.camerabinnings, 'binmethod': self.node.instrument.camerabinmethod }) szcor = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Use') szcor.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szcor.Add(self.widgets['correlation type'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'correlation') szcor.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz = wx.GridBagSizer(5, 5) sz.Add(szcor, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['override preset'], (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['instruments'], (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['camera settings'], (0, 1), (3, 1), wx.ALIGN_CENTER | wx.EXPAND) sz.AddGrowableRow(2) sz.AddGrowableCol(0) sz.AddGrowableCol(1) return sz
def onNodeInitialized(self): leginon.gui.wx.Instrument.SelectionMixin.onNodeInitialized(self) self.locationsdialog = StageLocationsDialog(self, self.node) movetypes = self.node.calclients.keys() self.cmovetype = Choice(self.toolbar, -1, choices=movetypes) self.cmovetype.SetStringSelection(self.node.settings['move type']) ## make sure node setting is a value that is in the choice list self.node.settings['move type'] = self.cmovetype.GetStringSelection() self.cmovetype.SetToolTip(wx.ToolTip('Navigion Parameter')) self.toolbar.InsertControl(2, self.cmovetype) self.toolbar.Bind(wx.EVT_TOOL, self.onSettingsTool, id=leginon.gui.wx.ToolBar.ID_SETTINGS) self.toolbar.Bind(wx.EVT_TOOL, self.onAcquireTool, id=leginon.gui.wx.ToolBar.ID_ACQUIRE) self.toolbar.Bind(wx.EVT_TOOL, self.onStageLocationsTool, id=leginon.gui.wx.ToolBar.ID_STAGE_LOCATIONS) self.toolbar.Bind(wx.EVT_TOOL, self.onReproTest, id=leginon.gui.wx.ToolBar.ID_MEASURE) self.toolbar.Bind(wx.EVT_TOOL, self.onResetXY, id=leginon.gui.wx.ToolBar.ID_RESET_XY) self.toolbar.Bind(wx.EVT_TOOL, self.onResetZ, id=leginon.gui.wx.ToolBar.ID_RESET_Z) self.toolbar.Bind(wx.EVT_TOOL, self.onResetAlpha, id=leginon.gui.wx.ToolBar.ID_RESET_ALPHA) self.cmovetype.Bind(wx.EVT_CHOICE, self.onMoveTypeChoice) self.Bind(leginon.gui.wx.ImagePanelTools.EVT_IMAGE_CLICKED, self.onImageClicked, self.imagepanel) self.test_dialog = ReproTestDialog(self) self.Bind(EVT_TEST, self.onReproTest, self)
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sb = wx.StaticBox(self, -1, 'Image Correction') sbsz = wx.StaticBoxSizer(sb, wx.VERTICAL) #sb = wx.StaticBox(self, -1, 'Clipping') #sbszclip = wx.StaticBoxSizer(sb, wx.VERTICAL) sb = wx.StaticBox(self, -1, 'Reference Creation') sbszref = wx.StaticBoxSizer(sb, wx.VERTICAL) self.widgets['instruments'] = leginon.gui.wx.Instrument.SelectionPanel( self) self.panel.setInstrumentSelection(self.widgets['instruments']) self.widgets['n average'] = IntEntry(self, -1, min=1, max=99, chars=2) self.widgets['combine'] = Choice(self, -1, choices=['median', 'average']) self.widgets['store series'] = wx.CheckBox(self, -1, 'Save all images') self.widgets['camera settings'] = leginon.gui.wx.Camera.CameraPanel( self) self.widgets['camera settings'].setGeometryLimits({ 'size': self.node.instrument.camerasize, 'binnings': self.node.instrument.camerabinnings, 'binmethod': self.node.instrument.camerabinmethod }) #self.widgets['clip min'] = FloatEntry(self, -1, chars=6) #self.widgets['clip max'] = FloatEntry(self, -1, chars=6) ''' szclip = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Clip min:') szclip.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szclip.Add(self.widgets['clip min'], (0, 1), (1, 1), wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'Clip max:') szclip.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szclip.Add(self.widgets['clip max'], (1, 1), (1, 1), wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE) szclip.AddGrowableCol(1) sbszclip.Add(szclip, 1, wx.ALIGN_CENTER|wx.EXPAND|wx.ALL, 3) ''' szref = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Images to combine:') szref.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szref.Add(self.widgets['n average'], (0, 1), (1, 1), wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'Combine method:') szref.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szref.Add(self.widgets['combine'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT) szref.Add(self.widgets['store series'], (2, 0), (1, 2)) sbszref.Add(szref, 1, wx.ALIGN_CENTER | wx.EXPAND | wx.ALL, 3) sz = wx.GridBagSizer(5, 10) sz.Add(self.widgets['instruments'], (0, 0), (1, 1), wx.ALIGN_CENTER) sz.Add(self.widgets['camera settings'], (1, 0), (2, 1), wx.ALIGN_CENTER | wx.EXPAND) sz.Add(sbszref, (0, 1), (1, 1), wx.EXPAND) #sz.Add(sbszclip, (1, 1), (1, 1), wx.EXPAND) sbsz.Add(sz, 0, wx.ALIGN_CENTER | wx.ALL, 5) return [sbsz]
def addSettings(self): presets = self.node.presetsclient.getPresetNames() self.widgets['preset'] = PresetChoice(self, -1) self.widgets['preset'].setChoices(presets) self.widgets['label'] = Entry(self, -1, allowspaces=False) self.widgets['radius'] = FloatEntry(self, -1, min=0.0, chars=6) self.widgets['max size'] = IntEntry(self, -1, chars=6) self.widgets['max targets'] = IntEntry(self, -1, chars=6) self.widgets['overlap'] = FloatEntry(self, -1, max=100.0, chars=6) self.widgets['mosaic center'] = Choice( self, -1, choices=['stage center', 'current position']) self.widgets['ignore request'] = wx.CheckBox( self, -1, 'Ignore Request to Make Targets from Others') #szradius = wx.GridBagSizer(5, 5) #szradius.Add(self.widgets['radius'], (0, 0), (1, 1), # wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE) #label = wx.StaticText(self, -1, 'meters') #szradius.Add(label, (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz = wx.GridBagSizer(5, 10) label = wx.StaticText(self, -1, 'Preset:') sz.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['preset'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.EXPAND) label = wx.StaticText(self, -1, 'Label:') sz.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['label'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.EXPAND) label = wx.StaticText(self, -1, 'Radius:') sz.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) #sz.Add(szradius, (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT) sz.Add(self.widgets['radius'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'm') sz.Add(label, (2, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Max size:') sz.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['max size'], (3, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.EXPAND) label = wx.StaticText(self, -1, 'Max targets:') sz.Add(label, (4, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['max targets'], (4, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.EXPAND) label = wx.StaticText(self, -1, 'Overlap:') sz.Add(label, (5, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['overlap'], (5, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, '%') sz.Add(label, (5, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Mosaic Center:') sz.Add(label, (6, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['mosaic center'], (6, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) sz.Add(self.widgets['ignore request'], (7, 0), (1, 3), wx.ALIGN_CENTER_VERTICAL) sz.AddGrowableCol(1) return sz
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sb = wx.StaticBox(self, -1, 'Raster') sbszraster = wx.StaticBoxSizer(sb, wx.VERTICAL) sb = wx.StaticBox(self, -1, 'Spacing/Angle Calculator') sbszauto = wx.StaticBoxSizer(sb, wx.VERTICAL) self.widgets['raster spacing'] = IntEntry(self, -1, chars=4, min=1) self.widgets['raster spacing asymm'] = IntEntry(self, -1, chars=4) self.widgets['raster limit'] = IntEntry(self, -1, chars=4, min=1) self.widgets['raster limit asymm'] = IntEntry(self, -1, chars=4) self.widgets['raster angle'] = FloatEntry(self, -1, chars=4) self.widgets['raster center on image'] = wx.CheckBox(self, -1, 'Center on image') self.widgets['raster center x'] = IntEntry(self, -1, chars=4) self.widgets['raster center y'] = IntEntry(self, -1, chars=4) self.widgets['raster symmetric'] = wx.CheckBox(self, -1, '&Symmetric') ## auto raster self.autobut = wx.Button(self, -1, 'Calculate spacing and angle using the following parameters:') self.Bind(wx.EVT_BUTTON, self.onAutoButton, self.autobut) self.widgets['raster preset'] = PresetChoice(self, -1) presets = self.node.presetsclient.getPresetNames() self.widgets['raster preset'].setChoices(presets) self.widgets['raster overlap'] = FloatEntry(self, -1, chars=8) szauto = wx.GridBagSizer(5, 5) szauto.Add(self.autobut, (0, 0), (1, 2), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Raster Preset') szauto.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szauto.Add(self.widgets['raster preset'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Overlap percent') szauto.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szauto.Add(self.widgets['raster overlap'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) movetypes = self.node.calclients.keys() self.widgets['raster movetype'] = Choice(self, -1, choices=movetypes) label = wx.StaticText(self, -1, 'Move Type') szauto.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szauto.Add(self.widgets['raster movetype'], (3, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) sbszauto.Add(szauto, 1, wx.EXPAND|wx.ALL,5) szraster = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'XY symmetry:') szraster.Add(label, (0,0), (1,1) , wx.ALIGN_CENTER_VERTICAL) self.Bind(wx.EVT_CHECKBOX, self.onToggleSymm, self.widgets['raster symmetric']) szraster.Add(self.widgets['raster symmetric'], (0,1), (1,2) , wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT) self.widgets['raster symmetric'].SetMinSize((120,30)) label = wx.StaticText(self, -1, 'Spacing (x,y):') szraster.Add(label, (1,0), (1,1), wx.ALIGN_CENTER_VERTICAL) szraster.Add(self.widgets['raster spacing'], (1,1), (1,1), wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT) szraster.Add(self.widgets['raster spacing asymm'], (1,2), (1,1), wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Num points (x,y):') szraster.Add(label, (2,0), (1,1), wx.ALIGN_CENTER_VERTICAL) szraster.Add(self.widgets['raster limit'], (2,1), (1,1), wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT) szraster.Add(self.widgets['raster limit asymm'], (2,2), (1,1), wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT) szraster.AddGrowableCol(1) label = wx.StaticText(self, -1, 'Angle:') szraster.Add(label, (3,0), (1,1), wx.ALIGN_CENTER_VERTICAL) szraster.Add(self.widgets['raster angle'], (3,1), (1,2), wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_CENTER_HORIZONTAL) szraster.Add(self.widgets['raster center on image'], (4,0), (1,3), wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_CENTER_HORIZONTAL) self.Bind(wx.EVT_CHECKBOX, self.onCheckBox, self.widgets['raster center on image']) label = wx.StaticText(self, -1, 'Center on x,y:') szraster.Add(label, (5,0), (1,1), wx.ALIGN_CENTER_VERTICAL) szraster.Add(self.widgets['raster center x'], (5,1), (1,1), wx.ALIGN_CENTER_VERTICAL) szraster.Add(self.widgets['raster center y'], (5,2), (1,1), wx.ALIGN_CENTER_VERTICAL) if self.widgets['raster center on image'].GetValue(): self.widgets['raster center x'].Enable(False) self.widgets['raster center y'].Enable(False) if self.widgets['raster symmetric'].GetValue(): self.widgets['raster spacing asymm'].Enable(False) self.widgets['raster limit asymm'].Enable(False) self.widgets['raster spacing asymm'].SetValue(None) self.widgets['raster limit asymm'].SetValue(None) else: self.widgets['raster spacing asymm'].Enable(True) self.widgets['raster limit asymm'].Enable(True) sbszraster.Add(szraster, 1, wx.EXPAND|wx.ALL, 5) self.btest = wx.Button(self, -1, 'Test') szbutton = wx.GridBagSizer(5, 5) szbutton.Add(self.btest, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT) szbutton.AddGrowableCol(0) self.Bind(wx.EVT_BUTTON, self.onTestButton, self.btest) return [sbszauto,sbszraster, szbutton]
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sb = wx.StaticBox(self, -1, 'Spacing/Angle Calculator') sbszauto = wx.StaticBoxSizer(sb, wx.VERTICAL) szoptions = wx.GridBagSizer(5, 5) ## auto raster self.widgets['raster preset'] = PresetChoice(self, -1) presets = self.node.presetsclient.getPresetNames() self.widgets['raster preset'].setChoices(presets) self.widgets['raster overlap'] = FloatEntry(self, -1, chars=8) movetypes = self.node.calclients.keys() self.widgets['raster movetype'] = Choice(self, -1, choices=movetypes) self.autobut = wx.Button( self, -1, 'Calculate spacing and angle using the following parameters:') szauto = wx.GridBagSizer(5, 5) szauto.Add(self.autobut, (0, 0), (1, 2), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Raster Preset') szauto.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szauto.Add(self.widgets['raster preset'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Overlap percent') szauto.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szauto.Add(self.widgets['raster overlap'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Move Type') szauto.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szauto.Add(self.widgets['raster movetype'], (3, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) sbszauto.Add(szauto, 1, wx.EXPAND | wx.ALL, 5) self.Bind(wx.EVT_BUTTON, self.onAutoButton, self.autobut) ## end of auto raster szoptions.Add(sbszauto, (0, 0), (1, 2), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Raster Spacing') self.widgets['raster spacing'] = FloatEntry(self, -1, chars=8) szoptions.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szoptions.Add(self.widgets['raster spacing'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Raster Angle') self.widgets['raster angle'] = FloatEntry(self, -1, chars=8) szoptions.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szoptions.Add(self.widgets['raster angle'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) szbutton = wx.GridBagSizer(5, 5) self.bclear = wx.Button(self, -1, 'Clear Targets') szbutton.Add(self.bclear, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_LEFT) szbutton.AddGrowableCol(0) self.Bind(wx.EVT_BUTTON, self.onClearButton, self.bclear) self.btest = wx.Button(self, -1, 'Test') szbutton.Add(self.btest, (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT) szbutton.AddGrowableCol(1) self.Bind(wx.EVT_BUTTON, self.onTestButton, self.btest) return [szoptions, szbutton]
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sbr = wx.StaticBox(self, -1, 'Target Raster') sbszr = wx.StaticBoxSizer(sbr, wx.VERTICAL) sbcalc = wx.StaticBox(self, -1, 'Spacing/Angle Calculator') sbszcalc = wx.StaticBoxSizer(sbcalc, wx.VERTICAL) sblimit = wx.StaticBox(self, -1, 'Limiting Shape') sbszlimit = wx.StaticBoxSizer(sblimit, wx.VERTICAL) sz = wx.GridBagSizer(5, 10) self.widgets['bypass'] = wx.CheckBox(self, -1, 'Bypass Filter') targettypes = ['acquisition', 'preview'] self.widgets['target type'] = wx.Choice(self, -1, choices=targettypes) self.widgets['user check'] = wx.CheckBox( self, -1, 'Verify filter before submitting') self.widgets['raster spacing'] = FloatEntry(self, -1, min=0, chars=6) self.widgets['raster angle'] = FloatEntry(self, -1, chars=8) self.widgets['raster offset'] = wx.CheckBox( self, -1, 'offset by half an image every other row') self.widgets['ellipse angle'] = FloatEntry(self, -1, chars=6) self.widgets['ellipse a'] = FloatEntry(self, -1, min=0, chars=6) self.widgets['ellipse b'] = FloatEntry(self, -1, min=0, chars=6) shapetypes = ['ellipse', 'rectangle'] self.widgets['limiting shape'] = wx.Choice(self, -1, choices=shapetypes) movetypes = self.node.calclients.keys() self.widgets['raster movetype'] = Choice(self, -1, choices=movetypes) self.autobut = wx.Button( self, -1, 'Calculate spacing and angle using the following parameters:') self.Bind(wx.EVT_BUTTON, self.onAutoButton, self.autobut) self.widgets['raster preset'] = PresetChoice(self, -1) presets = self.node.presetsclient.getPresetNames() self.widgets['raster preset'].setChoices(presets) self.widgets['raster overlap'] = FloatEntry(self, -1, chars=8) ## filter sztype = wx.GridBagSizer(0, 5) sztype.Add(self.widgets['bypass'], (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Convoluting Target Type') sztype.Add(label, (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) sztype.Add(self.widgets['target type'], (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) sztype.Add(self.widgets['user check'], (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sztype.AddGrowableCol(0) sz.Add(sztype, (0, 0), (1, 2), wx.ALIGN_CENTER_VERTICAL | wx.EXPAND) ## auto raster calculator szcalc = wx.GridBagSizer(5, 5) szcalc.Add(self.autobut, (0, 0), (1, 2), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Preset for raster') szcalc.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szcalc.Add(self.widgets['raster preset'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Overlap Percent') szcalc.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szcalc.Add(self.widgets['raster overlap'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Move Type') szcalc.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szcalc.Add(self.widgets['raster movetype'], (3, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) sbszcalc.Add(szcalc, 0, wx.ALIGN_CENTER | wx.ALL, 5) sz.Add(sbszcalc, (1, 0), (1, 2), wx.EXPAND) ## raster szr = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Spacing') szr.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szr.Add(self.widgets['raster spacing'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'pixels in parent image') szr.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Angle') szr.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szr.Add(self.widgets['raster angle'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'degrees') szr.Add(label, (1, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) szr.Add(self.widgets['raster offset'], (2, 0), (1, 3), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Limit the raster by') szr.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szr.Add(self.widgets['limiting shape'], (3, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) ## raster limiting ellipse szlimit = wx.GridBagSizer(0, 5) label = wx.StaticText(self, -1, 'Angle to a-axis') szlimit.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szlimit.Add(self.widgets['ellipse angle'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'degrees') szlimit.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, '2 * a-axis (Width)') szlimit.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szlimit.Add(self.widgets['ellipse a'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'raster spacings') szlimit.Add(label, (1, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, '2 * b-axis (Height)') szlimit.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szlimit.Add(self.widgets['ellipse b'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'raster spacings') szlimit.Add(label, (2, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) sbszlimit.Add(szlimit, 0, wx.ALIGN_CENTER | wx.ALL, 5) szr.Add(sbszlimit, (4, 0), (1, 3), wx.EXPAND) sbszr.Add(szr, 0, wx.ALIGN_CENTER | wx.ALL, 5) sz.Add(sbszr, (2, 0), (1, 2), wx.EXPAND) #test button testbut = wx.Button(self, -1, 'test') sz.Add(testbut, (3, 0), (1, 2), wx.ALIGN_RIGHT) self.Bind(wx.EVT_BUTTON, self.onTestButton, testbut) #sb = wx.StaticBox(self, -1, 'Target Filter') #sbsz = wx.StaticBoxSizer(sb, wx.VERTICAL) #sbsz.Add(sz, 0, wx.ALIGN_CENTER|wx.ALL, 5) return [sz]
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sb = wx.StaticBox(self, -1, 'Low Pass Filter (Phase Correlation)') sbszlpf = wx.StaticBoxSizer(sb, wx.VERTICAL) sb = wx.StaticBox(self, -1, 'Template Correlation') sbsztemplate = wx.StaticBoxSizer(sb, wx.VERTICAL) self.widgets['template lpf'] = {} self.widgets['template lpf']['sigma'] = FloatEntry(self, -1, min=0.0, chars=4) szlpf = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Sigma:') szlpf.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szlpf.Add(self.widgets['template lpf']['sigma'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) szlpf.AddGrowableCol(1) sbszlpf.Add(szlpf, 1, wx.EXPAND | wx.ALL, 5) self.widgets['template filename'] = Entry(self, -1, chars=12) self.widgets['file diameter'] = IntEntry(self, -1, chars=4) self.widgets['template diameter'] = IntEntry(self, -1, chars=4) self.widgets['template type'] = Choice(self, -1, choices=self.node.cortypes) self.widgets['template image min'] = FloatEntry(self, -1, chars=4) szcor = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Use') szcor.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szcor.Add(self.widgets['template type'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'correlation') szcor.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) szcorlimit = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Fill image values below') szcorlimit.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szcorlimit.Add(self.widgets['template image min'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'with mean before correlation') szcorlimit.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) sztemplate = wx.GridBagSizer(5, 5) sztemplate.Add(szcor, (0, 0), (1, 2), wx.ALIGN_CENTER_VERTICAL) sztemplate.Add(szcorlimit, (1, 0), (1, 2), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Template Filename') sztemplate.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sztemplate.Add(self.widgets['template filename'], (2, 1), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'Original Template Diameter') sztemplate.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sztemplate.Add(self.widgets['file diameter'], (3, 1), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'Final Template Diameter') sztemplate.Add(label, (4, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sztemplate.Add(self.widgets['template diameter'], (4, 1), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE) sbsztemplate.Add(sztemplate, 1, wx.EXPAND | wx.ALL, 5) self.btest = wx.Button(self, -1, 'Test') szbutton = wx.GridBagSizer(5, 5) szbutton.Add(self.btest, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT) szbutton.AddGrowableCol(0) self.Bind(wx.EVT_BUTTON, self.onTestButton, self.btest) return [sbsztemplate, sbszlpf, szbutton]
def addSettings(self): sbsim = wx.StaticBox(self, -1, 'Simulated Target Loop') sbszsim = wx.StaticBoxSizer(sbsim, wx.VERTICAL) sbeval = wx.StaticBox(self, -1, 'Evaluate Image Stats') sbsz_evaluate = wx.StaticBoxSizer(sbeval, wx.VERTICAL) # move type movetypes = self.node.getMoveTypes() self.widgets['move type'] = Choice(self, -1, choices=movetypes) szmovetype = wx.GridBagSizer(5, 5) szmovetype.Add(wx.StaticText(self, -1, 'Use'), (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szmovetype.Add(self.widgets['move type'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) szmovetype.Add(wx.StaticText(self, -1, 'to move to target'), (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) # pause time self.widgets['pause time'] = FloatEntry(self, -1, min=0.0, allownone=False, chars=4, value='0.0') szpausetime = wx.GridBagSizer(5, 5) szpausetime.Add(wx.StaticText(self, -1, 'Wait'), (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szpausetime.Add(self.widgets['pause time'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE) szpausetime.Add(wx.StaticText(self, -1, 'seconds before acquiring image'), (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) # preset order presets = self.node.presetsclient.getPresetNames() self.widgets['preset order'] = EditPresetOrder(self, -1) self.widgets['preset order'].setChoices(presets) # extra pause between presets self.widgets['pause between time'] = FloatEntry(self, -1, min=0.0, allownone=False, chars=4, value='0.0') szpausebtime = wx.GridBagSizer(5, 5) szpausebtime.Add(wx.StaticText(self, -1, 'Wait'), (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szpausebtime.Add(self.widgets['pause between time'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE) szpausebtime.Add(wx.StaticText(self, -1, 'extra seconds between presets'), (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) # misc. checkboxes self.widgets['correct image'] = wx.CheckBox(self, -1, 'Correct image') self.widgets['save integer'] = wx.CheckBox(self, -1, 'Float->Integer') self.widgets['display image'] = wx.CheckBox(self, -1, 'Display image') self.widgets['save image'] = wx.CheckBox(self, -1, 'Save image to database') self.widgets['emission off'] = wx.CheckBox(self, -1, 'Turn emission off upon timeout') self.widgets['wait for process'] = wx.CheckBox(self, -1, 'Wait for a node to process the image') self.widgets['wait for rejects'] = wx.CheckBox(self, -1, 'Publish and wait for rejected targets') self.widgets['wait for reference'] = wx.CheckBox(self, -1, 'Publish and wait for the reference target') self.widgets['adjust for transform'] = Choice(self, -1, choices=['no', 'one', 'all']) self.widgets['use parent mover'] = wx.CheckBox(self, -1, 'Use ancestor image mover in adjustment') self.widgets['drift between'] = wx.CheckBox(self, -1, 'Declare drift between targets') self.widgets['background'] = wx.CheckBox(self, -1, 'Acquire in the background') self.widgets['use parent tilt'] = wx.CheckBox(self, -1, 'Tilt the stage like its parent image') self.widgets['adjust time by tilt'] = wx.CheckBox(self, -1, 'Adjust exposure time by tilt') self.widgets['reset tilt'] = wx.CheckBox(self, -1, 'Reset stage when done') if not hide_incomplete: self.widgets['correct image shift coma'] = wx.CheckBox(self, -1, 'Correct image shift coma effect') self.widgets['target offset row'] = IntEntry(self, -1, chars=6) self.widgets['target offset col'] = IntEntry(self, -1, chars=6) self.widgets['park after target'] = wx.CheckBox(self, -1, 'Park after every target acquired') self.widgets['park after list'] = wx.CheckBox(self, -1, 'Park after every target list') # simulate loop settings self.widgets['wait time'] = FloatEntry(self, -1, min=0.0, chars=6) self.widgets['iterations'] = IntEntry(self, -1, min=0.0, chars=6) szwaittime = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Wait Time:') szwaittime.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szwaittime.Add(self.widgets['wait time'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'seconds') szwaittime.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) sziterations = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Iterations:') sziterations.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sziterations.Add(self.widgets['iterations'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE) szsim = wx.GridBagSizer(5, 5) szsim.Add(szwaittime, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szsim.Add(sziterations, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sbszsim.Add(szsim, 0, wx.ALIGN_CENTER) szmover = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Mover:') self.widgets['mover'] = Choice(self, -1, choices=['presets manager','navigator']) szmover.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szmover.Add(self.widgets['mover'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE) szmoveprec = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Navigator Target Tolerance (m):') self.widgets['move precision'] = FloatEntry(self, -1, min=0.0, chars=6) szmoveprec.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szmoveprec.Add(self.widgets['move precision'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'Navigator Acceptable Tolerance (m):') self.widgets['accept precision'] = FloatEntry(self, -1, min=0.0, chars=6) szmoveprec.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szmoveprec.Add(self.widgets['accept precision'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE) self.widgets['final image shift'] = wx.CheckBox(self, -1, 'Final Image Shift') szmoveprec.Add(self.widgets['final image shift'], (2,0), (1,2)) sz_target_type = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Process') sz_target_type.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['process target type'] = Choice(self, -1, choices=leginon.targethandler.target_types) sz_target_type.Add(self.widgets['process target type'], (0, 1), (1, 1), wx.ALIGN_CENTER) label = wx.StaticText(self, -1, 'targets') sz_target_type.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) # settings sizer sz = wx.GridBagSizer(5, 5) sz_save = wx.GridBagSizer(0, 0) sz_save.Add(self.widgets['save image'], (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz_save.Add(self.widgets['save integer'], (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz_save.Add(self.widgets['correct image'], (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz_save.Add(self.widgets['display image'], (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz_emission = wx.GridBagSizer(0, 0) sz_emission.Add(self.widgets['emission off'], (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz_tilt = wx.GridBagSizer(0, 0) sz_tilt.Add(self.widgets['adjust time by tilt'], (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz_tilt.Add(self.widgets['use parent tilt'], (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz_tilt.Add(self.widgets['reset tilt'], (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) if not hide_incomplete: sz_tilt.Add(self.widgets['correct image shift coma'], (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['bad stats response'] = Choice(self, -1, choices=['Continue', 'Pause', 'Abort one','Abort all']) self.widgets['low mean'] = FloatEntry(self, -1, chars=4) self.widgets['high mean'] = FloatEntry(self, -1, chars=4) passwordbut = wx.Button(self, -1, 'Enter Email Password') self.Bind(wx.EVT_BUTTON, self.onEnterPassword, passwordbut) sz_response = wx.BoxSizer(wx.HORIZONTAL) sz_response.Add(self.widgets['bad stats response']) sz_response.Add(wx.StaticText(self, -1, ' target list(s)')) sz_evaluate = wx.BoxSizer(wx.HORIZONTAL) sz_evaluate.Add(wx.StaticText(self, -1, 'between')) sz_evaluate.Add(self.widgets['low mean']) sz_evaluate.Add(wx.StaticText(self, -1, 'and')) sz_evaluate.Add(self.widgets['high mean']) sbsz_evaluate.Add(sz_response, 0, wx.ALIGN_CENTER|wx.ALL, 0) sbsz_evaluate.Add(wx.StaticText(self, -1, 'when image mean is NOT'), 0, wx.ALIGN_LEFT) sbsz_evaluate.Add(sz_evaluate, 0, wx.ALIGN_CENTER|wx.ALL,0) sbsz_evaluate.Add(passwordbut, 0, wx.ALIGN_CENTER|wx.ALL, 3) sz_transform = wx.GridBagSizer(0, 0) label = wx.StaticText(self, -1, 'Adjust target using') sz_transform.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz_transform.Add(self.widgets['adjust for transform'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'ancestor(s)') sz_transform.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz_transform.Add(self.widgets['use parent mover'],(1,0),(1,3)) sz_offset = wx.BoxSizer(wx.HORIZONTAL) sz_offset.Add(wx.StaticText(self, -1, 'offset target x:')) sz_offset.Add(self.widgets['target offset col']) sz_offset.Add(wx.StaticText(self, -1, 'y:')) sz_offset.Add(self.widgets['target offset row']) sz_misc = wx.BoxSizer(wx.VERTICAL) sz_misc.Add(self.widgets['wait for process']) sz_misc.Add(self.widgets['wait for rejects']) sz_misc.Add(self.widgets['wait for reference']) sz_misc.Add(sz_transform) sz_misc.Add(sz_offset) sz_misc.Add(self.widgets['drift between']) sz_misc.Add(self.widgets['background']) sz_misc.Add(self.widgets['park after target']) sz_misc.Add(self.widgets['park after list']) sz_misc.Add(sbsz_evaluate) szright = wx.GridBagSizer(3, 3) szright.Add(self.widgets['preset order'], (0, 0), (4, 1), wx.ALIGN_CENTER) szright.Add(szpausebtime, (4,0), (1,1), wx.ALIGN_CENTER_VERTICAL) szright.Add(szmover, (5,0), (1,1), wx.ALIGN_CENTER_VERTICAL) szright.Add(szmoveprec, (6,0), (1,1), wx.ALIGN_CENTER_VERTICAL) szright.Add(sz_target_type, (7,0), (1,1), wx.ALIGN_CENTER_VERTICAL) sz.Add(szmovetype, (0, 0), (1, 2), wx.ALIGN_CENTER_VERTICAL) sz.Add(szpausetime, (1, 0), (1, 2), wx.ALIGN_CENTER_VERTICAL) sz.Add(sz_save, (2,0), (2,1), wx.ALIGN_CENTER_VERTICAL) sz.Add(sz_emission, (4,0), (1,1), wx.ALIGN_CENTER_VERTICAL) sz.Add(sz_tilt, (5,0), (2,1), wx.ALIGN_TOP) sz.Add(sbszsim, (7,0), (2,1), wx.ALIGN_BOTTOM) sz.Add(sz_misc, (2,1), (7,1), wx.ALIGN_TOP) sz.Add(szright, (0,2),(9,1), wx.ALIGN_TOP) return sz
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sb = wx.StaticBox(self, -1, 'Lattice Fitting') sbszlattice = wx.StaticBoxSizer(sb, wx.VERTICAL) sb = wx.StaticBox(self, -1, 'Hole Statistics') sbszstats = wx.StaticBoxSizer(sb, wx.VERTICAL) self.widgets['lattice spacing'] = FloatEntry(self, -1, chars=6) self.widgets['lattice tolerance'] = FloatEntry(self, -1, chars=6) self.widgets['lattice hole radius'] = FloatEntry(self, -1, chars=6) self.widgets['lattice zero thickness'] = FloatEntry(self, -1, chars=6) extendlabel = wx.StaticText(self, -1, 'Extend Lattice') self.widgets['lattice extend'] = Choice(self, -1, choices=self.node.extendtypes) szlattice = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Spacing:') szlattice.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szlattice.Add( self.widgets['lattice spacing'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Tolerance:') szlattice.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szlattice.Add( self.widgets['lattice tolerance'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) szlattice.Add(extendlabel, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szlattice.Add(self.widgets['lattice extend'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE) szlattice.AddGrowableCol(1) sbszlattice.Add(szlattice, 1, wx.EXPAND | wx.ALL, 5) szstats = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Radius:') szstats.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szstats.Add( self.widgets['lattice hole radius'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Reference Intensity:') szstats.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szstats.Add( self.widgets['lattice zero thickness'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) szstats.AddGrowableCol(1) sbszstats.Add(szstats, 1, wx.EXPAND | wx.ALL, 5) self.btest = wx.Button(self, -1, 'Test') szbutton = wx.GridBagSizer(5, 5) szbutton.Add(self.btest, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT) szbutton.AddGrowableCol(0) self.Bind(wx.EVT_BUTTON, self.onTestButton, self.btest) return [sbszlattice, sbszstats, szbutton]
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sb = wx.StaticBox(self, -1, 'Ice Thickness Threshold') sbszice = wx.StaticBoxSizer(sb, wx.VERTICAL) sb = wx.StaticBox(self, -1, 'Focus Template Thickness') sbszftt = wx.StaticBoxSizer(sb, wx.VERTICAL) sb = wx.StaticBox(self, -1, 'Target Template') sbsztt = wx.StaticBoxSizer(sb, wx.VERTICAL) self.widgets['ice min mean'] = FloatEntry(self, -1, chars=6) self.widgets['ice max mean'] = FloatEntry(self, -1, chars=6) self.widgets['ice max std'] = FloatEntry(self, -1, chars=6) self.widgets['focus hole'] = Choice(self, -1, choices=self.node.focustypes) self.widgets['target template'] = wx.CheckBox(self, -1, 'Use target template') self.widgets['focus template'] = leginon.gui.wx.TargetTemplate.Panel(self, 'Focus Target Template', autofill=True) self.widgets['acquisition template'] = leginon.gui.wx.TargetTemplate.Panel(self, 'Acquisition Target Template', autofill=True) self.widgets['focus template thickness'] = wx.CheckBox(self, -1, 'Use focus template thickness and limit to one focus target') self.widgets['focus stats radius'] = IntEntry(self, -1, chars=6) self.widgets['focus min mean thickness'] = FloatEntry(self, -1, chars=6) self.widgets['focus max mean thickness'] = FloatEntry(self, -1, chars=6) self.widgets['focus max stdev thickness'] = FloatEntry(self, -1, chars=6) szice = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Min. mean:') szice.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szice.Add(self.widgets['ice min mean'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE|wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Max. mean:') szice.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szice.Add(self.widgets['ice max mean'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE|wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Max. stdev.:') szice.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szice.Add(self.widgets['ice max std'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE|wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Focus hole selection:') szice.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szice.Add(self.widgets['focus hole'], (3, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT) szice.AddGrowableCol(1) sbszice.Add(szice, 1, wx.EXPAND|wx.ALL, 5) szftt = wx.GridBagSizer(5, 5) szftt.Add(self.widgets['focus template thickness'], (0, 0), (1, 2), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Stats. radius:') szftt.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szftt.Add(self.widgets['focus stats radius'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE|wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Min. mean thickness:') szftt.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szftt.Add(self.widgets['focus min mean thickness'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE|wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Max. mean thickness:') szftt.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szftt.Add(self.widgets['focus max mean thickness'], (3, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE|wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Max. std. thickness:') szftt.Add(label, (4, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szftt.Add(self.widgets['focus max stdev thickness'], (4, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE|wx.ALIGN_RIGHT) szftt.AddGrowableCol(1) sbszftt.Add(szftt, 1, wx.EXPAND|wx.ALL, 5) sztt = wx.GridBagSizer(5, 5) sztt.Add(self.widgets['target template'], (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sztt.Add(sbszftt, (1, 0), (3, 1), wx.ALIGN_CENTER) sztt.Add(self.widgets['focus template'], (0, 1), (2, 1), wx.ALIGN_CENTER|wx.EXPAND) sztt.Add(self.widgets['acquisition template'], (2, 1), (2, 1), wx.ALIGN_CENTER|wx.EXPAND) sztt.AddGrowableCol(1) sztt.AddGrowableRow(0) sztt.AddGrowableRow(2) sbsztt.Add(sztt, 1, wx.EXPAND|wx.ALL, 5) self.bice = wx.Button(self, -1, '&Test targeting') self.cice = wx.Button(self, -1, '&Clear targets') szbutton = wx.GridBagSizer(5, 5) szbutton.Add(self.cice, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT) szbutton.Add(self.bice, (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT) szbutton.AddGrowableCol(1) self.Bind(wx.EVT_BUTTON, self.onTestButton, self.bice) self.Bind(wx.EVT_BUTTON, self.onClearButton, self.cice) self.growrows = [False, True, False,] return [sbszice, sbsztt, szbutton]
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) szoptions = wx.GridBagSizer(5, 5) self.widgets['autofinder'] = wx.CheckBox(self, -1, 'Enable auto targeting') szoptions.Add(self.widgets['autofinder'], (0, 0), (1, 2), wx.ALIGN_CENTER_VERTICAL) choices = [ 'Limit by Sections', 'Sections Only', 'Tissue only', 'Regions from Centers' ] self.widgets['find section options'] = Choice(self, -1, choices=choices) label = wx.StaticText(self, -1, 'Finding Mode') szoptions.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szoptions.Add(self.widgets['find section options'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Initial Minimum Region Area (% of tile area)') self.widgets['min region area'] = FloatEntry(self, -1, chars=8) szoptions.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szoptions.Add(self.widgets['min region area'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Maximum Region Area (% of tile area)') self.widgets['max region area'] = FloatEntry(self, -1, chars=8) szoptions.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szoptions.Add(self.widgets['max region area'], (3, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Vertex Evolution Limit') self.widgets['ve limit'] = FloatEntry(self, -1, chars=8) szoptions.Add(label, (4, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szoptions.Add(self.widgets['ve limit'], (4, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Region Min Threshold') self.widgets['min threshold'] = FloatEntry(self, -1, chars=8) szoptions.Add(label, (5, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szoptions.Add(self.widgets['min threshold'], (5, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Section/Background Threshold') self.widgets['max threshold'] = FloatEntry(self, -1, chars=8) szoptions.Add(label, (6, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szoptions.Add(self.widgets['max threshold'], (6, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Max Ellipse Axis Ratio') self.widgets['axis ratio'] = FloatEntry(self, -1, chars=8) szoptions.Add(label, (7, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szoptions.Add(self.widgets['axis ratio'], (7, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) szsections = wx.GridBagSizer(6, 6) label = wx.StaticText(self, -1, 'Per-Section Area (% of tile area)') self.widgets['section area'] = FloatEntry(self, -1, chars=8) szsections.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szsections.Add(self.widgets['section area'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Maximum Number of Section per Grid') self.widgets['max sections'] = IntEntry(self, -1, min=1, chars=4) szsections.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szsections.Add(self.widgets['max sections'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText( self, -1, 'Per-Section Area Modification Thershold (% of current)') self.widgets['adjust section area'] = FloatEntry(self, -1, chars=8) szsections.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szsections.Add(self.widgets['adjust section area'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) szbutton = wx.GridBagSizer(7, 7) self.bclear = wx.Button(self, -1, 'Clear Regions') szbutton.Add(self.bclear, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_LEFT) szbutton.AddGrowableCol(0) self.Bind(wx.EVT_BUTTON, self.onClearButton, self.bclear) self.btest = wx.Button(self, -1, 'Test') szbutton.Add(self.btest, (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT) szbutton.AddGrowableCol(1) self.Bind(wx.EVT_BUTTON, self.onTestButton, self.btest) return [szoptions, szsections, szbutton]
def initParameterChoice(self): self.parameter_choice = Choice(self.toolbar, -1, choices=['Beam Tilt X','Beam Tilt Y','Defocus', 'Stage Z']) par = 'Beam Tilt X' self.parameter_choice.SetStringSelection(par) threading.Thread(target=self.node.setParameterChoice, args=(par,)).start()
def initialize(self): sizers = leginon.gui.wx.Acquisition.ScrolledSettings.initialize(self) sb = wx.StaticBox(self, -1, 'Tilt Imaging and Correlation') sbsz = wx.StaticBoxSizer(sb, wx.VERTICAL) sizer = wx.GridBagSizer(5, 5) self.widgets['tableau type'] = Choice(self, -1, choices=self.node.tableau_types) label = wx.StaticText(self, -1, 'Tableau Type (method-display):') sizer.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.widgets['tableau type'], (0, 1), (1, 1), wx.ALIGN_CENTER) self.widgets['beam tilt'] = FloatEntry(self, -1, min=0.0, allownone=False, chars=6, value='0.005') bt_sizer = wx.GridBagSizer(5, 5) bt_sizer.Add(self.widgets['beam tilt'], (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE) bt_sizer.Add(wx.StaticText(self, -1, 'radian'), (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Beam Tilt:') sizer.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(bt_sizer, (1, 1), (1, 1), wx.ALIGN_CENTER) self.widgets['sites'] = IntEntry(self, -1, min=0, allownone=False, chars=4, value='0') label = wx.StaticText(self, -1, 'Number of tilt directions:') sizer.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.widgets['sites'], (2, 1), (1, 1), wx.ALIGN_CENTER) self.widgets['startangle'] = FloatEntry(self, -1, min=0, allownone=False, chars=4, value='0') label = wx.StaticText(self, -1, 'Start Angle:') sizer.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.widgets['startangle'], (3, 1), (1, 1), wx.ALIGN_CENTER) label = wx.StaticText(self, -1, 'degrees') sizer.Add(label, (3, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['correlation type'] = Choice( self, -1, choices=self.node.correlation_types) label = wx.StaticText(self, -1, 'Correlation Type:') sizer.Add(label, (4, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.widgets['correlation type'], (4, 1), (1, 1), wx.ALIGN_CENTER) self.widgets['tableau binning'] = IntEntry(self, -1, min=1, allownone=False, chars=4, value='2') label = wx.StaticText(self, -1, 'Tableau Binning:') sizer.Add(label, (5, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.widgets['tableau binning'], (5, 1), (1, 1), wx.ALIGN_CENTER) self.widgets['beam tilt count'] = IntEntry(self, -1, min=1, allownone=False, chars=4, value='1') label = wx.StaticText(self, -1, 'Beam Tilt Count:') sizer.Add(label, (6, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.widgets['beam tilt count'], (6, 1), (1, 1), wx.ALIGN_CENTER) self.widgets['tableau split'] = IntEntry(self, -1, min=1, allownone=False, chars=4, value='8') label = wx.StaticText(self, -1, 'Tableau Split:') sizer.Add(label, (7, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.widgets['tableau split'], (7, 1), (1, 1), wx.ALIGN_CENTER) sbsz.Add(sizer, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALL, 5) self.widgets['tableau type'].Bind(wx.EVT_CHOICE, self.onTableauTypeChoice) return sizers + [sbsz]