sas.qtgui.Perspectives.Inversion package

Subpackages

Submodules

sas.qtgui.Perspectives.Inversion.DMaxExplorerWidget module

Dialog panel to explore the P(r) inversion results for a range of D_max value. User picks a number of points and a range of distances, then can toggle between inversion outputs and see their distribution as a function of D_max.

class sas.qtgui.Perspectives.Inversion.DMaxExplorerWidget.DmaxWindow(pr_state, nfunc, parent=None)[source]

Bases: QDialog, Ui_DmaxExplorer

__doc__ = None
__init__(pr_state, nfunc, parent=None)[source]
__module__ = 'sas.qtgui.Perspectives.Inversion.DMaxExplorerWidget'
closeEvent(event)[source]

Override close event

modelChanged(item)[source]
name = 'Dmax Explorer'
setupMapper()[source]
setupModel()[source]
setupSlots()[source]
setupValidators()[source]

Add validators on relevant line edits

sas.qtgui.Perspectives.Inversion.InversionLogic module

class sas.qtgui.Perspectives.Inversion.InversionLogic.InversionLogic(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.Inversion.InversionLogic', '__doc__': '\n    All the data-related logic. This class deals exclusively with Data1D/2D\n    No QStandardModelIndex here.\n    ', '__init__': <function InversionLogic.__init__>, 'data': <property object>, 'isLoadedData': <function InversionLogic.isLoadedData>, 'new1DPlot': <function InversionLogic.new1DPlot>, 'newPRPlot': <function InversionLogic.newPRPlot>, 'add_errors': <function InversionLogic.add_errors>, 'computeDataRange': <function InversionLogic.computeDataRange>, 'computeRangeFromData': <function InversionLogic.computeRangeFromData>, '__dict__': <attribute '__dict__' of 'InversionLogic' objects>, '__weakref__': <attribute '__weakref__' of 'InversionLogic' objects>, '__annotations__': {}})
__doc__ = '\n    All the data-related logic. This class deals exclusively with Data1D/2D\n    No QStandardModelIndex here.\n    '
__init__(data=None)[source]
__module__ = 'sas.qtgui.Perspectives.Inversion.InversionLogic'
__weakref__

list of weak references to the object (if defined)

add_errors(sigma=0.05)[source]

Adds errors to data set is they are not available. Uses \(\Delta y = \sigma | y |\).

computeDataRange()[source]

Wrapper for calculating the data range based on local dataset

computeRangeFromData(data)[source]

Compute the minimum and the maximum range of the data return the npts contains in data

property data
isLoadedData()[source]

accessor

new1DPlot(out, pr, q=None)[source]

Create a new 1D data instance based on fitting results

newPRPlot(out, pr, cov=None)[source]

sas.qtgui.Perspectives.Inversion.InversionPerspective module

class sas.qtgui.Perspectives.Inversion.InversionPerspective.InversionWindow(parent=None, data=None)[source]

Bases: QDialog, Ui_PrInversion

The main window for the P(r) Inversion perspective.

__doc__ = '\n    The main window for the P(r) Inversion perspective.\n    '
__init__(parent=None, data=None)[source]
__module__ = 'sas.qtgui.Perspectives.Inversion.InversionPerspective'
_calculateCompleted(out, cov, pr, elapsed)[source]

Send a signal to the main thread for model update

_calculateUpdate(output_tuple)[source]

Method called with the results when the inversion is done

Parameters:
  • out – output coefficient for the base functions

  • cov – covariance matrix

  • pr – Invertor instance

  • elapsed – time spent computing

_estimateCompleted(alpha, message, elapsed)[source]

Send a signal to the main thread for model update

_estimateDynamicCompleted(alpha, message, elapsed)[source]

Send a signal to the main thread for model update

_estimateDynamicNTCompleted(nterms, alpha, message, elapsed)[source]

Send a signal to the main thread for model update

_estimateDynamicNTUpdate(output_tuple)[source]

Parameter estimation completed, display the results to the user

Parameters:
  • alpha – estimated best alpha

  • nterms – estimated number of terms

  • elapsed – computation time

_estimateDynamicUpdate(output_tuple)[source]

Parameter estimation completed, display the results to the user

Parameters:
  • alpha – estimated best alpha

  • elapsed – computation time

_estimateNTCompleted(nterms, alpha, message, elapsed)[source]

Send a signal to the main thread for model update

_estimateNTUpdate(output_tuple)[source]

Parameter estimation completed, display the results to the user

Parameters:
  • alpha – estimated best alpha

  • nterms – estimated number of terms

  • elapsed – computation time

_estimateUpdate(output_tuple)[source]

Parameter estimation completed, display the results to the user

Parameters:
  • alpha – estimated best alpha

  • elapsed – computation time

_threadError(error)[source]

Call-back method for calculation errors

acceptAlpha()[source]

Send estimated alpha to input

acceptNoTerms()[source]

Send estimated no of terms to input

allowBatch()[source]
allowSwap()[source]

Tell the caller we don’t accept swapping data

calculateSignal
check_q_high(q_value=None)[source]

Validate the value of high q sent by the slider

check_q_low(q_value=None)[source]

Validate the low q value

closeBatchResults()[source]
closeDMax()[source]
closeEvent(event)[source]

Overwrite QDialog close method to allow for custom widget close

communicator()[source]
currentTabDataId()[source]

Returns the data ID of the current tab

displayChange(data_index=0)[source]

Switch to another item in the data list

enableButtons()[source]

Enable buttons when data is present, else disable them

estimateDynamicNTSignal
estimateDynamicSignal
estimateNTSignal
estimateSignal
ext = 'pr'
getNFunc()[source]

Get the n_func value from the GUI object

getPage()[source]

serializes full state of this fit page

getState()[source]

Collects all active params into a dictionary of {name: value} :return: {name: value}

help()[source]

Open the P(r) Inversion help browser

isClosable()[source]

Allow outsiders close this widget

isSerializable()[source]

Tell the caller that this perspective writes its state

model_changed()[source]

Update the values when user makes changes

name = 'Inversion'
openExplorerWindow()[source]

Open the Explorer window to see correlations between params and results

performEstimate()[source]

Perform parameter estimation

performEstimateDynamic()[source]

Perform parameter estimation

performEstimateDynamicNT()[source]

Perform parameter estimation

performEstimateNT()[source]

Perform parameter estimation

populateDataComboBox(name, data_ref)[source]

Append a new name to the data combobox :param name: data name :param data_ref: QStandardItem reference for data set to be added

removeData(data_list=None)[source]

Remove the existing data reference from the P(r) Persepective

serializeAll()[source]

Serialize the inversion state so data can be saved Inversion is not batch-ready so this will only effect a single page :return: {data-id: {self.name: {inversion-state}}}

serializeCurrentPage()[source]
setClosable(value=True)[source]

Allow outsiders close this widget

setCurrentData(data_ref)[source]

Get the data by reference and display as necessary

setData(data_item=None, is_batch=False)[source]

Assign new data set(s) to the P(r) perspective Obtain a QStandardItem object and parse it to get Data1D/2D Pass it over to the calculator

set_background(value)[source]

Connect the use controls to their appropriate methods

setupMapper()[source]
setupModel()[source]

Update boxes with initial values

setupValidators()[source]

Apply validators to editable line edits

setupWindow()[source]

Initialize base window state on init

showBatchOutput()[source]

Display the batch output in tabular form :param output_data: Dictionary mapping name -> P(r) instance

startNextBatchItem()[source]
startThread()[source]

Start a calculation thread

startThreadAll()[source]
stopCalcThread()[source]

Stops a thread if it exists and is running

stopCalculation()[source]

Stop all threads, return to the base state and update GUI

stopEstimateNTThread()[source]
stopEstimationThread()[source]

Stop the estimation thread if it exists and is running

toggleBgd()[source]

Toggle the background between manual and estimated

updateCalculator()[source]

Update all p(r) params

updateDataList(dataRef)[source]

Save the current data state of the window into self._data_list

updateDynamicGuiValues()[source]
updateFromParameters(params)[source]
updateGuiValues()[source]
sas.qtgui.Perspectives.Inversion.InversionPerspective.is_float(value)[source]

Converts text input values to floats. Empty strings throw ValueError

sas.qtgui.Perspectives.Inversion.InversionUtils module

sas.qtgui.Perspectives.Inversion.Thread module

class sas.qtgui.Perspectives.Inversion.Thread.CalcPr(pr, nfunc=5, error_func=None, completefn=None, updatefn=None, yieldtime=0.01, worktime=0.01)[source]

Bases: CalcThread

Compute P(r)

__doc__ = '\n    Compute P(r)\n    '
__init__(pr, nfunc=5, error_func=None, completefn=None, updatefn=None, yieldtime=0.01, worktime=0.01)[source]
__module__ = 'sas.qtgui.Perspectives.Inversion.Thread'
compute()[source]

Perform P(r) inversion

class sas.qtgui.Perspectives.Inversion.Thread.EstimateNT(pr, nfunc=5, error_func=None, completefn=None, updatefn=None, yieldtime=0.01, worktime=0.01)[source]

Bases: CalcThread

__doc__ = '\n    '
__init__(pr, nfunc=5, error_func=None, completefn=None, updatefn=None, yieldtime=0.01, worktime=0.01)[source]

Prepare the calculator

__module__ = 'sas.qtgui.Perspectives.Inversion.Thread'
compute()[source]

Calculates the estimate

isquit()[source]
class sas.qtgui.Perspectives.Inversion.Thread.EstimatePr(pr, nfunc=5, error_func=None, completefn=None, updatefn=None, yieldtime=0.01, worktime=0.01)[source]

Bases: CalcThread

Estimate P(r)

__doc__ = '\n    Estimate P(r)\n    '
__init__(pr, nfunc=5, error_func=None, completefn=None, updatefn=None, yieldtime=0.01, worktime=0.01)[source]

Prepare the calculator

__module__ = 'sas.qtgui.Perspectives.Inversion.Thread'
compute()[source]

Calculates the estimate

Module contents