Changeset 6f73a08 in sasview for sansview/perspectives/fitting/fitpage.py
- Timestamp:
- Oct 9, 2008 2:41:05 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:
- 126a761
- Parents:
- 385d464
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sansview/perspectives/fitting/fitpage.py
r948add7 r6f73a08 140 140 # flag to check if the user has selected a new model in the combox box 141 141 self.model_hasChanged=False 142 #flag to check if the user has selected a new data 143 self.data_hasChanged=False 142 144 143 #dictionary of model name and model class 145 144 self.model_list_box={} 146 # Data1D to make a deep comparison between 2 Data1D for checking data 147 #change 148 from sans.guitools.plottables import Data1D 149 self.prevData = Data1D(x=[], y=[],dx=None, dy=None) 150 self.prevData.name= None 145 # comparison between 2 group_id for checking data changes 146 self.prev_group_id= None 151 147 152 148 self.data=None … … 191 187 self.GrandParent.GetSizer().Layout() 192 188 193 194 def copy_data(self,dataset): 195 """ 196 copy a select data in the panel to compared with the previous selected data 197 @param dataset: the data selected 198 @note : everything a data is selected, the panel check is it is different 199 from the previous selected data 200 """ 201 try: 202 if dataset !=None: 203 self.prevData.x= copy.deepcopy(dataset.x) 204 self.prevData.y= copy.deepcopy(dataset.y) 205 self.prevData.name=dataset.name 206 if dataset.dy==None: 207 self.prevData.dy= copy.deepcopy(dataset.dy) 208 except: 209 raise ValueError, " copy_data: cannot copy data" 210 189 211 190 212 191 def onClose(self,event): … … 224 203 qmin = float(self.xmin.GetValue()) 225 204 qmax = float(self.xmax.GetValue()) 226 x,y,dy = [numpy.asarray(v) for v in (self.data.x,self.data.y,self.data.dy)] 227 if qmin==None and qmax==None: 228 fx =numpy.asarray([self.model.run(v) for v in x]) 229 res=(y - fx)/dy 230 else: 231 idx = (x>= qmin) & (x <=qmax) 232 fx = numpy.asarray([self.model.run(item)for item in x[idx ]]) 233 res= (y[idx] - fx)/dy[idx] 205 #x,y,dy = [numpy.asarray(v) for v in (self.data.x,self.data.y,self.data.dy)] 206 #if qmin==None and qmax==None: 207 # fx =numpy.asarray([self.model.run(v) for v in x]) 208 # res=(y - fx)/dy 209 #else: 210 # idx = (x>= qmin) & (x <=qmax) 211 # fx = numpy.asarray([self.model.run(item)for item in x[idx ]]) 212 # res= (y[idx] - fx)/dy[idx] 213 self.data.setFitRange(qmin,qmax) 214 res=self.data.residuals(self.model.runXY) 234 215 sum=0 235 216 for item in res: … … 304 285 flag=self.checkFitRange() 305 286 if flag==True and self.model!=None: 306 self.manager.redraw_model(float(self.xmin.GetValue())\ 287 print"fit page",self.xmin.GetValue(),self.xmax.GetValue() 288 self.manager.redraw_model(float(self.xmin.GetValue())\ 307 289 ,float(self.xmax.GetValue())) 308 309 290 except: 291 310 292 wx.PostEvent(self.parent.GrandParent, StatusEvent(status=\ 311 293 "Drawing Error:wrong value entered %s"% sys.exc_value)) … … 322 304 valueMax = self.xmax.GetValue() 323 305 # Check for possible values entered 324 306 print "fitpage: checkfitrange:",valueMin,valueMax 325 307 try: 326 308 if (float(valueMax)> float(valueMin)): … … 340 322 return flag 341 323 342 def check_data_change(self,dataset): 343 """ 344 check if data selected has changed and set flag self.data_hasChanged 345 has true is changed or false is unchanged 346 @param dataset: data selected 347 """ 348 self.data_hasChanged=False 349 if self.prevData.__class__ !=dataset.__class__: 350 self.data_hasChanged=True 351 352 elif self.prevData.name != dataset.name: 353 self.data_hasChanged=True 354 355 elif len(self.prevData.x) != len(self.prevData.y): 356 self.data_hasChanged=True 357 358 else: 359 for i in range(len(dataset.x)): 360 if self.prevData.x[i] !=dataset.x[i]: 361 self.data_hasChanged=True 362 break 363 364 if self.prevData.y[i] !=dataset.y[i]: 365 self.data_hasChanged=True 366 break 367 368 if dataset.dy !=None: 369 if self.prevData.dy[i] !=dataset.dy[i]: 370 self.data_hasChanged=True 371 break 372 324 373 325 374 326 def set_data_name(self,dataset): … … 379 331 for xmin and xmax range sizer 380 332 """ 381 self.check_data_change(dataset)382 if self. data_hasChanged==True:333 334 if self.prev_group_id !=dataset.data.group_id: 383 335 self._DataNameEnter() 384 self.data =dataset385 self. copy_data(dataset)336 self.data = dataset 337 self.prev_group_id=dataset.data.group_id 386 338 #Displaying Data information 387 self.DataSource.SetValue(str(dataset. name))388 self._xaxis,self._xunit=dataset. get_xaxis()339 self.DataSource.SetValue(str(dataset.data.name)) 340 self._xaxis,self._xunit=dataset.data.get_xaxis() 389 341 self.text4_3.SetLabel(self._xaxis+"["+self._xunit+"]") 390 342 self.text4_1.Show() 391 343 self.text4_2.Show() 392 344 self.text4_3.Show() 393 394 self.xmin.SetValue(format_number(min(dataset.x))) 395 self.xmin.Show() 396 397 self.xmax.SetValue(format_number(max(dataset.x))) 398 self.xmax.Show() 399 345 if not dataset.data.__class__.__name__=='Data2D': 346 self.xmin.SetValue(format_number(min(dataset.data.x))) 347 self.xmin.Show() 348 self.xmax.SetValue(format_number(max(dataset.data.x))) 349 self.xmax.Show() 350 else: 351 self.xmin.SetValue(format_number(numpy.min(dataset.data.image))) 352 self.xmin.Show() 353 self.xmax.SetValue(format_number(numpy.max(dataset.data.image))) 354 self.xmax.Show() 400 355 if ((len(self.param_toFit ) >0) and self.DataSource.GetValue()and \ 401 356 self.modelbox.GetValue() and (self.model_hasChanged ==False)):
Note: See TracChangeset
for help on using the changeset viewer.