Changeset ecfe6b6 in sasview for src/sas/qtgui/Perspectives/Fitting
- Timestamp:
- Aug 13, 2018 10:02:02 AM (6 years ago)
- Branches:
- ESS_GUI, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc
- Children:
- 799963c
- Parents:
- 4e255d1 (diff), e752ab8 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Location:
- src/sas/qtgui/Perspectives/Fitting
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/qtgui/Perspectives/Fitting/FittingLogic.py
r87dfca4 rb4d05bd 132 132 self._data.ymax = ymax 133 133 134 def new1DPlot(self, return_data, tab_id): 135 """ 136 Create a new 1D data instance based on fitting results 137 """ 138 # Unpack return data from Calc1D 139 x, y, page_id, state, weight,\ 140 fid, toggle_mode_on, \ 141 elapsed, index, model,\ 142 data, update_chisqr, source = return_data 143 134 def _create1DPlot(self, tab_id, x, y, model, data, component=None): 135 """ 136 For internal use: create a new 1D data instance based on fitting results. 137 'component' is a string indicating the model component, e.g. "P(Q)" 138 """ 144 139 # Create the new plot 145 140 new_plot = Data1D(x=x, y=y) … … 150 145 151 146 new_plot.group_id = data.group_id 152 new_plot.id = str(tab_id) + " " + model.id 153 154 if data.filename: 155 new_plot.name = model.name + " [" + data.filename + "]" # data file 156 else: 157 new_plot.name = model.name + " [" + model.id + "]" # theory 147 new_plot.id = str(tab_id) + " " + ("[" + component + "] " if component else "") + model.id 148 149 # use data.filename for data, use model.id for theory 150 id_str = data.filename if data.filename else model.id 151 new_plot.name = model.name + ((" " + component) if component else "") + " [" + id_str + "]" 158 152 159 153 new_plot.title = new_plot.name … … 162 156 163 157 return new_plot 158 159 def new1DPlot(self, return_data, tab_id): 160 """ 161 Create a new 1D data instance based on fitting results 162 """ 163 # Unpack return data from Calc1D 164 x, y, page_id, state, weight,\ 165 fid, toggle_mode_on, \ 166 elapsed, index, model, \ 167 data, update_chisqr, source, \ 168 unsmeared_output, unsmeared_data, unsmeared_error, \ 169 pq_values, sq_values = return_data 170 171 return self._create1DPlot(tab_id, x, y, model, data) 164 172 165 173 def new2DPlot(self, return_data): … … 205 213 return new_plot 206 214 215 def new1DProductPlots(self, return_data, tab_id): 216 """ 217 If return_data contains separated P(Q) and/or S(Q) data, create 1D plots for each and return as the tuple 218 (pq_plot, sq_plot). If either are unavailable, the corresponding plot is None. 219 """ 220 # Unpack return data from Calc1D 221 x, y, page_id, state, weight, \ 222 fid, toggle_mode_on, \ 223 elapsed, index, model, \ 224 data, update_chisqr, source, \ 225 unsmeared_output, unsmeared_data, unsmeared_error, \ 226 pq_values, sq_values = return_data 227 228 pq_plot = None 229 sq_plot = None 230 231 if pq_values is not None: 232 pq_plot = self._create1DPlot(tab_id, x, pq_values, model, data, component="P(Q)") 233 if sq_values is not None: 234 sq_plot = self._create1DPlot(tab_id, x, sq_values, model, data, component="S(Q)") 235 236 return pq_plot, sq_plot 237 207 238 def computeDataRange(self): 208 239 """ -
src/sas/qtgui/Perspectives/Fitting/FittingWidget.py
r10fee37 recfe6b6 2113 2113 self.updateModelIndex(fitted_data) 2114 2114 else: 2115 name = self.nameForFittedData(self.kernel_module.id) 2115 if not fitted_data.name: 2116 name = self.nameForFittedData(self.kernel_module.id) 2117 else: 2118 name = fitted_data.name 2116 2119 fitted_data.title = name 2117 fitted_data.name = name2118 2120 fitted_data.filename = name 2119 2121 fitted_data.symbol = "Line" … … 2229 2231 self.model_data = fitted_data 2230 2232 2233 # Create plots for intermediate product data 2234 pq_data, sq_data = self.logic.new1DProductPlots(return_data, self.tab_id) 2235 if pq_data is not None: 2236 pq_data.symbol = "Line" 2237 self.createNewIndex(pq_data) 2238 if sq_data is not None: 2239 sq_data.symbol = "Line" 2240 self.createNewIndex(sq_data) 2241 2231 2242 def complete2D(self, return_data): 2232 2243 """ -
src/sas/qtgui/Perspectives/Fitting/ModelThread.py
rd4dac80 r3ae9179 222 222 s_model = self.model.s_model 223 223 p_model = self.model.p_model 224 elif hasattr(self.model, "get_composition_models"): 225 p_model, s_model = self.model.get_composition_models() 226 227 if p_model is not None and s_model is not None: 228 sq_values = numpy.zeros((len(self.data.x))) 229 pq_values = numpy.zeros((len(self.data.x))) 230 sq_values[index] = s_model.evalDistribution(self.data.x[index]) 231 pq_values[index] = p_model.evalDistribution(self.data.x[index]) 224 elif hasattr(self.model, "calc_composition_models"): 225 results = self.model.calc_composition_models(self.data.x[index]) 226 if results is not None: 227 pq_values, sq_values = results 228 229 if pq_values is None or sq_values is None: 230 if p_model is not None and s_model is not None: 231 sq_values = numpy.zeros((len(self.data.x))) 232 pq_values = numpy.zeros((len(self.data.x))) 233 sq_values[index] = s_model.evalDistribution(self.data.x[index]) 234 pq_values[index] = p_model.evalDistribution(self.data.x[index]) 232 235 233 236 elapsed = time.time() - self.starttime … … 243 246 self.data, 244 247 self.update_chisqr, 245 self.source) 248 self.source, 249 unsmeared_output, unsmeared_data, unsmeared_error, 250 pq_values, sq_values) 246 251 else: 247 252 self.complete(x=self.data.x[index], y=output[index], -
src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingLogicTest.py
r80468f6 re752ab8 100 100 data.id = "poop" 101 101 return_data = (data.x,data.y, 7, None, None, 102 0, True, 0.0, 1, data, 103 data, False, None) 102 0, True, 0.0, 1, data, 103 data, False, None, 104 None, None, None, 105 None, None) 104 106 105 107 new_plot = self.logic.new1DPlot(return_data=return_data, tab_id=0) -
src/sas/qtgui/Perspectives/Fitting/FittingPerspective.py
r02e7d3a r10fee37 115 115 Add a new tab for passed data 116 116 """ 117 tab = FittingWidget(parent=self.parent, data=data, tab_id=self.maxIndex +1)117 tab = FittingWidget(parent=self.parent, data=data, tab_id=self.maxIndex) 118 118 tab.is_batch_fitting = is_batch 119 119
Note: See TracChangeset
for help on using the changeset viewer.