Changeset ea75043 in sasmodels for sasmodels/direct_model.py
- Timestamp:
- Mar 29, 2016 6:22:13 PM (8 years ago)
- Branches:
- master, core_shell_microgels, costrafo411, magnetic_model, release_v0.94, release_v0.95, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
- Children:
- d6f5da6
- Parents:
- 1d61d07
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/direct_model.py
r02e70ff rea75043 63 63 elif hasattr(data, 'qx_data'): 64 64 self.data_type = 'Iqxy' 65 elif getattr(data, 'oriented', False): 66 self.data_type = 'Iq-oriented' 65 67 else: 66 68 self.data_type = 'Iq' … … 116 118 and getattr(data, 'dxw', None) is not None): 117 119 res = resolution.Slit1D(data.x[index], 118 width=data.dxh[index],119 height=data.dxw[index])120 qx_width=data.dxw[index], 121 qy_width=data.dxl[index]) 120 122 else: 121 123 res = resolution.Perfect1D(data.x[index]) … … 123 125 #self._theory = np.zeros_like(self.Iq) 124 126 q_vectors = [res.q_calc] 127 q_mono = [] 128 elif self.data_type == 'Iq-oriented': 129 index = (data.x >= data.qmin) & (data.x <= data.qmax) 130 if data.y is not None: 131 index &= ~np.isnan(data.y) 132 Iq = data.y[index] 133 dIq = data.dy[index] 134 else: 135 Iq, dIq = None, None 136 if (getattr(data, 'dxl', None) is None 137 or getattr(data, 'dxw', None) is None): 138 raise ValueError("oriented sample with 1D data needs slit resolution") 139 140 res = resolution2d.Slit2D(data.x[index], 141 qx_width=data.dxw[index], 142 qy_width=data.dxl[index]) 143 q_vectors = res.q_calc 125 144 q_mono = [] 126 145 else: … … 142 161 y = Iq + np.random.randn(*dy.shape) * dy 143 162 self.Iq = y 144 if self.data_type == 'Iq':163 if self.data_type in ('Iq', 'Iq-oriented'): 145 164 self._data.dy[self.index] = dy 146 165 self._data.y[self.index] = y … … 155 174 if self._kernel is None: 156 175 self._kernel = make_kernel(self._model, self._kernel_inputs) # pylint: disable=attribute-dedata_type 157 self._kernel_mono = make_kernel(self._model, self._kernel_mono_inputs) if self._kernel_mono_inputs else None 176 self._kernel_mono = (make_kernel(self._model, self._kernel_mono_inputs) 177 if self._kernel_mono_inputs else None) 158 178 159 179 Iq_calc = call_kernel(self._kernel, pars, cutoff=cutoff) 160 Iq_mono = call_kernel(self._kernel_mono, pars, mono=True) if self._kernel_mono_inputs else None 180 # TODO: may want to plot the raw Iq for other than oriented usans 181 self.Iq_calc = None 161 182 if self.data_type == 'sesans': 183 Iq_mono = (call_kernel(self._kernel_mono, pars, mono=True) 184 if self._kernel_mono_inputs else None) 162 185 result = sesans.transform(self._data, 163 186 self._kernel_inputs[0], Iq_calc, … … 165 188 else: 166 189 result = self.resolution.apply(Iq_calc) 190 if hasattr(self.resolution, 'nx'): 191 self.Iq_calc = ( 192 self.resolution.qx_calc, self.resolution.qy_calc, 193 np.reshape(Iq_calc, (self.resolution.ny, self.resolution.nx)) 194 ) 167 195 return result 168 196
Note: See TracChangeset
for help on using the changeset viewer.