Changeset 1259 for trunk/python


Ignore:
Timestamp:
09/11/06 15:10:05 (18 years ago)
Author:
mar637
Message:

Merge from Release2.1.0b tag

Location:
trunk/python
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/python/__init__.py

    r1193 r1259  
    149149# scantable
    150150
    151 # default storage of scantable (memory/disk)
     151# default storage of scantable ('memory'/'disk')
    152152scantable.storage          : memory
    153153# default ouput format when saving
     
    355355
    356356__date__ = '$Date$'.split()[1]
    357 __version__  = '2.1b'
     357__version__  = '2.1'
    358358
    359359def is_ipython():
    360     return '__IP' in dir(sys.modules["__main__"]) 
     360    return '__IP' in dir(sys.modules["__main__"])
    361361if is_ipython():
    362362    def version(): print  "ASAP %s(%s)"% (__version__, __date__)
     
    397397            get_abcissa     - get the abcissa values and name for a given
    398398                              row (time)
     399            get_column_names - get the names of the columns in the scantable
     400                               for use with selector.set_query
    399401            set_freqframe   - set the frame info for the Spectral Axis
    400402                              (e.g. 'LSRK')
     
    462464            set_names          - set a selection by name (wildcards allowed)
    463465            set_tsys           - set a selection by tsys thresholds
     466            set_query          - set a selection by SQL-like query, e.g. BEAMNO==1
    464467            reset              - unset all selections
    465468            +                  - merge to selections
  • trunk/python/asaplotbase.py

    r1153 r1259  
    1313from matplotlib import rc, rcParams
    1414from asap import rcParams as asaprcParams
    15 from matplotlib.ticker import ScalarFormatter
     15from matplotlib.ticker import OldScalarFormatter
    1616from matplotlib.ticker import NullLocator
    1717from matplotlib.transforms import blend_xy_sep_transform
     
    2020    print "Warning: matplotlib version < 0.87. This might cause errors. Please upgrade."
    2121
    22 class MyFormatter(ScalarFormatter):
    23     def __call__(self, x, pos=None):
    24         #last = len(self.locs)-2
    25         if pos==0:
    26             return ''
    27         else: return ScalarFormatter.__call__(self, x, pos)
     22#class MyFormatter(OldScalarFormatter):
     23#    def __call__(self, x, pos=None):
     24#        last = len(self.locs)-2
     25#        if pos==0:
     26#            return ''
     27#        else: return OldScalarFormatter.__call__(self, x, pos)
    2828
    2929class asaplotbase:
     
    615615                    self.subplots[i]['axes'] = self.figure.add_subplot(rows,
    616616                                                cols, i+1)
     617                    self.subplots[i]['axes'].xaxis.set_major_formatter(OldScalarFormatter())
    617618                else:
    618619                    if i == 0:
    619620                        self.subplots[i]['axes'] = self.figure.add_subplot(rows,
    620621                                                cols, i+1)
     622                        self.subplots[i]['axes'].xaxis.set_major_formatter(OldScalarFormatter())
    621623                    else:
    622624                        self.subplots[i]['axes'] = self.figure.add_subplot(rows,
     
    624626                                                sharex=self.subplots[0]['axes'],
    625627                                                sharey=self.subplots[0]['axes'])
     628
    626629                    # Suppress tick labelling for interior subplots.
    627630                    if i <= (rows-1)*cols - 1:
  • trunk/python/asapplotter.py

    r1232 r1259  
    412412        if self._data: self.plot(self._data)
    413413
    414     def plot_lines(self, linecat=None, doppler=0.0, deltachan=10, rotate=0.0,
     414    def plot_lines(self, linecat=None, doppler=0.0, deltachan=10, rotate=90.0,
    415415                   location=None):
    416416        """
     
    421421            deltachan:    the number of channels to include each side of the
    422422                          line to determine a local maximum/minimum
    423             rotate:       the rotation for the text label
     423            rotate:       the rotation (in degrees) )for the text label (default 90.0)
    424424            location:     the location of the line annotation from the 'top',
    425425                          'bottom' or alternate (None - the default)
     
    427427        If the spectrum is flagged no line will be drawn in that location.
    428428        """
    429         if not self._data: return
     429        if not self._data:
     430            raise RuntimeError("No scantable has been plotted yet.")
    430431        from asap._asap import linecatalog
    431         if not isinstance(linecat, linecatalog): return
    432         if not self._data.get_unit().endswith("GHz"): return
    433         #self._plotter.hold()
     432        if not isinstance(linecat, linecatalog):
     433            raise ValueError("'linecat' isn't of type linecatalog.")
     434        if not self._data.get_unit().endswith("Hz"):
     435            raise RuntimeError("Can only overlay linecatalogs when data is in frequency.")
    434436        from matplotlib.numerix import ma
    435437        for j in range(len(self._plotter.subplots)):
     
    437439            lims = self._plotter.axes.get_xlim()
    438440            for row in range(linecat.nrow()):
    439                 restf = linecat.get_frequency(row)/1000.0
     441                # get_frequency returns MHz
     442                base = { "GHz": 1000.0, "MHz": 1.0, "Hz": 1.0e-6 }
     443                restf = linecat.get_frequency(row)/base[self._data.get_unit()]
    440444                c = 299792.458
    441445                freq = restf*(1.0-doppler/c)
     
    482486                                                   linecat.get_name(row),
    483487                                                   location=loc, rotate=rotate)
    484         #        self._plotter.release()
    485488        self._plotter.show(hardrefresh=False)
    486489
  • trunk/python/linecatalog.py

    r1156 r1259  
    2525    def __init__(self, name):
    2626        fpath = os.path.abspath(os.path.expandvars(os.path.expanduser(name)))
    27         lcbase.__init__(self, fpath)
     27        if os.path.exists(fpath):
     28            lcbase.__init__(self, fpath)
     29        else:
     30            msg = "File '%s' not found" % fpath
     31            if rcParams['verbose']:
     32                print msg
     33                return
     34            else:
     35                raise IOError(msg)
    2836
    2937    def summary(self):
     
    96104        Reset the table to its initial state, i.e. undo all calls to set_
    97105        """
    98         lcbase.reset()
     106        lcbase.reset(self)
    99107
    100108    def get_row(self, row=0):
  • trunk/python/scantable.py

    r1217 r1259  
    3333        if average is None:
    3434            average = rcParams['scantable.autoaverage']
    35         #varlist = vars()
     35        varlist = vars()
    3636        from asap._asap import stmath
    3737        self._math = stmath()
     
    7272                  and isinstance(filename[-1], str):
    7373                self._fill(filename, unit, average)
     74        self._add_history("scantable", varlist)
    7475        print_log()
    7576
     
    344345            print "--------------------------------------------------"
    345346            print out
    346         retval = { 'axesnames': ['scanno', 'beamno', 'ifno', 'polno', 'cycleno'],
    347                    'axes' : axes,
    348                    'data': statvals}
    349         return retval
     347            return
     348        else:
     349            retval = { 'axesnames': ['scanno', 'beamno', 'ifno', 'polno', 'cycleno'],
     350                       'axes' : axes,
     351                       'data': statvals}
     352            return retval
    350353
    351354    def stddev(self, mask=None):
     
    366369
    367370
    368     def column_names(self):
     371    def get_column_names(self):
    369372        """
    370373        Return a  list of column names, which can be used for selection.
    371374        """
    372         return list(Scantable.column_names(self))
     375        return list(Scantable.get_column_names(self))
    373376
    374377    def get_tsys(self):
     
    809812                for i in xrange(len(freqs)):
    810813                    sel.set_ifs([i])
     814                    self._setselection(sel)
    811815                    self._setrestfreqs(freqs[i]["value"],
    812816                                       freqs[i]["name"], "MHz")
    813                     self._setselection(sel)
    814817                self._setselection(savesel)
    815818        # freqs are to be taken from a linecatalog
     
    831834
    832835
    833     def history(self):
     836    def history(self, filename=None):
     837        """
     838        Print the history. Optionally to a file.
     839        """
    834840        hist = list(self._gethistory())
    835841        out = "-"*80
     
    848854                    out += "\n   %s = %s" % (s[0], s[1])
    849855                out += "\n"+"-"*80
    850         try:
    851             from IPython.genutils import page as pager
    852         except ImportError:
    853             from pydoc import pager
    854         pager(out)
     856        if filename is not None:
     857            if filename is "":
     858                filename = 'scantable_history.txt'
     859            import os
     860            filename = os.path.expandvars(os.path.expanduser(filename))
     861            if not os.path.isdir(filename):
     862                data = open(filename, 'w')
     863                data.write(out)
     864                data.close()
     865            else:
     866                msg = "Illegal file name '%s'." % (filename)
     867                if rcParams['verbose']:
     868                    print msg
     869                else:
     870                    raise IOError(msg)
     871        if rcParams['verbose']:
     872            try:
     873                from IPython.genutils import page as pager
     874            except ImportError:
     875                from pydoc import pager
     876            pager(out)
     877        else:
     878            return out
    855879        return
    856 
    857880    #
    858881    # Maths business
     
    16761699            self.set_fluxunit(unit)
    16771700        self.set_freqframe(rcParams['scantable.freqframe'])
    1678         #self._add_history("scantable", varlist)
    1679 
     1701
Note: See TracChangeset for help on using the changeset viewer.