Changeset 2411 for trunk/python


Ignore:
Timestamp:
02/17/12 16:30:24 (13 years ago)
Author:
WataruKawasaki
Message:

New Development: No

JIRA Issue: Yes CAS-3759

Ready for Test: Yes

Interface Changes: No

What Interface Changed:

Test Programs:

Put in Release Notes: No

Module(s): sd

Description: (1) in sinusoidal baselining procedures and their relevants, quit getting nchan info in Python side but in C++ side.

(2) changed the defaults value of addwn from [] to [0] in sd.*_sinusoid_baseline(). (i.e., toolkit level)


File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/python/scantable.py

    r2410 r2411  
    1919from asap.utils import _n_bools, mask_not, mask_and, mask_or, page
    2020from asap.asapfitter import fitter
     21
     22###############################################################
     23### WK temporarily added these lines for testing 2011/11/28 ###
     24###############################################################
     25#from asap._asap import TestClass
     26
     27#class testclass(TestClass):
     28#    def __init__(self, nelem):
     29#        TestClass.__init__(self, nelem)
     30
     31###############################################################
    2132
    2233
     
    12531264        if rowno is None:
    12541265            rowno = []
    1255         if mask is None:
    1256             mask = []
    12571266        if isinstance(rowno, int):
    12581267            rowno = [rowno]
    12591268        elif not (isinstance(rowno, list) or isinstance(rowno, tuple)):
    12601269            raise TypeError("The row number(s) must be int, list or tuple.")
    1261 
    12621270        if len(rowno) == 0: rowno = [i for i in xrange(self.nrow())]
    12631271
    1264         if not (isinstance(mask, list) or isinstance(mask, tuple)):
     1272        usecommonmask = True
     1273       
     1274        if mask is None:
     1275            mask = []
     1276        if isinstance(mask, list) or isinstance(mask, tuple):
     1277            if len(mask) == 0:
     1278                mask = [[]]
     1279            else:
     1280                if isinstance(mask[0], bool):
     1281                    if len(mask) != self.nchan(self.getif(rowno[0])):
     1282                        raise ValueError("The spectra and the mask have "
     1283                                         "different length.")
     1284                    mask = [mask]
     1285                elif isinstance(mask[0], list) or isinstance(mask[0], tuple):
     1286                    usecommonmask = False
     1287                    if len(mask) != len(rowno):
     1288                        raise ValueError("When specifying masks for each "
     1289                                         "spectrum, the numbers of them "
     1290                                         "must be identical.")
     1291                    for i in xrange(mask):
     1292                        if len(mask[i]) != self.nchan(self.getif(rowno[i])):
     1293                            raise ValueError("The spectra and the mask have "
     1294                                             "different length.")
     1295                else:
     1296                    raise TypeError("The mask must be a boolean list or "
     1297                                    "a list of boolean list.")
     1298        else:
    12651299            raise TypeError("The mask must be a boolean list or a list of "
    12661300                            "boolean list.")
    1267         if len(mask) == 0: mask = [True for i in xrange(self.nchan())]
    1268         if isinstance(mask[0], bool): mask = [mask]
    1269         elif not (isinstance(mask[0], list) or isinstance(mask[0], tuple)):
    1270             raise TypeError("The mask must be a boolean list or a list of "
    1271                             "boolean list.")
    1272 
    1273         usecommonmask = (len(mask) == 1)
    1274         if not usecommonmask:
    1275             if len(mask) != len(rowno):
    1276                 raise ValueError("When specifying masks for each spectrum, "
    1277                                  "the numbers of them must be identical.")
    1278         for amask in mask:
    1279             if len(amask) != self.nchan():
    1280                 raise ValueError("The spectra and the mask have different "
    1281                                  "length.")
    1282        
     1301
    12831302        res = []
    12841303
     
    23112330                val = int(wn[:-1])
    23122331                res = [i for i in xrange(val)]
    2313             elif wn[:2] == '>=' or wn[:2] == '=>':   # cases '>=a','=>a' : return [a,a+1,...,a_nyq]
     2332            elif wn[:2] == '>=' or wn[:2] == '=>':   # cases '>=a','=>a' : return [a,-999], which is
     2333                                                     #                     then interpreted in C++
     2334                                                     #                     side as [a,a+1,...,a_nyq]
     2335                                                     #                     (CAS-3759)
    23142336                val = int(wn[2:])
    2315                 res = [i for i in xrange(val, self.nchan()/2+1)]
    2316             elif wn[-2:] == '<=' or wn[-2:] == '=<': # cases 'a<=','a=<' : return [a,a+1,...,a_nyq]
     2337                res = [val, -999]
     2338                #res = [i for i in xrange(val, self.nchan()/2+1)]
     2339            elif wn[-2:] == '<=' or wn[-2:] == '=<': # cases 'a<=','a=<' : return [a,-999], which is
     2340                                                     #                     then interpreted in C++
     2341                                                     #                     side as [a,a+1,...,a_nyq]
     2342                                                     #                     (CAS-3759)
    23172343                val = int(wn[:-2])
    2318                 res = [i for i in xrange(val, self.nchan()/2+1)]
    2319             elif wn[0] == '>':                       # case '>a' :         return [a+1,a+2,...,a_nyq]
     2344                res = [val, -999]
     2345                #res = [i for i in xrange(val, self.nchan()/2+1)]
     2346            elif wn[0] == '>':                       # case '>a' :         return [a+1,-999], which is
     2347                                                     #                     then interpreted in C++
     2348                                                     #                     side as [a+1,a+2,...,a_nyq]
     2349                                                     #                     (CAS-3759)
    23202350                val = int(wn[1:])+1
    2321                 res = [i for i in xrange(val, self.nchan()/2+1)]
    2322             elif wn[-1] == '<':                      # case 'a<' :         return [a+1,a+2,...,a_nyq]
     2351                res = [val, -999]
     2352                #res = [i for i in xrange(val, self.nchan()/2+1)]
     2353            elif wn[-1] == '<':                      # case 'a<' :         return [a+1,-999], which is
     2354                                                     #                     then interpreted in C++
     2355                                                     #                     side as [a+1,a+2,...,a_nyq]
     2356                                                     #                     (CAS-3759)
    23232357                val = int(wn[:-1])+1
    2324                 res = [i for i in xrange(val, self.nchan()/2+1)]
     2358                res = [val, -999]
     2359                #res = [i for i in xrange(val, self.nchan()/2+1)]
    23252360
    23262361            return res
     
    23712406                                        number corresponding to the Nyquist
    23722407                                        frequency for the case of FFT).
    2373                            default is [].
     2408                           default is [0].
    23742409            rejwn:         the wave numbers NOT to be used for fitting.
    23752410                           can be set just as addwn but has higher priority:
     
    24202455            if fftmethod     is None: fftmethod     = 'fft'
    24212456            if fftthresh     is None: fftthresh     = 3.0
    2422             if addwn         is None: addwn         = []
     2457            if addwn         is None: addwn         = [0]
    24232458            if rejwn         is None: rejwn         = []
    24242459            if clipthresh    is None: clipthresh    = 3.0
     
    24952530                                         number corresponding to the Nyquist
    24962531                                         frequency for the case of FFT).
    2497                             default is [].
     2532                            default is [0].
    24982533            rejwn:          the wave numbers NOT to be used for fitting.
    24992534                            can be set just as addwn but has higher priority:
     
    25612596            if fftmethod      is None: fftmethod      = 'fft'
    25622597            if fftthresh      is None: fftthresh      = 3.0
    2563             if addwn          is None: addwn          = []
     2598            if addwn          is None: addwn          = [0]
    25642599            if rejwn          is None: rejwn          = []
    25652600            if clipthresh     is None: clipthresh     = 3.0
Note: See TracChangeset for help on using the changeset viewer.