Changeset c77d859 in sasview for sansview/perspectives/fitting/model_thread.py
- Timestamp:
- Mar 20, 2009 8:26:01 PM (15 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:
- 20d30e9
- Parents:
- f2776f6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sansview/perspectives/fitting/model_thread.py
rbb18ef1 rc77d859 90 90 """ 91 91 92 def __init__(self, x, y, model,qmin, qmax,qstep,92 def __init__(self, x, y, data,model,qmin, qmax,qstep, 93 93 completefn = None, 94 94 updatefn = None, … … 101 101 worktime) 102 102 self.qmin= qmin 103 self.qmax= qmax103 self.qmax= qmax 104 104 self.qstep= qstep 105 105 self.x = x 106 106 self.y = y 107 self.data= data 107 108 ## the model on to calculate 108 109 self.model = model … … 128 129 y = self.y 129 130 output = numpy.zeros((len(x),len(y))) 130 131 center_x=0 132 center_y=0 131 132 if self.qmin==None: 133 self.qmin = 0 134 if self.qmax== None: 135 if data ==None: 136 return 137 newx= math.pow(max(math.fabs(data.xmax),math.fabs(data.xmin)),2) 138 newy= math.pow(max(math.fabs(data.ymax),math.fabs(data.ymin)),2) 139 self.qmax=math.sqrt( newx + newy ) 133 140 134 141 self.starttime = time.time() 135 142 136 137 143 lx = len(self.x) 138 139 144 for i_x in range(len(self.x)): 140 145 # Check whether we need to bail out … … 143 148 144 149 for i_y in range(int(len(self.y))): 145 146 if (self.x[i_x]*self.x[i_x]+self.y[i_y]*self.y[i_y]) \147 < self.qmin * self.qmin:148 149 output[i_x] [i_y]= 0150 radius = self.x[i_x]*self.x[i_x]+self.y[i_y]*self.y[i_y] 151 152 if self.qmin <= radius or radius<= self.qmax: 153 value = self.model.runXY( [self.x[i_x], self.y[i_y]] ) 154 output[i_x] [i_y]=value 150 155 else: 151 value = self.model.runXY([self.x[i_x]-center_x, self.y[i_y]-center_y]) 152 output[i_x] [i_y]=value 156 output[i_x] [i_y]=0 153 157 154 158 elapsed = time.time()-self.starttime 155 self.complete( 156 output=output, elapsed=elapsed,model= self.model, 157 qmin= self.qmin, 158 qmax=self.qmax, 159 qstep=self.qstep) 159 self.complete( image = output, 160 data = self.data , 161 model = self.model, 162 elapsed = elapsed, 163 qmin = self.qmin, 164 qmax =self.qmax, 165 qstep = self.qstep ) 160 166 161 167 … … 256 262 qmin=None, 257 263 qmax=None, 258 name=None,259 264 smearer=None, 260 265 completefn = None, … … 272 277 self.qmax= qmax 273 278 self.model = model 274 self.name= name275 279 self.smearer= smearer 276 280 self.starttime = 0 277 281 278 282 def compute(self): 283 """ 284 Compute model 1d value given qmin , qmax , x value 285 """ 279 286 import numpy 280 287 281 288 output = numpy.zeros(len(self.x)) 282 if self.qmin==None: 283 self.qmin= min(self.x) 284 if self.qmax==None: 285 self.qmax= max(self.x) 286 289 287 290 self.starttime = time.time() 288 291 … … 294 297 value = self.model.run(self.x[i_x]) 295 298 output[i_x] = value 299 296 300 if self.smearer!=None: 297 301 output = self.smearer(output) 298 302 303 299 304 elapsed = time.time()-self.starttime 300 self.complete(x= self.x, output=output,301 elapsed=elapsed, name=self.name, data=self.data)305 self.complete(x= self.x, y= output, 306 elapsed=elapsed, model= self.model, data=self.data) 302 307 303 308
Note: See TracChangeset
for help on using the changeset viewer.