Changes in / [b12404e:2f539b2] in sasview


Ignore:
Location:
src/sas
Files:
5 deleted
15 edited

Legend:

Unmodified
Added
Removed
  • src/sas/qtgui/Calculators/DensityPanel.py

    rd813cf9a raed0532  
    1616 
    1717from sas.qtgui.Utilities.GuiUtils import enum 
    18 from sas.qtgui.Utilities.GuiUtils import formatNumber 
    1918 
    2019MODEL = enum( 
     
    9998            if index == MODEL.MOLECULAR_FORMULA: 
    10099                molarMass = toMolarMass(self.model.item(MODEL.MOLECULAR_FORMULA).text()) 
    101                 molarMass = formatNumber(molarMass, high=True) 
    102100                self.model.item(MODEL.MOLAR_MASS).setText(molarMass) 
    103101 
     
    122120 
    123121            molarDensity = molarMass / molarVolume 
    124             molarDensity = formatNumber(molarDensity, high=True) 
    125122            self.model.item(MODEL.MASS_DENSITY).setText(str(molarDensity)) 
    126123 
     
    134131 
    135132            molarVolume = molarMass / molarDensity 
    136             molarVolume = formatNumber(molarVolume, high=True) 
    137133            self.model.item(MODEL.MOLAR_VOLUME).setText(str(molarVolume)) 
    138134 
  • src/sas/qtgui/Calculators/UnitTesting/DensityCalculatorTest.py

    rbc3debf8 re90988c  
    7878 
    7979        # Assure the mass density field is set 
    80         self.assertEqual(self.widget.ui.editMassDensity.text(), '18.015') 
     80        self.assertEqual(self.widget.ui.editMassDensity.text(), '18.0153') 
    8181 
    8282        # Change mass density 
     
    8888 
    8989        # Assure the molar volume field got updated 
    90         self.assertEqual(self.widget.ui.editMolarVolume.text(), '1.126') 
     90        self.assertEqual(self.widget.ui.editMolarVolume.text(), '1.12595625') 
    9191 
    9292    def testComplexEntryAndReset(self): 
     
    113113 
    114114        self.assertEqual(self.widget.ui.editMolecularFormula.text(), "H2O") 
    115         self.assertEqual(self.widget.ui.editMolarMass.text(), "18.015") 
     115        self.assertEqual(self.widget.ui.editMolarMass.text(), "18.0153") 
    116116        self.assertEqual(self.widget.ui.editMolarVolume.text(), "") 
    117117        self.assertEqual(self.widget.ui.editMassDensity.text(), "") 
  • src/sas/qtgui/Calculators/media/data_oper_pic.png

    • Property mode changed from 100644 to 100755
  • src/sas/qtgui/Calculators/media/density_calculator_help.rst

    r5a731c63 r417c03f  
    2727   then type in an input value. 
    2828 
    29 4) Press Tab button or click out to perform the calculation. 
     294) Click the 'Calculate' button to perform the calculation. 
    3030 
    3131.. image:: density_tutor.png 
  • src/sas/qtgui/Calculators/media/density_tutor.png

    • Property mode changed from 100644 to 100755
  • src/sas/qtgui/MainWindow/GuiManager.py

    rc889a3e rfa05c6c1  
    6565        # Add signal callbacks 
    6666        self.addCallbacks() 
    67  
    68         # Assure model categories are available 
    69         self.addCategories() 
    7067 
    7168        # Create the data manager 
     
    145142        self.ResolutionCalculator = ResolutionCalculatorPanel(self) 
    146143        self.DataOperation = DataOperationUtilityPanel(self) 
    147  
    148     def addCategories(self): 
    149         """ 
    150         Make sure categories.json exists and if not compile it and install in ~/.sasview 
    151         """ 
    152         try: 
    153             from sas.sascalc.fit.models import ModelManager 
    154             from sas.qtgui.Utilities.CategoryInstaller import CategoryInstaller 
    155             model_list = ModelManager().cat_model_list() 
    156             CategoryInstaller.check_install(model_list=model_list) 
    157         except Exception: 
    158             logger.error("%s: could not load SasView models") 
    159             logger.error(traceback.format_exc()) 
    160144 
    161145    def statusBarSetup(self): 
  • src/sas/qtgui/Perspectives/Fitting/media/fitting_help.rst

    rb31b7e2 r417c03f  
    5252 
    5353Use the *Category* drop-down menu to chose a category of model, then select 
    54 a model from the drop-down menu to the right. The "Show Plot" button on the 
    55 bottom of the dialog will become active. If you click on it,  
    56 a graph of the chosen model, calculated using default parameter values, will appear. 
    57 The graph will update dynamically as the parameter values are changed. 
     54a model from the drop-down menu beneath. A graph of the chosen model, calculated 
     55using default parameter values, will appear. The graph will update dynamically 
     56as the parameter values are changed. 
    5857 
    5958You can decide your own model categorizations using the :ref:`Category_Manager`. 
    6059 
    61 Once you have selected a model you can read its help documentation by right clicking 
    62 on the empty space in the parameter table. 
    63  
    64 .. image:: descr_fig.png 
     60Once you have selected a model you can read its help documentation by clicking 
     61on the *Description* button to the right. 
    6562 
    6663Show 1D/2D 
     
    7269*NB: Magnetic scattering can only be fitted in SasView in 2D.* 
    7370 
    74 To activate 2D fitting mode, select the *2D view* checkbox on the *Fit Page*. To 
    75 return to 1D fitting model, de-select the same checkbox. 
     71To activate 2D fitting mode, click the *Show 2D* button on the *Fit Page*. To 
     72return to 1D fitting model, click the same button (which will now say *Show 1D*). 
    7673 
    7774.. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 
     
    139136*  By copying/editing an existing model (this can include models generated by 
    140137   the New Plugin Model* dialog) in the :ref:`Python_shell` or 
    141    :ref:`Plugin_Editor` (suitable for all use cases) 
     138   :ref:`Advanced_Plugin_Editor` (suitable for all use cases) 
    142139*  By writing a model from scratch outside of SasView (only recommended for code 
    143140   monkeys!) 
     
    154151----------------------- 
    155152 
    156 From the *Fitting* option in the menu bar, select one of the options: 
     153From the *Fitting* option in the menu bar, select *Plugin Model Operations* 
    157154 
    158155.. image:: edit_model_menu.png 
    159156 
    160 *  *Add Custom Model* - to create a plugin model template with a helper dialog 
    161 *  *Edit Custom Model* - to edit a plugin model in an editor window 
    162 *  *Manage Custom Models* - to open a custom model manager allowing for a number of actions to be taken on custom models: listing, adding, deleteing, duplicating, editing 
    163 *  *Add/Multiply Models* - to create a plugin model by summing/multiplying *existing models* in the model library 
     157and then one of the sub-options 
     158 
     159*  *New Plugin Model* - to create a plugin model template with a helper dialog 
     160*  *Sum|Multi(p1,p2)* - to create a plugin model by summing/multiplying *existing models* in the model library 
     161*  *Advanced Plugin Editor* - to create/edit a plugin model in a Python shell 
     162*  *Delete Plugin Models* - to delete a plugin model 
     163*  *Load Plugin Models* - to (re-)load plugin models 
    164164 
    165165.. _New_Plugin_Model: 
    166166 
    167 Add Custom Model 
     167New Plugin Model 
    168168^^^^^^^^^^^^^^^^ 
    169169 
    170170Relatively straightforward models can be programmed directly from the SasView 
    171 GUI using the *Plugin Definition* Function. 
     171GUI using the *New Plugin Model Function*. 
    172172 
    173173.. image:: new_model.png 
     
    185185 
    186186A model file generated by this option can be viewed and further modified using 
    187 the :ref:`Model_Editor`. 
     187the :ref:`Advanced_Plugin_Editor` . 
    188188 
    189189**SasView version 4.2** made it possible to specify whether a plugin created with 
     
    217217a P(Q) model has been selected). 
    218218 
    219  
    220 .. Model_Editor: 
    221  
    222 Model Editor 
    223 ^^^^^^^^^^^^ 
    224  
    225 Selecting "Edit Custom Model" option opens the editor window. 
    226  
    227 .. image :: model_editor_empty.png 
    228  
    229 Initially, the editor is empty. A custom model can be loaded by clicking on the *Load plugin...* button and choosing one of the existing custom plugins. 
    230  
    231 Once the model is loaded, it can be edited and saved with *Save* button. 
    232 Saving the model will perform the validation and only when the model is correct it will be saved to a file. 
    233 Successful model check is indicated by a SasView status bar message. 
    234  
    235 When *Cancel* is clicked, any changes to the model are discarded and the window is closed. 
    236  
    237  
    238 For details of the SasView plugin model format see :ref:`Writing_a_Plugin` . 
    239  
    240 To use the model, go to the relevant *Fit Page*, select the *Plugin Models* 
    241 category and then select the model from the drop-down menu. 
    242  
    243  
    244 .. Plugin_Manager: 
    245  
    246 Plugin Manager 
    247 ^^^^^^^^^^^^^^ 
    248  
    249 Selecting the *Manage Custom Models* option shows a list of all the plugin models in the plugin model folder, on Windows this is 
    250  
    251   *C:\\Users\\{username}\\.sasview\\plugin_models* 
    252  
    253 You can add, edit, duplicate and delete these models using buttons on the right side of the list. 
    254  
    255 .. image:: plugin_manager.png 
    256  
    257  
    258 Add a model 
    259 ^^^^^^^^^^^ 
    260  
    261 Clicking the "Add" button opens the Model Editor window, allowing you to create a new plugin as described above. 
    262  
    263 Duplicate a model 
    264 ^^^^^^^^^^^^^^^^^ 
    265  
    266 Clicking the "Duplicate" button will create a copy of the selected model(s). Naming of the duplicate follows the standard, with added * (n)* to the plugin model name, with *n* being the first unused yet integer. 
    267  
    268 Edit a model 
    269 ^^^^^^^^^^^^ 
    270  
    271 When a single model is selected, clicking this button will open the Advanced *Model Editor* allowing you to edit the 
    272 Python code of the model. 
    273 If no models or multiple models are selected, the *Edit* button is disabled. 
    274  
    275 Delete Plugin Models 
    276 ^^^^^^^^^^^^^^^^^^^^ 
    277  
    278 Simply highlight the plugin model(s) to be removed and click on the "Delete" button. The operation is final. 
    279  
    280 *NB: Models shipped with SasView cannot be removed in this way.* 
    281  
    282  
    283 Add/Multiply Models 
    284 ^^^^^^^^^^^^^^^^^^^ 
     219Sum|Multi(p1,p2) 
     220^^^^^^^^^^^^^^^^ 
    285221 
    286222.. image:: sum_model.png 
     
    294230     Plugin Model = scale_factor * (model1 * model2) + background 
    295231 
    296 In the *Add/Multiply Models* give the new model a function name and brief 
     232In the *Easy Sum/Multi Editor* give the new model a function name and brief 
    297233description (to appear under the *Details* button on the *FitPage*). Then select 
    298 two existing models, as model_1 and model_2, and the required operator, '+' or '*' between 
     234two existing models, as p1 and p2, and the required operator, '+' or '*' between 
    299235them. Finally, click the *Apply* button to generate and test the model and then click *Close*. 
    300236 
     237Any changes to a plugin model generated in this way only become effective *after* it is re-selected 
     238from the plugin models drop-down menu on the FitPage. If the model is not listed you can force a 
     239recompilation of the plugins by selecting *Fitting* > *Plugin Model Operations* > *Load Plugin Models*. 
    301240 
    302241**SasView version 4.2** introduced a much simplified and more extensible structure for plugin models 
    303 generated through the Add/Multiply Models editor. For example, the code for a combination of a sphere model 
     242generated through the Easy Sum/Multi Editor. For example, the code for a combination of a sphere model 
    304243with a power law model now looks like this:: 
    305244 
     
    336275that was not possible in earlier versions of SasView. 
    337276 
    338  
     277.. _Advanced_Plugin_Editor: 
     278 
     279Advanced Plugin Editor 
     280^^^^^^^^^^^^^^^^^^^^^^ 
     281 
     282Selecting this option shows all the plugin models in the plugin model folder, on Windows this is 
     283 
     284  *C:\\Users\\{username}\\.sasview\\plugin_models* 
     285 
     286You can edit, modify, and save the Python code in any of these models using the 
     287*Advanced Plugin Model Editor*. Note that this is actually the same tool as the :ref:`Python_shell` . 
     288 
     289For details of the SasView plugin model format see :ref:`Writing_a_Plugin` . 
     290 
     291.. note:: Model files generated with the Sum/Multi option are still using the SasView 3.x model format. Unless you are confident about what you are doing, it is recommended that you only modify lines denoted with the ## <----- comments! 
     292 
     293When editing is complete, select *Run* > *Check Model* from the *Advanced Plugin Model Editor* menu bar. An *Info* box will appear with the results of the compilation and model unit tests. The model will only be usable if the tests 'pass'. 
     294 
     295.. image:: ../calculator/new_pycrust_example_2.png 
     296 
     297To use the model, go to the relevant *Fit Page*, select the *Plugin Models* 
     298category and then select the model from the drop-down menu. 
     299 
     300Any changes to a plugin model generated in this way only become effective *after* it is re-selected from the model drop-down menu on the FitPage. 
     301 
     302Delete Plugin Models 
     303^^^^^^^^^^^^^^^^^^^^ 
     304 
     305Simply highlight the plugin model to be removed. The operation is final!!! 
     306 
     307*NB: Models shipped with SasView cannot be removed in this way.* 
     308 
     309Load Plugin Models 
     310^^^^^^^^^^^^^^^^^^ 
     311 
     312This option loads (or re-loads) all models present in the 
     313*~\\.sasview\\plugin_models* folder. 
    339314 
    340315.. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 
     
    342317.. _Fitting_Options: 
    343318 
    344 Fit Algorithms 
     319Fitting Options 
    345320--------------- 
    346321 
     
    348323to modify some of the configurational parameters for each optimiser. 
    349324 
    350 From *Fitting* in the menu bar select *Fit Algorithms*, then select one of the following 
     325From *Fitting* in the menu bar select *Fit Options*, then select one of the following 
    351326optimisers: 
    352327 
     
    357332*  Nelder-Mead Simplex 
    358333 
    359 .. image:: fit_algorithms.png 
    360  
    361334The DREAM optimiser is the most sophisticated, but may not necessarily be the best 
    362335option for fitting simple models. If uncertain, try the Levenberg-Marquardt optimiser 
     
    375348sub-region of the data for fitting. 
    376349 
    377 In a *FitPage* or *BatchPage* change the tab to *Fit Options* and then change  
    378 the *Q* values in the *Min* and/or *Max* 
    379 text boxes.  
    380  
    381 .. 
    382   Vertical coloured bars will appear on the graph with the data and 
    383   'theory' indicating the current *Q* limits (red = *Qmin*, purple = *Qmax*). 
     350In a *FitPage* or *BatchPage* change the *Q* values in the *Min* and/or *Max* 
     351text boxes. Vertical coloured bars will appear on the graph with the data and 
     352'theory' indicating the current *Q* limits (red = *Qmin*, purple = *Qmax*). 
    384353 
    385354To return to including all data in the fit, click the *Reset* button. 
     
    387356.. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 
    388357 
    389 .. 
    390  
    391   Shortcuts 
    392   --------- 
    393  
    394   Copy/Paste Parameters 
    395   ^^^^^^^^^^^^^^^^^^^^^ 
    396  
    397   It is possible to copy the parameters from one *Fit Page* and to paste them into 
    398   another *Fit Page* using the same model. 
    399  
    400   To *copy* parameters, either: 
    401  
    402   *  Select *Edit -> Copy Params* from the menu bar, or 
    403   *  Use Ctrl(Cmd on Mac) + Left Mouse Click on the *Fit Page*. 
    404  
    405   To *paste* parameters, either: 
    406  
    407   *  Select *Edit -> Paste Params* from the menu bar, or 
    408   *  Use Ctrl(Cmd on Mac) + Shift + Left-click on the *Fit Page*. 
    409  
    410   If either operation is successful a message will appear in the info line at the 
    411   bottom of the SasView window. 
    412  
    413   Bookmark 
    414   ^^^^^^^^ 
    415  
    416   To *Bookmark* a *Fit Page* either: 
    417  
    418   *  Select a *Fit Page* and then click on *Bookmark* in the tool bar, or 
    419   *  Right-click and select the *Bookmark* in the popup menu. 
     358 
     359Shortcuts 
     360--------- 
     361 
     362Copy/Paste Parameters 
     363^^^^^^^^^^^^^^^^^^^^^ 
     364 
     365It is possible to copy the parameters from one *Fit Page* and to paste them into 
     366another *Fit Page* using the same model. 
     367 
     368To *copy* parameters, either: 
     369 
     370*  Select *Edit -> Copy Params* from the menu bar, or 
     371*  Use Ctrl(Cmd on Mac) + Left Mouse Click on the *Fit Page*. 
     372 
     373To *paste* parameters, either: 
     374 
     375*  Select *Edit -> Paste Params* from the menu bar, or 
     376*  Use Ctrl(Cmd on Mac) + Shift + Left-click on the *Fit Page*. 
     377 
     378If either operation is successful a message will appear in the info line at the 
     379bottom of the SasView window. 
     380 
     381Bookmark 
     382^^^^^^^^ 
     383 
     384To *Bookmark* a *Fit Page* either: 
     385 
     386*  Select a *Fit Page* and then click on *Bookmark* in the tool bar, or 
     387*  Right-click and select the *Bookmark* in the popup menu. 
    420388 
    421389.. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 
     
    423391.. _Status_bar: 
    424392 
    425 Status Bar & Log Explorer 
    426 ------------------------- 
     393Status Bar & Console 
     394-------------------- 
    427395 
    428396The status bar is located at the bottom of the SasView window and displays 
    429 messages, warnings and errors. 
    430  
    431 .. image:: log_explorer.png 
    432  
    433 The bottom part of the SasView application window contains the *Log Explorer*. 
    434 The *Log Explorer* displays available message history and run-time traceback information. 
     397messages, hints, warnings and errors. 
     398 
     399At the right-hand side of the status bar is a button marked *Console*. The *Console* 
     400displays available message history and some run-time traceback information. 
     401 
     402During a long task the *Console* can also be used to monitor the progress. 
    435403 
    436404.. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 
     
    441409--------------- 
    442410 
    443 *NB: Before proceeding, ensure that the Batch mode checkbox at the bottom of* 
    444 *the Data Explorer is unchecked (see the section* :ref:`Loading_data` *).* 
     411*NB: Before proceeding, ensure that the Single Mode radio button at the bottom of* 
     412*the Data Explorer is checked (see the section* :ref:`Loading_data` *).* 
    445413 
    446414This mode fits one data set. 
    447415 
    448 .. When data is sent to the fitting it is plotted in a graph window as markers. 
    449 When data is sent to the fitting, the Fit Page will show the dataset name. 
    450  
    451 .. image:: dataset_name.png 
    452  
    453 Clicking on the *Show Plot* will cause the data can be plotted in a graph window as markers. 
     416When data is sent to the fitting it is plotted in a graph window as markers. 
    454417 
    455418If a graph does not appear, or a graph window appears but is empty, then the data 
     
    457420or in the *Console* window. 
    458421 
    459 Assuming the data has loaded correctly, when a model is selected a blue model 
     422Assuming the data has loaded correctly, when a model is selected a green model 
    460423calculation (or what SasView calls a 'Theory') line will appear in the earlier graph 
    461424window, and a second graph window will appear displaying the residuals (the 
     
    477440*'correlated').* 
    478441 
    479 In the bottom right corner of the *Fit Page* is a box displaying the normalised value 
     442In the bottom left corner of the *Fit Page* is a box displaying the normalised value 
    480443of the statistical $\chi^2$ parameter returned by the optimiser. 
    481444 
  • src/sas/qtgui/Utilities/CategoryInstaller.py

    rc889a3e rcee5c78  
    174174                                                          model_enabled_dict) 
    175175 
    176             json.dump(master_category_dict, open(serialized_file, "w", encoding="utf8")) 
     176            json.dump(master_category_dict, open(serialized_file, 'wb')) 
    177177 
  • src/sas/qtgui/Utilities/TabbedModelEditor.py

    rf9214aa raed0532  
    241241        # Run the model test in sasmodels 
    242242        try: 
    243             model_results = GuiUtils.checkModel(full_path) 
     243            model_results = self.checkModel(full_path) 
    244244            logging.info(model_results) 
    245245        except Exception as ex: 
  • src/sas/sascalc/fit/models.py

    rc889a3e rfa81e94  
    181181            try: 
    182182                model = load_custom_model(path) 
     183                # TODO: add [plug-in] tag to model name in sasview_model 
     184                if not model.name.startswith(PLUGIN_NAME_BASE): 
     185                    model.name = PLUGIN_NAME_BASE + model.name 
    183186                plugins[model.name] = model 
    184187            except Exception: 
Note: See TracChangeset for help on using the changeset viewer.