Changeset a2db1ab in sasview for src/sas/sascalc/corfunc/corfunc_calculator.py
- Timestamp:
- Jul 11, 2016 7:30:51 AM (8 years ago)
- Branches:
- master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- fb7fcec
- Parents:
- 02a8779
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sascalc/corfunc/corfunc_calculator.py
ra684c64 ra2db1ab 10 10 from numpy.linalg import lstsq 11 11 from sas.sascalc.dataloader.data_info import Data1D 12 from sas.sascalc.corfunc.transform_thread import TransformThread 12 13 13 14 class CorfuncCalculator(object): … … 66 67 self.upperq = upperq 67 68 self.background = 0 69 self._transform_thread = None 68 70 69 71 def set_data(self, data, scale=1): … … 120 122 return extrapolation 121 123 122 def compute_transform(self, extrapolation, background=None): 124 def compute_transform(self, extrapolation, background=None, 125 completefn=None, updatefn=None): 123 126 """ 124 127 Transform an extrapolated scattering curve into a correlation function. … … 127 130 :param background: The background value (if not provided, previously 128 131 calculated value will be used) 132 :param completefn: The function to call when the transform calculation 133 is complete` 134 :param updatefn: The function to call to update the GUI with the status 135 of the transform calculation 129 136 :return: The transformed data 130 137 """ 131 qs = extrapolation.x132 iqs = extrapolation.y133 q = self._data.x 138 if self._transform_thread is not None: 139 if self._transform_thread.isrunning(): return 140 134 141 if background is None: background = self.background 135 142 136 gamma = dct((iqs-background)*qs**2) 137 gamma = gamma / gamma.max() 138 xs = np.pi*np.arange(len(qs),dtype=np.float32)/(q[1]-q[0])/len(qs) 139 140 transform = Data1D(xs, gamma) 141 142 return transform 143 self._transform_thread = TransformThread(self._data, extrapolation, 144 background, completefn=completefn, updatefn=updatefn) 145 self._transform_thread.queue() 146 147 def transform_isrunning(self): 148 if self._transform_thread is None: return False 149 return self._transform_thread.isrunning() 150 151 def stop_transform(self): 152 if self._transform_thread.isrunning(): 153 self._transform_thread.stop() 143 154 144 155 def extract_parameters(self, transformed_data):
Note: See TracChangeset
for help on using the changeset viewer.