Changeset fd5ac0d in sasview for src/sas/fit/ParkFitting.py
- Timestamp:
- Feb 13, 2015 3:26:52 AM (9 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:
- 7a04dbb
- Parents:
- b9a5f0e
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/fit/ParkFitting.py
r79492222 rfd5ac0d 3 3 4 4 """ 5 ParkFitting module contains Sa nsParameter,Model,Data5 ParkFitting module contains SasParameter,Model,Data 6 6 FitArrange, ParkFit,Parameter classes.All listed classes work together 7 7 to perform a simple fit with park optimizer. … … 25 25 from sas.fit.AbstractFitEngine import FResult 26 26 27 class Sa nsParameter(park.Parameter):28 """ 29 SA NS model parameters for use in the PARK fitting service.27 class SasParameter(park.Parameter): 28 """ 29 SAS model parameters for use in the PARK fitting service. 30 30 The parameter attribute value is redirected to the underlying 31 parameter value in the SA NS model.31 parameter value in the SAS model. 32 32 """ 33 33 def __init__(self, name, model, data): … … 100 100 class ParkModel(park.Model): 101 101 """ 102 PARK wrapper for SA NS models.103 """ 104 def __init__(self, sa ns_model, sans_data=None, **kw):105 """ 106 :param sa ns_model: the sas model to wrap using park interface102 PARK wrapper for SAS models. 103 """ 104 def __init__(self, sas_model, sas_data=None, **kw): 105 """ 106 :param sas_model: the sas model to wrap using park interface 107 107 108 108 """ 109 109 park.Model.__init__(self, **kw) 110 self.model = sa ns_model111 self.name = sa ns_model.name112 self.data = sa ns_data110 self.model = sas_model 111 self.name = sas_model.name 112 self.data = sas_data 113 113 #list of parameters names 114 self.sa nsp = sans_model.getParamList()114 self.sasp = sas_model.getParamList() 115 115 #list of park parameter 116 self.parkp = [Sa nsParameter(p, sans_model, sans_data) for p in self.sansp]116 self.parkp = [SasParameter(p, sas_model, sas_data) for p in self.sasp] 117 117 #list of parameter set 118 self.parameterset = park.ParameterSet(sa ns_model.name, pars=self.parkp)118 self.parameterset = park.ParameterSet(sas_model.name, pars=self.parkp) 119 119 self.pars = [] 120 120 … … 176 176 177 177 178 class Sa nsFitResult(fitresult.FitResult):178 class SasFitResult(fitresult.FitResult): 179 179 def __init__(self, *args, **kwrds): 180 180 fitresult.FitResult.__init__(self, *args, **kwrds) … … 182 182 self.inputs = [] 183 183 184 class Sa nsFitSimplex(FitSimplex):184 class SasFitSimplex(FitSimplex): 185 185 """ 186 186 Local minimizer using Nelder-Mead simplex algorithm. … … 216 216 # Need to make our own copy of the fit results so that the 217 217 # values don't get stomped on by the next fit iteration. 218 fitpars = [Sa nsFitParameter(pars[i].name,pars[i].range,v, pars[i].model, pars[i].data)218 fitpars = [SasFitParameter(pars[i].name,pars[i].range,v, pars[i].model, pars[i].data) 219 219 for i,v in enumerate(result.x)] 220 res = Sa nsFitResult(fitpars, result.calls, result.fx)220 res = SasFitResult(fitpars, result.calls, result.fx) 221 221 res.inputs = [(pars[i].model, pars[i].data) for i,v in enumerate(result.x)] 222 222 # Compute the parameter uncertainties from the jacobian … … 224 224 return res 225 225 226 class Sa nsFitter(Fitter):226 class SasFitter(Fitter): 227 227 """ 228 228 """ … … 243 243 handler.done = False 244 244 self.handler = handler 245 fitpars = [Sa nsFitParameter(pars[i].name, pars[i].range, v,245 fitpars = [SasFitParameter(pars[i].name, pars[i].range, v, 246 246 pars[i].model, pars[i].data) 247 247 for i,v in enumerate(x0)] … … 252 252 self._fit(fitness, x0, bounds) 253 253 254 class Sa nsFitMC(SansFitter):254 class SasFitMC(SasFitter): 255 255 """ 256 256 Monte Carlo optimizer. … … 258 258 This implements `park.fit.Fitter`. 259 259 """ 260 localfit = Sa nsFitSimplex()260 localfit = SasFitSimplex() 261 261 start_points = 10 262 262 def __init__(self, localfit, start_points=10): … … 276 276 raise ValueError, "Fit did not converge.\n" 277 277 278 class Sa nsPart(Part):278 class SasPart(Part): 279 279 """ 280 280 Part of a fitting assembly. Part holds the model itself and … … 318 318 self.model, self.data = fitness[0], fitness[1] 319 319 320 class Sa nsFitParameter(FitParameter):320 class SasFitParameter(FitParameter): 321 321 """ 322 322 Fit result for an individual parameter. … … 363 363 self.parts = [] 364 364 for m in models: 365 self.parts.append(Sa nsPart(m))365 self.parts.append(SasPart(m)) 366 366 self.curr_thread = curr_thread 367 367 self.chisq = None … … 390 390 # Convert to fitparameter a object 391 391 392 fitpars = [Sa nsFitParameter(p.path,p.range,p.value, p.model, p.data)392 fitpars = [SasFitParameter(p.path,p.range,p.value, p.model, p.data) 393 393 for p in self._fitparameters] 394 394 #print "fitpars", fitpars … … 399 399 Extend result from the fit with the calculated parameters. 400 400 """ 401 calcpars = [Sa nsFitParameter(p.path,p.range,p.value, p.model, p.data)401 calcpars = [SasFitParameter(p.path,p.range,p.value, p.model, p.data) 402 402 for p in self.parameterset.computed] 403 403 result.parameters += calcpars … … 493 493 def create_assembly(self, curr_thread, reset_flag=False): 494 494 """ 495 Extract sa nsmodel and sansdata from495 Extract sasmodel and sasdata from 496 496 self.FitArrangelist ={Uid:FitArrange} 497 497 Create parkmodel and park data ,form a list couple of parkmodel … … 562 562 """ 563 563 self.create_assembly(curr_thread=curr_thread, reset_flag=reset_flag) 564 localfit = Sa nsFitSimplex()564 localfit = SasFitSimplex() 565 565 localfit.ftol = ftol 566 566 localfit.xtol = 1e-6 567 567 568 568 # See `park.fitresult.FitHandler` for details. 569 fitter = Sa nsFitMC(localfit=localfit, start_points=1)569 fitter = SasFitMC(localfit=localfit, start_points=1) 570 570 if handler == None: 571 571 handler = fitresult.ConsoleUpdate(improvement_delta=0.1) … … 584 584 for m in self.problem.parts: 585 585 residuals, theory = m.fitness.residuals() 586 small_result = FResult(model=m.model, data=m.data.sa ns_data)586 small_result = FResult(model=m.model, data=m.data.sas_data) 587 587 small_result.fitter_id = self.fitter_id 588 588 small_result.theory = theory
Note: See TracChangeset
for help on using the changeset viewer.