Ignore:
Timestamp:
Apr 29, 2009 10:00:22 AM (16 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:
d37ba31
Parents:
3c939e5
Message:

compute residual rejecting singular point for 1D fitting

File:
1 edited

Legend:

Unmodified
Added
Removed
  • park_integration/AbstractFitEngine.py

    r6963aa3 rd5b488b  
    257257            dy= copy.deepcopy(self.dy) 
    258258            dy= numpy.asarray(dy) 
     259      
    259260        dy[dy==0]=1 
    260         idx = (x>=self.qmin) & (x <= self.qmax) 
     261        #idx = (x>=self.qmin) & (x <= self.qmax) 
    261262   
    262263        # Compute theory data f(x) 
    263         fx = numpy.zeros(len(x)) 
    264         fx[idx] = numpy.asarray([fn(v) for v in x[idx]]) 
    265          
    266         # Smear theory data 
    267       
     264        #fx = numpy.zeros(len(x)) 
     265        tempy=[] 
     266        tempfx=[] 
     267        tempdy=[] 
     268        #fx[idx] = numpy.asarray([fn(v) for v in x[idx]]) 
     269        for i_x in  range(len(x)): 
     270            try: 
     271                if self.qmin <=x[i_x] and x[i_x]<=self.qmax: 
     272                    value= fn(x[i_x]) 
     273                    tempfx.append( value) 
     274                    tempy.append(y[i_x]) 
     275                    tempdy.append(dy[i_x]) 
     276            except: 
     277                ## skip error for model.run(x) 
     278                pass 
     279                  
     280        ## Smear theory data 
    268281        if self.smearer is not None: 
    269             fx = self.smearer(fx) 
    270         
    271         # Sanity check 
    272         if numpy.size(dy) < numpy.size(x): 
     282            tempfx = self.smearer(tempfx) 
     283        newy= numpy.asarray(tempy) 
     284        newfx= numpy.asarray(tempfx) 
     285        newdy= numpy.asarray(tempdy) 
     286        
     287        
     288        ## Sanity check 
     289        if numpy.size(newdy)!= numpy.size(newfx): 
    273290            raise RuntimeError, "FitData1D: invalid error array" 
    274         return (y[idx] - fx[idx])/dy[idx] 
     291        #return (y[idx] - fx[idx])/dy[idx] 
     292        
     293        return (newy- newfx)/newdy 
    275294      
    276295   
     
    395414        self.model.setParams(self.paramlist,params) 
    396415        self.res= self.data.residuals(self.model.eval) 
    397         #if self.curr_thread != None : 
    398         #    try: 
    399         #        self.curr_thread.isquit() 
    400         #    except: 
    401         #        raise FitAbort,"stop leastsqr optimizer"  
     416        if self.curr_thread != None : 
     417            try: 
     418                self.curr_thread.isquit() 
     419            except: 
     420                raise FitAbort,"stop leastsqr optimizer"  
     421                 
    402422        return self.res 
    403423     
Note: See TracChangeset for help on using the changeset viewer.