Changeset f2ea95a in sasview for src/sas/sasgui/perspectives/invariant
- Timestamp:
- Jun 16, 2017 12:51:12 PM (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, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- 940d034, fca1f50
- Parents:
- c0ef8da (diff), d9c1551 (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. - Location:
- src/sas/sasgui/perspectives/invariant
- Files:
-
- 1 added
- 5 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sasgui/perspectives/invariant/invariant.py
r463e7ffc r7432acb 331 331 new_plot.title = self.__data.title 332 332 # Save theory_data in a state 333 if data !=None:333 if data is not None: 334 334 name_head = name.split('-') 335 335 if name_head[0] == 'Low': … … 353 353 354 354 # Save data in a state: but seems to never happen 355 if new_plot !=None:355 if new_plot is not None: 356 356 self.invariant_panel.state.data = copy.deepcopy(new_plot) 357 357 wx.PostEvent(self.parent, NewPlotEvent(plot=new_plot, -
src/sas/sasgui/perspectives/invariant/invariant_panel.py
r463e7ffc r7432acb 240 240 """ 241 241 242 if state == None and data ==None:242 if state is None and data is None: 243 243 self.state = IState() 244 elif state == None or data ==None:244 elif state is None or data is None: 245 245 return 246 246 else: … … 604 604 compute invariant 605 605 """ 606 if self._data ==None:606 if self._data is None: 607 607 msg = "\n\nData must be loaded first in order" 608 608 msg += " to perform a compution..." 609 609 wx.PostEvent(self.parent, StatusEvent(status=msg)) 610 610 # set a state for this computation for saving 611 elif event !=None:611 elif event is not None: 612 612 self._set_compute_state(state='compute') 613 613 self._set_bookmark_flag(True) … … 718 718 self._set_preview_flag(True) 719 719 720 if event !=None:720 if event is not None: 721 721 self._set_preview_flag(True) 722 722 self._set_save_flag(True) … … 792 792 : param state_num: the given state number 793 793 """ 794 if state_num ==None:794 if state_num is None: 795 795 return 796 796 … … 924 924 :param event: rb/cb event 925 925 """ 926 if event ==None:926 if event is None: 927 927 return 928 928 obj = event.GetEventObject() … … 934 934 935 935 try: 936 if value ==None or value.lstrip().rstrip() == '':936 if value is None or value.lstrip().rstrip() == '': 937 937 value = 'None' 938 938 setattr(self.state, name, str(value)) … … 1013 1013 Used in 'set_current_data()' 1014 1014 """ 1015 #if data ==None: return1015 #if data is None: return 1016 1016 #temp_state = self.state.clone_state() 1017 1017 #copy.deepcopy(self.state.saved_state) … … 1022 1022 self.state.saved_state['state_num'] = 0 1023 1023 self.state.saved_state['compute_num'] = 0 1024 if self._data !=None:1024 if self._data is not None: 1025 1025 self.state.saved_state['file'] = str(self._data.name) 1026 1026 else: … … 1049 1049 1050 1050 """ 1051 if self._data ==None:1051 if self._data is None: 1052 1052 return 1053 1053 # check if this event is from do/undo button … … 1072 1072 # try to add new state of the text changes in the state_list 1073 1073 try: 1074 if value.strip() ==None:1074 if value.strip() is None: 1075 1075 value = '' 1076 1076 setattr(self.state, name, str(value)) … … 1140 1140 the popup menu on bookmark context menu event 1141 1141 """ 1142 if self._data ==None:1142 if self._data is None: 1143 1143 return 1144 if event ==None:1144 if event is None: 1145 1145 return 1146 1146 self.bookmark_num += 1 … … 1206 1206 : event: popUpMenu event 1207 1207 """ 1208 if event ==None:1208 if event is None: 1209 1209 return 1210 1210 # get the object … … 1244 1244 # Ask the user the location of the file to write to. 1245 1245 path = None 1246 if self.parent !=None:1246 if self.parent is not None: 1247 1247 self._default_save_location = self.parent.get_save_location() 1248 if self._default_save_location ==None:1248 if self._default_save_location is None: 1249 1249 self._default_save_location = os.getcwd() 1250 1250 dlg = wx.FileDialog(self, "Choose a file", … … 1254 1254 path = dlg.GetPath() 1255 1255 self._default_save_location = os.path.dirname(path) 1256 if self.parent !=None:1256 if self.parent is not None: 1257 1257 self.parent._default_save_location = \ 1258 1258 self._default_save_location … … 1393 1393 Enable and disable the power value editing 1394 1394 """ 1395 if event !=None:1395 if event is not None: 1396 1396 self._set_bookmark_flag(True) 1397 1397 self._set_preview_flag(False) … … 1411 1411 Disable or enable some button if the user enable low q extrapolation 1412 1412 """ 1413 if event !=None:1413 if event is not None: 1414 1414 self._set_bookmark_flag(True) 1415 1415 self._set_preview_flag(False) … … 1438 1438 Enable editing power law section at low q range 1439 1439 """ 1440 if event !=None:1440 if event is not None: 1441 1441 self._set_bookmark_flag(True) 1442 1442 self._set_preview_flag(False) … … 1537 1537 Enable and disable the power value editing 1538 1538 """ 1539 if event !=None:1539 if event is not None: 1540 1540 self._set_bookmark_flag(True) 1541 1541 … … 1554 1554 Disable or enable some button if the user enable high q extrapolation 1555 1555 """ 1556 if event !=None:1556 if event is not None: 1557 1557 self._set_bookmark_flag(True) 1558 1558 self._set_preview_flag(False) -
src/sas/sasgui/perspectives/invariant/invariant_state.py
r463e7ffc r7432acb 281 281 # File name 282 282 element = newdoc.createElement("filename") 283 if self.file !=None and self.file != '':283 if self.file is not None and self.file != '': 284 284 element.appendChild(newdoc.createTextNode(str(self.file))) 285 285 else: … … 734 734 # invstate could be None when .svs file is loaded 735 735 # in this case, skip appending to output 736 if invstate !=None:736 if invstate is not None: 737 737 sas_entry.meta_data['invstate'] = invstate 738 738 sas_entry.filename = invstate.file … … 787 787 raise RuntimeError, msg 788 788 # make sure title and data run is filled up. 789 if datainfo.title ==None or datainfo.title == '':789 if datainfo.title is None or datainfo.title == '': 790 790 datainfo.title = datainfo.name 791 if datainfo.run_name ==None or datainfo.run_name == {}:791 if datainfo.run_name is None or datainfo.run_name == {}: 792 792 datainfo.run = [str(datainfo.name)] 793 793 datainfo.run_name[0] = datainfo.name -
src/sas/sasgui/perspectives/invariant/media/invariant_help.rst
r484141c r094b9eb 10 10 ----------- 11 11 12 The scattering, or Porod, invariant ( Q*\) is a model-independent quantity that12 The scattering, or Porod, invariant ($Q^*$) is a model-independent quantity that 13 13 can be easily calculated from scattering data. 14 14 15 For two phase systems, the scattering invariant is defined as the integral of 16 the square of the wave transfer (Q) multiplied by the scattering cross section17 over the full range of Qfrom zero to infinity, that is15 For two phase systems, the scattering invariant is defined as the integral of 16 the square of the wavevector transfer ($Q$) multiplied by the scattering cross section 17 over the full range of $Q$ from zero to infinity, that is 18 18 19 .. image:: image001.gif19 .. math:: 20 20 21 where *g = q* for pinhole geometry (SAS) and *g = q*\ :sub:`v` (the slit height) for 22 slit geometry (USAS). 21 Q^* = \int_0^\infty q^2I(q)\,dq 23 22 24 The worth of Q*\ is that it can be used to determine the volume fraction and 25 the specific area of a sample. Whilst these quantities are useful in their own 23 in the case of pinhole geometry. For slit geometry the invariant is given by 24 25 .. math:: 26 27 Q^* = \Delta q_v \int_0^\infty qI(q)\,dq 28 29 where $\Delta q_v$ is the slit height. 30 31 The worth of $Q^*$ is that it can be used to determine the volume fraction and 32 the specific area of a sample. Whilst these quantities are useful in their own 26 33 right they can also be used in further analysis. 27 34 28 The difficulty with using Q*\ arises from the fact that experimental data is29 never measured over the range 0 =< *Q* =< infinity. At best, combining USAS and30 WAS data might cover the range 1e-5 =< *Q* =< 10 1/\ |Ang| . Thus it is usually31 necessary to extrapolate the experimental data to low and high *Q*. For this35 The difficulty with using $Q^*$ arises from the fact that experimental data is 36 never measured over the range $0 \le Q \le \infty$. At best, combining USAS and 37 WAS data might cover the range $10^{-5} \le Q \le 10$ 1/\ |Ang| . Thus it is usually 38 necessary to extrapolate the experimental data to low and high $Q$. For this 32 39 33 High- *Q*region (>= *Qmax* in data)40 High-\ $Q$ region (>= *Qmax* in data) 34 41 35 * The power law function *C*/*Q*\ :sup:`4` is used where the constant36 *C* (= 2.\ |pi|\ .(\ |bigdelta|\ |rho|\ ).\ *Sv*\ ) is to be found by fitting part of data37 within the range *Q*\ :sub:`N-m` to *Q*\ :sub:`N` (where m < N).42 * The power law function $C/Q^4$ is used where the constant 43 $C = 2 \pi \Delta\rho S_v$ is to be found by fitting part of data 44 within the range $Q_{N-m}$ to $Q_N$ (where $m < N$). 38 45 39 Low- *Q*region (<= *Qmin* in data)46 Low-\ $Q$ region (<= *Qmin* in data) 40 47 41 * The Guinier function *I0.exp(-Rg*\ :sup:`2`\ *Q*\ :sup:`2`\ */3)* where *I0*42 and *Rg* are obtained by fitting as for the high-*Q* region above.48 * The Guinier function $I_0 exp(-R_g^2 Q^2/3)$ where $I_0$ 49 and $R_g$ are obtained by fitting as for the high-\ $Q$ region above. 43 50 Alternatively a power law can be used. 44 51 … … 52 59 2) Load some data with the *Data Explorer*. 53 60 54 3) Select a dataset and use the *Send To* button on the *Data Explorer* to load 61 3) Select a dataset and use the *Send To* button on the *Data Explorer* to load 55 62 the dataset into the *Invariant* panel. 56 63 57 4) Use the *Customised Input* boxes on the *Invariant* panel to subtract 58 any background, specify the contrast (i.e. difference in SLDs - this must be 59 specified for the eventual value of Q*\ to be on an absolute scale), or to64 4) Use the *Customised Input* boxes on the *Invariant* panel to subtract 65 any background, specify the contrast (i.e. difference in SLDs - this must be 66 specified for the eventual value of $Q^*$ to be on an absolute scale), or to 60 67 rescale the data. 61 68 62 5) Adjust the extrapolation range as necessary. In most cases the default 69 5) Adjust the extrapolation range as necessary. In most cases the default 63 70 values will suffice. 64 71 65 72 6) Click the *Compute* button. 66 73 67 7) To include a lower and/or higher Q range, check the relevant *Enable74 7) To include a lower and/or higher $Q$ range, check the relevant *Enable 68 75 Extrapolate* check boxes. 69 70 If power law extrapolations are chosen, the exponent can be either held 71 fixed or fitted. The number of points, Npts, to be used for the basis of the 76 77 If power law extrapolations are chosen, the exponent can be either held 78 fixed or fitted. The number of points, Npts, to be used for the basis of the 72 79 extrapolation can also be specified. 73 80 74 8) If the value of Q*\ calculated with the extrapolated regions is invalid, a81 8) If the value of $Q^*$ calculated with the extrapolated regions is invalid, a 75 82 red warning will appear at the top of the *Invariant* panel. 76 83 77 The details of the calculation are available by clicking the *Details* 84 The details of the calculation are available by clicking the *Details* 78 85 button in the middle of the panel. 79 86 80 .. image:: image005. gif87 .. image:: image005.png 81 88 82 89 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ … … 88 95 ^^^^^^^^^^^^^^^ 89 96 90 The volume fraction |phi| is related to Q*\by97 The volume fraction $\phi$ is related to $Q^*$ by 91 98 92 .. image:: image002.gif99 .. math:: 93 100 94 where |bigdelta|\ |rho| is the SLD contrast. 101 \phi(1 - \phi) = \frac{Q^*}{2\pi^2(\Delta\rho)^2} \equiv A 95 102 96 .. image:: image003.gif 103 where $\Delta\rho$ is the SLD contrast. 104 105 .. math:: 106 107 \phi = \frac{1 \pm \sqrt{1 - 4A}}{2} 97 108 98 109 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ … … 101 112 ^^^^^^^^^^^^^^^^^^^^^ 102 113 103 The specific surface area *Sv* is related to Q*\by114 The specific surface area $S_v$ is related to $Q^*$ by 104 115 105 .. image:: image004.gif116 .. math:: 106 117 107 where *Cp* is the Porod constant. 118 S_v = \frac{2\pi\phi(1-\phi)C_p}{Q^*} = \frac{2\pi A C_p}{Q^*} 119 120 where $C_p$ is the Porod constant. 108 121 109 122 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
Note: See TracChangeset
for help on using the changeset viewer.