Changeset 541 for trunk/python


Ignore:
Timestamp:
03/08/05 15:29:17 (20 years ago)
Author:
mar637
Message:
  • enabled plotting of circular pols.
  • major bug fix on recursive plot calls.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/python/asapplotter.py

    r525 r541  
    3131                       self._idict,self._pdict,
    3232                       self._sdict]
    33         self._panels = 's'
     33        self._panels = rcParams['plotter.panelling']
    3434        self._stacking = rcParams['plotter.stacking']
    3535        self._rows = None
     
    7373                    self._data = list(args)
    7474                    # reset cursor
    75                     self.set_cursor()
     75                    self.set_cursor(refresh=False)
    7676            else:
    7777                self._data = list(args)
    78                 self.set_cursor()
     78                self.set_cursor(refresh=False)
    7979        if self._panels == 't':
    80             if self._data[0].nrow() > 49:
    81                 print "Scan to be plotted contains more than 25 rows.\n \
    82                 Can't plot that many panels..."
    83                 return
     80            maxrows = 9
     81            if self._data[0].nrow() > maxrows:
     82                print "Scan to be plotted contains more than %d rows.\n" \
     83                      "Selecting first %d rows..." % (maxrows,maxrows)
     84                self._cursor["t"] = range(maxrows)
    8485            self._plot_time(self._data[0], self._stacking)
    8586        elif self._panels == 's':
     
    155156                elif polmode == "stokes2":
    156157                    y = scan._getstokesspectrum(rowsel,True)
     158                elif polmode == "circular":
     159                    y = scan._stokestopolspectrum(rowsel,False,-1)
    157160                else:
    158161                    y = scan._getspectrum(rowsel)
     
    170173                        elif polmode == "stokes2":
    171174                            llab = scan._getpolarizationlabel(0,1,1)
     175                        elif polmode == "circular":
     176                            llab = scan._getpolarizationlabel(0,0,0)
    172177                        else:
    173178                            llab = scan._getpolarizationlabel(1,0,0)
     
    207212            else:
    208213                self._plotter.set_panels(rows=n,cols=0,nplots=n)
    209         self._plotter.palette(1)
    210214        for scan in scans:
     215            self._plotter.palette(1)
    211216            if n > 1:
    212217                self._plotter.subplot(scans.index(scan))
     
    243248                elif polmode == "stokes2":
    244249                    y = scan._getstokesspectrum(rowsel,True)
     250                elif polmode == "circular":
     251                    y = scan._stokestopolspectrum(rowsel,False,-1)
    245252                else:
    246253                    y = scan._getspectrum(rowsel)
     
    258265                        elif polmode == "stokes2":
    259266                            llab = scan._getpolarizationlabel(0,1,1)
     267                        elif polmode == "circular":
     268                            llab = scan._getpolarizationlabel(0,0,0)
    260269                        else:
    261270                            llab = scan._getpolarizationlabel(1,0,0)
     
    296305            else:
    297306                self._plotter.set_panels(rows=n,cols=0,nplots=n)
    298         self._plotter.palette(1)
    299307        panels = self._cursor[self._panels]       
    300308        for i in panels:
     309            self._plotter.palette(1)
    301310            polmode = "raw"
    302311            ii = self._cursor[self._panels].index(i)
     
    343352                elif polmode == "stokes2":
    344353                    y = scan._getstokesspectrum(rowsel,True)
     354                elif polmode == "circular":
     355                    y = scan._stokestopolspectrum(rowsel,False,-1)
    345356                else:
    346357                    y = scan._getspectrum(rowsel)
     
    370381                            elif polmode == "stokes2":
    371382                                llab = scan._getpolarizationlabel(0,1,1)
     383                            elif polmode == "circular":
     384                                llab = scan._getpolarizationlabel(0,0,0)
    372385                            else:
    373386                                llab = scan._getpolarizationlabel(1,0,0)
     
    379392                    elif polmode == "stokes2":
    380393                        tlab = scan._getpolarizationlabel(0,1,1)
     394                    elif polmode == "circular":
     395                        tlab = scan._getpolarizationlabel(0,0,0)
    381396                    else:
    382397                        tlab = scan._getpolarizationlabel(1,0,0)
     
    525540        return
    526541   
    527     def set_cursor(self, row=None,beam=None,IF=None,pol=None):
     542    def set_cursor(self, row=None,beam=None,IF=None,pol=None, refresh=True):
    528543        """
    529544        Specify a 'cursor' for plotting selected spectra. Time (rows),
     
    539554                    ["I", "Q", "U", "V"] or
    540555                    ["I", "Plinear", "Pangle", "V"] or
    541                     ["XX", "YY", "Real(XY)", "Imag(XY)"]
    542                     Circular polarisation are not handled yet.
     556                    ["XX", "YY", "Real(XY)", "Imag(XY)"] or
     557                    ["RR", "LL"]
    543558        Example:
    544559            plotter.set_mode('pol','time')
     
    589604        dstokes2 = {"I":0,"Plinear":1,"Pangle":2,"V":3}
    590605        draw = {"XX":0, "YY":1,"Real(XY)":2, "Imag(XY)":3}
    591         dcirc = { "RR":0,"LL":1,"RL":2,"LR":3}
     606        dcirc = { "RR":0,"LL":1}#,"Real(RL)":2,"Image(RL)":3}
    592607       
    593608        if pol is None:
     
    612627                    elif dcirc.has_key(i):
    613628                        pols.append(dcirc.get(i))
    614                         polmode.append("cricular")
     629                        polmode.append("circular")
    615630                    else:
    616631                        "Pol type '%s' not valid" %i
     
    624639            self._cursor["p"] = pols
    625640            self._polmode = polmode
    626         if self._data: self.plot()
     641        if self._data and refresh: self.plot()
    627642
    628643           
Note: See TracChangeset for help on using the changeset viewer.