Changes in src/sas/qtgui/Perspectives/Inversion/InversionPerspective.py [28965e9:2b8286c] in sasview
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/qtgui/Perspectives/Inversion/InversionPerspective.py
r28965e9 r2b8286c 43 43 estimateSignal = QtCore.pyqtSignal(tuple) 44 44 estimateNTSignal = QtCore.pyqtSignal(tuple) 45 estimateDynamicNTSignal = QtCore.pyqtSignal(tuple)46 estimateDynamicSignal = QtCore.pyqtSignal(tuple)47 45 calculateSignal = QtCore.pyqtSignal(tuple) 48 46 … … 196 194 self.model.itemChanged.connect(self.model_changed) 197 195 self.estimateNTSignal.connect(self._estimateNTUpdate) 198 self.estimateDynamicNTSignal.connect(self._estimateDynamicNTUpdate)199 self.estimateDynamicSignal.connect(self._estimateDynamicUpdate)200 196 self.estimateSignal.connect(self._estimateUpdate) 201 197 self.calculateSignal.connect(self._calculateUpdate) 202 203 self.maxDistanceInput.textEdited.connect(self.performEstimateDynamic)204 198 205 199 def setupMapper(self): … … 315 309 and not self.isCalculating) 316 310 self.removeButton.setEnabled(self.logic.data_is_loaded) 317 self.explorerButton.setEnabled(self.logic.data_is_loaded) 311 self.explorerButton.setEnabled(self.logic.data_is_loaded 312 and np.all(self.logic.data.dy != 0)) 318 313 self.stopButton.setVisible(self.isCalculating) 319 314 self.regConstantSuggestionButton.setEnabled( … … 506 501 self.dataPlot = self._dataList[data_ref].get(DICT_KEYS[2]) 507 502 self.performEstimate() 508 509 def updateDynamicGuiValues(self):510 pr = self._calculator511 alpha = self._calculator.suggested_alpha512 self.model.setItem(WIDGETS.W_MAX_DIST,513 QtGui.QStandardItem("{:.4g}".format(pr.get_dmax())))514 self.regConstantSuggestionButton.setText("{:-3.2g}".format(alpha))515 self.noOfTermsSuggestionButton.setText(516 "{:n}".format(self.nTermsSuggested))517 518 self.enableButtons()519 503 520 504 def updateGuiValues(self): … … 536 520 self.model.setItem(WIDGETS.W_MAX_DIST, 537 521 QtGui.QStandardItem("{:.4g}".format(pr.get_dmax()))) 522 self.regConstantSuggestionButton.setText("{:-3.2g}".format(alpha)) 523 self.noOfTermsSuggestionButton.setText( 524 "{:n}".format(self.nTermsSuggested)) 538 525 539 526 if isinstance(pr.chi2, np.ndarray): … … 684 671 self.estimationThreadNT.ready(2.5) 685 672 686 def performEstimateDynamicNT(self):687 """688 Perform parameter estimation689 """690 from .Thread import EstimateNT691 692 self.updateCalculator()693 694 # If a thread is already started, stop it695 self.stopEstimateNTThread()696 697 pr = self._calculator.clone()698 # Skip the slit settings for the estimation699 # It slows down the application and it doesn't change the estimates700 pr.slit_height = 0.0701 pr.slit_width = 0.0702 nfunc = self.getNFunc()703 704 self.estimationThreadNT = EstimateNT(pr, nfunc,705 error_func=self._threadError,706 completefn=self._estimateDynamicNTCompleted,707 updatefn=None)708 self.estimationThreadNT.queue()709 self.estimationThreadNT.ready(2.5)710 711 673 def stopEstimateNTThread(self): 712 674 if (self.estimationThreadNT is not None and … … 731 693 self.estimationThread.ready(2.5) 732 694 733 def performEstimateDynamic(self):734 """735 Perform parameter estimation736 """737 from .Thread import EstimatePr738 739 # If a thread is already started, stop it740 self.stopEstimationThread()741 742 self.estimationThread = EstimatePr(self._calculator.clone(),743 self.getNFunc(),744 error_func=self._threadError,745 completefn=self._estimateDynamicCompleted,746 updatefn=None)747 self.estimationThread.queue()748 self.estimationThread.ready(2.5)749 750 695 def stopEstimationThread(self): 751 696 """ Stop the estimation thread if it exists and is running """ … … 760 705 ''' Send a signal to the main thread for model update''' 761 706 self.estimateSignal.emit((alpha, message, elapsed)) 762 763 def _estimateDynamicCompleted(self, alpha, message, elapsed):764 ''' Send a signal to the main thread for model update'''765 self.estimateDynamicSignal.emit((alpha, message, elapsed))766 707 767 708 def _estimateUpdate(self, output_tuple): … … 779 720 logger.info(message) 780 721 self.performEstimateNT() 781 self.performEstimateDynamicNT()782 783 def _estimateDynamicUpdate(self, output_tuple):784 """785 Parameter estimation completed,786 display the results to the user787 788 :param alpha: estimated best alpha789 :param elapsed: computation time790 """791 alpha, message, elapsed = output_tuple792 self._calculator.alpha = alpha793 self._calculator.elapsed += self._calculator.elapsed794 if message:795 logger.info(message)796 self.performEstimateDynamicNT()797 722 798 723 def _estimateNTCompleted(self, nterms, alpha, message, elapsed): 799 724 ''' Send a signal to the main thread for model update''' 800 725 self.estimateNTSignal.emit((nterms, alpha, message, elapsed)) 801 802 def _estimateDynamicNTCompleted(self, nterms, alpha, message, elapsed):803 ''' Send a signal to the main thread for model update'''804 self.estimateDynamicNTSignal.emit((nterms, alpha, message, elapsed))805 726 806 727 def _estimateNTUpdate(self, output_tuple): … … 826 747 self.startThread() 827 748 828 def _estimateDynamicNTUpdate(self, output_tuple):829 """830 Parameter estimation completed,831 display the results to the user832 833 :param alpha: estimated best alpha834 :param nterms: estimated number of terms835 :param elapsed: computation time836 """837 nterms, alpha, message, elapsed = output_tuple838 self._calculator.elapsed += elapsed839 self._calculator.suggested_alpha = alpha840 self.nTermsSuggested = nterms841 # Save useful info842 self.updateDynamicGuiValues()843 if message:844 logger.info(message)845 if self.isBatch:846 self.acceptAlpha()847 self.acceptNoTerms()848 self.startThread()849 850 749 def _calculateCompleted(self, out, cov, pr, elapsed): 851 750 ''' Send a signal to the main thread for model update'''
Note: See TracChangeset
for help on using the changeset viewer.