Changes in / [53f0402:c221349] in sasview


Ignore:
Location:
src/sas/sasgui
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sasgui/guiframe/CategoryInstaller.py

    rddbac66 r212bfc2  
    123123        compile it and install 
    124124        :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 
    127126        """ 
    128127        _model_dict = { model.name: model for model in model_list} 
  • src/sas/sasgui/perspectives/calculator/model_editor.py

    rddbac66 ra08b89b  
    55function of y (usually the intensity).  It also provides a drop down of 
    66standard available math functions.  Finally a full python editor panel for 
    7 complete customization is provided. 
    8  
    9 :TODO the writing of the file and name checking (and maybe some other 
    10 functions?) should be moved to a computational module which could be called 
    11 from a python script.  Basically one just needs to pass the name, 
     7complete customizatin is provided. 
     8 
     9:TODO the writiong of the file and name checking (and maybe some other 
     10funtions?) should be moved to a computational module which could be called 
     11fropm a python script.  Basically one just needs to pass the name, 
    1212description text and function text (or in the case of the composite editor 
    1313the names of the first and second model and the operator to be used). 
     
    6161    """ 
    6262    Dialog for easy custom composite models.  Provides a wx.Dialog panel 
    63     to choose two existing models (including pre-existing Plugin Models which 
     63    to choose two existing models (including pre-existing custom models which 
    6464    may themselves be composite models) as well as an operation on those models 
    6565    (add or multiply) the resulting model will add a scale parameter for summed 
     
    380380            color = 'blue' 
    381381        except: 
    382             msg = "Easy Sum/Multipy Plugin: Error occurred..." 
     382            msg = "Easy Custom Sum/Multipy: Error occurred..." 
    383383            info = 'Error' 
    384384            color = 'red' 
     
    501501        self.factor = factor 
    502502        self._operator = operator 
    503         self.explanation = "  Plugin Model = %s %s (model1 %s model2)\n" % \ 
     503        self.explanation = "  Custom Model = %s %s (model1 %s model2)\n" % \ 
    504504                           (self.factor, f_oper, self._operator) 
    505505        self.explanationctr.SetLabel(self.explanation) 
     
    617617class EditorPanel(wx.ScrolledWindow): 
    618618    """ 
    619     Simple Plugin Model function editor 
     619    Custom model function editor 
    620620    """ 
    621621    def __init__(self, parent, base, path, title, *args, **kwds): 
     
    652652        self.msg_sizer = None 
    653653        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" 
    657655        self.function_tcl = None 
    658656        self.math_combo = None 
     
    993991        else: 
    994992            self._notes = result 
    995             msg = "Successful! Please look for %s in Plugin Models."%name 
     993            msg = "Successful! Please look for %s in Customized Models."%name 
    996994            msg += "  " + self._notes 
    997995            info = 'Info' 
     
    11401138    def on_help(self, event): 
    11411139        """ 
    1142         Bring up the New Plugin Model Editor Documentation whenever 
     1140        Bring up the Custom Model Editor Documentation whenever 
    11431141        the HELP button is clicked. 
    11441142 
     
    11921190        #self.Destroy() 
    11931191 
    1194 ## Templates for plugin models 
     1192## Templates for custom models 
    11951193 
    11961194CUSTOM_TEMPLATE = """ 
  • src/sas/sasgui/perspectives/calculator/pyconsole.py

    rddbac66 rd472e86  
    302302        success = show_model_output(self, fname) 
    303303 
    304         # Update plugin model list in fitpage combobox 
     304        # Update custom model list in fitpage combobox 
    305305        if success and self._manager != None and self.panel != None: 
    306306            self._manager.set_edit_menu_helper(self.parent) 
  • src/sas/sasgui/perspectives/fitting/basepage.py

    r7a5aedd r20522e1  
    5353    ON_MAC = True 
    5454 
    55 CUSTOM_MODEL = 'Plugin Models' 
    56  
    5755class BasicPage(ScrolledPanel, PanelBase): 
    5856    """ 
    59     This class provide general structure of the fitpanel page 
     57    This class provide general structure of fitpanel page 
    6058    """ 
    6159    # Internal name for the AUI manager 
     
    679677    def _copy_info(self, flag): 
    680678        """ 
    681         Send event depending on flag 
    682  
    683         : Param flag: flag that distinguishes the event 
     679        Send event dpemding on flag 
     680 
     681        : Param flag: flag that distinguish event 
    684682        """ 
    685683        # messages depending on the flag 
     
    11211119        :precondition: the page is already drawn or created 
    11221120 
    1123         :postcondition: the state of the underlying data changes as well as the 
     1121        :postcondition: the state of the underlying data change as well as the 
    11241122            state of the graphic interface 
    11251123        """ 
     
    11691167        self._show_combox(None) 
    11701168        from models import PLUGIN_NAME_BASE 
    1171         if self.categorybox.GetValue() == CUSTOM_MODEL \ 
     1169        if self.categorybox.GetValue() == 'Customized Models' \ 
    11721170                and PLUGIN_NAME_BASE not in state.formfactorcombobox: 
    11731171            state.formfactorcombobox = \ 
     
    13371335    def _selectDlg(self): 
    13381336        """ 
    1339         open a dialog file to select the customized polydispersity function 
     1337        open a dialog file to selected the customized dispersity 
    13401338        """ 
    13411339        if self.parent is not None: 
     
    17621760    def _set_multfactor_combobox(self, multiplicity=10): 
    17631761        """ 
    1764         Set comboBox for multitfactor of CoreMultiShellModel 
     1762        Set comboBox for muitfactor of CoreMultiShellModel 
    17651763        :param multiplicit: no. of multi-functionality 
    17661764        """ 
     
    18001798        Fill panel's combo box according to the type of model selected 
    18011799        """ 
    1802  
     1800        custom_model = 'Customized Models' 
    18031801        mod_cat = self.categorybox.GetStringSelection() 
    18041802        self.structurebox.SetSelection(0) 
     
    18091807        m_list = [] 
    18101808        try: 
    1811             if mod_cat == CUSTOM_MODEL: 
     1809            if mod_cat == custom_model: 
    18121810                for model in self.model_list_box[mod_cat]: 
    18131811                    m_list.append(self.model_dict[model.name]) 
     
    34553453        fills out the category list box 
    34563454        """ 
    3457         uncat_str = 'Plugin Models' 
     3455        uncat_str = 'Customized Models' 
    34583456        self._read_category_info() 
    34593457 
     
    34843482        self.model_box.Clear() 
    34853483 
    3486         if category == 'Plugin Models': 
     3484        if category == 'Customized Models': 
    34873485            for model in self.model_list_box[category]: 
    34883486                str_m = str(model).split(".")[0] 
  • src/sas/sasgui/perspectives/fitting/fitpage.py

    r3d55219 r3d55219  
    3131SMEAR_SIZE_L = 0.00 
    3232SMEAR_SIZE_H = 0.00 
    33 CUSTOM_MODEL = 'Plugin Models' 
     33 
    3434 
    3535class FitPage(BasicPage): 
     
    12491249            wx.PostEvent(self.parent, new_event) 
    12501250            # update list of plugins if new plugin is available 
    1251             custom_model = CUSTOM_MODEL 
     1251            custom_model = 'Customized Models' 
    12521252            mod_cat = self.categorybox.GetStringSelection() 
    12531253            if mod_cat == custom_model: 
  • src/sas/sasgui/perspectives/fitting/fitting.py

    rddbac66 r73cbeec  
    225225 
    226226        self.id_edit = wx.NewId() 
     227        editmodel_help = "Edit customized model sample file" 
    227228        self.menu1.AppendMenu(self.id_edit, "Plugin Model Operations", 
    228                               self.edit_model_menu) 
     229                              self.edit_model_menu, editmodel_help) 
    229230        #create  menubar items 
    230231        return [(self.menu1, self.sub_menu)] 
     
    259260            self.update_custom_combo() 
    260261            if os.path.isfile(p_path): 
    261                 msg = "Sorry! unable to delete the default " 
    262                 msg += "plugin model... \n" 
     262                msg = "Sorry! Could not be able to delete the default " 
     263                msg += "custom model... \n" 
    263264                msg += "Please manually remove the files (.py, .pyc) " 
    264265                msg += "in the 'plugin_models' folder \n" 
     
    273274                    if item.GetLabel() == label: 
    274275                        self.edit_menu.DeleteItem(item) 
    275                         msg = "The plugin model, %s, has been deleted." % label 
     276                        msg = "The custom model, %s, has been deleted." % label 
    276277                        evt = StatusEvent(status=msg, type='stop', info='info') 
    277278                        wx.PostEvent(self.parent, evt) 
     
    330331            temp = self.fit_panel.reset_pmodel_list() 
    331332            if temp: 
    332                 # Set the new plugin model list for all fit pages 
     333                # Set the new custom model list for all fit pages 
    333334                for uid, page in self.fit_panel.opened_pages.iteritems(): 
    334335                    if hasattr(page, "formfactorbox"): 
     
    19641965                ## then kill itself but cannot.  Paul Kienzle came up with 
    19651966                ## this fix to prevent threads from stepping on each other 
    1966                 ## which was causing a simple custom plugin model to crash 
    1967                 ##Sasview. 
     1967                ## which was causing a simple custom model to crash Sasview. 
    19681968                ## We still don't know why the fit sometimes lauched a second 
    19691969                ## thread -- something which should also be investigated. 
  • src/sas/sasgui/perspectives/fitting/media/fitting_help.rst

    r5295cf5 r26c8be3  
    3434*  in *Single* fit mode - individual data sets are fitted independently one-by-one 
    3535 
    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) 
    3937 
    4038*  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!) 
     
    4543----------------- 
    4644 
    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) 
     45By default, the models in SasView are grouped into five categories 
     46 
     47*  *Shapes* - models describing 'objects' (spheres, cylinders, etc) 
    5648*  *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) 
    5851*  *Structure Factor* - S(Q) models 
    59 *  *Plugin Models* - User-created (custom/non-library) Python models 
    6052 
    6153Use the *Category* drop-down menu to chose a category of model, then select 
     
    9284.. image:: cat_fig0.bmp 
    9385 
    94 The categorization of all models except the user supplied Plugin Models can be 
    95 reassigned, added to, and removed using *Category Manager*. Models can also be 
    96 hidden from view in the drop-down menus. 
     86The categorization of all models except the customized models can be reassigned, 
     87added to, and removed using *Category Manager*. Models can also be hidden from view 
     88in the drop-down menus. 
    9789 
    9890.. image:: cat_fig1.bmp 
     
    10193^^^^^^^^^^^^^^^^^ 
    10294 
    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 to make the required changes. 
     95To change category, highlight a model in the list by left-clicking on its entry and 
     96then click the *Modify* button. Use the *Change Category* panel that appears to make 
     97the required changes. 
    10698 
    10799.. image:: cat_fig2.bmp 
     
    114106^^^^^^^^^^^^^^^^^^^^^ 
    115107 
    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*. 
     108Use the *Enable All / Disable All* buttons and the check boxes beside each model to 
     109select the models to show/hide. To apply the selection, click *Ok*. Otherwise click 
     110*Cancel*. 
    119111 
    120112*NB: It may be necessary to change to a different category and then back again* 
     
    126118--------------- 
    127119 
    128 For a complete list of all the library models available in SasView, see 
    129 the `Model Documentation <../../../index.html>`_ . 
     120For a complete list of all the library models available in SasView, see the `Model Documentation <../../../index.html>`_ . 
    130121 
    131122It is also possible to add your own models. 
     
    140131There are essentially three ways to generate new fitting models for SasView: 
    141132 
    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!) 
    149136 
    150137Please read the guidance on :ref:`Writing_a_Plugin` before proceeding. 
     
    176163^^^^^^^^^^^^^^^^ 
    177164 
    178 Relatively straightforward models can be programmed directly from the SasView 
    179 GUI using the *New Plugin Model Function*. 
     165Relatively straightforward models can be programmed directly from the SasView GUI  
     166using the *New Plugin Model Function*. 
    180167 
    181168.. image:: new_model.bmp 
     
    188175*checked*\ . 
    189176 
    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). 
     177Also note that the 'Fit Parameters' have been split into two sections: those which  
     178can be polydisperse (shape and orientation parameters) and those which are not 
     179(eg, scattering length densities). 
    193180 
    194181A model file generated by this option can be viewed and further modified using 
     
    200187.. image:: sum_model.bmp 
    201188 
    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)} + background 
     189This option creates a custom model of the form:: 
     190 
     191     Custom Model = scale_factor \* {(scale_1 \* model_1) \+ (scale_2 \* model_2)} \+ background 
    205192 
    206193or:: 
    207194 
    208      Plugin Model = scale_factor * model_1 /* model_2 + background 
     195     Custom Model = scale_factor \* model_1 \* model_2 \+ background 
    209196 
    210197In the *Easy Sum/Multi Editor* give the new model a function name and brief 
     
    245232Simply highlight the plugin model to be removed. The operation is final!!! 
    246233 
    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.* 
    248235 
    249236Load Plugin Models 
    250237^^^^^^^^^^^^^^^^^^ 
    251238 
    252 This option loads (or re-loads) all models present in the 
    253 *~\\.sasview\\plugin_models* folder. 
     239This option loads (or re-loads) all models present in the *~\\.sasview\\plugin_models* folder. 
    254240 
    255241.. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 
     
    414400:ref:`Assessing_Fit_Quality`. 
    415401 
    416 *NB: If you need to use a custom Plugin Model, you must ensure that model is 
    417 available first (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` *).* 
    418404 
    419405Method 
     
    498484If multiple data sets are in one file, load just that file. *Unselect All Data*, then 
    499485select 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 is 
    503 available first (see* :ref:`Adding_your_own_models` *).* 
     486above 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` *).* 
    504490 
    505491Method 
  • src/sas/sasgui/perspectives/fitting/media/plugin.rst

    r5295cf5 rca6cbc1c  
    2727 
    2828the next time SasView is started it will compile the plugin and add 
    29 it to the list of *Plugin Models* in a FitPage. 
     29it to the list of *Customized Models* in a FitPage. 
    3030 
    3131SasView models can be of three types: 
  • src/sas/sasgui/perspectives/fitting/models.py

    re92a352 r0de74af  
    325325                    self.plugins.append(plug) 
    326326                    self.model_dictionary[name] = plug 
    327             self.model_combobox.set_list("Plugin Models", self.plugins) 
     327            self.model_combobox.set_list("Customized Models", self.plugins) 
    328328            return self.model_combobox.get_list() 
    329329        else: 
     
    346346            self.model_dictionary[name] = plug 
    347347 
    348         self.model_combobox.reset_list("Plugin Models", self.plugins) 
     348        self.model_combobox.reset_list("Customized Models", self.plugins) 
    349349        return self.model_combobox.get_list() 
    350350 
     
    389389#                                     self.shape_indep_list) 
    390390        self.model_combobox.set_list("Structure Factors", self.struct_list) 
    391         self.model_combobox.set_list("Plugin Models", self.plugins) 
     391        self.model_combobox.set_list("Customized Models", self.plugins) 
    392392        self.model_combobox.set_list("P(Q)*S(Q)", self.multiplication_factor) 
    393393        self.model_combobox.set_list("multiplication", 
  • src/sas/sasgui/perspectives/fitting/pagestate.py

    r71601312 r6d2b50b  
    3333from sas.sascalc.dataloader.data_info import Data2D, Collimation, Detector 
    3434from sas.sascalc.dataloader.data_info import Process, Aperture 
    35  
    3635# Information to read/write state as xml 
    3736FITTING_NODE_NAME = 'fitting_plug_in' 
    3837CANSAS_NS = "cansas1d/1.0" 
    39  
    40 CUSTOM_MODEL = 'Plugin Models' 
    41 CUSTOM_MODEL_OLD = 'Customized Models' 
    4238 
    4339LIST_OF_DATA_ATTRIBUTES = [["is_data", "is_data", "bool"], 
     
    370366        :return: None 
    371367        """ 
    372         if self.categorycombobox == CUSTOM_MODEL_OLD: 
    373             self.categorycombobox = CUSTOM_MODEL 
    374368        if self.formfactorcombobox == '': 
    375369            FIRST_FORM = { 
     
    384378                'Sphere' : 'adsorbed_layer', 
    385379                'Structure Factor' : 'hardsphere', 
    386                 CUSTOM_MODEL : '' 
     380                'Customized Models' : '' 
    387381            } 
    388382            if self.categorycombobox == '': 
Note: See TracChangeset for help on using the changeset viewer.