Changes in / [fb560d2:9ba91b7] in sasview


Ignore:
Location:
src/sas/qtgui/Perspectives/Fitting
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src/sas/qtgui/Perspectives/Fitting/FittingLogic.py

    rdcabba7 rdcabba7  
    161161        Create a new 1D data instance based on fitting results 
    162162        """ 
    163  
    164163        return self._create1DPlot(tab_id, return_data['x'], return_data['y'], 
    165164                                  return_data['model'], return_data['data']) 
     
    212211        (pq_plot, sq_plot). If either are unavailable, the corresponding plot is None. 
    213212        """ 
    214  
    215         pq_plot = None 
    216         sq_plot = None 
    217  
    218         if return_data.get('pq_values', None) is not None: 
    219             pq_plot = self._create1DPlot(tab_id, return_data['x'], 
    220                     return_data['pq_values'], return_data['model'], 
    221                     return_data['data'], component="P(Q)") 
    222         if return_data.get('sq_values', None) is not None: 
    223             sq_plot = self._create1DPlot(tab_id, return_data['x'], 
    224                     return_data['sq_values'], return_data['model'], 
    225                     return_data['data'], component="S(Q)") 
    226  
    227         return pq_plot, sq_plot 
     213        plots = [] 
     214        for name, result in return_data['intermediate_results'].items(): 
     215            plots.append(self._create1DPlot(tab_id, return_data['x'], result, 
     216                         return_data['model'], return_data['data'], 
     217                         component=name)) 
     218        return plots 
    228219 
    229220    def computeDataRange(self): 
  • src/sas/qtgui/Perspectives/Fitting/FittingWidget.py

    r0109f2a r0109f2a  
    24172417 
    24182418        # Create plots for intermediate product data 
    2419         pq_data, sq_data = self.logic.new1DProductPlots(return_data, self.tab_id) 
    2420         if pq_data is not None: 
    2421             pq_data.symbol = "Line" 
    2422             self.createNewIndex(pq_data) 
    2423             # self.communicate.plotUpdateSignal.emit([pq_data]) 
    2424             new_plots.append(pq_data) 
    2425         if sq_data is not None: 
    2426             sq_data.symbol = "Line" 
    2427             self.createNewIndex(sq_data) 
    2428             # self.communicate.plotUpdateSignal.emit([sq_data]) 
    2429             new_plots.append(sq_data) 
     2419        plots = self.logic.new1DProductPlots(return_data, self.tab_id) 
     2420        for plot in plots: 
     2421            plot.symbol = "Line" 
     2422            self.createNewIndex(plot) 
     2423            new_plots.append(plot) 
    24302424 
    24312425        for plot in new_plots: 
  • src/sas/qtgui/Perspectives/Fitting/ModelThread.py

    rdcabba7 rdcabba7  
    195195            output[index] = self.model.evalDistribution(self.data.x[index]) 
    196196 
    197         sq_values = None 
    198         pq_values = None 
    199         s_model = None 
    200         p_model = None 
    201         if isinstance(self.model, MultiplicationModel): 
    202             s_model = self.model.s_model 
    203             p_model = self.model.p_model 
    204         elif hasattr(self.model, "calc_composition_models"): 
    205             results = self.model.calc_composition_models(self.data.x[index]) 
    206             if results is not None: 
    207                 pq_values, sq_values = results 
    208  
    209         if pq_values is None or sq_values is None: 
    210             if p_model is not None and s_model is not None: 
    211                 sq_values = numpy.zeros((len(self.data.x))) 
    212                 pq_values = numpy.zeros((len(self.data.x))) 
    213                 sq_values[index] = s_model.evalDistribution(self.data.x[index]) 
    214                 pq_values[index] = p_model.evalDistribution(self.data.x[index]) 
     197        results_eval = {} 
     198        intermediate_results = getattr(self.model, "_intermediate_results", None) 
     199        if callable(intermediate_results): 
     200            # support for future sasmodels (beta approx support) - it returns a dict of intermediate results, keyed by 
     201            # name 
     202            results_eval = intermediate_results() 
     203        else: 
     204            sq_values = None 
     205            pq_values = None 
     206            s_model = None 
     207            p_model = None 
     208            if isinstance(self.model, MultiplicationModel): 
     209                s_model = self.model.s_model 
     210                p_model = self.model.p_model 
     211            elif hasattr(self.model, "calc_composition_models"): 
     212                results = self.model.calc_composition_models(self.data.x[index]) 
     213                if results is not None: 
     214                    pq_values, sq_values = results 
     215 
     216            if pq_values is None or sq_values is None: 
     217                if p_model is not None and s_model is not None: 
     218                    sq_values = numpy.zeros((len(self.data.x))) 
     219                    pq_values = numpy.zeros((len(self.data.x))) 
     220                    sq_values[index] = s_model.evalDistribution(self.data.x[index]) 
     221                    pq_values[index] = p_model.evalDistribution(self.data.x[index]) 
     222 
     223            if pq_values is not None and sq_values is not None: 
     224                results_eval = { 
     225                    "P(Q)": pq_values, 
     226                    "S(Q)": sq_values 
     227                } 
    215228 
    216229        elapsed = time.time() - self.starttime 
     
    223236            source = self.source, unsmeared_output = unsmeared_output, 
    224237            unsmeared_data = unsmeared_data, unsmeared_error = unsmeared_error, 
    225             pq_values = pq_values, sq_values = sq_values) 
     238            intermediate_results = results_eval) 
    226239 
    227240        if LocalConfig.USING_TWISTED: 
  • src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingLogicTest.py

    re752ab8 rd6c4987  
    103103                       data, False, None, 
    104104                       None, None, None, 
    105                        None, None) 
     105                       None) 
    106106 
    107107        new_plot = self.logic.new1DPlot(return_data=return_data, tab_id=0) 
Note: See TracChangeset for help on using the changeset viewer.