Changeset a4bd2ac in sasview
- Timestamp:
- Jun 30, 2008 2:18:57 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:
- e96a852
- Parents:
- 9a23253e
- Location:
- prview
- Files:
-
- 6 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
prview/config_removed.py
rf3d51f6 ra4bd2ac 6 6 # Version of the application 7 7 __appname__ = "PrView" 8 __version__ = '0.1. 0'8 __version__ = '0.1.1' 9 9 __download_page__ = 'http://danse.chem.utk.edu' 10 10 -
prview/license.txt
rf3d51f6 ra4bd2ac 7 7 the following paper in your publication: 8 8 9 P. Butler, M. Doucet, G. Alina, J. Zhou, "SANS analysis software",10 to be published.9 P. Butler, M. Doucet, G. Alina, R. Cortes Hernandez, J. Zhou, 10 "SANS analysis software", to be published. 11 11 12 12 See the DANSE project web site for license information: 13 13 http://wiki.cacr.caltech.edu/danse/index.php/Main_Page 14 14 15 copyright 200 7, University of Tennessee for the DANSE project15 copyright 2008, University of Tennessee for the DANSE project -
prview/local_config.py
r4a5de6f ra4bd2ac 6 6 # Version of the application 7 7 __appname__ = "PrView" 8 __version__ = '0.1. 0'8 __version__ = '0.1.1' 9 9 __download_page__ = 'http://danse.chem.utk.edu' 10 10 -
prview/perspectives/pr/inversion_panel.py
r3fd1ebc ra4bd2ac 122 122 123 123 ## Data file TextCtrl 124 self.data_file = None125 self.plot_data = None126 self.nfunc_ctl = None127 self.alpha_ctl = None128 self.dmax_ctl = None129 self.time_ctl = None130 self.chi2_ctl = None131 self.osc_ctl = None124 self.data_file = None 125 self.plot_data = None 126 self.nfunc_ctl = None 127 self.alpha_ctl = None 128 self.dmax_ctl = None 129 self.time_ctl = None 130 self.chi2_ctl = None 131 self.osc_ctl = None 132 132 self.file_radio = None 133 133 self.plot_radio = None 134 134 self.label_sugg = None 135 self.qmin_ctl = None 136 self.qmax_ctl = None 135 self.qmin_ctl = None 136 self.qmax_ctl = None 137 138 self.rg_ctl = None 139 self.iq0_ctl = None 140 self.bck_chk = None 141 self.bck_ctl = None 137 142 138 143 # TextCtrl for fraction of positive P(r) … … 164 169 self.alpha_ctl.SetValue(str(value)) 165 170 elif name=='chi2': 166 self.chi2_ctl.SetValue("%-5.3g" % value) 171 self.chi2_ctl.SetValue("%-5.2g" % value) 172 elif name=='bck': 173 self.bck_ctl.SetValue("%-5.2g" % value) 167 174 elif name=='q_min': 168 self.qmin_ctl.SetValue("%-5. 3g" % value)175 self.qmin_ctl.SetValue("%-5.2g" % value) 169 176 elif name=='q_max': 170 self.qmax_ctl.SetValue("%-5. 3g" % value)177 self.qmax_ctl.SetValue("%-5.2g" % value) 171 178 elif name=='elapsed': 172 179 self.time_ctl.SetValue("%-5.2g" % value) 180 elif name=='rg': 181 self.rg_ctl.SetValue("%-5.2g" % value) 182 elif name=='iq0': 183 self.iq0_ctl.SetValue("%-5.2g" % value) 173 184 elif name=='oscillation': 174 185 self.osc_ctl.SetValue("%-5.2g" % value) … … 219 230 except: 220 231 return -1.0 232 elif name=='bck': 233 try: 234 return float(self.bck_ctl.GetValue()) 235 except: 236 return -1.0 221 237 elif name=='q_min': 222 238 try: … … 232 248 try: 233 249 return float(self.time_ctl.GetValue()) 250 except: 251 return -1.0 252 elif name=='rg': 253 try: 254 return float(self.rg_ctl.GetValue()) 255 except: 256 return -1.0 257 elif name=='iq0': 258 try: 259 return float(self.iq0_ctl.GetValue()) 234 260 except: 235 261 return -1.0 … … 275 301 276 302 iy = 0 277 self.file_radio = wx.RadioButton(self, -1, "File data:") 303 if self.standalone==False: 304 self.file_radio = wx.RadioButton(self, -1, "File data:") 305 else: 306 self.file_radio = wx.StaticText(self, -1, "Data file:") 278 307 self.data_file = wx.TextCtrl(self, -1, size=(100,20)) 279 308 self.data_file.SetEditable(False) … … 283 312 self.Bind(wx.EVT_BUTTON, self._change_file, id = id) 284 313 pars_sizer.Add(self.file_radio, (iy,0), (1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 285 pars_sizer.Add(self.data_file, (iy,1), (1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 15) 314 #pars_sizer.Add(self.data_file, (iy,1), (1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 15) 315 pars_sizer.Add(self.data_file, (iy,1), (1,1), wx.ADJUST_MINSIZE, 15) 286 316 pars_sizer.Add(choose_button, (iy,3), (1,1), wx.RIGHT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 287 317 … … 294 324 pars_sizer.Add(self.plot_data, (iy,1), (1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 15) 295 325 296 boxsizer1.Add(pars_sizer, 0, wx.EXPAND) 326 self.bck_chk = wx.CheckBox(self, -1, "Estimate background level") 327 self.bck_chk.SetToolTipString("Check box to let the fit estimate the constant background level.") 328 self.bck_chk.Bind(wx.EVT_CHECKBOX, self._on_pars_changed) 329 iy += 1 330 pars_sizer.Add(self.bck_chk, (iy,0), (1,2), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 331 boxsizer1.Add(pars_sizer, 0, wx.EXPAND) 297 332 vbox.Add(boxsizer1) 333 334 # ----- Add slit parameters ----- 335 if False: 336 sbox = wx.StaticBox(self, -1, "Slit parameters") 337 sboxsizer = wx.StaticBoxSizer(sbox, wx.VERTICAL) 338 sboxsizer.SetMinSize((320,20)) 339 340 sizer_slit = wx.GridBagSizer(5,5) 341 342 label_sheight = wx.StaticText(self, -1, "Height") 343 label_swidth = wx.StaticText(self, -1, "Width") 344 #label_sunits1 = wx.StaticText(self, -1, "[A^(-1)]") 345 label_sunits2 = wx.StaticText(self, -1, "[A^(-1)]") 346 self.sheight_ctl = wx.TextCtrl(self, -1, size=(60,20)) 347 self.swidth_ctl = wx.TextCtrl(self, -1, size=(60,20)) 348 self.sheight_ctl.SetToolTipString("Enter slit height in units of Q or leave blank.") 349 self.swidth_ctl.SetToolTipString("Enter slit width in units of Q or leave blank.") 350 self.sheight_ctl.Bind(wx.EVT_TEXT, self._on_pars_changed) 351 self.swidth_ctl.Bind(wx.EVT_TEXT, self._on_pars_changed) 352 353 iy = 0 354 sizer_slit.Add(label_sheight, (iy,0), (1,1), wx.LEFT|wx.EXPAND, 15) 355 sizer_slit.Add(self.sheight_ctl, (iy,1), (1,1), wx.LEFT|wx.EXPAND, 10) 356 #sizer_slit.Add(label_sunits1, (iy,2), (1,1), wx.LEFT|wx.EXPAND, 10) 357 sizer_slit.Add(label_swidth, (iy,2), (1,1), wx.LEFT|wx.EXPAND, 15) 358 sizer_slit.Add(self.swidth_ctl, (iy,3), (1,1), wx.LEFT|wx.EXPAND, 10) 359 sizer_slit.Add(label_sunits2, (iy,4), (1,1), wx.LEFT|wx.EXPAND, 10) 360 361 sboxsizer.Add(sizer_slit, wx.TOP, 15) 362 vbox.Add(sboxsizer) 363 298 364 299 365 # ----- Parameters ----- … … 335 401 336 402 # EVT_TEXT would trigger an event for each character entered 337 self.nfunc_ctl.Bind(wx.EVT_KILL_FOCUS, self._on_pars_changed)338 self.alpha_ctl.Bind(wx.EVT_KILL_FOCUS, self._read_pars)339 self.dmax_ctl.Bind(wx.EVT_KILL_FOCUS, self._on_pars_changed)403 #self.nfunc_ctl.Bind(wx.EVT_KILL_FOCUS, self._on_pars_changed) 404 #self.alpha_ctl.Bind(wx.EVT_KILL_FOCUS, self._read_pars) 405 #self.dmax_ctl.Bind(wx.EVT_KILL_FOCUS, self._on_pars_changed) 340 406 #self.dmax_ctl.Bind(wx.EVT_TEXT_ENTER, self._on_pars_changed) 341 407 #self.Bind(wx.EVT_TEXT_ENTER, self._on_pars_changed) 408 409 self.nfunc_ctl.Bind(wx.EVT_TEXT, self._on_pars_changed) 410 self.alpha_ctl.Bind(wx.EVT_TEXT, self._read_pars) 411 self.dmax_ctl.Bind(wx.EVT_TEXT, self._on_pars_changed) 412 413 342 414 343 415 sizer_params = wx.GridBagSizer(5,5) … … 369 441 label_qmin = wx.StaticText(self, -1, "Q min") 370 442 label_qmax = wx.StaticText(self, -1, "Q max") 443 #label_qunits1 = wx.StaticText(self, -1, "[A^(-1)]") 444 label_qunits2 = wx.StaticText(self, -1, "[A^(-1)]") 371 445 self.qmin_ctl = wx.TextCtrl(self, -1, size=(60,20)) 372 446 self.qmax_ctl = wx.TextCtrl(self, -1, size=(60,20)) 373 self.qmin_ctl.Bind(wx.EVT_KILL_FOCUS, self._on_pars_changed) 374 self.qmax_ctl.Bind(wx.EVT_KILL_FOCUS, self._on_pars_changed) 447 self.qmin_ctl.SetToolTipString("Select a lower bound for Q or leave blank.") 448 self.qmax_ctl.SetToolTipString("Select an upper bound for Q or leave blank.") 449 self.qmin_ctl.Bind(wx.EVT_TEXT, self._on_pars_changed) 450 self.qmax_ctl.Bind(wx.EVT_TEXT, self._on_pars_changed) 375 451 376 452 iy = 0 377 sizer_q.Add(label_qmin, (iy,0), (1,1), wx.LEFT|wx.EXPAND, 15)453 sizer_q.Add(label_qmin, (iy,0), (1,1), wx.LEFT|wx.EXPAND, 15) 378 454 sizer_q.Add(self.qmin_ctl, (iy,1), (1,1), wx.LEFT|wx.EXPAND, 10) 379 sizer_q.Add(label_qmax, (iy,2), (1,1), wx.LEFT|wx.EXPAND, 15) 455 #sizer_q.Add(label_qunits1, (iy,2), (1,1), wx.LEFT|wx.EXPAND, 15) 456 sizer_q.Add(label_qmax, (iy,2), (1,1), wx.LEFT|wx.EXPAND, 15) 380 457 sizer_q.Add(self.qmax_ctl, (iy,3), (1,1), wx.LEFT|wx.EXPAND, 10) 458 sizer_q.Add(label_qunits2, (iy,4), (1,1), wx.LEFT|wx.EXPAND, 15) 381 459 qboxsizer.Add(sizer_q, wx.TOP, 15) 382 460 vbox.Add(qboxsizer) … … 388 466 ressizer = wx.StaticBoxSizer(resbox, wx.VERTICAL) 389 467 ressizer.SetMinSize((320,50)) 468 469 label_rg = wx.StaticText(self, -1, "Rg") 470 label_rg_unit = wx.StaticText(self, -1, "[A]") 471 label_iq0 = wx.StaticText(self, -1, "I(Q=0)") 472 label_iq0_unit = wx.StaticText(self, -1, "[A^(-1)]") 473 label_bck = wx.StaticText(self, -1, "Background") 474 label_bck_unit = wx.StaticText(self, -1, "[A^(-1)]") 475 self.rg_ctl = wx.TextCtrl(self, -1, size=(60,20)) 476 self.rg_ctl.SetEditable(False) 477 self.rg_ctl.SetToolTipString("Radius of gyration for the computed P(r).") 478 self.iq0_ctl = wx.TextCtrl(self, -1, size=(60,20)) 479 self.iq0_ctl.SetEditable(False) 480 self.iq0_ctl.SetToolTipString("Scattering intensity at Q=0 for the computed P(r).") 481 self.bck_ctl = wx.TextCtrl(self, -1, size=(60,20)) 482 self.bck_ctl.SetEditable(False) 483 self.bck_ctl.SetToolTipString("Value of estimated constant background.") 390 484 391 485 label_time = wx.StaticText(self, -1, "Computation time") … … 427 521 428 522 iy = 0 523 sizer_res.Add(label_rg, (iy,0), (1,1), wx.LEFT|wx.EXPAND, 15) 524 sizer_res.Add(self.rg_ctl, (iy,1), (1,1), wx.RIGHT|wx.EXPAND, 15) 525 sizer_res.Add(label_rg_unit, (iy,2), (1,1), wx.RIGHT|wx.EXPAND, 15) 526 iy += 1 527 sizer_res.Add(label_iq0, (iy,0), (1,1), wx.LEFT|wx.EXPAND, 15) 528 sizer_res.Add(self.iq0_ctl, (iy,1), (1,1), wx.RIGHT|wx.EXPAND, 15) 529 sizer_res.Add(label_iq0_unit, (iy,2), (1,1), wx.RIGHT|wx.EXPAND, 15) 530 iy += 1 531 sizer_res.Add(label_bck, (iy,0), (1,1), wx.LEFT|wx.EXPAND, 15) 532 sizer_res.Add(self.bck_ctl, (iy,1), (1,1), wx.RIGHT|wx.EXPAND, 15) 533 sizer_res.Add(label_bck_unit, (iy,2), (1,1), wx.RIGHT|wx.EXPAND, 15) 534 iy += 1 429 535 sizer_res.Add(label_time, (iy,0), (1,1), wx.LEFT|wx.EXPAND, 15) 430 536 sizer_res.Add(self.time_ctl, (iy,1), (1,1), wx.RIGHT|wx.EXPAND, 15) … … 472 578 473 579 self.SetSizer(vbox) 474 475 476 580 477 581 def _on_accept_alpha(self, evt): … … 500 604 self.qmax_ctl.SetValue("") 501 605 self.time_ctl.SetValue("") 606 self.rg_ctl.SetValue("") 607 self.iq0_ctl.SetValue("") 608 self.bck_ctl.SetValue("") 502 609 self.chi2_ctl.SetValue("") 503 610 self.osc_ctl.SetValue("") … … 515 622 """ 516 623 flag, alpha, dmax, nfunc, qmin, qmax = self._read_pars() 624 has_bck = self.bck_chk.IsChecked() 517 625 518 626 # If the pars are valid, estimate alpha … … 522 630 self.manager.estimate_plot_inversion(alpha=alpha, nfunc=nfunc, 523 631 d_max=dmax, 524 q_min=qmin, q_max=qmax) 632 q_min=qmin, q_max=qmax, 633 bck=has_bck) 525 634 else: 526 635 path = self.data_file.GetValue() 527 636 self.manager.estimate_file_inversion(alpha=alpha, nfunc=nfunc, 528 637 d_max=dmax, path=path, 529 q_min=qmin, q_max=qmax) 638 q_min=qmin, q_max=qmax, 639 bck=has_bck) 530 640 531 641 … … 613 723 614 724 flag, alpha, dmax, nfunc, qmin, qmax = self._read_pars() 725 has_bck = self.bck_chk.IsChecked() 615 726 616 727 if flag: … … 623 734 self.manager.setup_plot_inversion(alpha=alpha, nfunc=nfunc, 624 735 d_max=dmax, 625 q_min=qmin, q_max=qmax) 736 q_min=qmin, q_max=qmax, 737 bck=has_bck) 626 738 else: 627 739 path = self.data_file.GetValue() … … 632 744 self.manager.setup_file_inversion(alpha=alpha, nfunc=nfunc, 633 745 d_max=dmax, path=path, 634 q_min=qmin, q_max=qmax 635 )746 q_min=qmin, q_max=qmax, 747 bck=has_bck) 636 748 637 749 else: … … 649 761 if path and os.path.isfile(path): 650 762 self.data_file.SetValue(str(path)) 651 self.file_radio.SetValue(True) 763 if self.standalone==False: 764 self.file_radio.SetValue(True) 652 765 self._on_pars_changed(None) 653 766 self.manager.show_data(path) -
prview/perspectives/pr/pr.py
r9b85e93 ra4bd2ac 45 45 self.q_min = None 46 46 self.q_max = None 47 self.has_bck = False 47 48 ## Remember last plottable processed 48 49 self.last_data = "sphere_60_q0_2.txt" … … 78 79 """ 79 80 return [] 80 import wx81 shapes = wx.Menu()82 83 id = wx.NewId()84 shapes.Append(id, '&Sphere test')85 wx.EVT_MENU(owner, id, self._fit_pr)86 87 return [(id, shapes, "P(r)")]88 81 89 82 def help(self, evt): … … 440 433 self.control_panel.positive = pr.get_positive(out) 441 434 self.control_panel.pos_err = pr.get_pos_err(out, cov) 435 self.control_panel.rg = pr.rg(out) 436 self.control_panel.iq0 = pr.iq0(out) 437 self.control_panel.bck = pr.background 442 438 443 439 for i in range(len(out)): … … 457 453 wx.PostEvent(self.parent, NewPlotEvent(plot=new_plot, title="Iq")) 458 454 455 # Compute the fit I(Q=0) 456 try: 457 print "I(0) = ", self.pr.iq0(out) 458 except: 459 pass 460 461 # Get R_g 462 print "Rg = ", self.pr.rg(out) 459 463 # Show I(q) fit 460 464 self.show_iq(out, self.pr) … … 485 489 486 490 487 def setup_plot_inversion(self, alpha, nfunc, d_max, q_min=None, q_max=None ):491 def setup_plot_inversion(self, alpha, nfunc, d_max, q_min=None, q_max=None, bck=False): 488 492 self.alpha = alpha 489 493 self.nfunc = nfunc … … 491 495 self.q_min = q_min 492 496 self.q_max = q_max 497 self.has_bck = bck 493 498 494 499 try: … … 498 503 wx.PostEvent(self.parent, StatusEvent(status=sys.exc_value)) 499 504 500 def estimate_plot_inversion(self, alpha, nfunc, d_max, q_min=None, q_max=None ):505 def estimate_plot_inversion(self, alpha, nfunc, d_max, q_min=None, q_max=None, bck=False): 501 506 self.alpha = alpha 502 507 self.nfunc = nfunc … … 504 509 self.q_min = q_min 505 510 self.q_max = q_max 511 self.has_bck = bck 506 512 507 513 try: … … 525 531 pr.x = self.current_plottable.x 526 532 pr.y = self.current_plottable.y 533 pr.has_bck = self.has_bck 527 534 528 535 # Fill in errors if none were provided … … 540 547 541 548 542 def setup_file_inversion(self, alpha, nfunc, d_max, path, q_min=None, q_max=None ):549 def setup_file_inversion(self, alpha, nfunc, d_max, path, q_min=None, q_max=None, bck=False): 543 550 self.alpha = alpha 544 551 self.nfunc = nfunc … … 546 553 self.q_min = q_min 547 554 self.q_max = q_max 555 self.has_bck = bck 548 556 549 557 try: … … 553 561 wx.PostEvent(self.parent, StatusEvent(status=sys.exc_value)) 554 562 555 def estimate_file_inversion(self, alpha, nfunc, d_max, path, q_min=None, q_max=None ):563 def estimate_file_inversion(self, alpha, nfunc, d_max, path, q_min=None, q_max=None, bck=False): 556 564 self.alpha = alpha 557 565 self.nfunc = nfunc … … 559 567 self.q_min = q_min 560 568 self.q_max = q_max 569 self.has_bck = bck 561 570 562 571 try: … … 586 595 pr.y = y 587 596 pr.err = err 597 pr.has_bck = self.has_bck 588 598 589 599 self.pr = pr -
prview/release_notes.txt
re009ce1 ra4bd2ac 6 6 Package name: None 7 7 8 1- Version 0.1.0 8 1- Version 0.1.1 9 10 - Release date: 6/XX/2008 11 - First version put together built on guiframe. 12 13 Version 0.1.0 9 14 10 15 - Release date: 5/28/2008 -
prview/setup_exe.py
r4a5de6f ra4bd2ac 14 14 15 15 import py2exe 16 17 manifest = """ 18 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 19 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" 20 manifestVersion="1.0"> 21 <assemblyIdentity 22 version="0.64.1.0" 23 processorArchitecture="x86" 24 name="Controls" 25 type="win32" 26 /> 27 <description>PrView</description> 28 <dependency> 29 <dependentAssembly> 30 <assemblyIdentity 31 type="win32" 32 name="Microsoft.Windows.Common-Controls" 33 version="6.0.0.0" 34 processorArchitecture="X86" 35 publicKeyToken="6595b64144ccf1df" 36 language="*" 37 /> 38 </dependentAssembly> 39 </dependency> 40 </assembly> 41 """ 16 42 17 43 … … 59 85 #other_resources = [(RT_MANIFEST, 1, manifest_template % dict(prog="AppJob"))], 60 86 icon_resources = [(1, "images/ball.ico")], 87 other_resources = [(24,1,manifest)], 61 88 dest_base = "prView" 62 89 )
Note: See TracChangeset
for help on using the changeset viewer.