def saxs_to_pif_properties(self,q_I,T_C): #props = [] #for i in range(len(q)): pq = pifobj.Property() n_qpoints = q_I.shape[0] ### property: scattered intensity pI = pifobj.Property() pI.name = 'SAXS intensity' pI.scalars = [pifobj.Scalar(q_I[i,1]) for i in range(n_qpoints)] pI.units = 'counts' pI.conditions = [] pI.conditions.append( pifobj.Value('SAXS scattering vector', [pifobj.Scalar(q_I[i,0]) for i in range(n_qpoints)], None,None,'1/Angstrom') ) pI.conditions.append(pifobj.Value('temperature',[pifobj.Scalar(T_C)],None,None,'degrees Celsius')) return [pq,pI]
def feature_property(self, fval, fname, funits=''): pf = pifobj.Property() pf.name = fname pf.scalars = [pifobj.Scalar(fval)] if funits: pf.units = funits return pf
def q_I_property(self, q_I): pI = pifobj.Property() n_qpoints = q_I.shape[0] pI.scalars = [pifobj.Scalar(q_I[i, 1]) for i in range(n_qpoints)] pI.units = 'counts' pI.conditions = [] pI.conditions.append( pifobj.Value('scattering vector', [pifobj.Scalar(q_I[i, 0]) for i in range(n_qpoints)], None, None, None, '1/Angstrom')) return pI
def time_feature_property(self, t_f, fname, funits=''): pf = pifobj.Property() pf.name = fname npts = t_f.shape[0] pf.scalars = [pifobj.Scalar(t_f[i, 1]) for i in range(npts)] if funits: pf.units = funits pf.conditions = [] pf.conditions.append( pifobj.Value('reaction time', [pifobj.Scalar(t_f[i, 0]) for i in range(npts)], None, None, None, 'seconds')) return pf
def scalar_property(fname, fval, desc=None, data_type=None, funits=None): pf = pifobj.Property() pf.name = fname if isinstance(fval, list): pf.scalars = [pifobj.Scalar(v) for v in fval] else: pf.scalars = [pifobj.Scalar(fval)] if desc: pf.tags = [desc] if data_type: pf.dataType = data_type if funits: pf.units = funits return pf
def q_I_property(q_I, qunits='1/Angstrom', Iunits='arb', propname='SAXS intensity'): pI = pifobj.Property() n_qpoints = q_I.shape[0] pI.scalars = [pifobj.Scalar(q_I[i, 1]) for i in range(n_qpoints)] pI.units = Iunits pI.conditions = [] pI.conditions.append( pifobj.Value('scattering vector', [pifobj.Scalar(q_I[i, 0]) for i in range(n_qpoints)], None, None, None, qunits)) pI.name = propname return pI