Ignore:
Timestamp:
08/02/10 10:51:45 (14 years ago)
Author:
Malte Marquarding
Message:

merge -r1774:1797 from alma to newfiller

Location:
branches/newfiller
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/newfiller

  • branches/newfiller/python/asapfitter.py

    r1757 r1798  
    127127        return
    128128
    129     #@print_log_dec
     129    @print_log_dec
    130130    def fit(self, row=0, estimate=False):
    131131        """
     
    222222                self.data._addfit(fit,self._fittedrow)
    223223
    224     #@print_log_dec
     224    @print_log_dec
    225225    def set_parameters(self,*args,**kwargs):
    226226        """
     
    544544        return self.fitter.getfit()
    545545
    546     #@print_log_dec
     546    @print_log_dec
    547547    def commit(self):
    548548        """
     
    573573        return scan
    574574
    575     #@print_log_dec
     575    @print_log_dec
    576576    def plot(self, residual=False, components=None, plotparms=False,
    577577             filename=None):
     
    674674        print_log()
    675675
    676     #@print_log_dec
     676    @print_log_dec
    677677    def auto_fit(self, insitu=None, plot=False):
    678678        """
  • branches/newfiller/python/asaplotbase.py

    r1766 r1798  
    282282
    283283
    284 #     def get_region(self):
    285 #         pos = []
    286 #         print "Please select the bottom/left point"
    287 #         pos.append(self.figure.ginput(n=1, show_clicks=False)[0])
    288 #         print "Please select the top/right point"
    289 #         pos.append(self.figure.ginput(n=1, show_clicks=False)[0])
    290 #         return pos
    291 
    292 #     def get_point(self):
    293 #         print "Please select the point"
    294 #         pt = self.figure.ginput(n=1, show_clicks=False)
    295 #         if pt:
    296 #             return pt[0]
    297 #         else:
    298 #             return None
     284    def get_region(self):
     285        pos = []
     286        print "Please select the bottom/left point"
     287        pos.append(self.figure.ginput(n=1, show_clicks=False)[0])
     288        print "Please select the top/right point"
     289        pos.append(self.figure.ginput(n=1, show_clicks=False)[0])
     290        return pos
     291
     292    def get_point(self):
     293        print "Please select the point"
     294        pt = self.figure.ginput(n=1, show_clicks=False)
     295        if pt:
     296            return pt[0]
     297        else:
     298            return None
    299299
    300300    def region(self):
  • branches/newfiller/python/asapmath.py

    r1757 r1798  
    66from asap import asaplotgui
    77
    8 #@print_log_dec
     8@print_log_dec
    99def average_time(*args, **kwargs):
    1010    """
     
    123123    return s
    124124
    125 #@print_log_dec
     125@print_log_dec
    126126def dototalpower(calon, caloff, tcalval=0.0):
    127127    """
     
    142142    return s
    143143
    144 #@print_log_dec
     144@print_log_dec
    145145def dosigref(sig, ref, smooth, tsysval=0.0, tauval=0.0):
    146146    """
     
    163163    return s
    164164
    165 #@print_log_dec
     165@print_log_dec
    166166def calps(scantab, scannos, smooth=1, tsysval=0.0, tauval=0.0, tcalval=0.0, verify=False):
    167167    """
     
    446446    return ress
    447447
    448 #@print_log_dec
     448@print_log_dec
    449449def calnod(scantab, scannos=[], smooth=1, tsysval=0.0, tauval=0.0, tcalval=0.0, verify=False):
    450450    """
     
    687687    return resspec
    688688
    689 #@print_log_dec
     689@print_log_dec
    690690def calfs(scantab, scannos=[], smooth=1, tsysval=0.0, tauval=0.0, tcalval=0.0, verify=False):
    691691    """
     
    895895    return resspec
    896896
    897 #@print_log_dec
     897@print_log_dec
    898898def merge(*args):
    899899    """
  • branches/newfiller/python/asapplotter.py

    r1765 r1798  
    7777        else: return None
    7878
    79     #@print_log_dec
     79    @print_log_dec
    8080    def plot(self, scan=None):
    8181        """
     
    180180    def text(self, *args, **kwargs):
    181181        if kwargs.has_key("interactive"):
    182             #if kwargs.pop("interactive"):
    183             #    pos = self._plotter.get_point()
    184             #    args = tuple(pos)+args
    185             kwargs.pop("interactive")
     182            if kwargs.pop("interactive"):
     183                pos = self._plotter.get_point()
     184                args = tuple(pos)+args
    186185        self._axes_callback("text", *args, **kwargs)
    187186
     
    190189    def arrow(self, *args, **kwargs):
    191190        if kwargs.has_key("interactive"):
    192             #if kwargs.pop("interactive"):
    193             #    pos = self._plotter.get_region()
    194             #    dpos = (pos[0][0], pos[0][1],
    195             #            pos[1][0]-pos[0][0],
    196             #            pos[1][1] - pos[0][1])
    197             #    args = dpos + args
    198             kwargs.pop("interactive")
     191            if kwargs.pop("interactive"):
     192                pos = self._plotter.get_region()
     193                dpos = (pos[0][0], pos[0][1],
     194                        pos[1][0]-pos[0][0],
     195                        pos[1][1] - pos[0][1])
     196                args = dpos + args
    199197        self._axes_callback("arrow", *args, **kwargs)
    200198
     
    203201    def annotate(self, text, xy=None, xytext=None, **kwargs):
    204202        if kwargs.has_key("interactive"):
    205             #if kwargs.pop("interactive"):
    206             #    xy = self._plotter.get_point()
    207             #    xytext = self._plotter.get_point()
    208             kwargs.pop("interactive")
     203            if kwargs.pop("interactive"):
     204                xy = self._plotter.get_point()
     205                xytext = self._plotter.get_point()
    209206        if not kwargs.has_key("arrowprops"):
    210207            kwargs["arrowprops"] = dict(arrowstyle="->")
     
    215212    def axvline(self, *args, **kwargs):
    216213        if kwargs.has_key("interactive"):
    217             #if kwargs.pop("interactive"):
    218             #    pos = self._plotter.get_point()
    219             #    args = (pos[0],)+args
    220             kwargs.pop("interactive")
     214            if kwargs.pop("interactive"):
     215                pos = self._plotter.get_point()
     216                args = (pos[0],)+args
    221217        self._axes_callback("axvline", *args, **kwargs)
    222218
     
    225221    def axhline(self, *args, **kwargs):
    226222        if kwargs.has_key("interactive"):
    227             #if kwargs.pop("interactive"):
    228             #    pos = self._plotter.get_point()
    229             #    args = (pos[1],)+args
    230             kwargs.pop("interactive")
     223            if kwargs.pop("interactive"):
     224                pos = self._plotter.get_point()
     225                args = (pos[1],)+args
    231226        self._axes_callback("axhline", *args, **kwargs)
    232227
     
    235230    def axvspan(self, *args, **kwargs):
    236231        if kwargs.has_key("interactive"):
    237             #if kwargs.pop("interactive"):
    238             #    pos = self._plotter.get_region()
    239             #    dpos = (pos[0][0], pos[1][0])
    240             #    args = dpos + args
    241             kwargs.pop("interactive")
     232            if kwargs.pop("interactive"):
     233                pos = self._plotter.get_region()
     234                dpos = (pos[0][0], pos[1][0])
     235                args = dpos + args
    242236        self._axes_callback("axvspan", *args, **kwargs)
    243237        # hack to preventy mpl from redrawing the patch
     
    250244    def axhspan(self, *args, **kwargs):
    251245        if kwargs.has_key("interactive"):
    252             #if kwargs.pop("interactive"):
    253             #    pos = self._plotter.get_region()
    254             #    dpos = (pos[0][1], pos[1][1])
    255             #    args = dpos + args
    256             kwargs.pop("interactive")
     246            if kwargs.pop("interactive"):
     247                pos = self._plotter.get_region()
     248                dpos = (pos[0][1], pos[1][1])
     249                args = dpos + args
    257250        self._axes_callback("axhspan", *args, **kwargs)
    258251        # hack to preventy mpl from redrawing the patch
     
    12201213        private method for plotting total power data
    12211214        """
    1222         from matplotlib.numerix import ma, array, arange, logical_not
     1215        from numpy import ma, array, arange, logical_not
    12231216        r=0
    12241217        nr = scan.nrow()
  • branches/newfiller/python/asapreader.py

    r1757 r1798  
    2525               rpfits ONLY.
    2626    """
    27     #@print_log_dec
     27    @print_log_dec
    2828    def __init__(self, filename, unit=None, theif=None, thebeam=None):
    2929        self.unit = unit
     
    4848        print_log()
    4949
    50     #@print_log_dec
     50    @print_log_dec
    5151    def read(self):
    5252        """
  • branches/newfiller/python/scantable.py

    r1757 r1798  
    3636    """
    3737
    38     #@print_log_dec
     38    @print_log_dec
    3939    def __init__(self, filename, average=None, unit=None, getpt=None, antenna=None, parallactify=None):
    4040        """
     
    7575            tmpstr = ''
    7676            for i in range( len(antenna) ):
    77                 if type(antenna[i]) == int: 
    78                     tmpstr = tmpstr + ('%s,'%(antenna[i])) 
     77                if type(antenna[i]) == int:
     78                    tmpstr = tmpstr + ('%s,'%(antenna[i]))
    7979                elif type(antenna[i]) == str:
    8080                    tmpstr=tmpstr+antenna[i]+','
     
    8282                    asaplog.push('Bad antenna selection.')
    8383                    print_log('ERROR')
    84                     return 
     84                    return
    8585            antenna = tmpstr.rstrip(',')
    8686        parallactify = parallactify or rcParams['scantable.parallactify']
     
    128128        print_log()
    129129
    130     #@print_log_dec
     130    @print_log_dec
    131131    def save(self, name=None, format=None, overwrite=False):
    132132        """
     
    485485        if stat.lower().endswith('_abc'): rtnabc = True
    486486        getchan = False
    487         if stat.lower().startswith('min') or stat.lower().startswith('max'): 
     487        if stat.lower().startswith('min') or stat.lower().startswith('max'):
    488488            chan = self._math._minmaxchan(self, mask, stat)
    489489            getchan = True
     
    522522            if self.npol(-1) > 1: out +=  ' Pol[%d] ' % (self.getpol(i))
    523523            #outvec.append(callback(i))
    524             #out += ('= %'+form) % (outvec[i]) +'   '+refstr+'\n' 
    525             out += ('= %'+form) % (statvals[i]) +'   '+refstr+'\n' 
     524            #out += ('= %'+form) % (outvec[i]) +'   '+refstr+'\n'
     525            out += ('= %'+form) % (statvals[i]) +'   '+refstr+'\n'
    526526            out +=  sep+"\n"
    527527
     
    752752        return self._get_column(self._getdirectionvec, row)
    753753
    754     #@print_log_dec
     754    @print_log_dec
    755755    def set_unit(self, unit='channel'):
    756756        """
     
    768768        self._add_history("set_unit", varlist)
    769769
    770     #@print_log_dec
     770    @print_log_dec
    771771    def set_instrument(self, instr):
    772772        """
     
    780780        print_log()
    781781
    782     #@print_log_dec
     782    @print_log_dec
    783783    def set_feedtype(self, feedtype):
    784784        """
     
    791791        print_log()
    792792
    793     #@print_log_dec
     793    @print_log_dec
    794794    def set_doppler(self, doppler='RADIO'):
    795795        """
     
    805805        print_log()
    806806
    807     #@print_log_dec
     807    @print_log_dec
    808808    def set_freqframe(self, frame=None):
    809809        """
     
    927927            else: raise
    928928        self._add_history("flag_row", varlist)
    929        
     929
    930930    def clip(self, uthres=None, dthres=None, clipoutside=True, unflag=False):
    931931        """
     
    950950        self._add_history("clip", varlist)
    951951
    952     #@print_log_dec
     952    @print_log_dec
    953953    def lag_flag(self, start, end, unit="MHz", insitu=None):
    954954    #def lag_flag(self, frequency, width=0.0, unit="GHz", insitu=None):
     
    994994            return s
    995995
    996     #@print_log_dec
     996    @print_log_dec
    997997    def create_mask(self, *args, **kwargs):
    998998        """
     
    12211221            # list values are scalars
    12221222            if isinstance(freqs[-1], int) or isinstance(freqs[-1], float):
    1223                 self._setrestfreqs(freqs, [""],unit)
     1223                self._setrestfreqs(freqs, [""], unit)
    12241224            # list values are tuples, (value, name)
    12251225            elif isinstance(freqs[-1], dict):
     
    12331233                #self._setselection(savesel)
    12341234                self._setrestfreqs(freqs["value"],
    1235                                    freqs["name"], "MHz")
     1235                                   freqs["name"], unit)
    12361236            elif isinstance(freqs[-1], list) or isinstance(freqs[-1], tuple):
    12371237                sel = selector()
     
    12431243                    sel.set_ifs(iflist[i])
    12441244                    self._setselection(sel)
    1245                     self._setrestfreqs(freqs[i]["value"],
    1246                                        freqs[i]["name"], "MHz")
     1245                    self._setrestfreqs(freqs[i], [""], unit)
    12471246                self._setselection(savesel)
    12481247        # freqs are to be taken from a linecatalog
     
    13241323    # Maths business
    13251324    #
    1326     #@print_log_dec
     1325    @print_log_dec
    13271326    def average_time(self, mask=None, scanav=False, weight='tint', align=False):
    13281327        """
     
    13761375        return s
    13771376
    1378     #@print_log_dec
     1377    @print_log_dec
    13791378    def convert_flux(self, jyperk=None, eta=None, d=None, insitu=None):
    13801379        """
     
    14051404        else: return s
    14061405
    1407     #@print_log_dec
     1406    @print_log_dec
    14081407    def gain_el(self, poly=None, filename="", method="linear", insitu=None):
    14091408        """
     
    14601459            return s
    14611460
    1462     #@print_log_dec
     1461    @print_log_dec
    14631462    def freq_align(self, reftime=None, method='cubic', insitu=None):
    14641463        """
     
    14861485        else: return s
    14871486
    1488     #@print_log_dec
     1487    @print_log_dec
    14891488    def opacity(self, tau=None, insitu=None):
    14901489        """
     
    15151514        else: return s
    15161515
    1517     #@print_log_dec
     1516    @print_log_dec
    15181517    def bin(self, width=5, insitu=None):
    15191518        """
     
    15361535            return s
    15371536
    1538     #@print_log_dec
     1537    @print_log_dec
    15391538    def resample(self, width=5, method='cubic', insitu=None):
    15401539        """
    15411540        Return a scan where all spectra have been binned up.
    1542        
     1541
    15431542        Parameters:
    15441543            width:       The bin width (default=5) in pixels
     
    15591558        else: return s
    15601559
    1561     #@print_log_dec
     1560    @print_log_dec
    15621561    def average_pol(self, mask=None, weight='none'):
    15631562        """
     
    15771576        return s
    15781577
    1579     #@print_log_dec
     1578    @print_log_dec
    15801579    def average_beam(self, mask=None, weight='none'):
    15811580        """
     
    16071606        self._add_history("parallactify", varlist)
    16081607
    1609     #@print_log_dec
     1608    @print_log_dec
    16101609    def convert_pol(self, poltype=None):
    16111610        """
     
    16321631        return s
    16331632
    1634     #@print_log_dec
     1633    @print_log_dec
    16351634    def smooth(self, kernel="hanning", width=5.0, order=2, plot=False, insitu=None):
    16361635        """
     
    17061705        else: return s
    17071706
    1708     #@print_log_dec
     1707    @print_log_dec
    17091708    def poly_baseline(self, mask=None, order=0, plot=False, uselin=False,
    17101709                      insitu=None):
     
    17341733        if mask is None:
    17351734            mask = [True for i in xrange(self.nchan(-1))]
    1736        
     1735
    17371736        from asap.asapfitter import fitter
    17381737        try:
     
    17461745            if len(rows) > 0:
    17471746                self.blpars = []
    1748            
     1747
    17491748            for r in rows:
    17501749                # take into account flagtra info (CAS-1434)
     
    17791778            print_log()
    17801779            if insitu: self._assign(workscan)
    1781             else: return workscan 
     1780            else: return workscan
    17821781        except RuntimeError:
    17831782            msg = "The fit failed, possibly because it didn't converge."
     
    19131912            f.data = None
    19141913            f.fit()
    1915            
     1914
    19161915            # Show mask list
    19171916            masklist=workscan.get_masklist(fl.get_mask(),row=r)
     
    19391938            return workscan
    19401939
    1941     #@print_log_dec
     1940    @print_log_dec
    19421941    def rotate_linpolphase(self, angle):
    19431942        """
     
    19561955        return
    19571956
    1958     #@print_log_dec
     1957    @print_log_dec
    19591958    def rotate_xyphase(self, angle):
    19601959        """
     
    19731972        return
    19741973
    1975     #@print_log_dec
     1974    @print_log_dec
    19761975    def swap_linears(self):
    19771976        """
     
    19851984        return
    19861985
    1987     #@print_log_dec
     1986    @print_log_dec
    19881987    def invert_phase(self):
    19891988        """
     
    19961995        return
    19971996
    1998     #@print_log_dec
     1997    @print_log_dec
    19991998    def add(self, offset, insitu=None):
    20001999        """
     
    20172016            return s
    20182017
    2019     #@print_log_dec
     2018    @print_log_dec
    20202019    def scale(self, factor, tsys=True, insitu=None):
    20212020        """
     
    20852084        self._add_history("set_sourcetype", varlist)
    20862085
    2087     #@print_log_dec
     2086    @print_log_dec
    20882087    def auto_quotient(self, preserve=True, mode='paired', verify=False):
    20892088        """
     
    21292128        return s
    21302129
    2131     #@print_log_dec
     2130    @print_log_dec
    21322131    def mx_quotient(self, mask = None, weight='median', preserve=True):
    21332132        """
     
    21522151        return q
    21532152
    2154     #@print_log_dec
     2153    @print_log_dec
    21552154    def freq_switch(self, insitu=None):
    21562155        """
     
    21722171        else: return s
    21732172
    2174     #@print_log_dec
     2173    @print_log_dec
    21752174    def recalc_azel(self):
    21762175        """
     
    21862185        return
    21872186
    2188     #@print_log_dec
     2187    @print_log_dec
    21892188    def __add__(self, other):
     2189        varlist = vars()
     2190        s = None
     2191        if isinstance(other, scantable):
     2192            s = scantable(self._math._binaryop(self, other, "ADD"))
     2193        elif isinstance(other, float):
     2194            s = scantable(self._math._unaryop(self, other, "ADD", False))
     2195        else:
     2196            raise TypeError("Other input is not a scantable or float value")
     2197        s._add_history("operator +", varlist)
     2198        return s
     2199
     2200    @print_log_dec
     2201    def __sub__(self, other):
    21902202        """
    21912203        implicit on all axes and on Tsys
    21922204        """
    2193         return self._operation( other, "ADD" )
    2194 
    2195     #@print_log_dec
    2196     def __sub__(self, other):
     2205        varlist = vars()
     2206        s = None
     2207        if isinstance(other, scantable):
     2208            s = scantable(self._math._binaryop(self, other, "SUB"))
     2209        elif isinstance(other, float):
     2210            s = scantable(self._math._unaryop(self, other, "SUB", False))
     2211        else:
     2212            raise TypeError("Other input is not a scantable or float value")
     2213        s._add_history("operator -", varlist)
     2214        return s
     2215
     2216    @print_log_dec
     2217    def __mul__(self, other):
    21972218        """
    21982219        implicit on all axes and on Tsys
    21992220        """
    2200         return self._operation( other, 'SUB' )
    2201 
    2202     #@print_log_dec
    2203     def __mul__(self, other):
     2221        varlist = vars()
     2222        s = None
     2223        if isinstance(other, scantable):
     2224            s = scantable(self._math._binaryop(self, other, "MUL"))
     2225        elif isinstance(other, float):
     2226            s = scantable(self._math._unaryop(self, other, "MUL", False))
     2227        else:
     2228            raise TypeError("Other input is not a scantable or float value")
     2229        s._add_history("operator *", varlist)
     2230        return s
     2231
     2232
     2233    @print_log_dec
     2234    def __div__(self, other):
    22042235        """
    22052236        implicit on all axes and on Tsys
    22062237        """
    2207         return self._operation( other, 'MUL' )
    2208 
    2209     #@print_log_dec
    2210     def __div__(self, other):
    2211         """
    2212         implicit on all axes and on Tsys
    2213         """
    2214         return self._operation( other, 'DIV' )
     2238        varlist = vars()
     2239        s = None
     2240        if isinstance(other, scantable):
     2241            s = scantable(self._math._binaryop(self, other, "DIV"))
     2242        elif isinstance(other, float):
     2243            if other == 0.0:
     2244                raise ZeroDivisionError("Dividing by zero is not recommended")
     2245            s = scantable(self._math._unaryop(self, other, "DIV", False))
     2246        else:
     2247            raise TypeError("Other input is not a scantable or float value")
     2248        s._add_history("operator /", varlist)
     2249        return s
    22152250
    22162251    def get_fit(self, row=0):
     
    23892424        for i in range(len(self)):
    23902425            yield self[i]
    2391 
    2392     def _operation(self, other, opmode):
    2393         varlist = vars()
    2394         s = None
    2395         import numpy
    2396         if isinstance(other, scantable):
    2397             s = scantable(self._math._binaryop(self.copy(), other, opmode))
    2398         elif isinstance(other, float) or isinstance(other, int):
    2399             if opmode == 'DIV' and float(other) == 0.0:
    2400                 raise ZeroDivisionError("Dividing by zero is not recommended")
    2401             s = scantable(self._math._unaryop(self.copy(), other, opmode, False))
    2402         elif isinstance(other, list) or isinstance(other, numpy.ndarray):
    2403             if isinstance(other[0], list) or isinstance(other[0], numpy.ndarray):
    2404                 from asapmath import _array2dOp
    2405                 s = _array2dOp( self.copy(), other, opmode, False )
    2406             else:
    2407                 s = scantable(self._math._arrayop(self.copy(), other, opmode, False))
    2408         else:
    2409             raise TypeError("Other input is not a scantable or float value or float list")
    2410         opdic = {}
    2411         opdic['ADD'] = '+'
    2412         opdic['SUB'] = '-'
    2413         opdic['MUL'] = '*'
    2414         opdic['DIV'] = '/'
    2415         s._add_history("operator %s" % opdic[opmode], varlist)
    2416         print_log()
    2417         return s
    2418 
    2419        
Note: See TracChangeset for help on using the changeset viewer.