Example #1
0
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
Example #2
0
    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)