Changeset 1782 for branches/alma


Ignore:
Timestamp:
07/30/10 14:46:03 (14 years ago)
Author:
Kana Sugimoto
Message:

New Development: Yes

JIRA Issue: No (merge)

Ready for Test: Yes

Interface Changes: No

What Interface Changed:

Test Programs:

Put in Release Notes: No

Module(s): single dish package

Description:

Merged some unimplemented developments from the trunk.
[Details]

  1. Restored PKSmsg.cc, PKSmsg.h to alma branch from trunk
  2. Updated pks_matchs.cc and src/SConscript to ones in trunk
  3. uncommented "@print_log_dec"
  4. implemented bug fixes to add(), sub(), mul(), and div() in scantable.py
  5. implemented get_region() and get_point() in asaplotbase.py
  6. activated interactive keyword for text(), arrow(), annotate(), axvline(), axhline(), axvspan(), and axhspan() in asapplotter.py


Location:
branches/alma
Files:
8 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/alma/external/atnf/pks/pks_maths.cc

    r1757 r1782  
    321321
    322322  // Azimuth and elevation (rad).
    323   az = atan2(cos(dec)*sin(ha),
    324              cos(dec)*sin(lat)*cos(ha) - sin(dec)*cos(lat));
     323  az = atan2(-cos(dec)*sin(ha),
     324            sin(dec)*cos(lat) - cos(dec)*sin(lat)*cos(ha));
     325  el = asin(sin(dec)*sin(lat) + cos(dec)*cos(lat)*cos(ha));
     326
    325327  if (az < 0.0) az += C::_2pi;
    326   el = asin(sin(dec)*sin(lat) + cos(dec)*cos(lat)*cos(ha));
    327 
    328328}
    329329
  • branches/alma/python/asapfitter.py

    r1757 r1782  
    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/alma/python/asaplotbase.py

    r1766 r1782  
    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/alma/python/asapmath.py

    r1757 r1782  
    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/alma/python/asapplotter.py

    r1765 r1782  
    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/alma/python/asapreader.py

    r1757 r1782  
    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/alma/python/scantable.py

    r1781 r1782  
    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        """
     
    128128        print_log()
    129129
    130     #@print_log_dec
     130    @print_log_dec
    131131    def save(self, name=None, format=None, overwrite=False):
    132132        """
     
    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        """
     
    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        """
     
    13231323    # Maths business
    13241324    #
    1325     #@print_log_dec
     1325    @print_log_dec
    13261326    def average_time(self, mask=None, scanav=False, weight='tint', align=False):
    13271327        """
     
    13751375        return s
    13761376
    1377     #@print_log_dec
     1377    @print_log_dec
    13781378    def convert_flux(self, jyperk=None, eta=None, d=None, insitu=None):
    13791379        """
     
    14041404        else: return s
    14051405
    1406     #@print_log_dec
     1406    @print_log_dec
    14071407    def gain_el(self, poly=None, filename="", method="linear", insitu=None):
    14081408        """
     
    14591459            return s
    14601460
    1461     #@print_log_dec
     1461    @print_log_dec
    14621462    def freq_align(self, reftime=None, method='cubic', insitu=None):
    14631463        """
     
    14851485        else: return s
    14861486
    1487     #@print_log_dec
     1487    @print_log_dec
    14881488    def opacity(self, tau=None, insitu=None):
    14891489        """
     
    15141514        else: return s
    15151515
    1516     #@print_log_dec
     1516    @print_log_dec
    15171517    def bin(self, width=5, insitu=None):
    15181518        """
     
    15351535            return s
    15361536
    1537     #@print_log_dec
     1537    @print_log_dec
    15381538    def resample(self, width=5, method='cubic', insitu=None):
    15391539        """
     
    15581558        else: return s
    15591559
    1560     #@print_log_dec
     1560    @print_log_dec
    15611561    def average_pol(self, mask=None, weight='none'):
    15621562        """
     
    15761576        return s
    15771577
    1578     #@print_log_dec
     1578    @print_log_dec
    15791579    def average_beam(self, mask=None, weight='none'):
    15801580        """
     
    16061606        self._add_history("parallactify", varlist)
    16071607
    1608     #@print_log_dec
     1608    @print_log_dec
    16091609    def convert_pol(self, poltype=None):
    16101610        """
     
    16311631        return s
    16321632
    1633     #@print_log_dec
     1633    @print_log_dec
    16341634    def smooth(self, kernel="hanning", width=5.0, order=2, plot=False, insitu=None):
    16351635        """
     
    17051705        else: return s
    17061706
    1707     #@print_log_dec
     1707    @print_log_dec
    17081708    def poly_baseline(self, mask=None, order=0, plot=False, uselin=False,
    17091709                      insitu=None):
     
    19381938            return workscan
    19391939
    1940     #@print_log_dec
     1940    @print_log_dec
    19411941    def rotate_linpolphase(self, angle):
    19421942        """
     
    19551955        return
    19561956
    1957     #@print_log_dec
     1957    @print_log_dec
    19581958    def rotate_xyphase(self, angle):
    19591959        """
     
    19721972        return
    19731973
    1974     #@print_log_dec
     1974    @print_log_dec
    19751975    def swap_linears(self):
    19761976        """
     
    19841984        return
    19851985
    1986     #@print_log_dec
     1986    @print_log_dec
    19871987    def invert_phase(self):
    19881988        """
     
    19951995        return
    19961996
    1997     #@print_log_dec
     1997    @print_log_dec
    19981998    def add(self, offset, insitu=None):
    19991999        """
     
    20162016            return s
    20172017
    2018     #@print_log_dec
     2018    @print_log_dec
    20192019    def scale(self, factor, tsys=True, insitu=None):
    20202020        """
     
    20842084        self._add_history("set_sourcetype", varlist)
    20852085
    2086     #@print_log_dec
     2086    @print_log_dec
    20872087    def auto_quotient(self, preserve=True, mode='paired', verify=False):
    20882088        """
     
    21282128        return s
    21292129
    2130     #@print_log_dec
     2130    @print_log_dec
    21312131    def mx_quotient(self, mask = None, weight='median', preserve=True):
    21322132        """
     
    21512151        return q
    21522152
    2153     #@print_log_dec
     2153    @print_log_dec
    21542154    def freq_switch(self, insitu=None):
    21552155        """
     
    21712171        else: return s
    21722172
    2173     #@print_log_dec
     2173    @print_log_dec
    21742174    def recalc_azel(self):
    21752175        """
     
    21852185        return
    21862186
    2187     #@print_log_dec
     2187    @print_log_dec
    21882188    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):
    21892202        """
    21902203        implicit on all axes and on Tsys
    21912204        """
    2192         return self._operation( other, "ADD" )
    2193 
    2194     #@print_log_dec
    2195     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):
    21962218        """
    21972219        implicit on all axes and on Tsys
    21982220        """
    2199         return self._operation( other, 'SUB' )
    2200 
    2201     #@print_log_dec
    2202     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):
    22032235        """
    22042236        implicit on all axes and on Tsys
    22052237        """
    2206         return self._operation( other, 'MUL' )
    2207 
    2208     #@print_log_dec
    2209     def __div__(self, other):
    2210         """
    2211         implicit on all axes and on Tsys
    2212         """
    2213         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
    22142250
    22152251    def get_fit(self, row=0):
     
    23882424        for i in range(len(self)):
    23892425            yield self[i]
    2390 
    2391     def _operation(self, other, opmode):
    2392         varlist = vars()
    2393         s = None
    2394         import numpy
    2395         if isinstance(other, scantable):
    2396             s = scantable(self._math._binaryop(self.copy(), other, opmode))
    2397         elif isinstance(other, float) or isinstance(other, int):
    2398             if opmode == 'DIV' and float(other) == 0.0:
    2399                 raise ZeroDivisionError("Dividing by zero is not recommended")
    2400             s = scantable(self._math._unaryop(self.copy(), other, opmode, False))
    2401         elif isinstance(other, list) or isinstance(other, numpy.ndarray):
    2402             if isinstance(other[0], list) or isinstance(other[0], numpy.ndarray):
    2403                 from asapmath import _array2dOp
    2404                 s = _array2dOp( self.copy(), other, opmode, False )
    2405             else:
    2406                 s = scantable(self._math._arrayop(self.copy(), other, opmode, False))
    2407         else:
    2408             raise TypeError("Other input is not a scantable or float value or float list")
    2409         opdic = {}
    2410         opdic['ADD'] = '+'
    2411         opdic['SUB'] = '-'
    2412         opdic['MUL'] = '*'
    2413         opdic['DIV'] = '/'
    2414         s._add_history("operator %s" % opdic[opmode], varlist)
    2415         print_log()
    2416         return s
  • branches/alma/src/SConscript

    r1328 r1782  
    33# import root environment
    44Import( "env")
    5 myenv = env.Copy()
     5myenv = env.Clone()
    66
    77# gather cpp files
Note: See TracChangeset for help on using the changeset viewer.