Changeset c66a0bb in sasview for src/sas/sasgui
- Timestamp:
- Nov 30, 2017 10:51:13 AM (7 years ago)
- Branches:
- master, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- 0a9cbc3
- Parents:
- ee6ab94 (diff), 882cfec (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - git-author:
- Paul Kienzle <pkienzle@…> (11/30/17 10:51:13)
- git-committer:
- GitHub <noreply@…> (11/30/17 10:51:13)
- Location:
- src/sas/sasgui
- Files:
-
- 11 deleted
- 33 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sasgui/guiframe/data_processor.py
ra1b8fee r20fa5fe 758 758 cell pop up context by right clicking on a cell and gives the 759 759 option to cut, paste, and clear. This will probably be removed in 760 future versions and is being super ceded by more traditional cut and760 future versions and is being superseded by more traditional cut and 761 761 paste options. 762 762 """ … … 800 800 THIS METHOD IS NOT CURRENTLY USED. it is part of right click cell 801 801 context menu which is being removed. This will probably be removed in 802 future versions and is being super ceded by more traditional cut and802 future versions and is being superseded by more traditional cut and 803 803 paste options 804 804 """ … … 812 812 THIS METHOD IS NOT CURRENTLY USED. it is part of right click cell 813 813 context menu which is being removed. This will probably be removed in 814 future versions and is being super ceded by more traditional cut and814 future versions and is being superseded by more traditional cut and 815 815 paste options 816 816 """ … … 828 828 THIS METHOD IS NOT CURRENTLY USED. it is part of right click cell 829 829 context menu which is being removed. This will probably be removed in 830 future versions and is being super ceded by more traditional cut and830 future versions and is being superseded by more traditional cut and 831 831 paste options 832 832 """ … … 1233 1233 """ 1234 1234 Get object represented by the given cells and plot them. Basically 1235 plot the colum in y vs the column in x.1235 plot the column in y vs the column in x. 1236 1236 """ 1237 1237 … … 1961 1961 selection_sizer.Add(self.save_to_file, (iy, ix), 1962 1962 (1, 1), wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15) 1963 #contruction the sizer conta ning button1963 #contruction the sizer containing button 1964 1964 button_sizer.Add((20, 20), 1, wx.EXPAND | wx.ADJUST_MINSIZE, 0) 1965 1965 -
src/sas/sasgui/guiframe/events.py
r959eb01 r20fa5fe 14 14 #create a panel slicer 15 15 (SlicerPanelEvent, EVT_SLICER_PANEL) = wx.lib.newevent.NewEvent() 16 #print update param aters for panel slicer16 #print update parameers for panel slicer 17 17 (SlicerParamUpdateEvent, EVT_SLICER_PARS_UPDATE) = wx.lib.newevent.NewEvent() 18 18 #update the slicer from the panel -
src/sas/sasgui/guiframe/local_perspectives/data_loader/data_loader.py
rb963b20 r20fa5fe 90 90 def can_load_data(self): 91 91 """ 92 if return True, then call handler to l aod data92 if return True, then call handler to load data 93 93 """ 94 94 return True -
src/sas/sasgui/guiframe/local_perspectives/plotting/Plotter1D.py
r7432acb r2469df7 827 827 on_Modify Plot Property_close 828 828 """ 829 if self.appD.okay_clicked == True:829 if self.appD.okay_clicked: 830 830 info = self.appD.get_current_values() 831 831 self.appearance_selected_plot.custom_color = \ -
src/sas/sasgui/guiframe/local_perspectives/plotting/binder.py
r463e7ffc r20fa5fe 359 359 # TODO: Do we need an explicit focus command for keyboard? 360 360 # TODO: Can we tab between items? 361 # TODO: How do unhandled events get prop ogated to axes, figure and361 # TODO: How do unhandled events get propagated to axes, figure and 362 362 # TODO: finally to application? Do we need to implement a full tags 363 363 # TODO: architecture a la Tk? -
src/sas/sasgui/guiframe/local_perspectives/plotting/boxSlicer.py
r7432acb r20fa5fe 216 216 """ 217 217 self.base.thaw_axes() 218 # Post param ters218 # Post parameters 219 219 event = SlicerParameterEvent() 220 220 event.type = self.__class__.__name__ -
src/sas/sasgui/guiframe/local_perspectives/plotting/masking.py
r45dffa69 r20fa5fe 77 77 def compute(self): 78 78 """ 79 ex cuting computation79 executing computation 80 80 """ 81 81 elapsed = time.time() - self.starttime -
src/sas/sasgui/guiframe/plugin_base.py
r7432acb r20fa5fe 82 82 def can_load_data(self): 83 83 """ 84 if return True, then call handler to l aod data84 if return True, then call handler to load data 85 85 """ 86 86 return False -
src/sas/sasgui/guiframe/proxy.py
ra1b8fee r20fa5fe 17 17 connect() function: 18 18 - auto detects proxy in windows, osx 19 - in ux systems, the http_proxy enviro ment variable must be set19 - in ux systems, the http_proxy environment variable must be set 20 20 - if it fails, try to find the proxy.pac address. 21 21 - parses the file, and looks up for all possible proxies -
src/sas/sasgui/perspectives/calculator/gen_scatter_panel.py
ra1b8fee r20fa5fe 113 113 def compute(self): 114 114 """ 115 ex cuting computation115 executing computation 116 116 """ 117 117 #elapsed = time.time() - self.starttime -
src/sas/sasgui/perspectives/calculator/media/sas_calculator_help.rst
r5ed76f8 r1b67f3e 26 26 intensity from the particle is 27 27 28 .. image:: gen_i.png 28 .. math:: 29 30 I(\vec Q) = \frac{1}{V}\left| 31 \sum_j^N v_j \beta_j \exp(i\vec Q \cdot \vec r_j)\right|^2 29 32 30 33 Equation 1. … … 46 49 atomic structure (such as taken from a PDB file) to get the right normalization. 47 50 48 *NOTE! $\beta_j$displayed in the GUI may be incorrect but this will not51 *NOTE!* $\beta_j$ *displayed in the GUI may be incorrect but this will not 49 52 affect the scattering computation if the correction of the total volume V is made.* 50 53 … … 56 59 ^^^^^^^^^^^^^^^^^^^ 57 60 58 For magnetic scattering, only the magnetization component, $ M_\perp$,59 perpendicular to the scattering vector $ Q$ contributes to the magnetic61 For magnetic scattering, only the magnetization component, $\mathbf{M}_\perp$, 62 perpendicular to the scattering vector $\vec Q$ contributes to the magnetic 60 63 scattering length. 61 64 … … 64 67 The magnetic scattering length density is then 65 68 66 .. image:: dm_eq.png 69 .. math:: 70 71 \beta_M = \frac{\gamma r_0}{2 \mu_B}\sigma \cdot \mathbf{M}_\perp 72 = D_M\sigma \cdot \mathbf{M}_\perp 67 73 68 74 where the gyromagnetic ratio is $\gamma = -1.913$, $\mu_B$ is the Bohr … … 81 87 .. image:: gen_mag_pic.png 82 88 83 Now let us assume that the angles of the *Q* vector and the spin-axis (x')84 to the x-axis are $\phi$ and $\theta_\text{up}$ respectively (see above). Then,89 Now let us assume that the angles of the $\vec Q$ vector and the spin-axis ($x'$) 90 to the $x$-axis are $\phi$ and $\theta_\text{up}$ respectively (see above). Then, 85 91 depending upon the polarization (spin) state of neutrons, the scattering 86 92 length densities, including the nuclear scattering length density ($\beta_N$) … … 89 95 * for non-spin-flips 90 96 91 .. image:: sld1.png 97 .. math:: 98 \beta_{\pm\pm} = \beta_N \mp D_M M_{\perp x'} 92 99 93 100 * for spin-flips 94 101 95 .. image:: sld2.png 102 .. math:: 103 \beta_{\pm\mp} = - D_M(M_{\perp y'} \pm i M_{\perp z'}) 96 104 97 105 where 98 106 99 .. image:: mxp.png107 .. math:: 100 108 101 .. image:: myp.png 109 M_{\perp x'} &= M_{0q_x}\cos\theta_\text{up} + M_{0q_y}\sin\theta_\text{up} \\ 110 M_{\perp y'} &= M_{0q_y}\cos\theta_\text{up} - M_{0q_x}\sin\theta_\text{up} \\ 111 M_{\perp z'} &= M_{0z} \\ 112 M_{0q_x} &= (M_{0x}\cos\phi - M_{0y}\sin\phi)\cos\phi \\ 113 M_{0q_y} &= (M_{0y}\sin\phi - M_{0y}\cos\phi)\sin\phi 102 114 103 .. image:: mzp.png 104 105 .. image:: mqx.png 106 107 .. image:: mqy.png 108 109 Here the $M0_x$, $M0_y$ and $M0_z$ are the $x$, $y$ and $z$ 110 components of the magnetisation vector in the laboratory $xyz$ frame. 115 Here the $M_{0x}$, $M_{0y}$ and $M_{0z}$ are 116 the $x$, $y$ and $z$ components of the magnetisation vector in the 117 laboratory $x$-$y$-$z$ frame. 111 118 112 119 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ … … 148 155 uses the Debye equation below providing a 1D output 149 156 150 .. image:: gen_debye_eq.png 157 .. math:: 158 159 I(|\vec Q|) = \frac{1}{V}\sum_j^N v_j\beta_j \sum_k^N v_k \beta_k 160 \frac{\sin(|\vec Q||\vec r_j - \vec r_k|)}{|\vec Q||\vec r_j - \vec r_k|} 151 161 152 162 where $v_j \beta_j \equiv b_j$ is the scattering -
src/sas/sasgui/perspectives/calculator/model_editor.py
r69363c7 r2469df7 338 338 list_fnames = os.listdir(self.plugin_dir) 339 339 # fake existing regular model name list 340 m_list = [model .name+ ".py" for model in self.model_list]340 m_list = [model + ".py" for model in self.model_list] 341 341 list_fnames.append(m_list) 342 342 if t_fname in list_fnames and title != mname: … … 344 344 msg = "Name exists already." 345 345 346 if self.good_name == False:346 if not self.good_name: 347 347 self.name_tcl.SetBackgroundColour('pink') 348 348 info = 'Error' -
src/sas/sasgui/perspectives/calculator/resolcal_thread.py
r959eb01 r20fa5fe 44 44 def compute(self): 45 45 """ 46 ex cuting computation46 executing computation 47 47 """ 48 48 self.image = map(self.func, self.qx, self.qy, -
src/sas/sasgui/perspectives/fitting/fitpage.py
r0be6b6b r3bd677b 1733 1733 ind = 0 1734 1734 while(ind < len(list)): 1735 fun_box.Append(list[ind]) 1735 for key, val in list.items(): 1736 if val == ind: 1737 fun_box.Append(key, val) 1738 break 1736 1739 ind += 1 1737 1740 … … 1762 1765 value = fun_box.GetValue() 1763 1766 if value in self.model.fun_list: 1764 fun_val = fun_box.GetSelection()1767 fun_val = self.model.fun_list[value] 1765 1768 1766 1769 self.model.setParam(name, fun_val) -
src/sas/sasgui/perspectives/fitting/fitproblem.py
r251ef684 r20fa5fe 1 1 """ 2 2 Inferface containing information to store data, model, range of data, etc... 3 and retr eive this information. This is an inferface3 and retrieve this information. This is an inferface 4 4 for a fitProblem i.e relationship between data and model. 5 5 """ … … 56 56 """ 57 57 :param flag: bool.When flag is 1 get the computer smear value. When 58 flag is 0 i ngore smear value.58 flag is 0 ignore smear value. 59 59 """ 60 60 self.smearer_enable = flag … … 305 305 """ 306 306 :param flag: bool.When flag is 1 get the computer smear value. When 307 flag is 0 i ngore smear value.307 flag is 0 ignore smear value. 308 308 """ 309 309 self._smear_on = flag -
src/sas/sasgui/perspectives/fitting/fitting.py
r9706d88 r20fa5fe 763 763 the current page and set value. 764 764 :param value: integer 0 or 1 765 :param uid: the id related to a page conta ning fitting information765 :param uid: the id related to a page containing fitting information 766 766 """ 767 767 if uid in self.page_finder.keys(): … … 778 778 Used by simfitpage.py to reset a parameter given the string constrainst. 779 779 780 :param modelname: the name o tthe model for with the parameter780 :param modelname: the name of the model for with the parameter 781 781 has to reset 782 782 :param value: can be a string in this case. 783 :param names: the param ter name783 :param names: the parameter name 784 784 """ 785 785 sim_page_id = self.sim_page.uid … … 797 797 name into model name and parameter name example: :: 798 798 799 param aterset (item) = M1.A799 parameterset (item) = M1.A 800 800 Will return model_name = M1 , parameter name = A 801 801 … … 1117 1117 def store_data(self, uid, data_list=None, caption=None): 1118 1118 """ 1119 Rec ieve a list of data and store them ans well as a caption of1119 Receive a list of data and store them ans well as a caption of 1120 1120 the fit page where they come from. 1121 1121 :param uid: if related to a fit page … … 1196 1196 for a given interactor. 1197 1197 1198 :param event: contains type of slicer , param aters for updating1198 :param event: contains type of slicer , parameters for updating 1199 1199 the panel and panel_name to find the slicer 's panel concerned. 1200 1200 """ -
src/sas/sasgui/perspectives/fitting/fitting_widgets.py
r959eb01 r20fa5fe 64 64 selection_sizer.Add(self.data_2d_selected, (iy, ix), 65 65 (1, 1), wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15) 66 #contruction the sizer conta ning button66 #contruction the sizer containing button 67 67 button_sizer.Add((20, 20), 1, wx.EXPAND | wx.ADJUST_MINSIZE, 0) 68 68 button_sizer.Add(button_cancel, 0, -
src/sas/sasgui/perspectives/fitting/gpu_options.py
r3bd677b r20fa5fe 88 88 self.option_button = {} 89 89 self.buttons = [] 90 #Check if SAS_OPENCL is already set as enviro mentalvariable90 #Check if SAS_OPENCL is already set as environment variable 91 91 self.sas_opencl = os.environ.get("SAS_OPENCL", "") 92 92 -
src/sas/sasgui/perspectives/fitting/media/fitting.rst
r3bd677b rc926a97 18 18 19 19 Polarisation/Magnetic Scattering <magnetism/magnetism> 20 21 Oriented Particles <orientation/orientation> 20 22 21 23 Information on the SasView Optimisers <optimizer> -
src/sas/sasgui/perspectives/fitting/simfitpage.py
r0a3c740 r20fa5fe 976 976 param_cbox = self.constraints_list[-1].param_cbox 977 977 param_cbox.Clear() 978 # insert only fittable param aters978 # insert only fittable parameters 979 979 for param in param_list: 980 980 param_cbox.Append(str(param), model) -
src/sas/sasgui/perspectives/invariant/invariant_details.py
r959eb01 r20fa5fe 422 422 except: 423 423 scale = RECTANGLE_SCALE 424 self.warning_msg += "Rec ieve an invalid scale for %s\n"424 self.warning_msg += "Receive an invalid scale for %s\n" 425 425 self.warning_msg += "check this value : %s\n" % str(percentage) 426 426 return scale -
src/sas/sasgui/perspectives/invariant/invariant_panel.py
r7432acb r2469df7 707 707 708 708 # reset power_out to default to get ready for another '_on_text' 709 if self.is_power_out == True:709 if self.is_power_out: 710 710 self.state.container = copy.deepcopy(self.inv_container) 711 711 self.state.timestamp = self._get_time_stamp() -
src/sas/sasgui/perspectives/invariant/invariant_state.py
r1fa4f736 r2469df7 655 655 : return: None 656 656 """ 657 if self.cansas == True:657 if self.cansas: 658 658 return self._read_cansas(path) 659 659 else: … … 763 763 """ 764 764 # Sanity check 765 if self.cansas == True:765 if self.cansas: 766 766 doc = self.write_toXML(datainfo, invstate) 767 767 # Write the XML document -
src/sas/sasgui/perspectives/pr/explore_dialog.py
r959eb01 r20fa5fe 93 93 94 94 :TODO: Would be nice to add printing and log/linear scales. 95 The current ver ison of plottools no longer plays well with95 The current version of plottools no longer plays well with 96 96 plots outside of guiframe. Guiframe team needs to fix this. 97 97 """ -
src/sas/sasgui/perspectives/pr/inversion_state.py
r1fa4f736 r2469df7 389 389 390 390 """ 391 if self.cansas == True:391 if self.cansas: 392 392 return self._read_cansas(path) 393 393 else: … … 505 505 """ 506 506 # Sanity check 507 if self.cansas == True:507 if self.cansas: 508 508 doc = self.write_toXML(datainfo, prstate) 509 509 # Write the XML document -
src/sas/sasgui/perspectives/pr/pr.py
rcb62bd5 r2469df7 407 407 y[i] = value 408 408 409 if self._normalize_output == True:409 if self._normalize_output: 410 410 y = y / total 411 411 dy = dy / total 412 elif self._scale_output_unity == True:412 elif self._scale_output_unity: 413 413 y = y / pmax 414 414 dy = dy / pmax … … 544 544 lines = buff.split('\n') 545 545 for line in lines: 546 if data_started == True:546 if data_started: 547 547 try: 548 548 toks = line.split() -
src/sas/sasgui/plottools/PlotPanel.py
ra1b8fee r2469df7 476 476 return 477 477 self.mousemotion = True 478 if self.leftdown == True and self.mousemotion == True:478 if self.leftdown and self.mousemotion: 479 479 ax = event.inaxes 480 480 if ax is not None: # the dragging is perform inside the figure -
src/sas/sasgui/plottools/binder.py
ra1b8fee r20fa5fe 366 366 # TODO: Do we need an explicit focus command for keyboard? 367 367 # TODO: Can we tab between items? 368 # TODO: How do unhandled events get prop ogated to axes, figure and368 # TODO: How do unhandled events get propagated to axes, figure and 369 369 # TODO: finally to application? Do we need to implement a full tags 370 370 # TODO: architecture a la Tk? -
src/sas/sasgui/plottools/fitDialog.py
r7432acb r2469df7 44 44 fitting and derives and displays specialized output parameters based 45 45 on the scale choice of the plot calling it. 46 46 47 47 :note1: The fitting is currently a bit convoluted as besides using 48 48 plottools.transform.py to handle all the conversions, it uses … … 55 55 This would considerably simplify the code and remove the need I think 56 56 for LineModel.py and possibly fittins.py altogether. -PDB 7/10/16 57 57 58 58 :note2: The linearized fits do not take resolution into account. This 59 59 means that for poor resolution such as slit smearing the answers will … … 142 142 """ 143 143 144 # set up sizers first. 144 # set up sizers first. 145 145 # vbox is the panel sizer and is a vertical sizer 146 146 # The first element of the panel is sizer which is a gridbagsizer … … 151 151 sizer = wx.GridBagSizer(5, 5) 152 152 sizer_button = wx.BoxSizer(wx.HORIZONTAL) 153 153 154 154 #size of string boxes in pixels 155 155 _BOX_WIDTH = 100 … … 395 395 sizer_button.Add(self.btClose, 0, 396 396 wx.LEFT | wx.RIGHT | wx.ADJUST_MINSIZE, 10) 397 397 398 398 vbox.Add(sizer) 399 self.static_line_1 = wx.StaticLine(self, -1) 399 self.static_line_1 = wx.StaticLine(self, -1) 400 400 vbox.Add(self.static_line_1, 0, wx.EXPAND, 0) 401 401 vbox.Add(sizer_button, 0, wx.EXPAND | wx.BOTTOM | wx.TOP, 10) … … 439 439 # makes transformation for y as a line to fit 440 440 if self.x != []: 441 if self.checkFitValues(self.xminFit) == True:441 if self.checkFitValues(self.xminFit): 442 442 # Check if the field of Fit Dialog contain values 443 443 # and use the x max and min of the user -
src/sas/sasgui/plottools/plottable_interactor.py
ra1b8fee r2469df7 166 166 from within the boundaries of an artist. 167 167 """ 168 if self._context_menu == True:168 if self._context_menu: 169 169 self._context_menu = False 170 170 evt.artist = self.marker … … 216 216 """ 217 217 if not evt.artist.__class__.__name__ == "AxesSubplot": 218 if self._context_menu == False:218 if not self._context_menu: 219 219 self.base.plottable_selected(None) 220 220 try: -
src/sas/sasgui/plottools/plottables.py
r2d9526d r2469df7 227 227 max_value = None 228 228 for p in self.plottables: 229 if p.hidden == True:229 if p.hidden: 230 230 continue 231 231 if p.x is not None: … … 1062 1062 Renders the plottable on the graph 1063 1063 """ 1064 if self.interactive == True:1064 if self.interactive: 1065 1065 kw['symbol'] = self.symbol 1066 1066 kw['id'] = self.id -
src/sas/sasgui/plottools/toolbar.py
r959eb01 r20fa5fe 145 145 def OnPrintPage(self, page): 146 146 """ 147 Most rudimentry OnPrintPage over ide. instatiates a dc object, gets147 Most rudimentry OnPrintPage override. instatiates a dc object, gets 148 148 its size, gets the size of the figure object, scales it to the dc 149 149 canvas size keeping the aspect ratio intact, then prints as bitmap -
src/sas/sasgui/perspectives/fitting/basepage.py
r3bd677b ree6ab94 1643 1643 if item_page[2].__class__.__name__ == "ComboBox": 1644 1644 if item_page_info[2] in self.model.fun_list: 1645 fun_val = self.model.fun_list[item_page_info[2]] 1645 # to fix: fun_list is not a dictionary, but a tuple 1646 # so the following line (commented) will fail 1647 # fun_val = self.model.fun_list[item_page_info[2]] 1648 # I guess the following should work, but 1649 # could not test as I don't know when this 1650 # part is used by SasView. 1651 fun_val = self.model.fun_list.index(item_page_info[2]) 1646 1652 self.model.setParam(item_page_info[1], fun_val) 1647 1653 if item_page[3] is not None: … … 1687 1693 selection = value 1688 1694 if value in self.model.fun_list: 1689 selection = self.model.fun_list[value] 1695 # to fix: fun_list is not a dictionary, so 1696 # I commented the following original line 1697 #selection = self.model.fun_list[value] 1698 # and replaced by this. 1699 # I think this should work, but could not test it. 1700 selection = self.model.fun_list.index(value) 1690 1701 item_page[2].SetValue(selection) 1691 1702 self.model.setParam(param_name, selection) … … 3365 3376 if item[2].__class__.__name__ == "ComboBox": 3366 3377 if content[name][1] in self.model.fun_list: 3367 fun_val = self.model.fun_list[content[name][1]] 3378 # to fix: fun_list is not a dictionary, but a tuple 3379 # so the following line (commented) will fail 3380 # fun_val = self.model.fun_list[content[name][1]] 3381 # I guess the following should work, but 3382 # could not test as I don't know when this 3383 # part is used by SasView. 3384 fun_val = self.model.fun_list.index(content[name][1]) 3368 3385 self.model.setParam(name, fun_val) 3369 3386 try: … … 3415 3432 if item[2].__class__.__name__ == "ComboBox": 3416 3433 if value[0] in self.model.fun_list: 3417 fun_val = self.model.fun_list[value[0]] 3434 # Fixed: fun_list not a dictionary! 3435 # Arrives here when spherical_sld model is 3436 # selected and number of shells modified. 3437 fun_val = self.model.fun_list.index(value[0]) 3418 3438 self.model.setParam(name, fun_val) 3419 3439 # save state
Note: See TracChangeset
for help on using the changeset viewer.