def read_slitmask_from_xml(sxml): """Read the slit information in from an xml file that was used to create the slitmask """ # read in the xml dom = minidom.parse(sxml) # create the slitmask slitmask = SlitMask() # read it in slitmask.readmaskxml(dom) # return return slitmask
def __init__(self, parent=None, infile=None, inimage=None, center_ra=None, center_dec=None, position_angle=None): QtGui.QWidget.__init__(self, parent) #set up the main UI self.ui = Ui_MainWindow() self.ui.setupUi(self) # OptimizeTab.__init__(self,self.ui) #set up the slitmask self.slitmask=SlitMask(center_ra=center_ra, center_dec=center_dec, position_angle=position_angle ) self.slitlets=self.slitmask.slitlets #setup the image interaction self.imagedisplay=ImageDisplay(target='pySlitMask:5909') self.position_angle=position_angle if inimage: self.loadimage(inimage) #set up some variables that will be needed later self.xmlfile=None self.fcfile=None #read in the input data if available self.infile=infile if infile: self.ui.radioButtonInfo_Catalogue.setChecked(True) self.setmode2cat() self.entercatalog(infile) print self.slitmask.center_ra, self.slitmask.center_dec if self.slitmask.center_ra is None and self.slitmask.center_dec is None: self.slitmask.set_MaskPosition() self.displayfootprint() #if self.slitmask.center_ra and self.slitmask.center_dec: #self.imagedisplay.rssregion(self.slitmask.center_ra, self.slitmask.center_dec) self.ui.lineEditMain_CenRA.setText(str(self.slitmask.center_ra)) self.ui.lineEditMain_CenDEC.setText(str(self.slitmask.center_dec)) self.ui.lineEditMain_PA.setText(str(self.slitmask.position_angle)) self.ui.lineEditMain_Equinox.setText(str(self.slitmask.equinox)) self.ui.lineEditMain_TargetName.setText(self.slitmask.target_name) self.ui.lineEditMain_MaskName.setText(self.slitmask.mask_name) self.ui.lineEditInfo_Creator.setText(self.slitmask.creator) self.ui.lineEditInfo_Proposer.setText(self.slitmask.proposer) self.ui.lineEditInfo_ProposalCode.setText(self.slitmask.proposal_code) else: self.ui.radioButtonInfo_Catalogue.setChecked(False) self.ui.radioButtonInfo_Manual.setChecked(True) self.setmode2manual() self.ui.toolButtonCat_Load.setEnabled(True) #self.displayfootprint() # self.opttab = OptimizeTab() # setup default values for the optimizer self.opt_yspacing = 1. self.opt_iter = 10 self.ui.lineEditOpt_Yspacing.setText(str(self.opt_yspacing)) self.ui.lineEditOpt_Niter.setText(str(self.opt_iter)) # self.slitmask.outFoV() # print self.slitlets.data['fov_flag'] # self.updatetabs() #Listen to different signals #menu items QtCore.QObject.connect(self.ui.actionLoad_Catalogue, QtCore.SIGNAL("triggered()"), self.loadcatalog) QtCore.QObject.connect(self.ui.actionLoad_Image, QtCore.SIGNAL("triggered()"), self.loadimage) #main tabs QtCore.QObject.connect(self.ui.lineEditMain_CenRA, QtCore.SIGNAL("editingFinished()"), self.loadCenRA) QtCore.QObject.connect(self.ui.lineEditMain_CenDEC, QtCore.SIGNAL("editingFinished()"), self.loadCenDEC) QtCore.QObject.connect(self.ui.lineEditMain_PA, QtCore.SIGNAL("editingFinished()"), self.loadpositionangle) QtCore.QObject.connect(self.ui.lineEditMain_Equinox, QtCore.SIGNAL("editingFinished()"), self.loadequinox) QtCore.QObject.connect(self.ui.lineEditMain_TargetName, QtCore.SIGNAL("editingFinished()"), self.loadtargetname) QtCore.QObject.connect(self.ui.lineEditMain_MaskName, QtCore.SIGNAL("editingFinished()"), self.loadmaskname) #info tabs QtCore.QObject.connect(self.ui.lineEditInfo_ProposalCode, QtCore.SIGNAL("editingFinished()"), self.loadproposalcode) QtCore.QObject.connect(self.ui.lineEditInfo_Proposer, QtCore.SIGNAL("editingFinished()"), self.loadproposer) QtCore.QObject.connect(self.ui.lineEditInfo_Creator, QtCore.SIGNAL("editingFinished()"), self.loadcreator) # QtCore.QObject.connect(self.slitmask, SIGNAL('xmlloaded'), self.setcreator) QtCore.QObject.connect(self.ui.radioButtonInfo_Catalogue, QtCore.SIGNAL("clicked()"), self.setmode2cat) QtCore.QObject.connect(self.ui.radioButtonInfo_Manual, QtCore.SIGNAL("clicked()"), self.setmode2manual) QtCore.QObject.connect(self.ui.checkBoxInfo_CentroidOn, QtCore.SIGNAL("clicked()"), self.setmodecentroiding) #catalog tabs QtCore.QObject.connect(self.ui.toolButtonCat_Load, QtCore.SIGNAL("clicked(bool)"), self.loadcatalog) QtCore.QObject.connect(self.ui.pushButtonCat_AddSlits, QtCore.SIGNAL("clicked(bool)"), self.addslitfromcatalog) QtCore.QObject.connect(self.ui.pushButtonCat_Clear, QtCore.SIGNAL("clicked()"), self.clearContents) #slit tab QtCore.QObject.connect(self.ui.pushButtonSlit_ClearSlits, QtCore.SIGNAL("clicked()"), self.clearslittable) QtCore.QObject.connect(self.ui.pushButtonSlit_AddSlitImage, QtCore.SIGNAL("clicked()"), self.addslitletsfromimage) QtCore.QObject.connect(self.ui.pushButtonSlit_AddSlitfromCat, QtCore.SIGNAL("clicked()"), self.addslitletsfromcatalogue) QtCore.QObject.connect(self.ui.pushButtonSlit_AddSlit, QtCore.SIGNAL("clicked()"), self.addslitmanually) QtCore.QObject.connect(self.ui.pushButtonSlit_DeleteSlit, QtCore.SIGNAL("clicked()"), self.deleteslitmanually) QtCore.QObject.connect(self.ui.pushButtonSlit_DeleteSlitImage, QtCore.SIGNAL("clicked()"), self.deleteslitfromimage) QtCore.QObject.connect(self.ui.tableWidgetSlits, QtCore.SIGNAL("itemSelectionChanged()"), self.setposition) QtCore.QObject.connect(self.ui.tableWidgetSlits, QtCore.SIGNAL("cellChanged(int, int)"), self.slitchanged) #optimize tab QtCore.QObject.connect(self.ui.pushButtonOpt_Optimize, QtCore.SIGNAL("clicked()"), self.optimize) QtCore.QObject.connect(self.ui.lineEditOpt_Yspacing, QtCore.SIGNAL("editingFinished()"), self.setoptimizer_yspacing) QtCore.QObject.connect(self.ui.lineEditOpt_Niter, QtCore.SIGNAL("editingFinished()"), self.setoptimizer_iter) QtCore.QObject.connect(self.ui.checkBoxOpt_IncRefstars, QtCore.SIGNAL("stateChanged(int)"), self.includerefstars) QtCore.QObject.connect(self.ui.lineEditOpt_NumRefstars, QtCore.SIGNAL("editingFinished()"), self.setnumrefstars) #ref stars QtCore.QObject.connect(self.ui.pushButtonRef_ClearRefstars, QtCore.SIGNAL("clicked()"), self.clearrefstartable) QtCore.QObject.connect(self.ui.pushButtonRef_AddRefstarImage, QtCore.SIGNAL("clicked()"), self.addslitletsfromimage) QtCore.QObject.connect(self.ui.pushButtonRef_AddRefstarsfromCat, QtCore.SIGNAL("clicked()"), self.addrefstarsfromcatalogue) QtCore.QObject.connect(self.ui.pushButtonRef_AddRefstar, QtCore.SIGNAL("clicked()"), self.addrefstarmanually) QtCore.QObject.connect(self.ui.pushButtonRef_DeleteRefstar, QtCore.SIGNAL("clicked()"), self.deleterefstarmanually) QtCore.QObject.connect(self.ui.pushButtonRef_DeleteRefstar_2, QtCore.SIGNAL("clicked()"), self.deleteslitfromimage) QtCore.QObject.connect(self.ui.tableWidgetRefstars, QtCore.SIGNAL(" itemSelectionChanged()"), self.setrefposition) QtCore.QObject.connect(self.ui.tableWidgetRefstars, QtCore.SIGNAL("cellChanged(int, int)"), self.refchanged) # finalize tab QtCore.QObject.connect(self.ui.pushButtonFin_Validate, QtCore.SIGNAL("clicked(bool)"),self.validator) QtCore.QObject.connect(self.ui.pushButtonFin_WriteXML, QtCore.SIGNAL("clicked(bool)"), self.writexml) QtCore.QObject.connect(self.ui.toolButtonFin_WriteRSMT, QtCore.SIGNAL("clicked(bool)"), self.writersmt) QtCore.QObject.connect(self.ui.pushButtonFin_CreateFChart_Current, QtCore.SIGNAL("clicked(bool)"), self.writeFC_Current) QtCore.QObject.connect(self.ui.pushButtonFin_CreateFChart_DSS, QtCore.SIGNAL("clicked(bool)"), self.writeFC_DSS) self.ui.tabWidget.setCurrentIndex(0)