Changeset 7e98655 in sasview for src/sas/sasgui/perspectives/fitting
- Timestamp:
- Mar 7, 2017 9:50:13 AM (8 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, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- d85f1d8a
- Parents:
- 09f2328
- Location:
- src/sas/sasgui/perspectives/fitting
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sasgui/perspectives/fitting/basepage.py
r7a5aedd r7e98655 120 120 self.dxw = None 121 121 # pinhole smear 122 self.dx_min = None 123 self.dx_max = None 122 self.dx_percent = None 124 123 # smear attrbs 125 124 self.enable_smearer = None … … 849 848 self.state.pinhole_smearer = \ 850 849 copy.deepcopy(self.pinhole_smearer.GetValue()) 851 self.state.dx_max = copy.deepcopy(self.dx_max) 852 self.state.dx_min = copy.deepcopy(self.dx_min) 850 self.state.dx_percent = copy.deepcopy(self.dx_percent) 853 851 self.state.dxl = copy.deepcopy(self.dxl) 854 852 self.state.dxw = copy.deepcopy(self.dxw) … … 1247 1245 # we have two more options for smearing 1248 1246 if self.pinhole_smearer.GetValue(): 1249 self.dx_min = state.dx_min 1250 self.dx_max = state.dx_max 1251 if self.dx_min is not None: 1252 self.smear_pinhole_min.SetValue(str(self.dx_min)) 1253 if self.dx_max is not None: 1254 self.smear_pinhole_max.SetValue(str(self.dx_max)) 1247 self.dx_percent = state.dx_max 1248 if self.dx_percent is not None: 1249 self.smear_pinhole_max.SetValue(str(self.dx_percent)) 1255 1250 self.onPinholeSmear(event=None) 1256 1251 elif self.slit_smearer.GetValue(): -
src/sas/sasgui/perspectives/fitting/fitpage.py
r8c0d9eb r7e98655 29 29 _BOX_WIDTH = 76 30 30 _DATA_BOX_WIDTH = 300 31 SMEAR_SIZE_L = 0.0032 31 SMEAR_SIZE_H = 0.00 33 32 CUSTOM_MODEL = 'Plugin Models' … … 210 209 "Please enter only the value of interest to customize smearing..." 211 210 smear_message_new_psmear = \ 212 "Please enter both; the dQ will be generated by interpolation..."211 "Please enter a fixed percentage to be applied to all Q values..." 213 212 smear_message_2d_x_title = "<dQp>[1/A]:" 214 213 smear_message_2d_y_title = "<dQs>[1/A]:" 215 smear_message_pinhole_min_title = "dQ_low[1/A]:" 216 smear_message_pinhole_max_title = "dQ_high[1/A]:" 214 smear_message_pinhole_percent_title = "dQ[%]:" 217 215 smear_message_slit_height_title = "Slit height[1/A]:" 218 216 smear_message_slit_width_title = "Slit width[1/A]:" … … 307 305 308 306 # textcntrl for custom resolution 309 self.smear_pinhole_max = ModelTextCtrl(self, wx.ID_ANY, 310 size=(_BOX_WIDTH - 25, 20), 311 style=wx.TE_PROCESS_ENTER, 312 text_enter_callback=self.onPinholeSmear) 313 self.smear_pinhole_min = ModelTextCtrl(self, wx.ID_ANY, 314 size=(_BOX_WIDTH - 25, 20), 315 style=wx.TE_PROCESS_ENTER, 316 text_enter_callback=self.onPinholeSmear) 307 self.smear_pinhole_percent = ModelTextCtrl(self, wx.ID_ANY, 308 size=(_BOX_WIDTH - 25, 20), 309 style=wx.TE_PROCESS_ENTER, 310 text_enter_callback= 311 self.onPinholeSmear) 317 312 self.smear_slit_height = ModelTextCtrl(self, wx.ID_ANY, 318 313 size=(_BOX_WIDTH - 25, 20), … … 333 328 334 329 # set default values for smear 335 self.smear_pinhole_max.SetValue(str(self.dx_max)) 336 self.smear_pinhole_min.SetValue(str(self.dx_min)) 330 self.smear_pinhole_percent.SetValue(str(self.dx_percent)) 337 331 self.smear_slit_height.SetValue(str(self.dxl)) 338 332 self.smear_slit_width.SetValue(str(self.dxw)) … … 426 420 self.smear_description_2d_y.SetToolTipString( 427 421 " dQs(perpendicular) in q_phi direction.") 428 self.smear_description_pin_min = wx.StaticText(self, wx.ID_ANY, 429 smear_message_pinhole_min_title, style=wx.ALIGN_LEFT) 430 self.smear_description_pin_max = wx.StaticText(self, wx.ID_ANY, 431 smear_message_pinhole_max_title, style=wx.ALIGN_LEFT) 422 self.smear_description_pin_percent = wx.StaticText(self, wx.ID_ANY, 423 smear_message_pinhole_percent_title, 424 style=wx.ALIGN_LEFT) 432 425 self.smear_description_slit_height = wx.StaticText(self, wx.ID_ANY, 433 426 smear_message_slit_height_title, style=wx.ALIGN_LEFT) … … 453 446 self.sizer_new_smear.Add((15, -1)) 454 447 self.sizer_new_smear.Add(self.smear_description_2d_x, 0, wx.CENTER, 10) 455 self.sizer_new_smear.Add(self.smear_description_pin_min,456 0, wx.CENTER, 10)457 448 self.sizer_new_smear.Add(self.smear_description_slit_height, 458 449 0, wx.CENTER, 10) 459 450 460 self.sizer_new_smear.Add(self.smear_pinhole_min, 0, wx.CENTER, 10)461 451 self.sizer_new_smear.Add(self.smear_slit_height, 0, wx.CENTER, 10) 462 452 self.sizer_new_smear.Add(self.smear_data_left, 0, wx.CENTER, 10) … … 464 454 self.sizer_new_smear.Add(self.smear_description_2d_y, 465 455 0, wx.CENTER, 10) 466 self.sizer_new_smear.Add(self.smear_description_pin_ max,456 self.sizer_new_smear.Add(self.smear_description_pin_percent, 467 457 0, wx.CENTER, 10) 468 458 self.sizer_new_smear.Add(self.smear_description_slit_width, 469 459 0, wx.CENTER, 10) 470 460 471 self.sizer_new_smear.Add(self.smear_pinhole_ max, 0, wx.CENTER, 10)461 self.sizer_new_smear.Add(self.smear_pinhole_percent, 0, wx.CENTER, 10) 472 462 self.sizer_new_smear.Add(self.smear_slit_width, 0, wx.CENTER, 10) 473 463 self.sizer_new_smear.Add(self.smear_data_right, 0, wx.CENTER, 10) … … 1581 1571 if self.dxw is None: 1582 1572 self.dxw = "" 1583 if self.dx_min is None: 1584 self.dx_min = SMEAR_SIZE_L 1585 if self.dx_max is None: 1586 self.dx_max = SMEAR_SIZE_H 1573 if self.dx_percent is None: 1574 self.dx_percent = SMEAR_SIZE_H 1587 1575 1588 1576 def _get_smear_info(self): … … 1646 1634 self.smear_description_2d_y.Show(True) 1647 1635 if self.pinhole_smearer.GetValue(): 1648 self.smear_pinhole_min.Show(True) 1649 self.smear_pinhole_max.Show(True) 1636 self.smear_pinhole_percent.Show(True) 1650 1637 # smear from data 1651 1638 elif self.enable_smearer.GetValue(): … … 1658 1645 self.smear_description_slit_width.Show(True) 1659 1646 elif self.smear_type == 'Pinhole': 1660 self.smear_description_pin_min.Show(True) 1661 self.smear_description_pin_max.Show(True) 1647 self.smear_description_pin_percent.Show(True) 1662 1648 self.smear_description_smear_type.Show(True) 1663 1649 self.smear_description_type.Show(True) … … 1668 1654 if self.smear_type == 'Pinhole': 1669 1655 self.smear_message_new_p.Show(True) 1670 self.smear_description_pin_min.Show(True) 1671 self.smear_description_pin_max.Show(True) 1672 1673 self.smear_pinhole_min.Show(True) 1674 self.smear_pinhole_max.Show(True) 1656 self.smear_description_pin_percent.Show(True) 1657 1658 self.smear_pinhole_percent.Show(True) 1675 1659 # custom slit smear 1676 1660 elif self.slit_smearer.GetValue(): … … 1697 1681 self.smear_data_left.Hide() 1698 1682 self.smear_data_right.Hide() 1699 self.smear_description_pin_min.Hide() 1700 self.smear_pinhole_min.Hide() 1701 self.smear_description_pin_max.Hide() 1702 self.smear_pinhole_max.Hide() 1683 self.smear_description_pin_percent.Hide() 1684 self.smear_pinhole_percent.Hide() 1703 1685 self.smear_description_slit_height.Hide() 1704 1686 self.smear_slit_height.Hide() … … 2249 2231 # event case of radio button 2250 2232 if tcrtl.GetValue(): 2251 self.dx_min = 0.0 2252 self.dx_max = 0.0 2233 self.dx_percent = 0.0 2253 2234 is_new_pinhole = True 2254 2235 else: … … 2287 2268 """ 2288 2269 # get the values 2289 pin_min = self.smear_pinhole_min.GetValue() 2290 pin_max = self.smear_pinhole_max.GetValue() 2291 2292 # Check changes in slit width 2270 pin_percent = self.smear_pinhole_percent.GetValue() 2271 2272 # Check changes in slit heigth 2293 2273 try: 2294 dx_ min = float(pin_min)2274 dx_percent = float(pin_percent) 2295 2275 except: 2296 2276 return True 2297 if self.dx_min != dx_min: 2298 return True 2299 2300 # Check changes in slit heigth 2301 try: 2302 dx_max = float(pin_max) 2303 except: 2304 return True 2305 if self.dx_max != dx_max: 2277 if self.dx_percent != dx_percent: 2306 2278 return True 2307 2279 return False … … 2329 2301 msg = None 2330 2302 2331 get_pin_min = self.smear_pinhole_min 2332 get_pin_max = self.smear_pinhole_max 2333 2334 if not check_float(get_pin_min): 2335 get_pin_min.SetBackgroundColour("pink") 2336 msg = "Model Error:wrong value entered!!!" 2337 elif not check_float(get_pin_max): 2338 get_pin_max.SetBackgroundColour("pink") 2303 get_pin_percent = self.smear_pinhole_percent 2304 2305 if not check_float(get_pin_percent): 2306 get_pin_percent.SetBackgroundColour("pink") 2339 2307 msg = "Model Error:wrong value entered!!!" 2340 2308 else: 2341 2309 if len_data < 2: 2342 2310 len_data = 2 2343 self.dx_min = float(get_pin_min.GetValue()) 2344 self.dx_max = float(get_pin_max.GetValue()) 2345 if self.dx_min < 0: 2346 get_pin_min.SetBackgroundColour("pink") 2311 self.dx_percent = float(get_pin_percent.GetValue()) / 100 2312 if self.dx_percent < 0: 2313 get_pin_percent.SetBackgroundColour("pink") 2347 2314 msg = "Model Error:This value can not be negative!!!" 2348 elif self.dx_max < 0: 2349 get_pin_max.SetBackgroundColour("pink") 2350 msg = "Model Error:This value can not be negative!!!" 2351 elif self.dx_min is not None and self.dx_max is not None: 2315 elif self.dx_percent is not None: 2352 2316 if self._is_2D(): 2353 data.dqx_data[data.dqx_data == 0] = self.dx_min2354 data.dqy_data[data.dqy_data == 0] = self.dx_max2355 elif self.dx_min == self.dx_max:2356 data.dx[data.dx == 0] = self.dx_min2317 data.dqx_data[data.dqx_data == 0] = \ 2318 self.dx_percent * data.qx_data 2319 data.dqy_data[data.dqy_data == 0] = \ 2320 self.dx_percent * data.qy_data 2357 2321 else: 2358 step = (self.dx_max - self.dx_min) / (len_data - 1) 2359 data.dx = numpy.arange(self.dx_min, 2360 self.dx_max + step / 1.1, 2361 step) 2362 elif self.dx_min is not None: 2363 if self._is_2D(): 2364 data.dqx_data[data.dqx_data == 0] = self.dx_min 2365 else: 2366 data.dx[data.dx == 0] = self.dx_min 2367 elif self.dx_max is not None: 2368 if self._is_2D(): 2369 data.dqy_data[data.dqy_data == 0] = self.dx_max 2370 else: 2371 data.dx[data.dx == 0] = self.dx_max 2322 data.dx = self.dx_percent * data.x 2372 2323 self.current_smearer = smear_selection(data, self.model) 2373 2324 # 2D need to set accuracy … … 2379 2330 wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 2380 2331 else: 2381 get_pin_min.SetBackgroundColour("white") 2382 get_pin_max.SetBackgroundColour("white") 2332 get_pin_percent.SetBackgroundColour("white") 2383 2333 # set smearing value whether or not the data contain the smearing info 2384 2334
Note: See TracChangeset
for help on using the changeset viewer.