source: sasview/park_integration/Fitting.py @ 7116b6e0

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 7116b6e0 was aa36f96, checked in by Gervaise Alina <gervyh@…>, 14 years ago

working on documentation

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