sas.qtgui.Perspectives.Fitting package¶
Subpackages¶
- sas.qtgui.Perspectives.Fitting.UI package
- Submodules
- sas.qtgui.Perspectives.Fitting.UI.ComplexConstraintUI module
- sas.qtgui.Perspectives.Fitting.UI.ConstraintWidgetUI module
- sas.qtgui.Perspectives.Fitting.UI.FittingOptionsUI module
- sas.qtgui.Perspectives.Fitting.UI.FittingWidgetUI module
- sas.qtgui.Perspectives.Fitting.UI.GPUOptionsUI module
- sas.qtgui.Perspectives.Fitting.UI.GPUTestResultsUI module
- sas.qtgui.Perspectives.Fitting.UI.MultiConstraintUI module
- sas.qtgui.Perspectives.Fitting.UI.OptionsWidgetUI module
- sas.qtgui.Perspectives.Fitting.UI.OrderWidgetUI module
- sas.qtgui.Perspectives.Fitting.UI.SmearingWidgetUI module
- Module contents
Submodules¶
sas.qtgui.Perspectives.Fitting.AssociatedComboBox module¶
- class sas.qtgui.Perspectives.Fitting.AssociatedComboBox.AssociatedComboBox(item: QStandardItem, idx_as_value: bool = False, parent: QWidget | None = None)[source]¶
Bases:
QComboBox
Just a regular combo box, but associated with a particular QStandardItem so that it can be used to display and select an item’s current text and a restricted list of other possible text.
When the combo box’s current text is changed, the change is immediately reflected in the associated item; either the text itself is set as the item’s data, or the current index is used; see constructor.
- __doc__ = "Just a regular combo box, but associated with a particular QStandardItem so that it can be used to display and\n select an item's current text and a restricted list of other possible text.\n\n When the combo box's current text is changed, the change is immediately reflected in the associated item; either\n the text itself is set as the item's data, or the current index is used; see constructor."¶
- __init__(item: QStandardItem, idx_as_value: bool = False, parent: QWidget | None = None) None [source]¶
Initialize widget. idx_as_value indicates whether to use the combo box’s current index (otherwise, current text) as the associated item’s new data.
- __module__ = 'sas.qtgui.Perspectives.Fitting.AssociatedComboBox'¶
- _onIndexChanged(idx: int) None [source]¶
Callback for combo box’s currentIndexChanged. Set associated item’s data to the new index.
- _onTextChanged(text: str) None [source]¶
Callback for combo box’s currentTextChanged. Set associated item’s data to the new text.
- item: QStandardItem = None¶
sas.qtgui.Perspectives.Fitting.ComplexConstraint module¶
Widget for multi-model constraints.
- class sas.qtgui.Perspectives.Fitting.ComplexConstraint.ComplexConstraint(parent=None, tabs=None)[source]¶
Bases:
QDialog
,Ui_ComplexConstraintUI
- __doc__ = None¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.ComplexConstraint'¶
- applyAcrossTabs(tabs, param, expr)[source]¶
Apply constraints across tabs, e.g. all scale parameters constrained to an expression. tabs is a list of active fit tabs for which the parameter string param will be constrained to the expr string.
- constraintReadySignal¶
sas.qtgui.Perspectives.Fitting.ConsoleUpdate module¶
- class sas.qtgui.Perspectives.Fitting.ConsoleUpdate.ConsoleUpdate(parent, manager=None, quiet=False, progress_delta=60, improvement_delta=5)[source]¶
Bases:
FitHandler
Print progress to the console.
- __doc__ = '\n Print progress to the console.\n '¶
- __init__(parent, manager=None, quiet=False, progress_delta=60, improvement_delta=5)[source]¶
If quiet is true, only print out final summary, not progress and improvements.
- Attr parent:
the object that handle the messages
- __module__ = 'sas.qtgui.Perspectives.Fitting.ConsoleUpdate'¶
- improvement()[source]¶
Called when a result is observed which is better than previous results from the fit.
- improvement_delta = 5¶
Number of seconds between improvement updates
- isbetter = False¶
Record whether results improved since last update
- progress_delta = 60¶
Number of seconds between progress updates
sas.qtgui.Perspectives.Fitting.Constraint module¶
- class sas.qtgui.Perspectives.Fitting.Constraint.Constraint(parent=None, param=None, value=0.0, min=None, max=None, func=None, value_ex=None, operator='=')[source]¶
Bases:
object
Internal representation of a single parameter constraint Currently just a data structure, might get expaned with more functionality, hence made into a class.
- __dict__ = mappingproxy({'__module__': 'sas.qtgui.Perspectives.Fitting.Constraint', '__doc__': '\n Internal representation of a single parameter constraint\n Currently just a data structure, might get expaned with more functionality,\n hence made into a class.\n ', '__init__': <function Constraint.__init__>, 'value': <property object>, 'value_ex': <property object>, 'param': <property object>, 'func': <property object>, 'min': <property object>, 'max': <property object>, 'operator': <property object>, '__dict__': <attribute '__dict__' of 'Constraint' objects>, '__weakref__': <attribute '__weakref__' of 'Constraint' objects>, '__annotations__': {}})¶
- __doc__ = '\n Internal representation of a single parameter constraint\n Currently just a data structure, might get expaned with more functionality,\n hence made into a class.\n '¶
- __init__(parent=None, param=None, value=0.0, min=None, max=None, func=None, value_ex=None, operator='=')[source]¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.Constraint'¶
- __weakref__¶
list of weak references to the object (if defined)
- property func¶
- property max¶
- property min¶
- property operator¶
- property param¶
- property value¶
- property value_ex¶
sas.qtgui.Perspectives.Fitting.ConstraintWidget module¶
- class sas.qtgui.Perspectives.Fitting.ConstraintWidget.ConstraintWidget(parent=None)[source]¶
Bases:
QWidget
,Ui_ConstraintWidgetUI
Constraints Dialog to select the desired parameter/model constraints.
- __doc__ = '\n Constraints Dialog to select the desired parameter/model constraints.\n '¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.ConstraintWidget'¶
- batchCompleteSignal¶
- fitCompleteSignal¶
- fitFailedSignal¶
- getReport()[source]¶
Wrapper for non-existent functionality. Tell the user to use the reporting tool on separate fit pages.
- onAcceptConstraint(con_tuple)[source]¶
Receive constraint tuple from the ComplexConstraint dialog and adds constraint. Checks the constraints for errors and displays a warning message interrupting flow if any are found
- onConstraintChange(row, column)[source]¶
Modify the constraint when the user edits the constraint list. If the user changes the constrained parameter, the constraint is erased and a new one is created. Checking is performed on the constrained entered by the user, showing message box warning him the constraint is not valid and cancelling his changes by reloading the view. View is reloaded when the user is finished for consistency.
- onTabCellEdit(row, column)[source]¶
Respond to check/uncheck and to modify the model moniker actions
- onTabCellEntered(row, column)[source]¶
Remember the original tab list cell data. Needed for reverting back on bad validation
- orderedSublist(order_list, target_list)[source]¶
Orders the target_list such that any elements present in order_list show up first and in the order from order_list.
sas.qtgui.Perspectives.Fitting.FitPage module¶
Container class for fitting widget state storage
- class sas.qtgui.Perspectives.Fitting.FitPage.FitPage[source]¶
Bases:
object
Container for all data related to the current fit page
- LOG_POINTS = 4¶
- MAX_RANGE = 1¶
- MIN_RANGE = 0¶
- NPTS = 2¶
- NPTS_FIT = 3¶
- SMEARING_ACCURACY = 7¶
- SMEARING_MAX = 9¶
- SMEARING_MIN = 8¶
- SMEARING_OPTION = 6¶
- WEIGHTING = 5¶
- __dict__ = mappingproxy({'__module__': 'sas.qtgui.Perspectives.Fitting.FitPage', '__doc__': '\n Container for all data related to the current fit page\n ', 'MIN_RANGE': 0, 'MAX_RANGE': 1, 'NPTS': 2, 'NPTS_FIT': 3, 'LOG_POINTS': 4, 'WEIGHTING': 5, 'SMEARING_OPTION': 6, 'SMEARING_ACCURACY': 7, 'SMEARING_MIN': 8, 'SMEARING_MAX': 9, '__init__': <function FitPage.__init__>, 'save': <function FitPage.save>, 'load': <function FitPage.load>, 'saveAsXML': <function FitPage.saveAsXML>, '__dict__': <attribute '__dict__' of 'FitPage' objects>, '__weakref__': <attribute '__weakref__' of 'FitPage' objects>, '__annotations__': {}})¶
- __doc__ = '\n Container for all data related to the current fit page\n '¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.FitPage'¶
- __weakref__¶
list of weak references to the object (if defined)
sas.qtgui.Perspectives.Fitting.FitThread module¶
- class sas.qtgui.Perspectives.Fitting.FitThread.FitThread(fn, page_id, handler, batch_outputs, batch_inputs=None, pars=None, completefn=None, updatefn=None, yieldtime=0.03, worktime=0.03, reset_flag=False)[source]¶
Bases:
CalcThread
Thread performing the fit
- __doc__ = 'Thread performing the fit '¶
- __init__(fn, page_id, handler, batch_outputs, batch_inputs=None, pars=None, completefn=None, updatefn=None, yieldtime=0.03, worktime=0.03, reset_flag=False)[source]¶
Prepare the calculator
- __module__ = 'sas.qtgui.Perspectives.Fitting.FitThread'¶
sas.qtgui.Perspectives.Fitting.FittingLogic module¶
- class sas.qtgui.Perspectives.Fitting.FittingLogic.FittingLogic(data=None)[source]¶
Bases:
object
All the data-related logic. This class deals exclusively with Data1D/2D No QStandardModelIndex here.
- __dict__ = mappingproxy({'__module__': 'sas.qtgui.Perspectives.Fitting.FittingLogic', '__doc__': '\n All the data-related logic. This class deals exclusively with Data1D/2D\n No QStandardModelIndex here.\n ', '__init__': <function FittingLogic.__init__>, 'data': <property object>, 'isLoadedData': <function FittingLogic.isLoadedData>, 'setDataProperties': <function FittingLogic.setDataProperties>, 'createDefault1dData': <function FittingLogic.createDefault1dData>, 'createDefault2dData': <function FittingLogic.createDefault2dData>, '_create1DPlot': <function FittingLogic._create1DPlot>, 'new1DPlot': <function FittingLogic.new1DPlot>, 'new2DPlot': <function FittingLogic.new2DPlot>, 'new1DProductPlots': <function FittingLogic.new1DProductPlots>, 'getScalarIntermediateResults': <function FittingLogic.getScalarIntermediateResults>, 'computeDataRange': <function FittingLogic.computeDataRange>, 'computeRangeFromData': <function FittingLogic.computeRangeFromData>, '__dict__': <attribute '__dict__' of 'FittingLogic' objects>, '__weakref__': <attribute '__weakref__' of 'FittingLogic' objects>, '__annotations__': {}})¶
- __doc__ = '\n All the data-related logic. This class deals exclusively with Data1D/2D\n No QStandardModelIndex here.\n '¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.FittingLogic'¶
- __weakref__¶
list of weak references to the object (if defined)
- _create1DPlot(tab_id, x, y, model, data, component=None)[source]¶
For internal use: create a new 1D data instance based on fitting results. ‘component’ is a string indicating the model component, e.g. “P(Q)”
- computeRangeFromData(data)[source]¶
Compute the minimum and the maximum range of the data return the npts contains in data
- createDefault1dData(interval, tab_id=0)[source]¶
Create default data for fitting perspective Only when the page is on theory mode.
- createDefault2dData(qmax, qstep, tab_id=0)[source]¶
Create 2D data by default Only when the page is on theory mode.
- property data¶
- getScalarIntermediateResults(return_data)[source]¶
Returns a dict of scalar-only intermediate results from the return data.
sas.qtgui.Perspectives.Fitting.FittingOptions module¶
- class sas.qtgui.Perspectives.Fitting.FittingOptions.FittingOptions(parent=None, config=None)[source]¶
Bases:
QDialog
,Ui_FittingOptions
Hard-coded version of the fit options dialog available from BUMPS. This should be make more “dynamic”. bumps.options.FIT_FIELDS gives mapping between parameter names, parameter strings and field type (double line edit, integer line edit, combo box etc.), e.g.:
FIT_FIELDS = dict( samples = ("Samples", parse_int), xtol = ("x tolerance", float), )
bumps.fitters.<algorithm>.settings gives mapping between algorithm, parameter name and default value, e.g.:
>>> settings = [('steps', 1000), ('starts', 1), ('radius', 0.15), ('xtol', 1e-6), ('ftol', 1e-8)]
- __doc__ = '\n Hard-coded version of the fit options dialog available from BUMPS.\n This should be make more "dynamic".\n bumps.options.FIT_FIELDS gives mapping between parameter names, parameter strings and field type\n (double line edit, integer line edit, combo box etc.), e.g.::\n\n FIT_FIELDS = dict(\n samples = ("Samples", parse_int),\n xtol = ("x tolerance", float),\n )\n\n bumps.fitters.<algorithm>.settings gives mapping between algorithm, parameter name and default value, e.g.::\n\n >>> settings = [(\'steps\', 1000), (\'starts\', 1), (\'radius\', 0.15), (\'xtol\', 1e-6), (\'ftol\', 1e-8)]\n '¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.FittingOptions'¶
- fit_option_changed¶
sas.qtgui.Perspectives.Fitting.FittingPerspective module¶
- class sas.qtgui.Perspectives.Fitting.FittingPerspective.FittingWindow(parent=None, data=None)[source]¶
Bases:
QTabWidget
- __doc__ = '\n '¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.FittingPerspective'¶
- closeTabByIndex(index)[source]¶
Close/delete a tab with the given index. No checks on validity of the index.
- property currentTab¶
Returns the tab widget currently shown
- ext = 'fitv'¶
- fittingStartedSignal¶
- fittingStoppedSignal¶
- getActiveConstraintList()[source]¶
Returns a list of the constraints for all fitting tabs. Constraints are a tuple of strings (parameter, expression) e.g. (‘M1.scale’, ‘M2.scale + 2’)
- getSymbolDictForConstraints()[source]¶
Returns a dictionary containing all the symbols in all constrained tabs and their values.
- getTabName(is_batch=False)[source]¶
Get the new tab name, based on the number of fitting tabs so far
- name = 'Fitting'¶
- onFittingOptionsChange(fit_engine)[source]¶
React to the fitting algorithm change by modifying window title
- onFittingStarted(tabs_for_fitting=None)[source]¶
Notify tabs listed in tabs_for_fitting that the fitting thread started
- onFittingStopped(tabs_for_fitting=None)[source]¶
Notify tabs listed in tabs_for_fitting that the fitting thread stopped
- setData(data_item=None, is_batch=False, tab_index=None)[source]¶
Assign new dataset to the fitting instance Obtain a QStandardItem object and dissect it to get Data1D/2D Pass it over to the calculator
- tabsModifiedSignal¶
- updateFitDict(item_key, tab_name)[source]¶
Create a list if none exists and append if there’s already a list
- updateFromConstraints(constraint_dict)[source]¶
Updates all tabs with constraints present in constraint_dict, where constraint_dict keys are the fit page name, and the value is a list of constraints. A constraint is represented by a list [value, param, value_ex, validate, function] of attributes of a Constraint object
sas.qtgui.Perspectives.Fitting.FittingUtilities module¶
- sas.qtgui.Perspectives.Fitting.FittingUtilities.addCheckedListToModel(model, param_list)[source]¶
Add a QItem to model. Makes the QItem checkable
- sas.qtgui.Perspectives.Fitting.FittingUtilities.addErrorHeadersToModel(model)[source]¶
Adds predefined headers to the model
- sas.qtgui.Perspectives.Fitting.FittingUtilities.addErrorPolyHeadersToModel(model)[source]¶
Adds predefined headers to the model
- sas.qtgui.Perspectives.Fitting.FittingUtilities.addHeadersToModel(model)[source]¶
Adds predefined headers to the model
- sas.qtgui.Perspectives.Fitting.FittingUtilities.addHeadingRowToModel(model, name)[source]¶
adds a non-interactive top-level row to the model
- sas.qtgui.Perspectives.Fitting.FittingUtilities.addParametersToModel(parameters, kernel_module, is2D, model=None, view=None)[source]¶
Update local ModelModel with sasmodel parameters. Actually appends to model, if model and view params are not None. Always returns list of lists of QStandardItems.
- sas.qtgui.Perspectives.Fitting.FittingUtilities.addPolyHeadersToModel(model)[source]¶
Adds predefined headers to the model
- sas.qtgui.Perspectives.Fitting.FittingUtilities.addShellsToModel(parameters, model, index, row_num=None, view=None)[source]¶
Find out multishell parameters and update the model with the requested number of them. Inserts them after the row at row_num, if not None; otherwise, appends to end. If view param is not None, supports fixed-choice params. Returns a list of lists of QStandardItem objects.
- sas.qtgui.Perspectives.Fitting.FittingUtilities.addSimpleParametersToModel(parameters, is2D, parameters_original=None, model=None, view=None, row_num=None)[source]¶
Update local ModelModel with sasmodel parameters (non-dispersed, non-magnetic) Actually appends to model, if model and view params are not None. Always returns list of lists of QStandardItems.
parameters_original: list of parameters before any tagging on their IDs, e.g. for product model (so that those are the display names; see below)
- sas.qtgui.Perspectives.Fitting.FittingUtilities.calculateChi2(reference_data, current_data, weight)[source]¶
Calculate Chi2 value between two sets of data
- sas.qtgui.Perspectives.Fitting.FittingUtilities.checkConstraints(symtab: Dict[str, float], constraints: Sequence[Tuple[str, str]]) str [source]¶
Compile and evaluate the constraints in the context of the initial values and return the list of errors.
Errors are returned as an html string where errors are tagged with <b> markups: Unknown symbol: tags unknown symbols in constraints Syntax error: tags the beginning of a syntax error in constraints Cyclic dependency: tags comma separated parameters that have cyclic dependency
The errors are wrapped in a <div class = “error”> and a style header is added
- sas.qtgui.Perspectives.Fitting.FittingUtilities.createFixedChoiceComboBox(param, item_row)[source]¶
Determines whether param is a fixed-choice parameter, modifies items in item_row appropriately and returns a combo box containing the fixed choices. Returns None if param is not fixed-choice.
item_row is a list of QStandardItem objects for insertion into the parameter table.
- sas.qtgui.Perspectives.Fitting.FittingUtilities.formatParameters(parameters, Check=True)[source]¶
Prepare the parameter string in the standard SasView layout
- sas.qtgui.Perspectives.Fitting.FittingUtilities.formatParametersExcel(parameters)[source]¶
Prepare the parameter string in the Excel format (tab delimited)
- sas.qtgui.Perspectives.Fitting.FittingUtilities.formatParametersLatex(parameters)[source]¶
Prepare the parameter string in latex
- sas.qtgui.Perspectives.Fitting.FittingUtilities.getIterParams(model)[source]¶
Returns a list of all multi-shell parameters in ‘model’
- sas.qtgui.Perspectives.Fitting.FittingUtilities.getMultiplicity(model)[source]¶
Finds out if ‘model’ has multishell parameters. If so, returns the name of the counter parameter and the number of shells
- sas.qtgui.Perspectives.Fitting.FittingUtilities.getOrientationParam(kernel_module=None)[source]¶
Get the dictionary with orientation parameters
- sas.qtgui.Perspectives.Fitting.FittingUtilities.getStandardParam(model=None)[source]¶
Returns a list with standard parameters for the current model
- sas.qtgui.Perspectives.Fitting.FittingUtilities.getWeight(data, is2d, flag=None)[source]¶
Received flag and compute error on data. :param flag: flag to transform error of data.
- sas.qtgui.Perspectives.Fitting.FittingUtilities.isNumber(s)[source]¶
Checks if string ‘s’ is an int/float
- sas.qtgui.Perspectives.Fitting.FittingUtilities.isParamPolydisperse(param_name, kernel_params, is2D=False)[source]¶
Simple lookup for polydispersity for the given param name
- sas.qtgui.Perspectives.Fitting.FittingUtilities.markParameterDisabled(model, row)[source]¶
Given the QModel row number, format to show it is not available for fitting
- sas.qtgui.Perspectives.Fitting.FittingUtilities.plotResiduals(reference_data, current_data, weights)[source]¶
Create Data1D/Data2D with residuals, ready for plotting
- sas.qtgui.Perspectives.Fitting.FittingUtilities.replaceShellName(param_name, value)[source]¶
Updates parameter name from <param_name>[n_shell] to <param_name>value
- sas.qtgui.Perspectives.Fitting.FittingUtilities.residualsData1D(reference_data, current_data, weights)[source]¶
Calculate the residuals for difference of two Data1D sets
sas.qtgui.Perspectives.Fitting.FittingWidget module¶
- class sas.qtgui.Perspectives.Fitting.FittingWidget.FittingWidget(parent=None, data=None, tab_id=1)¶
Bases:
QWidget
,Ui_FittingWidgetUI
Main widget for selecting form and structure factor models
- Calc1DFinishedSignal¶
- Calc2DFinishedSignal¶
- MAGNETIC_MODELS = ['sphere', 'core_shell_sphere', 'core_multi_shell', 'cylinder', 'parallelepiped']¶
- SASModelToQModel(model_name, structure_factor=None)¶
Setting model parameters into table based on selected category
- __doc__ = '\n Main widget for selecting form and structure factor models\n '¶
- __init__(parent=None, data=None, tab_id=1)¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.FittingWidget'¶
- _appendPlotsPolyDisp(new_plots, return_data, fitted_data)¶
Internal helper for 1D and 2D for creating plots of the polydispersity distribution for parameters which have a polydispersity enabled.
- _requestPlots(item_name, item_model)¶
Emits plotRequestedSignal for all plots found in the given model under the provided item name.
- _volfraction_hack(s_kernel)¶
Only show volfraction once if it appears in both P and S models. Issues SV:1280, SV:1295, SM:219, SM:199, SM:101
- acceptsData()¶
Tells the caller this widget can accept new dataset
- addBackgroundToModel(model)¶
Adds background parameter with default values to the model
- addCheckedMagneticListToModel(param, value)¶
Wrapper for model update with a subset of magnetic parameters
- addConstraintToRow(constraint=None, row=0)¶
Adds the constraint object to requested row. The constraint is first checked for errors, and a message box interrupting flow is displayed, with the reason of the failure.
- addExtraShells()¶
Add a combobox for multiple shell display
- addNameToPolyModel(i, param_name)¶
Creates a checked row in the poly model with param_name
- addScaleToModel(model)¶
Adds scale parameter with default values to the model
- addSimpleConstraint()¶
Adds a constraint on a single parameter.
- addWeightingToData(data)¶
Adds weighting contribution to fitting data
- allParamNames()¶
Returns a list of all parameter names defined on the current model
- batchFitComplete(result)¶
Receive and display batch fitting results
- batchFittingCompleted(result)¶
Send the finish message from calculate threads to main thread
- batchFittingFinishedSignal¶
- calcException(etype, value, tb)¶
Thread threw an exception.
- calculateDataFailed(reason)¶
Thread returned error
- calculateQGridForModel()¶
Prepare the fitting data object, based on current ModelModel
- calculateQGridForModelExt(data=None, model=None, completefn=None, use_threads=True)¶
Wrapper for Calc1D/2D calls
- calculateResiduals(fitted_data)¶
Calculate and print Chi2 and display chart of residuals. Returns residuals plot object.
- canHaveMagnetism()¶
Checks if the current model has magnetic scattering implemented
- changeCheckboxStatus(row, checkbox_status)¶
Checks/unchecks the checkbox at given row
- checkboxSelected(item)¶
- checkedListFromModel(model)¶
Returns list of checked parameters for given model
- complete1D(return_data)¶
Plot the current 1D data
- complete2D(return_data)¶
Plot the current 2D data
- completed1D(return_data)¶
- completed2D(return_data)¶
- constraintAddedSignal¶
- createDefaultDataset()¶
Generate default Dataset 1D/2D for the given model
- createNewIndex(fitted_data)¶
Create a model or theory index with passed Data1D/Data2D
- createPageForParameters(line_dict)¶
Sets up page with requested model/str factor and fills it up with sent parameters
- createTheoryIndex(fitted_data)¶
Create a QStandardModelIndex containing model data
- currentState()¶
Return fit page with current state
- classmethod customModels()¶
Reads in file names in the custom plugin directory
- property data¶
- deleteConstraint()¶
Delete constraints from selected parameters.
- deleteConstraintOnParameter(param=None)¶
Delete the constraint on model parameter ‘param’
- deselectParameters()¶
Selected parameters are removed for fitting
- disableInteractiveElements()¶
Set button caption on fitting/calculate start Disable the param table(s)
- disableInteractiveElementsOnCalculate()¶
Set button caption on fitting/calculate start Disable the param table(s)
- disableModelCombo()¶
Disable the combobox
- disableStructureCombo()¶
Disable the combobox
- editConstraint()¶
Delete constraints from selected parameters.
- enableInteractiveElements()¶
Set button caption on fitting/calculate finish Enable the param table(s)
- enableModelCombo()¶
Enable the combobox
- enableStructureCombo()¶
Enable the combobox
- enableStructureFactorControl(structure_factor)¶
Add structure factors to the list of parameters
- eventFilter(self, a0: QObject, a1: QEvent) bool ¶
- fitComplete(result)¶
Receive and display fitting results “result” is a tuple of actual result list and the fit time in seconds
- fitFailed(reason)¶
- fittingCompleted(result)¶
Send the finish message from calculate threads to main thread
- fittingFinishedSignal¶
- fromModelToQModel(model_name)¶
Setting model parameters into QStandardItemModel based on selected model
- fromStructureFactorToQModel(structure_factor)¶
Setting model parameters into QStandardItemModel based on selected structure factor
- getComplexConstraintsForModel()¶
Return a list of tuples. Each tuple contains constraints mapped as (‘constrained parameter’, ‘function to constrain’) e.g. [(‘sld’,’5*M2.sld_solvent’)]. Only for constraints with defined VALUE
- getConstraintForRow(row)¶
For the given row, return its constraint, if any (otherwise None)
- getConstraintObjectsForModel()¶
Returns Constraint objects present on the whole model
- getConstraintsForFitting()¶
Return a list of constraints in format ready for use in fiting
- getConstraintsForModel()¶
Return a list of tuples. Each tuple contains constraints mapped as (‘constrained parameter’, ‘function to constrain’) e.g. [(‘sld’,’5*sld_solvent’)]
- getCurrentFitState(state=None)¶
Store current state for fit_page
- getFitModel()¶
serializes combobox state
- getFitPage()¶
serializes full state of this fit page
- getFitParameters()¶
serializes current parameters
- getFullConstraintNameListForModel()¶
Return a list of tuples. Each tuple contains constraints mapped as (‘constrained parameter’, ‘function to constrain’) e.g. [(‘sld’,’5*M2.sld_solvent’)]. Returns a list of all constraints, not only active ones
- getParamNames()¶
Return list of all parameters for the current model
- getParameterDict()¶
Gather current fitting parameters as dict
- getReport()¶
Create and return HTML report with parameters and charts
- getRowFromName(name)¶
Given parameter name get the row number in self._model_model
- getSymbolDict()¶
Return a dict containing a list of all the symbols used for fitting and their values, e.g. {‘M1.scale’:1, ‘M1.background’: 0.001}
- haveParamsToFit()¶
Finds out if there are any parameters ready to be fitted
- info(type, value, tb)¶
- initializeCategoryCombo()¶
Model category combo setup
- initializeControls()¶
Set initial control enablement
- initializeGlobals()¶
Initialize global variables used in this class
- initializeModels()¶
Set up models and views
- initializeSignals()¶
Connect GUI element signals
- initializeWidgets()¶
Initialize widgets for tabs
- isCheckable(row)¶
- isConstraintMultimodel(constraint)¶
Check if the constraint function text contains current model name
- iterateOverMagnetModel(func)¶
Take func and throw it inside the magnet model row loop
- iterateOverModel(func)¶
Take func and throw it inside the model row loop
- iterateOverPolyModel(func)¶
Take func and throw it inside the poly model row loop
- keyPressEvent(self, a0: QKeyEvent)¶
- keyPressedSignal¶
- loadAnalysisFile()¶
Called when the “Open Project” menu item chosen.
- loadPageState(pagestate=None)¶
Load the PageState object and update the current widget
- loadPageStateCallback(state=None, datainfo=None, format=None)¶
This is a callback method called from the CANSAS reader. We need the instance of this reader only for writing out a file, so there’s nothing here. Until Load Analysis is implemented, that is.
- loadPolydispArray(row_index)¶
Show the load file dialog and loads requested data into state
- property logic¶
- methodCalculateForData()¶
return the method for data calculation
- methodCompleteForData()¶
return the method for result parsin on calc complete
- modelContextMenu(rows)¶
Create context menu for the parameter selection
- modelName()¶
Returns model name, by default M<tab#>, e.g. M1, M2
- modifyShellsInList(text)¶
Add/remove additional multishell parameters
- modifyViewOnRow(row, font=None, brush=None)¶
Change how the given row of the main model is shown
- nameForFittedData(name)¶
Generate name for the current fit
- nameFromData(fitted_data)¶
Return name for the dataset. Terribly impure function.
- newModelSignal¶
- onCategoriesChanged()¶
Reload the category/model comboboxes
- onColumnWidthUpdate(index, old_size, new_size)¶
Simple state update of the current column widths in the param list
- onCopyToClipboard(format=None)¶
Copy current fitting parameters into the clipboard using requested formatting: plain, excel, latex
- onCustomModelChange()¶
Reload the custom model combobox
- onDisplayMagneticAngles()¶
Display a simple image showing direction of magnetic angles
- onFit()¶
Perform fitting on the current data
- onHelp()¶
Show the “Fitting” section of help
- onKey(event)¶
- onMagnetModelChange(top, bottom)¶
Callback method for updating the sasmodel magnetic parameters with the GUI values
- onMainParamsChange(top, bottom)¶
Callback method for updating the sasmodel parameters with the GUI values
- onMaskedData()¶
A mask has been applied to current data. Update the Q ranges.
- onOptionsUpdate()¶
Update local option values and replot
- onParameterPaste()¶
Use the clipboard to update fit state
- onPlot()¶
Plot the current set of data
- onPolyComboIndexChange(combo_string, row_index)¶
Modify polydisp. defaults on function choice
- onPolyFilenameChange(row_index)¶
Respond to filename_updated signal from the delegate
- onPolyModelChange(top, bottom)¶
Callback method for updating the main model and sasmodel parameters with the GUI values in the polydispersity view
- onSelectBatchFilename(data_index)¶
Update the logic based on the selected file in batch fitting
- onSelectCategory()¶
Select Category from list
- onSelectModel()¶
Respond to select Model from list event
- onSelectStructureFactor()¶
Select Structure Factor from list
- onSelectionChanged()¶
React to parameter selection
- onShowSLDProfile()¶
Show a quick plot of SLD profile
- onSmearingOptionsUpdate()¶
React to changes in the smearing widget
- paramDictFromResults(results)¶
Given the fit results structure, pull out optimized parameters and return them as nicely formatted dict
- paramHasConstraint(param=None)¶
Finds out if the given parameter in the main model has a constraint child
- popFitPage()¶
Remove top fit page from stack
- prepareFitters(fitter=None, fit_id=0)¶
Prepare the Fitter object for use in fitting
- processEffectiveRadius()¶
Checks the value of radius_effective_mode, if existent, and processes radius_effective as necessary. * mode == 0: This means ‘unconstrained’; ensure use can specify ER. * mode > 0: This means it is constrained to a P(Q)-computed value in sasmodels; prevent user from editing ER.
Note: If ER has been computed, it is passed back to SasView as an intermediate result. That value must be displayed for the user; that is not dealt with here, but in complete1D.
- pushFitPage(new_page)¶
Add a new fit page object with current state
- readCategoryInfo()¶
Reads the categories in from file
- readCustomCategoryInfo()¶
Reads the custom model category
- readFitPage(fp)¶
Read in state from a fitpage object and update GUI
- recalculatePlotData()¶
Generate a new dataset for model
- regenerateModelDict()¶
Regenerates self.by_model_dict which has each model name as the key and the list of categories belonging to that model along with the enabled mapping
- replaceConstraintName(old_name, new_name='')¶
Replace names of models in defined constraints
- resetParametersToFit()¶
Clears the list of parameters to be fitted
- respondToModelStructure(model=None, structure_factor=None)¶
- rowHasActiveComplexConstraint(row)¶
Finds out if row of the main model has an active, nontrivial constraint child
- rowHasActiveConstraint(row)¶
Finds out if row of the main model has an active constraint child
- rowHasConstraint(row)¶
Finds out if row of the main model has a constraint child
- saveToFitPage(fp)¶
Write current state to the given fitpage
- selectParameters()¶
Selected parameter is chosen for fitting
- selectedParameters()¶
Returns list of selected (highlighted) parameters
- setDefaultStructureCombo()¶
Fill in the structure factors combo box with defaults
- setEnablementOnDataLoad()¶
Enable/disable various UI elements based on data loaded
- setInteractiveElements(enabled=True)¶
Switch interactive GUI elements on/off
- setMagneticModel()¶
Set magnetism values on model
- setParamEditableByRow(row, editable=True)¶
Sets whether the user can edit a parameter in the table. If they cannot, the parameter name’s font is changed, the value itself cannot be edited if clicked on, and the parameter may not be fitted.
- setParameterSelection(status=0, item=None)¶
Selected parameters are chosen for fitting
- setPolyModel()¶
Set polydispersity values
- setPolyModelParameters(i, param)¶
Standard of multishell poly parameter driver
- setTableProperties(table)¶
Setting table properties
- setTheoryItem(item)¶
Reset the theory item based on the data explorer update
- shellNamesList()¶
Returns list of names of all multi-shell parameters E.g. for sld[n], radius[n], n=1..3 it will return [sld1, sld2, sld3, radius1, radius2, radius3]
- showHelp(url)¶
Calls parent’s method for opening an HTML page
- showModelContextMenu(position)¶
Show context specific menu in the parameter table. When clicked on parameter(s): fitting/constraints options When clicked on white space: model description
- showModelDescription()¶
Creates a window with model description, when right clicked in the treeview
- showMultiConstraint()¶
Show the constraint widget and receive the expression
- showPlot()¶
Show the current plot in MPL
- showTheoryPlot()¶
Show the current theory plot in MPL
- stopFit()¶
Attempt to stop the fitting thread
- toggle2D(isChecked)¶
Enable/disable the controls dependent on 1D/2D data instance
- toggleChainFit(isChecked)¶
Enable/disable chain fitting
- toggleMagnetism(isChecked)¶
Enable/disable the magnetism tab
- togglePoly(isChecked)¶
Enable/disable the polydispersity tab
- updateData()¶
Helper function for recalculation of data used in plotting
- updateEffectiveRadius(return_data)¶
Given return data from sasmodels, update the effective radius parameter in the GUI table with the new calculated value as returned by sasmodels (if the value was returned).
- updateFit()¶
- updateFullMagnetModel(param_dict)¶
Update the magnetism model with new parameters, create the errors column
- updateFullModel(param_dict)¶
Update the model with new parameters
- updateFullPolyModel(param_dict)¶
Update the polydispersity model with new parameters, create the errors column
- updateKernelModelWithExtraParams(model=None)¶
Updates kernel model ‘model’ with extra parameters from the polydisp and magnetism tab, if the tabs are enabled
- updateMagnetModelFromList(param_dict)¶
Update the magnetic model with new parameters, create the errors column
- updateModelFromList(param_dict)¶
Update the model with new parameters, create the errors column
- updateModelIndex(fitted_data)¶
Update a QStandardModelIndex containing model data
- updateMultiplicityCombo(multip)¶
Find and update the multiplicity combobox
- updatePageWithParameters(line_dict, warn_user=True)¶
Update FitPage with parameters in line_dict
- updatePolyModelFromList(param_dict)¶
Update the polydispersity model with new parameters, create the errors column
- updateQRange()¶
Updates Q Range display
- updateUndo()¶
Create a new state page and add it to the stack
- class sas.qtgui.Perspectives.Fitting.FittingWidget.ToolTippedItemModel(parent=None)¶
Bases:
QStandardItemModel
Subclass from QStandardItemModel to allow displaying tooltips in QTableView model.
- __doc__ = '\n Subclass from QStandardItemModel to allow displaying tooltips in\n QTableView model.\n '¶
- __init__(parent=None)¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.FittingWidget'¶
- headerData(section, orientation, role=0)¶
Displays tooltip for each column’s header :param section: :param orientation: :param role: :return:
- sas.qtgui.Perspectives.Fitting.FittingWidget.get_weights(self, name)¶
Returns the polydispersity distribution for parameter name as value and weight arrays.
sas.qtgui.Perspectives.Fitting.GPUOptions module¶
- class sas.qtgui.Perspectives.Fitting.GPUOptions.GPUOptions(parent=None)[source]¶
Bases:
QDialog
,Ui_GPUOptions
OpenCL Dialog to select the desired OpenCL driver
- __doc__ = '\n OpenCL Dialog to select the desired OpenCL driver\n '¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.GPUOptions'¶
- cl_options = None¶
- clicked = False¶
- sas_open_cl = None¶
- testingDoneSignal¶
- testingFailedSignal¶
- class sas.qtgui.Perspectives.Fitting.GPUOptions.GPUTestResults(parent, msg)[source]¶
Bases:
QDialog
,Ui_GPUTestResults
OpenCL Dialog to modify the OpenCL options
- __doc__ = '\n OpenCL Dialog to modify the OpenCL options\n '¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.GPUOptions'¶
sas.qtgui.Perspectives.Fitting.ModelThread module¶
Calculation thread for modeling
- class sas.qtgui.Perspectives.Fitting.ModelThread.Calc1D(model, page_id, data, fid=None, qmin=None, qmax=None, weight=None, smearer=None, toggle_mode_on=False, state=None, completefn=None, update_chisqr=True, source='model', updatefn=None, yieldtime=0.01, worktime=0.01, exception_handler=None)[source]¶
Bases:
CalcThread
Compute 1D data
- __doc__ = '\n Compute 1D data\n '¶
- __init__(model, page_id, data, fid=None, qmin=None, qmax=None, weight=None, smearer=None, toggle_mode_on=False, state=None, completefn=None, update_chisqr=True, source='model', updatefn=None, yieldtime=0.01, worktime=0.01, exception_handler=None)[source]¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.ModelThread'¶
- class sas.qtgui.Perspectives.Fitting.ModelThread.Calc2D(data, model, smearer, qmin, qmax, page_id, state=None, weight=None, fid=None, toggle_mode_on=False, completefn=None, updatefn=None, update_chisqr=True, source='model', yieldtime=0.04, worktime=0.04, exception_handler=None)[source]¶
Bases:
CalcThread
Compute 2D model This calculation assumes a 2-fold symmetry of the model where points are computed for one half of the detector and I(qx, qy) = I(-qx, -qy) is assumed.
- __doc__ = '\n Compute 2D model\n This calculation assumes a 2-fold symmetry of the model\n where points are computed for one half of the detector\n and I(qx, qy) = I(-qx, -qy) is assumed.\n '¶
- __init__(data, model, smearer, qmin, qmax, page_id, state=None, weight=None, fid=None, toggle_mode_on=False, completefn=None, updatefn=None, update_chisqr=True, source='model', yieldtime=0.04, worktime=0.04, exception_handler=None)[source]¶
Prepare the calculator
- __module__ = 'sas.qtgui.Perspectives.Fitting.ModelThread'¶
sas.qtgui.Perspectives.Fitting.MultiConstraint module¶
Widget for parameter constraints.
- class sas.qtgui.Perspectives.Fitting.MultiConstraint.MultiConstraint(parent=None, params=None, constraint=None)[source]¶
Bases:
QDialog
,Ui_MultiConstraintUI
Logic class for interacting with MultiConstrainedUI view
- __doc__ = '\n Logic class for interacting with MultiConstrainedUI view\n '¶
- __init__(parent=None, params=None, constraint=None)[source]¶
parent: ConstraintWidget object params: tuple of strings describing model parameters
- __module__ = 'sas.qtgui.Perspectives.Fitting.MultiConstraint'¶
sas.qtgui.Perspectives.Fitting.OptionsWidget module¶
Widget/logic for smearing data.
- class sas.qtgui.Perspectives.Fitting.OptionsWidget.DataWidgetMapper[source]¶
Bases:
QDataWidgetMapper
Custom version of the standard QDataWidgetMapper allowing for proper response to index change in comboboxes
- __doc__ = '\n Custom version of the standard QDataWidgetMapper allowing for proper\n response to index change in comboboxes\n '¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.OptionsWidget'¶
- class sas.qtgui.Perspectives.Fitting.OptionsWidget.OptionsWidget(parent=None, logic=None)[source]¶
Bases:
QWidget
,Ui_tabOptions
- MODEL = ['MIN_RANGE', 'MAX_RANGE', 'NPTS', 'NPTS_FIT']¶
- NPTS_DEFAULT = 150¶
- QMAX_DEFAULT = 0.5¶
- QMIN_DEFAULT = 0.0005¶
- __doc__ = None¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.OptionsWidget'¶
- npts2fit(data=None, qmin=None, qmax=None, npts=None)[source]¶
return numbers of data points within qrange :Note: This is to normalize chisq by Npts of fit
- plot_signal¶
sas.qtgui.Perspectives.Fitting.OrderWidget module¶
Widget/logic for dataset ordering.
- class sas.qtgui.Perspectives.Fitting.OrderWidget.OrderWidget(parent=None, all_data=None)[source]¶
Bases:
QWidget
,Ui_OrderWidgetUI
- __doc__ = None¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.OrderWidget'¶
sas.qtgui.Perspectives.Fitting.ReportPageLogic module¶
- class sas.qtgui.Perspectives.Fitting.ReportPageLogic.ReportPageLogic(parent=None, kernel_module=None, data=None, index=None, params=None)[source]¶
Bases:
object
Logic for the Report Page functionality. Refactored from FittingWidget.
- __dict__ = mappingproxy({'__module__': 'sas.qtgui.Perspectives.Fitting.ReportPageLogic', '__doc__': '\n Logic for the Report Page functionality. Refactored from FittingWidget.\n ', '__init__': <function ReportPageLogic.__init__>, 'cleanhtml': <staticmethod object>, 'reportList': <function ReportPageLogic.reportList>, 'reportHeader': <function ReportPageLogic.reportHeader>, 'buildPlotsForReport': <function ReportPageLogic.buildPlotsForReport>, 'reportParams': <function ReportPageLogic.reportParams>, 'getImages': <function ReportPageLogic.getImages>, '__dict__': <attribute '__dict__' of 'ReportPageLogic' objects>, '__weakref__': <attribute '__weakref__' of 'ReportPageLogic' objects>, '__annotations__': {}})¶
- __doc__ = '\n Logic for the Report Page functionality. Refactored from FittingWidget.\n '¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.ReportPageLogic'¶
- __weakref__¶
list of weak references to the object (if defined)
sas.qtgui.Perspectives.Fitting.SmearingWidget module¶
Widget/logic for smearing data.
- class sas.qtgui.Perspectives.Fitting.SmearingWidget.DataWidgetMapper[source]¶
Bases:
QDataWidgetMapper
Custom version of the standard QDataWidgetMapper allowing for proper response to index change in comboboxes
- __doc__ = '\n Custom version of the standard QDataWidgetMapper allowing for proper\n response to index change in comboboxes\n '¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.SmearingWidget'¶
- class sas.qtgui.Perspectives.Fitting.SmearingWidget.SmearingWidget(parent=None)[source]¶
Bases:
QWidget
,Ui_SmearingWidgetUI
- __doc__ = None¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.SmearingWidget'¶
- onDQSmear()[source]¶
Create a custom dQ smear object that will change the way residuals are compute when fitting
- onPinholeSmear()[source]¶
Create a custom pinhole smear object that will change the way residuals are compute when fitting
- onSlitSmear()[source]¶
Create a custom slit smear object that will change the way residuals are compute when fitting
- setSmearInfo()[source]¶
Set default smear_type, dq_l, and dq_r based on the q-resolution information found in the data.
- smearingChangedSignal¶
sas.qtgui.Perspectives.Fitting.ViewDelegate module¶
- class sas.qtgui.Perspectives.Fitting.ViewDelegate.MagnetismViewDelegate(parent=None)[source]¶
Bases:
QStyledItemDelegate
Custom delegate for appearance and behavior control of the magnetism view
- __doc__ = '\n Custom delegate for appearance and behavior control of the magnetism view\n '¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.ViewDelegate'¶
- class sas.qtgui.Perspectives.Fitting.ViewDelegate.ModelViewDelegate(parent=None)[source]¶
Bases:
QStyledItemDelegate
Custom delegate for appearance and behavior control of the model view
- __doc__ = '\n Custom delegate for appearance and behavior control of the model view\n '¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.ViewDelegate'¶
- class sas.qtgui.Perspectives.Fitting.ViewDelegate.PolyViewDelegate(parent=None)[source]¶
Bases:
QStyledItemDelegate
Custom delegate for appearance and behavior control of the polydispersity view
- POLYDISPERSE_FUNCTIONS = ['rectangle', 'array', 'lognormal', 'gaussian', 'schulz']¶
- __doc__ = '\n Custom delegate for appearance and behavior control of the polydispersity view\n '¶
- __module__ = 'sas.qtgui.Perspectives.Fitting.ViewDelegate'¶
- combo_updated¶
- createEditor(self, parent: QWidget, option: QStyleOptionViewItem, index: QModelIndex) QWidget [source]¶
- filename_updated¶