Changes in / [e64a03e:71601312] in sasview
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
setup.py
r1e13b53 r18e7309 206 206 ) 207 207 208 208 209 # sas.sascalc.pr 209 210 srcdir = os.path.join("src", "sas", "sascalc", "pr", "c_extensions") … … 228 229 ) ) 229 230 230 #sas.sascalc.corfunc231 package_dir["sas.sascalc.corfunc"] = os.path.join("src", "sas", "sascalc", "corfunc")232 packages.extend(["sas.sascalc.corfunc"])233 234 231 # sas.sascalc.fit 235 232 package_dir["sas.sascalc.fit"] = os.path.join("src", "sas", "sascalc", "fit") … … 240 237 package_dir["sas.sasgui.perspectives.pr"] = os.path.join("src", "sas", "sasgui", "perspectives", "pr") 241 238 packages.extend(["sas.sasgui.perspectives","sas.sasgui.perspectives.pr"]) 242 package_data["sas.sasgui.perspectives.pr"] = [' media/*']239 package_data["sas.sasgui.perspectives.pr"] = ['images/*'] 243 240 244 241 package_dir["sas.sasgui.perspectives.invariant"] = os.path.join("src", "sas", "sasgui", "perspectives", "invariant") … … 253 250 packages.extend(["sas.sasgui.perspectives", "sas.sasgui.perspectives.calculator"]) 254 251 package_data['sas.sasgui.perspectives.calculator'] = ['images/*', 'media/*'] 255 256 package_dir["sas.sasgui.perspectives.corfunc"] = os.path.join("src", "sas", "sasgui", "perspectives", "corfunc")257 packages.extend(["sas.sasgui.perspectives.corfunc"])258 package_data['sas.sasgui.perspectives.corfunc'] = ['media/*']259 260 package_dir["sas.sasgui.perspectives.file_converter"] = os.path.join("src", "sas", "sasgui", "perspectives", "file_converter")261 packages.extend(["sas.sasgui.perspectives.file_converter"])262 package_data['sas.sasgui.perspectives.file_converter'] = ['media/*']263 252 264 253 # Data util -
src/sas/sascalc/dataloader/readers/sesans_reader.py
r9525358 r345e7e4 166 166 output.dlam, output.dlam_unit = self._unit_conversion(dlam, lam_unit, default_z_unit) 167 167 168 output.xaxis( r"\rm{z}", output.x_unit)169 output.yaxis( r"\rm{P/P0}", output.y_unit)168 output.xaxis("\rm{z}", output.x_unit) 169 output.yaxis("\\rm{P/P0}", output.y_unit) 170 170 # Store loading process information 171 171 output.meta_data['loader'] = self.type_name … … 175 175 zaccept_unit_split = paramnames[7].split("[") 176 176 zaccept_unit = zaccept_unit_split[1].replace("]","") 177 if zaccept_unit.strip() == r'\AA^-1':177 if zaccept_unit.strip() == '\AA^-1': 178 178 zaccept_unit = "1/A" 179 179 output.sample.zacceptance=(float(paramvals[7]),zaccept_unit) -
src/sas/sasgui/guiframe/CategoryInstaller.py
rddbac66 r212bfc2 123 123 compile it and install 124 124 :param homefile: Override the default home directory 125 :param model_list: List of model names except those in Plugin Models 126 which are user supplied. 125 :param model_list: List of model names except customized models 127 126 """ 128 127 _model_dict = { model.name: model for model in model_list} -
src/sas/sasgui/perspectives/calculator/model_editor.py
rddbac66 ra08b89b 5 5 function of y (usually the intensity). It also provides a drop down of 6 6 standard available math functions. Finally a full python editor panel for 7 complete customizati on is provided.8 9 :TODO the writi ng of the file and name checking (and maybe some other10 fun ctions?) should be moved to a computational module which could be called11 fro m a python script. Basically one just needs to pass the name,7 complete customizatin is provided. 8 9 :TODO the writiong of the file and name checking (and maybe some other 10 funtions?) should be moved to a computational module which could be called 11 fropm a python script. Basically one just needs to pass the name, 12 12 description text and function text (or in the case of the composite editor 13 13 the names of the first and second model and the operator to be used). … … 61 61 """ 62 62 Dialog for easy custom composite models. Provides a wx.Dialog panel 63 to choose two existing models (including pre-existing Plugin Models which63 to choose two existing models (including pre-existing custom models which 64 64 may themselves be composite models) as well as an operation on those models 65 65 (add or multiply) the resulting model will add a scale parameter for summed … … 380 380 color = 'blue' 381 381 except: 382 msg = "Easy Sum/Multipy Plugin: Error occurred..."382 msg = "Easy Custom Sum/Multipy: Error occurred..." 383 383 info = 'Error' 384 384 color = 'red' … … 501 501 self.factor = factor 502 502 self._operator = operator 503 self.explanation = " PluginModel = %s %s (model1 %s model2)\n" % \503 self.explanation = " Custom Model = %s %s (model1 %s model2)\n" % \ 504 504 (self.factor, f_oper, self._operator) 505 505 self.explanationctr.SetLabel(self.explanation) … … 617 617 class EditorPanel(wx.ScrolledWindow): 618 618 """ 619 Simple Plugin Model function editor619 Custom model function editor 620 620 """ 621 621 def __init__(self, parent, base, path, title, *args, **kwds): … … 652 652 self.msg_sizer = None 653 653 self.warning = "" 654 #This does not seem to be used anywhere so commenting out for now 655 # -- PDB 2/26/17 656 #self._description = "New Plugin Model" 654 self._description = "New Custom Model" 657 655 self.function_tcl = None 658 656 self.math_combo = None … … 993 991 else: 994 992 self._notes = result 995 msg = "Successful! Please look for %s in PluginModels."%name993 msg = "Successful! Please look for %s in Customized Models."%name 996 994 msg += " " + self._notes 997 995 info = 'Info' … … 1140 1138 def on_help(self, event): 1141 1139 """ 1142 Bring up the New PluginModel Editor Documentation whenever1140 Bring up the Custom Model Editor Documentation whenever 1143 1141 the HELP button is clicked. 1144 1142 … … 1192 1190 #self.Destroy() 1193 1191 1194 ## Templates for pluginmodels1192 ## Templates for custom models 1195 1193 1196 1194 CUSTOM_TEMPLATE = """ -
src/sas/sasgui/perspectives/calculator/pyconsole.py
rddbac66 rd472e86 302 302 success = show_model_output(self, fname) 303 303 304 # Update pluginmodel list in fitpage combobox304 # Update custom model list in fitpage combobox 305 305 if success and self._manager != None and self.panel != None: 306 306 self._manager.set_edit_menu_helper(self.parent) -
src/sas/sasgui/perspectives/fitting/fitpage.py
r3d55219 r4387385 362 362 self.Bind(wx.EVT_RADIOBUTTON, self.onSlitSmear, 363 363 id=self.slit_smearer.GetId()) 364 self. disable_smearer.SetValue(True)364 self.enable_smearer.SetValue(True) 365 365 366 366 sizer_smearer.Add(self.disable_smearer, 0, wx.LEFT, 10) … … 1934 1934 1935 1935 # more disables for 2D 1936 di_flag = False1937 dq_flag = False1938 1936 if self.data.__class__.__name__ == "Data2D" or \ 1939 1937 self.enable2D: … … 1941 1939 self.pinhole_smearer.Enable(True) 1942 1940 self.default_mask = copy.deepcopy(self.data.mask) 1943 if self.data.err_data is not None \ 1944 and numpy.any(self.data.err_data): 1945 di_flag = True 1946 if self.data.dqx_data is not None \ 1947 and numpy.any(self.data.dqx_data): 1948 dq_flag = True 1941 if self.data.err_data is None or\ 1942 numpy.all(err == 1 for err in self.data.err_data) or \ 1943 not numpy.any(self.data.err_data): 1944 self.dI_didata.Enable(False) 1945 self.dI_noweight.SetValue(True) 1946 self.weightbt_string = self.dI_noweight.GetLabelText() 1947 else: 1948 self.dI_didata.Enable(True) 1949 self.dI_didata.SetValue(True) 1950 self.weightbt_string = self.dI_didata.GetLabelText() 1949 1951 else: 1950 1952 self.slit_smearer.Enable(True) 1951 1953 self.pinhole_smearer.Enable(True) 1952 if self.data.dy is not None and numpy.any(self.data.dy): 1953 di_flag = True 1954 if self.data.dx is not None and numpy.any(self.data.dx): 1955 dq_flag = True 1956 elif self.data.dxl is not None and numpy.any(self.data.dxl): 1957 dq_flag = True 1958 1959 if dq_flag: 1960 self.enable_smearer.Enable(True) 1961 self.enable_smearer.SetValue(True) 1962 self.disable_smearer.SetValue(False) 1963 else: 1964 self.enable_smearer.Disable() 1965 self.disable_smearer.Enable(True) 1966 self.disable_smearer.SetValue(True) 1967 1968 if di_flag: 1969 self.dI_didata.Enable(True) 1970 self.dI_didata.SetValue(True) 1971 self.weightbt_string = self.dI_didata.GetLabelText() 1972 else: 1973 self.dI_didata.Enable(False) 1974 self.dI_noweight.SetValue(True) 1975 self.weightbt_string = self.dI_noweight.GetLabelText() 1976 1954 1955 if self.data.dy is None or\ 1956 numpy.all(self.data.dy == 1) or\ 1957 not numpy.any(self.data.dy): 1958 self.dI_didata.Enable(False) 1959 self.dI_noweight.SetValue(True) 1960 self.weightbt_string = self.dI_noweight.GetLabelText() 1961 else: 1962 self.dI_didata.Enable(True) 1963 self.dI_didata.SetValue(True) 1964 self.weightbt_string = self.dI_didata.GetLabelText() 1977 1965 # Enable weighting radio buttons 1978 1966 self.dI_noweight.Enable(True) … … 2016 2004 self.EditMask_title.Disable() 2017 2005 2018 self.onSmear(event=None)2019 2006 self.on_set_focus(None) 2020 2007 self.Refresh() -
src/sas/sasgui/perspectives/fitting/fitting.py
rddbac66 re92a352 1964 1964 ## then kill itself but cannot. Paul Kienzle came up with 1965 1965 ## this fix to prevent threads from stepping on each other 1966 ## which was causing a simple custom plugin model to crash 1967 ##Sasview. 1966 ## which was causing a simple custom model to crash Sasview. 1968 1967 ## We still don't know why the fit sometimes lauched a second 1969 1968 ## thread -- something which should also be investigated. -
src/sas/sasgui/perspectives/fitting/media/fitting_help.rst
r5295cf5 r26c8be3 34 34 * in *Single* fit mode - individual data sets are fitted independently one-by-one 35 35 36 * in *Simultaneous* fit mode - multiple data sets are fitted simultaneously to 37 the *same* model with/without constrained parameters (this might be useful, 38 for example, if you have measured the same sample at different contrasts) 36 * in *Simultaneous* fit mode - multiple data sets are fitted simultaneously to the *same* model with/without constrained parameters (this might be useful, for example, if you have measured the same sample at different contrasts) 39 37 40 38 * in *Batch* fit mode - multiple data sets are fitted sequentially to the *same* model (this might be useful, for example, if you have performed a kinetic or time-resolved experiment and have *lots* of data sets!) … … 45 43 ----------------- 46 44 47 The models in SasView are grouped into categories. By default these consist of: 48 49 * *Cylinder* - cylindrical shapes (disc, right cylinder, cylinder with endcaps 50 etc) 51 * *Ellipsoid* - ellipsoidal shapes (oblate,prolate, core shell, etc) 52 * *Parellelepiped* - as the name implies 53 * *Sphere* - sheroidal shapes (sphere, core multishell, vesicle, etc) 54 * *Lamellae* - lamellar shapes (lamellar, core shell lamellar, stacked 55 lamellar, etc) 45 By default, the models in SasView are grouped into five categories 46 47 * *Shapes* - models describing 'objects' (spheres, cylinders, etc) 56 48 * *Shape-Independent* - models describing structure in terms of density correlation functions, fractals, peaks, power laws, etc 57 * *Paracrystal* - semi ordered structures (bcc, fcc, etc) 49 * *Customized Models* - SasView- or User-created (non-library) Python models 50 * *Uncategorised* - other models (for reflectivity, etc) 58 51 * *Structure Factor* - S(Q) models 59 * *Plugin Models* - User-created (custom/non-library) Python models60 52 61 53 Use the *Category* drop-down menu to chose a category of model, then select … … 92 84 .. image:: cat_fig0.bmp 93 85 94 The categorization of all models except the user supplied Plugin Models can be95 reassigned, added to, and removed using *Category Manager*. Models can also be 96 hidden from viewin the drop-down menus.86 The categorization of all models except the customized models can be reassigned, 87 added to, and removed using *Category Manager*. Models can also be hidden from view 88 in the drop-down menus. 97 89 98 90 .. image:: cat_fig1.bmp … … 101 93 ^^^^^^^^^^^^^^^^^ 102 94 103 To change category, highlight a model in the list by left-clicking on its entry 104 and then click the *Modify* button. Use the *Change Category* panel that appears 105 t o make the required changes.95 To change category, highlight a model in the list by left-clicking on its entry and 96 then click the *Modify* button. Use the *Change Category* panel that appears to make 97 the required changes. 106 98 107 99 .. image:: cat_fig2.bmp … … 114 106 ^^^^^^^^^^^^^^^^^^^^^ 115 107 116 Use the *Enable All / Disable All* buttons and the check boxes beside each model 117 to select the models to show/hide. To apply the selection, click *Ok*. Otherwise 118 click*Cancel*.108 Use the *Enable All / Disable All* buttons and the check boxes beside each model to 109 select the models to show/hide. To apply the selection, click *Ok*. Otherwise click 110 *Cancel*. 119 111 120 112 *NB: It may be necessary to change to a different category and then back again* … … 126 118 --------------- 127 119 128 For a complete list of all the library models available in SasView, see 129 the `Model Documentation <../../../index.html>`_ . 120 For a complete list of all the library models available in SasView, see the `Model Documentation <../../../index.html>`_ . 130 121 131 122 It is also possible to add your own models. … … 140 131 There are essentially three ways to generate new fitting models for SasView: 141 132 142 * Using the SasView :ref:`New_Plugin_Model` helper dialog (best for beginners 143 and/or relatively simple models) 144 * By copying/editing an existing model (this can include models generated by 145 the New Plugin Model* dialog) in the :ref:`Python_shell` or 146 :ref:`Advanced_Plugin_Editor` (suitable for all use cases) 147 * By writing a model from scratch outside of SasView (only recommended for code 148 monkeys!) 133 * Using the SasView :ref:`New_Plugin_Model` helper dialog (best for beginners and/or relatively simple models) 134 * By copying/editing an existing model (this can include models generated by the *New Plugin Model* dialog) in the :ref:`Python_shell` or :ref:`Advanced_Plugin_Editor` (suitable for all use cases) 135 * By writing a model from scratch outside of SasView (only recommended for code monkeys!) 149 136 150 137 Please read the guidance on :ref:`Writing_a_Plugin` before proceeding. … … 176 163 ^^^^^^^^^^^^^^^^ 177 164 178 Relatively straightforward models can be programmed directly from the SasView 179 GUIusing the *New Plugin Model Function*.165 Relatively straightforward models can be programmed directly from the SasView GUI 166 using the *New Plugin Model Function*. 180 167 181 168 .. image:: new_model.bmp … … 188 175 *checked*\ . 189 176 190 Also note that the 'Fit Parameters' have been split into two sections: those 191 which can be polydisperse (shape and orientation parameters) and those which are 192 not(eg, scattering length densities).177 Also note that the 'Fit Parameters' have been split into two sections: those which 178 can be polydisperse (shape and orientation parameters) and those which are not 179 (eg, scattering length densities). 193 180 194 181 A model file generated by this option can be viewed and further modified using … … 200 187 .. image:: sum_model.bmp 201 188 202 This option creates a custom Plugin Model of the form::203 204 Plugin Model = scale_factor * {(scale_1 * model_1) +/- (scale_2 * model_2)}+ background189 This option creates a custom model of the form:: 190 191 Custom Model = scale_factor \* {(scale_1 \* model_1) \+ (scale_2 \* model_2)} \+ background 205 192 206 193 or:: 207 194 208 Plugin Model = scale_factor * model_1 /* model_2+ background195 Custom Model = scale_factor \* model_1 \* model_2 \+ background 209 196 210 197 In the *Easy Sum/Multi Editor* give the new model a function name and brief … … 245 232 Simply highlight the plugin model to be removed. The operation is final!!! 246 233 247 *NB: Models shipped with SasView cannot be removed in this way.*234 *NB: Plugin models shipped with SasView cannot be removed in this way.* 248 235 249 236 Load Plugin Models 250 237 ^^^^^^^^^^^^^^^^^^ 251 238 252 This option loads (or re-loads) all models present in the 253 *~\\.sasview\\plugin_models* folder. 239 This option loads (or re-loads) all models present in the *~\\.sasview\\plugin_models* folder. 254 240 255 241 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ … … 414 400 :ref:`Assessing_Fit_Quality`. 415 401 416 *NB: If you need to use a custom Plugin Model, you must ensure that model is417 availablefirst (see* :ref:`Adding_your_own_models` *).*402 *NB: If you need to use a customized model, you must ensure that model is available* 403 *first (see* :ref:`Adding_your_own_models` *).* 418 404 419 405 Method … … 498 484 If multiple data sets are in one file, load just that file. *Unselect All Data*, then 499 485 select a single initial data set to be fitted. Fit that selected data set as described 500 above under :ref:`Single_Fit_Mode` .501 502 *NB: If you need to use a custom Plugin Model, you must ensure that model is503 availablefirst (see* :ref:`Adding_your_own_models` *).*486 above under :ref:`Single_Fit_Mode` . 487 488 *NB: If you need to use a customized model, you must ensure that model is available* 489 *first (see* :ref:`Adding_your_own_models` *).* 504 490 505 491 Method -
src/sas/sasgui/perspectives/fitting/media/plugin.rst
r5295cf5 rca6cbc1c 27 27 28 28 the next time SasView is started it will compile the plugin and add 29 it to the list of * PluginModels* in a FitPage.29 it to the list of *Customized Models* in a FitPage. 30 30 31 31 SasView models can be of three types:
Note: See TracChangeset
for help on using the changeset viewer.