Changeset 1782 for branches/alma/python/scantable.py
- Timestamp:
- 07/30/10 14:46:03 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/alma/python/scantable.py
r1781 r1782 36 36 """ 37 37 38 #@print_log_dec38 @print_log_dec 39 39 def __init__(self, filename, average=None, unit=None, getpt=None, antenna=None, parallactify=None): 40 40 """ … … 128 128 print_log() 129 129 130 #@print_log_dec130 @print_log_dec 131 131 def save(self, name=None, format=None, overwrite=False): 132 132 """ … … 752 752 return self._get_column(self._getdirectionvec, row) 753 753 754 #@print_log_dec754 @print_log_dec 755 755 def set_unit(self, unit='channel'): 756 756 """ … … 768 768 self._add_history("set_unit", varlist) 769 769 770 #@print_log_dec770 @print_log_dec 771 771 def set_instrument(self, instr): 772 772 """ … … 780 780 print_log() 781 781 782 #@print_log_dec782 @print_log_dec 783 783 def set_feedtype(self, feedtype): 784 784 """ … … 791 791 print_log() 792 792 793 #@print_log_dec793 @print_log_dec 794 794 def set_doppler(self, doppler='RADIO'): 795 795 """ … … 805 805 print_log() 806 806 807 #@print_log_dec807 @print_log_dec 808 808 def set_freqframe(self, frame=None): 809 809 """ … … 950 950 self._add_history("clip", varlist) 951 951 952 #@print_log_dec952 @print_log_dec 953 953 def lag_flag(self, start, end, unit="MHz", insitu=None): 954 954 #def lag_flag(self, frequency, width=0.0, unit="GHz", insitu=None): … … 994 994 return s 995 995 996 #@print_log_dec996 @print_log_dec 997 997 def create_mask(self, *args, **kwargs): 998 998 """ … … 1323 1323 # Maths business 1324 1324 # 1325 #@print_log_dec1325 @print_log_dec 1326 1326 def average_time(self, mask=None, scanav=False, weight='tint', align=False): 1327 1327 """ … … 1375 1375 return s 1376 1376 1377 #@print_log_dec1377 @print_log_dec 1378 1378 def convert_flux(self, jyperk=None, eta=None, d=None, insitu=None): 1379 1379 """ … … 1404 1404 else: return s 1405 1405 1406 #@print_log_dec1406 @print_log_dec 1407 1407 def gain_el(self, poly=None, filename="", method="linear", insitu=None): 1408 1408 """ … … 1459 1459 return s 1460 1460 1461 #@print_log_dec1461 @print_log_dec 1462 1462 def freq_align(self, reftime=None, method='cubic', insitu=None): 1463 1463 """ … … 1485 1485 else: return s 1486 1486 1487 #@print_log_dec1487 @print_log_dec 1488 1488 def opacity(self, tau=None, insitu=None): 1489 1489 """ … … 1514 1514 else: return s 1515 1515 1516 #@print_log_dec1516 @print_log_dec 1517 1517 def bin(self, width=5, insitu=None): 1518 1518 """ … … 1535 1535 return s 1536 1536 1537 #@print_log_dec1537 @print_log_dec 1538 1538 def resample(self, width=5, method='cubic', insitu=None): 1539 1539 """ … … 1558 1558 else: return s 1559 1559 1560 #@print_log_dec1560 @print_log_dec 1561 1561 def average_pol(self, mask=None, weight='none'): 1562 1562 """ … … 1576 1576 return s 1577 1577 1578 #@print_log_dec1578 @print_log_dec 1579 1579 def average_beam(self, mask=None, weight='none'): 1580 1580 """ … … 1606 1606 self._add_history("parallactify", varlist) 1607 1607 1608 #@print_log_dec1608 @print_log_dec 1609 1609 def convert_pol(self, poltype=None): 1610 1610 """ … … 1631 1631 return s 1632 1632 1633 #@print_log_dec1633 @print_log_dec 1634 1634 def smooth(self, kernel="hanning", width=5.0, order=2, plot=False, insitu=None): 1635 1635 """ … … 1705 1705 else: return s 1706 1706 1707 #@print_log_dec1707 @print_log_dec 1708 1708 def poly_baseline(self, mask=None, order=0, plot=False, uselin=False, 1709 1709 insitu=None): … … 1938 1938 return workscan 1939 1939 1940 #@print_log_dec1940 @print_log_dec 1941 1941 def rotate_linpolphase(self, angle): 1942 1942 """ … … 1955 1955 return 1956 1956 1957 #@print_log_dec1957 @print_log_dec 1958 1958 def rotate_xyphase(self, angle): 1959 1959 """ … … 1972 1972 return 1973 1973 1974 #@print_log_dec1974 @print_log_dec 1975 1975 def swap_linears(self): 1976 1976 """ … … 1984 1984 return 1985 1985 1986 #@print_log_dec1986 @print_log_dec 1987 1987 def invert_phase(self): 1988 1988 """ … … 1995 1995 return 1996 1996 1997 #@print_log_dec1997 @print_log_dec 1998 1998 def add(self, offset, insitu=None): 1999 1999 """ … … 2016 2016 return s 2017 2017 2018 #@print_log_dec2018 @print_log_dec 2019 2019 def scale(self, factor, tsys=True, insitu=None): 2020 2020 """ … … 2084 2084 self._add_history("set_sourcetype", varlist) 2085 2085 2086 #@print_log_dec2086 @print_log_dec 2087 2087 def auto_quotient(self, preserve=True, mode='paired', verify=False): 2088 2088 """ … … 2128 2128 return s 2129 2129 2130 #@print_log_dec2130 @print_log_dec 2131 2131 def mx_quotient(self, mask = None, weight='median', preserve=True): 2132 2132 """ … … 2151 2151 return q 2152 2152 2153 #@print_log_dec2153 @print_log_dec 2154 2154 def freq_switch(self, insitu=None): 2155 2155 """ … … 2171 2171 else: return s 2172 2172 2173 #@print_log_dec2173 @print_log_dec 2174 2174 def recalc_azel(self): 2175 2175 """ … … 2185 2185 return 2186 2186 2187 #@print_log_dec2187 @print_log_dec 2188 2188 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): 2189 2202 """ 2190 2203 implicit on all axes and on Tsys 2191 2204 """ 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): 2196 2218 """ 2197 2219 implicit on all axes and on Tsys 2198 2220 """ 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): 2203 2235 """ 2204 2236 implicit on all axes and on Tsys 2205 2237 """ 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 2214 2250 2215 2251 def get_fit(self, row=0): … … 2388 2424 for i in range(len(self)): 2389 2425 yield self[i] 2390 2391 def _operation(self, other, opmode):2392 varlist = vars()2393 s = None2394 import numpy2395 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 _array2dOp2404 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
Note: See TracChangeset
for help on using the changeset viewer.