Changeset 2cdc35b in sasmodels for sasmodels/direct_model.py
- Timestamp:
- Apr 11, 2017 11:44:18 AM (7 years ago)
- Branches:
- costrafo411
- Children:
- 2f9f1ec
- Parents:
- 7c1cce3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/direct_model.py
ra769b54 r2cdc35b 202 202 203 203 if self.data_type == 'sesans': 204 q = sesans.make_q(data.sample.zacceptance, data.Rmax) 205 index = slice(None, None) 206 res = None 207 if data.y is not None: 208 Iq, dIq = data.y, data.dy 204 from sas.sascalc.data_util.nxsunit import Converter 205 qmax, qunits = data.sample.zacceptance 206 SElength = Converter(data._xunit)(data.x, "A") 207 zaccept = Converter(qunits)(qmax, "1/A"), 208 Rmax = 10000000 209 index = slice(None, None) # equivalent to index [:] 210 Iq = data.y[index] 211 dIq = data.dy[index] 212 oriented = getattr(data, 'oriented', False) 213 if oriented: 214 res = sesans.OrientedSesansTransform(data.x[index], SElength, zaccept, Rmax) 215 # Oriented sesans transform produces q_calc = [qx, qy] 216 q_vectors = res.q_calc 209 217 else: 210 Iq, dIq = None, None 211 #self._theory = np.zeros_like(q) 212 q_vectors = [q] 213 q_mono = sesans.make_all_q(data) 218 res = sesans.SesansTransform(data.x[index], SElength, zaccept, Rmax) 219 # Unoriented sesans transform produces q_calc = q 220 q_vectors = [res.q_calc] 214 221 elif self.data_type == 'Iqxy': 215 222 #if not model.info.parameters.has_2d: … … 230 237 #self._theory = np.zeros_like(self.Iq) 231 238 q_vectors = res.q_calc 232 q_mono = []233 239 elif self.data_type == 'Iq': 234 240 index = (data.x >= data.qmin) & (data.x <= data.qmax) … … 255 261 #self._theory = np.zeros_like(self.Iq) 256 262 q_vectors = [res.q_calc] 257 q_mono = []258 263 elif self.data_type == 'Iq-oriented': 259 264 index = (data.x >= data.qmin) & (data.x <= data.qmax) … … 272 277 qy_width=data.dxl[index]) 273 278 q_vectors = res.q_calc 274 q_mono = []275 279 else: 276 280 raise ValueError("Unknown data type") # never gets here … … 279 283 # so we can save/restore state 280 284 self._kernel_inputs = q_vectors 281 self._kernel_mono_inputs = q_mono282 285 self._kernel = None 283 286 self.Iq, self.dIq, self.index = Iq, dIq, index … … 306 309 if self._kernel is None: 307 310 self._kernel = self._model.make_kernel(self._kernel_inputs) 308 self._kernel_mono = (309 self._model.make_kernel(self._kernel_mono_inputs)310 if self._kernel_mono_inputs else None)311 311 312 312 Iq_calc = call_kernel(self._kernel, pars, cutoff=cutoff) … … 316 316 # TODO: refactor so we don't store the result in the model 317 317 self.Iq_calc = None 318 if self.data_type == 'sesans': 319 Iq_mono = (call_kernel(self._kernel_mono, pars, mono=True) 320 if self._kernel_mono_inputs else None) 321 result = sesans.transform(self._data, 322 self._kernel_inputs[0], Iq_calc, 323 self._kernel_mono_inputs, Iq_mono) 324 else: 325 result = self.resolution.apply(Iq_calc) 326 if hasattr(self.resolution, 'nx'): 327 self.Iq_calc = ( 328 self.resolution.qx_calc, self.resolution.qy_calc, 329 np.reshape(Iq_calc, (self.resolution.ny, self.resolution.nx)) 330 ) 318 result = self.resolution.apply(Iq_calc) 319 if hasattr(self.resolution, 'nx'): 320 self.Iq_calc = ( 321 self.resolution.qx_calc, self.resolution.qy_calc, 322 np.reshape(Iq_calc, (self.resolution.ny, self.resolution.nx)) 323 ) 331 324 return result 332 325
Note: See TracChangeset
for help on using the changeset viewer.