Changeset 412c509 in sasview for src/sas/sascalc/corfunc/transform_thread.py
- Timestamp:
- Jul 11, 2017 9:59:44 AM (7 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, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- 2a54ba5
- Parents:
- 457f735
- git-author:
- Lewis O'Driscoll <lewis.o'driscoll@…> (07/11/17 09:59:23)
- git-committer:
- Lewis O'Driscoll <lewis.o'driscoll@…> (07/11/17 09:59:44)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sascalc/corfunc/transform_thread.py
r457f735 r412c509 2 2 from sas.sascalc.dataloader.data_info import Data1D 3 3 from scipy.fftpack import dct 4 from scipy.integrate import simps, trapz 4 5 import numpy as np 5 6 from time import sleep 6 7 7 8 class FourierThread(CalcThread): 8 def __init__(self, raw_data, extrapolated_data, bg, updatefn=None,9 completefn=None):9 def __init__(self, raw_data, extrapolated_data, bg, extrap_fn=None, 10 updatefn=None, completefn=None): 10 11 CalcThread.__init__(self, updatefn=updatefn, completefn=completefn) 11 12 self.data = raw_data 12 13 self.background = bg 13 14 self.extrapolation = extrapolated_data 15 self.extrap_fn = extrap_fn 14 16 15 17 def compute(self): … … 19 21 background = self.background 20 22 23 xs = np.pi*np.arange(len(qs),dtype=np.float32)/(q[1]-q[0])/len(qs) 24 21 25 self.ready(delay=0.0) 22 self.update(msg=" Starting Fourier transform.")26 self.update(msg="Fourier transform in progress.") 23 27 self.ready(delay=0.0) 28 24 29 if self.isquit(): 25 30 return … … 27 32 gamma1 = dct((iqs-background)*qs**2) 28 33 gamma1 = gamma1 / gamma1.max() 29 except: 34 35 # gamma3(R) = 1/R int_{0}^{R} gamma1(x) dx 36 # simps uses simpson's rule to calculate the integral 37 gamma3 = [trapz(gamma1[:n], xs[:n])/xs[n-1] for n in range(1, len(xs+1))] 38 gamma3 = np.array(gamma3) 39 except Exception as e: 40 import logging 41 logger = logging.getLogger(__name__) 42 logger.error(e) 43 30 44 self.update(msg="Fourier transform failed.") 31 self.complete(transform =None)45 self.complete(transforms=None) 32 46 return 33 47 if self.isquit(): … … 35 49 self.update(msg="Fourier transform completed.") 36 50 37 xs = np.pi*np.arange(len(qs),dtype=np.float32)/(q[1]-q[0])/len(qs)38 51 transform1 = Data1D(xs, gamma1) 39 transform3 = Data1D( )52 transform3 = Data1D(xs, gamma3) 40 53 41 54 transforms = (transform1, transform3)
Note: See TracChangeset
for help on using the changeset viewer.