- Timestamp:
- Oct 10, 2016 4:32:09 PM (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:
- 392056d
- Parents:
- 51a4d78
- Location:
- src/sas
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sascalc/data_util/qsmearing.py
rf7bc948 r1fac6c0 13 13 import logging 14 14 import sys 15 import sasmodels.sesans15 from sasmodels import sesans 16 16 17 17 from sasmodels.resolution import Slit1D, Pinhole1D, SESANS1D … … 50 50 # Look for resolution smearing data 51 51 _found_sesans = False 52 if data.dx is not None and data. lam is not None:52 if data.dx is not None and data.meta_data['loader']=='SESANS': 53 53 if data.dx[0] > 0.0: 54 54 _found_sesans = True … … 101 101 self.model = model 102 102 self.resolution = resolution 103 self.offset = numpy.searchsorted(self.resolution.q_calc, self.resolution.q[0]) 103 if hasattr(self.resolution, 'data'): 104 if self.resolution.data.meta_data['loader'] == 'SESANS': 105 self.offset = 0 106 # This is default behaviour, for future resolution/transform functions this needs to be revisited. 107 else: 108 self.offset = numpy.searchsorted(self.resolution.q_calc, self.resolution.q[0]) 109 else: 110 self.offset = numpy.searchsorted(self.resolution.q_calc, self.resolution.q[0]) 111 112 #self.offset = numpy.searchsorted(self.resolution.q_calc, self.resolution.q[0]) 104 113 105 114 def apply(self, iq_in, first_bin=0, last_bin=None): … … 135 144 q[first:last+1]. 136 145 """ 146 137 147 q = self.resolution.q 138 148 first = numpy.searchsorted(q, q_min) … … 158 168 #Here assume a number 159 169 Rmax = 50000 160 q_calc = sesans.make_q(data.sample.z , Rmax)170 q_calc = sesans.make_q(data.sample.zacceptance, Rmax) 161 171 return PySmear(SESANS1D(data,q_calc),model) -
src/sas/sascalc/dataloader/data_info.py
r51a4d78 r1fac6c0 25 25 import numpy 26 26 import math 27 28 27 class plottable_1D(object): 29 28 """ … … 696 695 1D data class 697 696 """ 698 if plottable_1D.lam is None: # This means it's SANS data! 699 x_unit = '1/A' 700 y_unit = '1/cm' 701 elif plottable_1D.lam is not None: # This means it's SESANS data! 702 x_unit = 'A' 703 y_unit = 'pol' 704 else: # and if it's neither, you get punished! 705 raise(TypeError,'This is neither SANS nor SESANS data, what the hell are you doing??') 706 707 def __init__(self, x=None, y=None, dx=None, dy=None, lam=None, dlam=None): 697 #if plottable_1D.lam is None: # This means it's SANS data! 698 # x_unit = '1/A' 699 # y_unit = '1/cm' 700 #elif plottable_1D.lam is not None: # This means it's SESANS data! 701 # x_unit = 'A' 702 # y_unit = 'pol' 703 #else: # and if it's neither, you get punished! 704 # raise(TypeError,'This is neither SANS nor SESANS data, what the hell are you doing??') 705 706 def __init__(self, x=None, y=None, dx=None, dy=None, lam=None, dlam=None, isSesans=False): 707 self.isSesans = isSesans 708 708 DataInfo.__init__(self) 709 709 plottable_1D.__init__(self, x, y, dx, dy,None, None, lam, dlam) 710 if self.lam is None: # This means the lam param was not detected in the data: it's SANS data! 710 if self.isSesans: 711 x_unit = 'A' 712 y_unit = 'pol' 713 elif not self.isSesans: # it's SANS data! (Could also be simple else statement, but i prefer exhaustive conditionals...-JHB) 711 714 x_unit = '1/A' 712 715 y_unit = '1/cm' 713 elif self.lam is not None: # This means lam was detected (should be an empty ndarray): it's SESANS data!714 x_unit = 'A'715 y_unit = 'pol'716 716 else: # and if it's neither, you get punished! 717 717 raise(TypeError,'This is neither SANS nor SESANS data, what the hell are you doing??') -
src/sas/sascalc/dataloader/readers/sesans_reader.py
r1b82623 r1fac6c0 84 84 tdx = numpy.zeros(0) 85 85 # print "all good" 86 output = Data1D(x=x, y=y, lam=lam, dy=dy, dx=dx, dlam=dlam )86 output = Data1D(x=x, y=y, lam=lam, dy=dy, dx=dx, dlam=dlam, isSesans=True ) 87 87 # print output 88 88 self.filename = output.filename = basename … … 121 121 paramvals.append(toks[1]) 122 122 if len(toks)>5: 123 #zvals.append(toks[0]) 124 #dzvals.append(toks[1]) 125 #lamvals.append(toks[2]) 126 #dlamvals.append(toks[3]) 127 #Pvals.append(toks[4]) 128 #dPvals.append(toks[5]) 129 123 130 zvals.append(toks[0]) 124 dzvals.append(toks[ 1])125 lamvals.append(toks[ 2])126 dlamvals.append(toks[ 3])127 Pvals.append(toks[ 4])128 dPvals.append(toks[ 5])131 dzvals.append(toks[3]) 132 lamvals.append(toks[4]) 133 dlamvals.append(toks[5]) 134 Pvals.append(toks[1]) 135 dPvals.append(toks[2]) 129 136 else: 130 137 continue … … 140 147 default_z_unit = "A" 141 148 data_conv_P = None 142 default_p_unit = " " 149 default_p_unit = " " # Adjust unit for axis (L^-3) 143 150 lam_unit = lam_header[1].replace("[","").replace("]","") 151 if lam_unit == 'AA': 152 lam_unit = 'A' 144 153 varheader=[zvals[0],dzvals[0],lamvals[0],dlamvals[0],Pvals[0],dPvals[0]] 145 154 valrange=range(1, len(zvals)) … … 161 170 output.x, output.x_unit = self._unit_conversion(x, lam_unit, default_z_unit) 162 171 output.y = y 172 output.y_unit = 'pol' # output y_unit erbij 163 173 output.dx, output.dx_unit = self._unit_conversion(dx, lam_unit, default_z_unit) 164 174 output.dy = dy … … 166 176 output.dlam, output.dlam_unit = self._unit_conversion(dlam, lam_unit, default_z_unit) 167 177 168 output.xaxis("\ rm{z}", output.x_unit)169 output.yaxis("\\rm{P/P0}", output.y_unit) 178 output.xaxis("\\rm{z}", output.x_unit) 179 output.yaxis("\\rm{P/P0}", output.y_unit) # Adjust label to ln P/(lam^2 t), remove lam column refs 170 180 # Store loading process information 171 181 output.meta_data['loader'] = self.type_name 172 output.sample.thickness = float(paramvals[6])182 #output.sample.thickness = float(paramvals[6]) 173 183 output.sample.name = paramvals[1] 174 184 output.sample.ID = paramvals[0] 175 185 zaccept_unit_split = paramnames[7].split("[") 176 186 zaccept_unit = zaccept_unit_split[1].replace("]","") 177 if zaccept_unit.strip() == '\AA^-1' :187 if zaccept_unit.strip() == '\AA^-1' or zaccept_unit.strip() == '\A^-1': 178 188 zaccept_unit = "1/A" 179 189 output.sample.zacceptance=(float(paramvals[7]),zaccept_unit) -
src/sas/sasgui/guiframe/dataFitting.py
r51a4d78 r1fac6c0 17 17 """ 18 18 """ 19 def __init__(self, x=None, y=None, dx=None, dy=None, lam=None, dlam=None ):19 def __init__(self, x=None, y=None, dx=None, dy=None, lam=None, dlam=None, isSesans=False): 20 20 """ 21 21 """ … … 24 24 if y is None: 25 25 y = [] 26 PlotData1D.__init__(self, x, y, lam, dx, dy, dlam) 27 LoadData1D.__init__(self, x, y, lam, dx, dy, dlam) 26 self.isSesans = isSesans 27 PlotData1D.__init__(self, x, y, dx, dy, lam, dlam) 28 LoadData1D.__init__(self, x, y, dx, dy, lam, dlam, isSesans) 28 29 self.id = None 29 30 self.list_group_id = [] -
src/sas/sasgui/guiframe/data_manager.py
rd85c194 r1fac6c0 62 62 if issubclass(Data2D, data.__class__): 63 63 new_plot = Data2D(image=None, err_image=None) 64 else: 65 new_plot = Data1D(x=[], y=[], dx=None, dy=None) 64 elif data.meta_data['loader'] == 'SESANS': 65 new_plot = Data1D(x=[], y=[], dx=None, dy=None, lam=None, dlam=None, isSesans=True) 66 else: 67 new_plot = Data1D(x=[], y=[], dx=None, dy=None, lam=None, dlam=None) #SESANS check??? 66 68 67 69 new_plot.copy_from_datainfo(data) -
src/sas/sasgui/plottools/plottables.py
r7988501 r1fac6c0 1022 1022 """ 1023 1023 1024 def __init__(self, x, y, lam=None, dx=None, dy=None, dlam=None):1024 def __init__(self, x, y, dx=None, dy=None, lam=None, dlam=None): 1025 1025 """ 1026 1026 Draw points specified by x[i],y[i] in the current color/symbol.
Note: See TracChangeset
for help on using the changeset viewer.