def __init__(self, inspec, parent=None, abssys_dir=None, absid_list=None, norm=True, srch_id=True, id_dir='ID_LINES/'): QtGui.QMainWindow.__init__(self, parent) ''' spec = Spectrum1D second_file = Second spectrum file (e.g. COS + STIS) ''' # Build a widget combining several others self.main_widget = QtGui.QWidget() # Status bar self.create_status_bar() # Initialize if absid_list is None: # Automatically search for ID files if srch_id: absid_list = glob.glob(id_dir + '*id.fits') else: absid_list = [] # Grab the pieces and tie together self.abssys_widg = xspw.AbsSysWidget(absid_list) self.pltline_widg = xspw.PlotLinesWidget(status=self.statusBar) self.spec_widg = xspw.ExamineSpecWidget( inspec, status=self.statusBar, llist=self.pltline_widg.llist, norm=norm, abs_sys=self.abssys_widg.abs_sys) self.pltline_widg.spec_widg = self.spec_widg # Connections self.spec_widg.canvas.mpl_connect('button_press_event', self.on_click) self.spec_widg.canvas.mpl_connect('key_press_event', self.on_key) self.abssys_widg.refine_button.clicked.connect(self.refine_abssys) # Layout anly_widg = QtGui.QWidget() anly_widg.setMaximumWidth(300) anly_widg.setMinimumWidth(150) vbox = QtGui.QVBoxLayout() vbox.addWidget(self.pltline_widg) vbox.addWidget(self.abssys_widg) anly_widg.setLayout(vbox) hbox = QtGui.QHBoxLayout() hbox.addWidget(self.spec_widg) hbox.addWidget(anly_widg) self.main_widget.setLayout(hbox) # Point MainWindow self.setCentralWidget(self.main_widget)
def __init__(self, ispec, parent=None, zsys=None, norm=None): QtGui.QMainWindow.__init__(self, parent) ''' Parameters -------------- spec = Spectrum1D or tuple of arrays Input spectrum. If tuple then (wave,fx) or (wave,fx,sig) ''' from linetools.lists.linelist import LineList #reload(xxgu) #reload(xspw) # INIT spec, _ = xxgu.read_spec(ispec) #xdb.set_trace() # mpl.rcParams[ 'agg.path.chunksize'] = 20000 # Needed to avoid carsh in large spectral files # Build a widget combining several others self.main_widget = QtGui.QWidget() # Status bar self.create_status_bar() # Grab the pieces and tie together self.pltline_widg = xspw.PlotLinesWidget(status=self.statusBar, init_z=zsys) self.pltline_widg.setMaximumWidth(300) # Hook the spec widget to Plot Line self.spec_widg = xspw.ExamineSpecWidget(spec, status=self.statusBar, llist=self.pltline_widg.llist, zsys=zsys, norm=norm) self.pltline_widg.spec_widg = self.spec_widg self.spec_widg.canvas.mpl_connect('button_press_event', self.on_click) extras = QtGui.QWidget() extras.setMaximumWidth(130) vbox = QtGui.QVBoxLayout() qbtn = QtGui.QPushButton('Quit', self) qbtn.clicked.connect(self.quit) vbox.addWidget(self.pltline_widg) vbox.addWidget(qbtn) extras.setLayout(vbox) hbox = QtGui.QHBoxLayout() hbox.addWidget(self.spec_widg) hbox.addWidget(extras) self.main_widget.setLayout(hbox) # Point MainWindow self.setCentralWidget(self.main_widget)
def __init__(self, spec, parent=None, zsys=None, norm=None): QtGui.QMainWindow.__init__(self, parent) ''' spec = Spectrum1D ''' mpl.rcParams['agg.path.chunksize'] = 20000 # Needed to avoid carsh in large spectral files # Build a widget combining several others self.main_widget = QtGui.QWidget() # Status bar self.create_status_bar() # Grab the pieces and tie together self.pltline_widg = xspw.PlotLinesWidget(status=self.statusBar, init_z=zsys) self.pltline_widg.setMaximumWidth(300) # Hook the spec widget to Plot Line self.spec_widg = xspw.ExamineSpecWidget(spec,status=self.statusBar, llist=self.pltline_widg.llist, zsys=zsys, norm=norm) self.pltline_widg.spec_widg = self.spec_widg self.spec_widg.canvas.mpl_connect('button_press_event', self.on_click) extras = QtGui.QWidget() extras.setMaximumWidth(130) vbox = QtGui.QVBoxLayout() qbtn = QtGui.QPushButton('Quit', self) qbtn.clicked.connect(self.quit) vbox.addWidget(self.pltline_widg) vbox.addWidget(qbtn) extras.setLayout(vbox) hbox = QtGui.QHBoxLayout() hbox.addWidget(self.spec_widg) hbox.addWidget(extras) self.main_widget.setLayout(hbox) # Point MainWindow self.setCentralWidget(self.main_widget)
def __init__(self, ispec, z=None, parent=None, llist=None, norm=True, vmnx=[-300., 300.]*u.km/u.s, abs_sys=None, outfil='dum_ID.fits', sel_wv=None): ''' spec = Filename or Spectrum1D Norm: Bool (False) Normalized spectrum? abs_sys: AbsSystem Absorption system class sel_wv: Selected wavelength. Used to inspect a single, unknown line ''' super(XVelPltGui, self).__init__(parent) # Initialize self.abs_sys = abs_sys if not self.abs_sys is None: self.z = self.abs_sys.zabs else: if z is None: raise ValueError('XVelPlt: Need to set abs_sys or z!') self.z = z self.vmnx = vmnx self.outfil = outfil self.norm = norm self.sel_wv = sel_wv # Grab the pieces and tie together self.vplt_widg = xspw.VelPlotWidget(ispec, abs_sys=self.abs_sys, llist=llist, vmnx=self.vmnx, z=self.z, norm=self.norm) self.pltline_widg = xspw.PlotLinesWidget(init_llist=self.vplt_widg.llist, init_z=self.z) #self.pltline_widg.spec_widg = self.vplt_widg self.slines = xspw.SelectedLinesWidget(self.vplt_widg.llist[self.vplt_widg.llist['List']], init_select=self.vplt_widg.llist['show_line'], plot_widget=self.vplt_widg) # Connections self.pltline_widg.llist_widget.currentItemChanged.connect(self.on_llist_change) self.connect(self.pltline_widg.zbox, QtCore.SIGNAL('editingFinished ()'), self.setz) self.vplt_widg.canvas.mpl_connect('key_press_event', self.on_key) # Outfil wbtn = QtGui.QPushButton('Write', self) wbtn.setAutoDefault(False) wbtn.clicked.connect(self.write_out) self.out_box = QtGui.QLineEdit() self.out_box.setText(self.outfil) self.connect(self.out_box, QtCore.SIGNAL('editingFinished ()'), self.set_outfil) # Quit buttons = QtGui.QWidget() wqbtn = QtGui.QPushButton('Write+Quit', self) wqbtn.setAutoDefault(False) wqbtn.clicked.connect(self.write_quit) qbtn = QtGui.QPushButton('Quit', self) qbtn.setAutoDefault(False) qbtn.clicked.connect(self.quit) # Sizes lines_widg = QtGui.QWidget() lines_widg.setMaximumWidth(300) lines_widg.setMinimumWidth(200) # Layout vbox = QtGui.QVBoxLayout() vbox.addWidget(self.pltline_widg) vbox.addWidget(self.slines) vbox.addWidget(wbtn) vbox.addWidget(self.out_box) # Quit buttons hbox1 = QtGui.QHBoxLayout() hbox1.addWidget(wqbtn) hbox1.addWidget(qbtn) buttons.setLayout(hbox1) # vbox.addWidget(buttons) lines_widg.setLayout(vbox) hbox = QtGui.QHBoxLayout() hbox.addWidget(self.vplt_widg) hbox.addWidget(lines_widg) self.setLayout(hbox) # Initial draw self.vplt_widg.on_draw()