Changeset 9e85792 in sasview for park_integration/ParkFitting.py
- Timestamp:
- Jul 2, 2008 5:37:38 PM (16 years ago)
- 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:
- 96510c8
- Parents:
- c125e0c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
park_integration/ParkFitting.py
r4408fb0 r9e85792 11 11 #from sans.guitools import plottables 12 12 from Loader import Load 13 13 from park import expression 14 14 class SansParameter(park.Parameter): 15 15 """ … … 20 20 def __init__(self, name, model): 21 21 self._model, self._name = model,name 22 self.set(model.getParam(name)) 22 23 def _getvalue(self): return self._model.getParam(self.name) 23 def _setvalue(self,value): self._model.setParam(self.name, value) 24 def _setvalue(self,value): 25 if numpy.isnan(value): 26 print "setting %s.%s to"%(self._model.name,self.name),value 27 self._model.setParam(self.name, value) 24 28 value = property(_getvalue,_setvalue) 25 29 def _getrange(self): … … 130 134 """ 131 135 mylist=[] 136 listmodel=[] 132 137 for k,value in self.fitArrangeList.iteritems(): 133 couple=() 134 model=value.get_model() 135 parameters= self.set_param(model, pars) 136 model = Model(model) 138 #couple=() 139 sansmodel=value.get_model() 140 141 #parameters= self.set_param(model,model.name, pars) 142 parkmodel = Model(sansmodel) 137 143 #print "model created",model.parameterset[0].value,model.parameterset[1].value 138 144 # Make all parameters fitting parameters 139 for p in model.parameterset: 140 p.set([-numpy.inf,numpy.inf]) 141 #p.set([-10,10]) 145 146 147 for p in parkmodel.parameterset: 148 #p.range([-numpy.inf,numpy.inf]) 149 # Convert parameters with initial values into fitted parameters 150 # spanning all possible values. Parameters which are expressions 151 # will remain as expressions. 152 if p.isfixed(): 153 p.set([-numpy.inf,numpy.inf]) 154 142 155 Ldata=value.get_data() 143 156 data=self._concatenateData(Ldata) 144 #print "this data",data 145 #print "data.residuals in createProblem",Ldata[0].residuals 146 #print "data.residuals in createProblem",data.residuals 147 #couple1=(model,Ldata[0]) 148 #mylist.append(couple1) 149 couple=(model,data) 157 data1=Data(data) 158 159 couple=(parkmodel,data1) 150 160 mylist.append(couple) 151 161 #print mylist … … 153 163 #return model,data 154 164 155 def fit(self,pars , qmin=None, qmax=None):165 def fit(self,pars=None, qmin=None, qmax=None): 156 166 """ 157 167 Do the fit 158 168 """ 159 160 modelList=self.createProblem(pars) 161 #model,data=self.createProblem() 162 #fitness=assembly.Fitness(model,data) 163 169 170 print "starting ParkFit.fit()" 171 modelList=self.createProblem() 164 172 problem = park.Assembly(modelList) 165 print "problem :",problem[0].parameterset,problem[0].parameterset.fitted 173 pars=problem.fit_parameters() 174 print "About to call eval",pars 175 print "initial",[p.value for p in pars] 176 problem.eval() 177 #print "M2.B",problem.parameterset['M2.B'].expression,problem.parameterset['M2.B'].value 178 #print "problem :",problem[0].parameterset,problem[0].parameterset.fitted 179 166 180 #problem[0].parameterset['A'].set([0,1000]) 167 181 #print "problem :",problem[0].parameterset,problem[0].parameterset.fitted 168 182 fit.fit(problem, handler= fitresult.ConsoleUpdate(improvement_delta=0.1)) 169 #fit.fit(problem, handler= fitresult.ConsoleUpdate(improvement_delta=0.1))170 183 171 184 … … 182 195 def set_data(self,data,Uid): 183 196 """ Receive plottable and create a list of data to fit""" 184 data=Data(data)197 185 198 if self.fitArrangeList.has_key(Uid): 186 199 self.fitArrangeList[Uid].add_data(data) … … 194 207 return self.fitArrangeList[Uid] 195 208 196 def set_param(self,model, pars):209 def set_param(self,model,name, pars): 197 210 """ Recieve a dictionary of parameter and save it """ 198 211 parameters=[] … … 200 213 raise ValueError, "Cannot set parameters for empty model" 201 214 else: 202 #for key ,value in pars:215 model.name=name 203 216 for key, value in pars.iteritems(): 204 217 param = Parameter(model, key, value)
Note: See TracChangeset
for help on using the changeset viewer.