Пример #1
0
    def execute(self):
        # set various attributes to self.scan
        self.set_to_scan()

        #WORKAROUND for new tasks (in future this should be done in sdutil)
        if not self.timeaverage: self.scanaverage = False
        # Average data if necessary
        self.scan = sdutil.doaverage(self.scan, self.scanaverage, self.timeaverage, self.tweight, self.polaverage, self.pweight)

        # Reload plotter if necessary
        sd.plotter._assert_plotter(action="reload")

        # Set subplot layout
        if self.subplot > 10:
            row = int(self.subplot/10)
            col = (self.subplot % 10)
            sd.plotter.set_layout(rows=row,cols=col,refresh=False)
        else:
            if self.subplot > -1:
                casalog.post(("Invalid subplot value, %d, is ignored. It should be in between 11 and 99." % self.subplot),priority="WARN")
            sd.plotter.set_layout(refresh=False)

        # Set subplot margins
        if self.margin != sd.plotter._margins:
            sd.plotter.set_margin(margin=self.margin,refresh=False)

        # Actual plotting
        getattr(self,'plot_%s'%(self.plottype))()
Пример #2
0
    def execute(self):
        # set various attributes to self.scan
        self.set_to_scan()

        #WORKAROUND for new tasks (in future this should be done in sdutil)
        if not self.timeaverage: self.scanaverage = False
        # Average data if necessary
        self.scan = sdutil.doaverage(self.scan, self.scanaverage,
                                     self.timeaverage, self.tweight,
                                     self.polaverage, self.pweight)

        # Reload plotter if necessary
        sd.plotter._assert_plotter(action="reload")

        # Set subplot layout
        if self.subplot > 10:
            row = int(self.subplot / 10)
            col = (self.subplot % 10)
            sd.plotter.set_layout(rows=row, cols=col, refresh=False)
        else:
            if self.subplot > -1:
                casalog.post((
                    "Invalid subplot value, %d, is ignored. It should be in between 11 and 99."
                    % self.subplot),
                             priority="WARN")
            sd.plotter.set_layout(refresh=False)

        # Set subplot margins
        if self.margin != sd.plotter._margins:
            sd.plotter.set_margin(margin=self.margin, refresh=False)

        # Actual plotting
        getattr(self, 'plot_%s' % (self.plottype))()
Пример #3
0
    def execute(self):
        self.set_to_scan()

        #WORKAROUND for new tasks (in future this should be done in sdutil)
        if not self.timeaverage: self.scanaverage = False
        # Average data if necessary
        self.scan = sdutil.doaverage(self.scan, self.scanaverage, self.timeaverage, self.tweight, self.polaverage, self.pweight)

        # restore self.fluxunit
        self.fluxunit = self.fluxunit_saved
        del self.fluxunit_saved

        self.calc_statistics()
Пример #4
0
    def execute(self):
        self.set_to_scan()

        #WORKAROUND for new tasks (in future this should be done in sdutil)
        if not self.timeaverage: self.scanaverage = False
        # Average data if necessary
        self.scan = sdutil.doaverage(self.scan, self.scanaverage,
                                     self.timeaverage, self.tweight,
                                     self.polaverage, self.pweight)

        # restore self.fluxunit
        self.fluxunit = self.fluxunit_saved
        del self.fluxunit_saved

        self.calc_statistics()
Пример #5
0
    def execute(self):
        self.set_to_scan()

        #WORKAROUND for new tasks (in future this should be done in sdutil)
        if not self.timeaverage: self.scanaverage = False
        # average data
        self.scan = sdutil.doaverage(self.scan, self.scanaverage,
                                     self.timeaverage, self.tweight,
                                     self.polaverage, self.pweight)

        # restore fluxunit
        self.fluxunit = self.fluxunit_saved
        del self.fluxunit_saved

        self.result = dict.fromkeys(['nfit', 'peak', 'cent', 'fwhm'], [])
        self.fitparams = []

        if self.assert_no_channel_selection_in_spw(mode='result'):
            maskline_dict = self.scan.parse_spw_selection(self.spw)

            valid_spw_list = []
            for (k, v) in maskline_dict.items():
                if len(v) > 0 and numpy.all(numpy.array(map(len, v)) > 0):
                    valid_spw_list.append(k)

            sel_org = self.scan.get_selection()
            for irow in xrange(self.scan.nrow()):
                scantab = self.scan.get_row(irow, insitu=False)
                spw = scantab.getif(0)
                if not spw in valid_spw_list:
                    continue
                maskline = maskline_dict[spw]
                self.maskline = maskline
                self.__set_linelist(scantab)
                self.__fit(scantab)
            ifs_org = sel_org.get_ifs()
            ifs_new = list(set(ifs_org) & set(valid_spw_list))
            sel_org.set_ifs(ifs_new)
            self.scan.set_selection(sel_org)
        else:
            self.maskline = []
            self.__set_linelist()
            self.__fit()
Пример #6
0
    def execute(self):
        # set various attributes to self.scan
        self.set_to_scan()

        #WORKAROUND for new tasks (in future this should be done in sdutil)
        if not self.timeaverage: self.scanaverage = False
        #Average within each scan
        self.scan = sdutil.doaverage(self.scan, self.scanaverage, self.timeaverage, self.tweight, self.polaverage, self.pweight, self.averageall)

        engine = sdsmooth_engine(self)

        # Smoothing
        if self.kernel not in ['', 'none']:
            engine.initialize()

            # Actual implementation is defined outside the class
            # since those are used in task_sdreduce.
            engine.execute()

            engine.finalize()
Пример #7
0
    def execute(self):
        self.set_to_scan()

        #WORKAROUND for new tasks (in future this should be done in sdutil)
        if not self.timeaverage: self.scanaverage = False
        # average data
        self.scan = sdutil.doaverage(self.scan, self.scanaverage, self.timeaverage, self.tweight, self.polaverage, self.pweight)

        # restore fluxunit
        self.fluxunit = self.fluxunit_saved
        del self.fluxunit_saved

        self.result = dict.fromkeys(['nfit','peak','cent','fwhm'],[])
        self.fitparams = []
        
        if self.assert_no_channel_selection_in_spw(mode='result'):
            maskline_dict = self.scan.parse_spw_selection(self.spw)
            
            valid_spw_list = []
            for (k,v) in maskline_dict.items():
                if len(v) > 0 and numpy.all(numpy.array(map(len, v)) > 0):
                    valid_spw_list.append(k)

            sel_org = self.scan.get_selection()
            for irow in xrange(self.scan.nrow()):
                scantab = self.scan.get_row(irow, insitu=False)
                spw = scantab.getif(0)
                if not spw in valid_spw_list:
                    continue
                maskline = maskline_dict[spw]
                self.maskline = maskline
                self.__set_linelist(scantab)
                self.__fit(scantab)
            ifs_org = sel_org.get_ifs()
            ifs_new = list(set(ifs_org) & set(valid_spw_list))
            sel_org.set_ifs(ifs_new)
            self.scan.set_selection(sel_org)
        else:
            self.maskline = []
            self.__set_linelist()
            self.__fit()
Пример #8
0
    def execute(self):
        # calibration stage
        casalog.post("*** sdcal stage ***")
        self.verify = self.verifycal
        engine = task_sdcal.sdcal_engine(self)
        engine.initialize()
        engine.execute()
        ##         self.scan = engine.get_result()
        ##         task_sdcal.prior_plot(self.scan, self.plotlevel)
        ##         self.scan = task_sdcal.docalibration(self.scan, self.calmode,
        ##                                              self.fraction,
        ##                                              self.noff, self.width,
        ##                                              self.elongated,
        ##                                              self.markonly, self.plotpointings,
        ##                                              self.verifycal)

        # apply input parameters
        self.set_to_scan()

        # opacity correction
        sdutil.doopacity(self.scan, self.tau)

        ## channel splitting
        #sdutil.dochannelrange(self.scan, self.channelrange)

        #WORKAROUND for new tasks (in future this should be done in sdutil)
        if not self.timeaverage: self.scanaverage = False
        # averaging stage
        if self.average:
            self.scan = sdutil.doaverage(self.scan, self.scanaverage,
                                         self.timeaverage, self.tweight,
                                         self.polaverage, self.pweight,
                                         self.averageall)
        else:
            casalog.post("No averaging was applied...")
##         task_sdcal.posterior_plot(self.scan, self.project, self.plotlevel)
        engine.finalize()
        del engine

        # smoothing stage
        casalog.post("")
        casalog.post("*** sdsmooth stage ***")
        if self.kernel.lower() not in ['none', '']:
            self.verify = self.verifysm
            engine = task_sdaverage.sdsmooth_engine(self)
            engine.initialize()
            engine.execute()
            ##             self.scan = engine.get_result()
            engine.finalize()
            del engine
        else:
            casalog.post("No smoothing was applied...")

        # baseline stage
        casalog.post("")
        casalog.post("*** sdbaseline stage ***")
        if self.blfunc != 'none':
            self.verify = self.verifybl
            self.verbose = self.verbosebl
            engine = task_sdbaseline.sdbaseline_engine(self)
            engine.initialize()
            engine.execute()
            ##             self.scan = engine.get_result()
            engine.finalize()
            del engine
        else:
            casalog.post("No baseline subtraction was applied...")
Пример #9
0
    def execute(self):
        # calibration stage
        casalog.post( "*** sdcal stage ***" )
        self.verify = self.verifycal
        engine = task_sdcal.sdcal_engine(self)
        engine.initialize()
        engine.execute()
##         self.scan = engine.get_result()
##         task_sdcal.prior_plot(self.scan, self.plotlevel)
##         self.scan = task_sdcal.docalibration(self.scan, self.calmode,
##                                              self.fraction,
##                                              self.noff, self.width,
##                                              self.elongated,
##                                              self.markonly, self.plotpointings,
##                                              self.verifycal)

        # apply input parameters 
        self.set_to_scan()

        # opacity correction
        sdutil.doopacity(self.scan, self.tau)

        ## channel splitting
        #sdutil.dochannelrange(self.scan, self.channelrange)

        #WORKAROUND for new tasks (in future this should be done in sdutil)
        if not self.timeaverage: self.scanaverage = False
        # averaging stage
        if self.average:
            self.scan = sdutil.doaverage(self.scan, self.scanaverage,
                                         self.timeaverage, self.tweight,
                                         self.polaverage, self.pweight,
                                         self.averageall)
        else:
            casalog.post( "No averaging was applied..." )
##         task_sdcal.posterior_plot(self.scan, self.project, self.plotlevel)
        engine.finalize()
        del engine
        
        # smoothing stage
        casalog.post( "" )
        casalog.post( "*** sdsmooth stage ***" )
        if self.kernel.lower() not in ['none', '']:
            self.verify = self.verifysm
            engine = task_sdaverage.sdsmooth_engine(self)
            engine.initialize()
            engine.execute()
##             self.scan = engine.get_result()
            engine.finalize()
            del engine
        else:
            casalog.post( "No smoothing was applied..." )

            
        # baseline stage
        casalog.post( "" )
        casalog.post( "*** sdbaseline stage ***")
        if self.blfunc != 'none':
            self.verify = self.verifybl
            self.verbose = self.verbosebl
            engine = task_sdbaseline.sdbaseline_engine(self)
            engine.initialize()
            engine.execute()
##             self.scan = engine.get_result()
            engine.finalize()
            del engine
        else:
            casalog.post( "No baseline subtraction was applied..." )