Changeset 990


Ignore:
Timestamp:
04/05/06 15:04:37 (18 years ago)
Author:
mar637
Message:

asap2 interface changes as in Ticket #14.
Untested!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/monitor/cgi-bin/asapmon.py

    r712 r990  
    135135        sys.stderr = logsink2
    136136        try:
    137             scans = [asap.scantable(f) for f in files]
    138             outscans = []
     137            s = asap.scantable(files)
     138            outscans = None
    139139            self.fields['nif'] = range(scans[-1].nif())
    140140            for i in self.fields['nif']:
     
    145145            # source name selection
    146146            import re
    147             for s in scans:
    148                 srcnames = s.get_sourcename()
    149                 for i in srcnames:
    150                     # only add the names once
    151                     i = not i in self.fields['sourcenames'] and i
     147            srcnames = s.get_sourcename()
     148            for i in srcnames:
     149                # only add the names once
     150                i = not i in self.fields['sourcenames'] and i
     151                if i:
     152                    # filter off scans
     153                    i = not re.search(re.compile("_[R,e,w]$"),i) and i
    152154                    if i:
    153                         # filter off scans
    154                         i = not re.search(re.compile("_[R,e,w]$"),i) and i
    155                         if i:
    156                             self.fields['sourcenames'].append(i)
    157             for s in scans:
    158                 # form quotient
    159                 if self.form.has_key("quotient"):
    160                     s = s.auto_quotient()
    161 
    162                 # get source by name
    163                 cs = self.fields['csource']
    164                 if len(cs) > 0:
    165                     if cs in self.fields['sourcenames']:
    166                         ss = s.get_scan(self.fields['csource'])
    167                         if isinstance(ss,asap.scantable):
    168                             s = ss
    169                         del ss
     155                        self.fields['sourcenames'].append(i)
     156            # form quotient
     157            if self.form.has_key("quotient"):
     158                s = s.auto_quotient()
     159            # get source by name
     160            cs = self.fields['csource']
     161            if len(cs) > 0:
     162                if cs in self.fields['sourcenames']:
     163                    ss = s.get_scan(self.fields['csource'])
     164                    if isinstance(ss,asap.scantable):
     165                        s = ss
     166                    del ss
     167            else:
     168                # get only the last source in the table if not averaging
     169                s = s.get_scan(self.fields['sourcenames'][-1])
     170                #self.fields['debug'] = "DEBUG"
     171                self.fields['csource'] = s.get_sourcename()[-1]
     172            # baseline
     173            if self.form.has_key('baseline'):
     174                order = self.fields['cpolyorder']
     175                brstr = self.form.getfirst('brangewindow','').strip()
     176                # auto baseline or user window
     177                if brstr:
     178                    self.fields['brangewindow'] = brstr
     179                    brange = self.decodeWindows(brstr)
     180                    if len(brange):
     181                        self.fields['brangewindow'] = brstr
     182                        if self.fields['cunit'] == 1:
     183                            srest = s._getrestfreqs()
     184                            if isinstance(srest,tuple) and len(srest) != s.nif():
     185                                s.set_restfreqs(restfs,unit="GHz")
     186                        s.set_unit(self.fields['units'][self.fields['cunit']])
     187                        s.set_freqframe(self.form.getfirst("frame","LSRK"))
     188                        s.set_doppler(self.form.getfirst("doppler","RADIO"))
     189                        m = s.create_mask(brange)
     190                        s.poly_baseline(mask=m,order=order)
    170191                else:
    171                     # get only the last source in the table if not averaging
    172                     s = s.get_scan(self.fields['sourcenames'][-1])
    173                     #self.fields['debug'] = "DEBUG"
    174                     self.fields['csource'] = s.get_sourcename()[-1]
    175                 # baseline
    176                 if self.form.has_key('baseline'):
    177                     order = self.fields['cpolyorder']
    178                     brstr = self.form.getfirst('brangewindow','').strip()
    179                     # auto baseline or user window
    180                     if brstr:
    181                         self.fields['brangewindow'] = brstr
    182                         brange = self.decodeWindows(brstr)
    183                         if len(brange):
    184                             self.fields['brangewindow'] = brstr
    185                             if self.fields['cunit'] == 1:
    186                                 srest = s._getrestfreqs()
    187                                 if isinstance(srest,tuple) and len(srest) != s.nif():
    188                                     s.set_restfreqs(restfs,unit="GHz")
    189                             s.set_unit(self.fields['units'][self.fields['cunit']])
    190                             s.set_freqframe(self.form.getfirst("frame","LSRK"))
    191                             s.set_doppler(self.form.getfirst("doppler","RADIO"))
    192 
    193                             m = s.create_mask(brange)
    194                             s.poly_baseline(mask=m,order=order)
    195                     else:
    196                         s.auto_poly_baseline(order=order)
    197                 outscans.append(s)
    198             del scans
     192                    s.auto_poly_baseline(order=order)
     193            outscans = None
    199194
    200195            if self.fields['average']:
    201                 outscans = asap.average_time(outscans,weight='tsys')
     196                outscans = s.average_time(weight='tsys')
    202197            else:
    203                 outscans = outscans[-1]
     198                outscans = s
     199            del s
    204200
    205201            if self.fields['bin']:
    206202                outscans.bin()
    207 
    208             #duplicated as average_time doesn't remember settings
    209             if self.fields['cunit'] == 1:
    210                 srest = outscans._getrestfreqs()
    211                 if isinstance(srest,tuple) and len(srest) != outscans.nif():
    212                     outscans.set_restfreqs(restfs,unit="GHz")
    213             outscans.set_unit(self.fields['units'][self.fields['cunit']])
    214             outscans.set_freqframe(self.form.getfirst("frame","LSRK"))
    215             outscans.set_doppler(self.form.getfirst("doppler","RADIO"))
    216203
    217204            self.fields['summary'] = str(outscans)
     
    225212            rcp['figure.subplot.hspace'] = 0.3
    226213            del asap.plotter
     214            # plotter without GUI
    227215            asap.plotter = asap.asapplotter(False)
    228216            if s.nif() > 1:
     
    238226                if outscans.npol() > 2:
    239227                    pols += " Q U V"
    240                 asap.plotter.set_cursor(pol=pols)
     228                sel = asap.selector()
     229                sel.set_polarisations(pols)
     230                asap.plotter.set_selection(sel)
    241231            x0,x1 = self.decodeWindow(self.fields['plotwindow'])
    242232            asap.plotter.set_range(x0,x1)
Note: See TracChangeset for help on using the changeset viewer.