Changeset 5156918 in sasview for src/sas/sascalc/data_util
- Timestamp:
- Mar 31, 2017 5:20:15 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.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- 7b15990
- Parents:
- 1a8e13f0 (diff), 7cbbacd (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. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sascalc/data_util/qsmearing.py
rd3911e3 r775e0b7 14 14 import sys 15 15 16 import numpy as np # type: ignore 17 from numpy import pi, exp # type:ignore 18 16 19 from sasmodels.resolution import Slit1D, Pinhole1D 20 from sasmodels.sesans import SesansTransform 17 21 from sasmodels.resolution2d import Pinhole2D 22 from .nxsunit import Converter 18 23 19 24 def smear_selection(data, model = None): … … 36 41 # Sanity check. If we are not dealing with a SAS Data1D 37 42 # object, just return None 43 # This checks for 2D data (does not throw exception because fail is common) 38 44 if data.__class__.__name__ not in ['Data1D', 'Theory1D']: 39 45 if data == None: … … 41 47 elif data.dqx_data == None or data.dqy_data == None: 42 48 return None 43 return PySmear2D(data , model)44 49 return PySmear2D(data) 50 # This checks for 1D data with smearing info in the data itself (again, fail is likely; no exceptions) 45 51 if not hasattr(data, "dx") and not hasattr(data, "dxl")\ 46 52 and not hasattr(data, "dxw"): … … 48 54 49 55 # Look for resolution smearing data 56 # This is the code that checks for SESANS data; it looks for the file loader 57 # TODO: change other sanity checks to check for file loader instead of data structure? 58 _found_sesans = False 59 #if data.dx is not None and data.meta_data['loader']=='SESANS': 60 if data.dx is not None and data.isSesans: 61 #if data.dx[0] > 0.0: 62 if numpy.size(data.dx[data.dx <= 0]) == 0: 63 _found_sesans = True 64 # if data.dx[0] <= 0.0: 65 if numpy.size(data.dx[data.dx <= 0]) > 0: 66 raise ValueError('one or more of your dx values are negative, please check the data file!') 67 68 if _found_sesans == True: 69 #Pre-compute the Hankel matrix (H) 70 qmax, qunits = data.sample.zacceptance 71 SElength = Converter(data._xunit)(data.x, "A") 72 zaccept = Converter(qunits)(qmax, "1/A"), 73 Rmax = 10000000 74 hankel = SesansTransform(data.x, SElength, zaccept, Rmax) 75 # Then return the actual transform, as if it were a smearing function 76 return PySmear(hankel, model, offset=0) 77 50 78 _found_resolution = False 51 79 if data.dx is not None and len(data.dx) == len(data.x): … … 89 117 Wrapper for pure python sasmodels resolution functions. 90 118 """ 91 def __init__(self, resolution, model ):119 def __init__(self, resolution, model, offset=None): 92 120 self.model = model 93 121 self.resolution = resolution 94 self.offset = numpy.searchsorted(self.resolution.q_calc, self.resolution.q[0]) 122 if offset is None: 123 offset = numpy.searchsorted(self.resolution.q_calc, self.resolution.q[0]) 124 self.offset = offset 95 125 96 126 def apply(self, iq_in, first_bin=0, last_bin=None):
Note: See TracChangeset
for help on using the changeset viewer.