Changeset d84a90c in sasview for pr_inversion/num_term.py


Ignore:
Timestamp:
Jun 3, 2010 4:47:46 PM (14 years ago)
Author:
Gervaise Alina <gervyh@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
7116b6e0
Parents:
aa36f96
Message:

working on documentation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pr_inversion/num_term.py

    r97d69d9 rd84a90c  
    33 
    44class Num_terms():     
    5      
    6      def __init__(self, invertor): 
    7          self.invertor = invertor 
    8          self.nterm_min = 10 
    9          self.nterm_max = len(self.invertor.x) 
    10          if self.nterm_max>50: 
    11              self.nterm_max=50 
    12          self.isquit_func = None 
    13           
    14          self.osc_list = [] 
    15          self.err_list = [] 
    16          self.alpha_list = [] 
    17          self.mess_list = [] 
    18           
    19          self.dataset = [] 
     5    """ 
     6    """ 
     7    def __init__(self, invertor): 
     8        """ 
     9        """ 
     10        self.invertor = invertor 
     11        self.nterm_min = 10 
     12        self.nterm_max = len(self.invertor.x) 
     13        if self.nterm_max>50: 
     14            self.nterm_max=50 
     15        self.isquit_func = None 
     16          
     17        self.osc_list = [] 
     18        self.err_list = [] 
     19        self.alpha_list = [] 
     20        self.mess_list = [] 
     21          
     22        self.dataset = [] 
    2023      
    21      def is_odd(self, n): 
    22          return bool(n%2) 
    23  
    24      def sort_osc(self): 
    25          import copy 
    26          osc = copy.deepcopy(self.dataset) 
    27          lis = [] 
    28          for i in range(len(osc)): 
    29              osc.sort() 
    30              re = osc.pop(0) 
    31              lis.append(re) 
    32          return lis 
     24    def is_odd(self, n): 
     25        """ 
     26        """ 
     27        return bool(n%2) 
     28 
     29    def sort_osc(self): 
     30        """ 
     31        """ 
     32        import copy 
     33        osc = copy.deepcopy(self.dataset) 
     34        lis = [] 
     35        for i in range(len(osc)): 
     36            osc.sort() 
     37            re = osc.pop(0) 
     38            lis.append(re) 
     39        return lis 
    3340            
    34      def median_osc(self): 
    35          osc = self.sort_osc() 
    36          dv = len(osc) 
    37          med = float(dv) / 2.0 
    38          odd = self.is_odd(dv) 
    39          medi = 0 
    40          for i in range(dv): 
    41              if odd == True: 
    42                  medi = osc[int(med)] 
    43              else: 
    44                  medi = osc[int(med) - 1] 
    45          return medi 
    46  
    47      def get0_out(self): 
     41    def median_osc(self): 
     42        """ 
     43        """ 
     44        osc = self.sort_osc() 
     45        dv = len(osc) 
     46        med = float(dv) / 2.0 
     47        odd = self.is_odd(dv) 
     48        medi = 0 
     49        for i in range(dv): 
     50            if odd == True: 
     51                medi = osc[int(med)] 
     52            else: 
     53                medi = osc[int(med) - 1] 
     54        return medi 
     55 
     56    def get0_out(self): 
     57        """ 
     58        """  
    4859        inver = self.invertor 
    4960        self.osc_list = [] 
     
    96107        return self.dataset 
    97108         
    98      def ls_osc(self): 
     109    def ls_osc(self): 
     110        """ 
     111        """ 
    99112        # Generate data 
    100113        ls_osc = self.get0_out() 
     
    109122        return ls 
    110123 
    111      def compare_err(self): 
     124    def compare_err(self): 
     125        """ 
     126        """ 
    112127        ls = self.ls_osc() 
    113128        #print "ls", ls 
     
    122137        return nt_ls 
    123138 
    124      def num_terms(self, isquit_func=None): 
    125          try: 
    126              self.isquit_func = isquit_func 
    127              #self.nterm_max = len(self.invertor.x) 
    128              #self.nterm_max = 32 
    129              nts = self.compare_err() 
    130              #print "nts", nts 
    131              div = len(nts) 
    132              tem = float(div)/2.0 
    133              odd = self.is_odd(div) 
    134              if odd == True: 
    135                  nt = nts[int(tem)] 
    136              else: 
    137                  nt = nts[int(tem) - 1] 
    138              return nt, self.alpha_list[nt - 10], self.mess_list[nt-10] 
    139          except: 
    140              return self.nterm_min, self.alpha_list[10], self.mess_list[10] 
     139    def num_terms(self, isquit_func=None): 
     140        """ 
     141        """ 
     142        try: 
     143            self.isquit_func = isquit_func 
     144            #self.nterm_max = len(self.invertor.x) 
     145            #self.nterm_max = 32 
     146            nts = self.compare_err() 
     147            #print "nts", nts 
     148            div = len(nts) 
     149            tem = float(div)/2.0 
     150            odd = self.is_odd(div) 
     151            if odd == True: 
     152                nt = nts[int(tem)] 
     153            else: 
     154                nt = nts[int(tem) - 1] 
     155            return nt, self.alpha_list[nt - 10], self.mess_list[nt-10] 
     156        except: 
     157            return self.nterm_min, self.alpha_list[10], self.mess_list[10] 
    141158 
    142159#For testing 
    143160def load(path): 
    144         import numpy, math, sys 
    145         # Read the data from the data file 
    146         data_x   = numpy.zeros(0) 
    147         data_y   = numpy.zeros(0) 
    148         data_err = numpy.zeros(0) 
    149         scale    = None 
    150         min_err  = 0.0 
    151         if not path == None: 
    152             input_f = open(path,'r') 
    153             buff    = input_f.read() 
    154             lines   = buff.split('\n') 
    155             for line in lines: 
    156                 try: 
    157                     toks = line.split() 
    158                     x = float(toks[0]) 
    159                     y = float(toks[1]) 
    160                     if len(toks)>2: 
    161                         err = float(toks[2]) 
    162                     else: 
    163                         if scale==None: 
    164                             scale = 0.05*math.sqrt(y) 
    165                             #scale = 0.05/math.sqrt(y) 
    166                             min_err = 0.01*y 
    167                         err = scale*math.sqrt(y)+min_err 
    168                         #err = 0 
    169                          
    170                     data_x = numpy.append(data_x, x) 
    171                     data_y = numpy.append(data_y, y) 
    172                     data_err = numpy.append(data_err, err) 
    173                 except: 
    174                     pass 
    175                     
    176         return data_x, data_y, data_err 
    177      
     161    import numpy, math, sys 
     162    # Read the data from the data file 
     163    data_x   = numpy.zeros(0) 
     164    data_y   = numpy.zeros(0) 
     165    data_err = numpy.zeros(0) 
     166    scale    = None 
     167    min_err  = 0.0 
     168    if not path == None: 
     169        input_f = open(path,'r') 
     170        buff    = input_f.read() 
     171        lines   = buff.split('\n') 
     172        for line in lines: 
     173            try: 
     174                toks = line.split() 
     175                x = float(toks[0]) 
     176                y = float(toks[1]) 
     177                if len(toks)>2: 
     178                    err = float(toks[2]) 
     179                else: 
     180                    if scale==None: 
     181                        scale = 0.05*math.sqrt(y) 
     182                        #scale = 0.05/math.sqrt(y) 
     183                        min_err = 0.01*y 
     184                    err = scale*math.sqrt(y)+min_err 
     185                    #err = 0 
     186                     
     187                data_x = numpy.append(data_x, x) 
     188                data_y = numpy.append(data_y, y) 
     189                data_err = numpy.append(data_err, err) 
     190            except: 
     191                pass 
     192                
     193    return data_x, data_y, data_err 
     194 
    178195 
    179196if __name__ == "__main__": 
Note: See TracChangeset for help on using the changeset viewer.