source: sasview/park_integration/Fitting.py @ 26bf293

ESS_GUIESS_GUI_DocsESS_GUI_batch_fittingESS_GUI_bumps_abstractionESS_GUI_iss1116ESS_GUI_iss879ESS_GUI_iss959ESS_GUI_openclESS_GUI_orderingESS_GUI_sync_sascalccostrafo411magnetic_scattrelease-4.1.1release-4.1.2release-4.2.2release_4.0.1ticket-1009ticket-1094-headlessticket-1242-2d-resolutionticket-1243ticket-1249ticket885unittest-saveload
Last change on this file since 26bf293 was 681f0dc, checked in by Gervaise Alina <gervyh@…>, 16 years ago

added flexibility on handler choice for fit (park). allow to print some update on the sansview

  • Property mode set to 100644
File size: 2.9 KB
Line 
1"""
2    @organization: Class Fit contains ScipyFit and ParkFit methods declaration
3    allows to create instance of type ScipyFit or ParkFit to perform either
4    a park fit or a scipy fit.
5"""
6#from sans.guitools.plottables import Data1D
7#from danse.common.plottools.plottables import Data1D
8#from Loader import Load
9from scipy import optimize
10from ScipyFitting import ScipyFit
11from ParkFitting import ParkFit
12
13
14class Fit:
15    """
16        Wrap class that allows to select the fitting type.this class
17        can be used as follow :
18       
19        from sans.fit.Fitting import Fit
20        fitter= Fit()
21        fitter.fit_engine('scipy') or fitter.fit_engine('park')
22        engine = fitter.returnEngine()
23        engine.set_data(data,Uid)
24        engine.set_param( model,model.name, pars)
25        engine.set_model(model,Uid)
26       
27        chisqr1, out1, cov1=engine.fit(pars,qmin,qmax)
28    """ 
29    def __init__(self, engine='scipy'):
30        """
31            self._engine will contain an instance of ScipyFit or ParkFit
32        """
33        self._engine=None
34        self.set_engine(engine)
35         
36    def set_engine(self,word):
37        """
38            Select the type of Fit
39            @param word: the keyword to select the fit type
40            @raise: if the user does not enter 'scipy' or 'park',
41             a valueError is rase
42        """
43        if word=="scipy":
44            self._engine=ScipyFit()
45        elif word=="park":
46            self._engine=ParkFit()
47        else:
48            raise ValueError, "enter the keyword scipy or park"
49       
50    def returnEngine(self):
51        """ @return self._engine""" 
52        return self._engine
53   
54    def fit(self,handler=None, qmin=None, qmax=None):
55        """Perform the fit """
56   
57        return self._engine.fit(handler, qmin,qmax)
58   
59    def set_model(self,model,Uid,pars=[]):
60         self._engine.set_model(model,Uid,pars)
61   
62    def set_data(self,data,Uid,qmin=None, qmax=None,ymin=None, ymax=None):
63        self._engine.set_data(data,Uid,qmin,qmax,ymin,ymax)
64       
65    def get_model(self,Uid):
66        """ return list of data"""
67        self._engine.get_model(Uid)
68
69    def remove_Fit_Problem(self,Uid):
70        """remove   fitarrange in Uid"""
71        self._engine.remove_Fit_Problem(Uid)
72       
73    def select_problem_for_fit(self,Uid,value):
74        """
75            select a couple of model and data at the Uid position in dictionary
76            and set in self.selected value to value
77            @param value: the value to allow fitting. can only have the value one or zero
78        """
79        self._engine.select_problem_for_fit(Uid,value)
80       
81    def get_problem_to_fit(self,Uid):
82        """
83            return the self.selected value of the fit problem of Uid
84           @param Uid: the Uid of the problem
85        """
86        return self._engine.get_problem_to_fit(Uid)
Note: See TracBrowser for help on using the repository browser.