few more functions: strToTime and pyfai shorthands
This commit is contained in:
		
							parent
							
								
									bc708b4200
								
							
						
					
					
						commit
						518fc6175e
					
				
							
								
								
									
										45
									
								
								mcutils.py
								
								
								
								
							
							
						
						
									
										45
									
								
								mcutils.py
								
								
								
								
							| 
						 | 
					@ -469,6 +469,19 @@ def bytesToHuman(bytes,units="auto",fmt="%.2f %s"):
 | 
				
			||||||
  value = bytes/1024**u
 | 
					  value = bytes/1024**u
 | 
				
			||||||
  return fmt % (value,units)
 | 
					  return fmt % (value,units)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def strToTime(s):
 | 
				
			||||||
 | 
					  """ convert 3us in 3e-6, ... """
 | 
				
			||||||
 | 
					  v = float(s[:-2])
 | 
				
			||||||
 | 
					  u = s[-2:]
 | 
				
			||||||
 | 
					  if (u=="ps"):
 | 
				
			||||||
 | 
					    v*=1e-12
 | 
				
			||||||
 | 
					  elif (u=="ns"):
 | 
				
			||||||
 | 
					    v*=1e-9
 | 
				
			||||||
 | 
					  elif (u=="us"):
 | 
				
			||||||
 | 
					    v*=1e-6
 | 
				
			||||||
 | 
					  else:
 | 
				
			||||||
 | 
					    pass
 | 
				
			||||||
 | 
					  return v
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def memAvailable(asHuman=True):
 | 
					def memAvailable(asHuman=True):
 | 
				
			||||||
  import psutil
 | 
					  import psutil
 | 
				
			||||||
| 
						 | 
					@ -1207,6 +1220,38 @@ def insertInSortedArray(a,v):
 | 
				
			||||||
  a[idx]=v
 | 
					  a[idx]=v
 | 
				
			||||||
  return a
 | 
					  return a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def pyFAI1d(ai, imgs, mask = None, npt_radial = 600, method = 'csr',safe=True,dark=10., polCorr = 1):
 | 
				
			||||||
 | 
					    """ ai is a pyFAI azimuthal intagrator 
 | 
				
			||||||
 | 
					              it can be defined with pyFAI.load(ponifile)
 | 
				
			||||||
 | 
					        mask: True are points to be masked out """
 | 
				
			||||||
 | 
					    # force float to be sure of type casting for img
 | 
				
			||||||
 | 
					    if isinstance(dark,int): dark = float(dark);
 | 
				
			||||||
 | 
					    if imgs.ndim == 2: imgs = (imgs,)
 | 
				
			||||||
 | 
					    out_i = np.empty( ( len(imgs), npt_radial) )
 | 
				
			||||||
 | 
					    out_s = np.empty( ( len(imgs), npt_radial) )
 | 
				
			||||||
 | 
					    for _i,img in enumerate(imgs):
 | 
				
			||||||
 | 
					      q,i, sig = ai.integrate1d(img-dark, npt_radial, mask= mask, safe = safe,\
 | 
				
			||||||
 | 
					                 unit="q_A^-1", method = method, error_model = "poisson",
 | 
				
			||||||
 | 
					                 polarization_factor = polCorr)
 | 
				
			||||||
 | 
					      out_i[_i] = i
 | 
				
			||||||
 | 
					      out_s[_i] = sig
 | 
				
			||||||
 | 
					    return q,np.squeeze(out_i),np.squeeze(out_s)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def pyFAI2d(ai, imgs, mask = None, npt_radial = 600, npt_azim=360,method = 'csr',safe=True,dark=10., polCorr = 1):
 | 
				
			||||||
 | 
					    """ ai is a pyFAI azimuthal intagrator 
 | 
				
			||||||
 | 
					              it can be defined with pyFAI.load(ponifile)
 | 
				
			||||||
 | 
					        mask: True are points to be masked out """
 | 
				
			||||||
 | 
					    # force float to be sure of type casting for img
 | 
				
			||||||
 | 
					    if isinstance(dark,int): dark = float(dark);
 | 
				
			||||||
 | 
					    if imgs.ndim == 2: imgs = (imgs,)
 | 
				
			||||||
 | 
					    out = np.empty( ( len(imgs), npt_azim,npt_radial) )
 | 
				
			||||||
 | 
					    for _i,img in enumerate(imgs):
 | 
				
			||||||
 | 
					      i2d,q,azTheta = ai.integrate2d(img-dark, npt_radial, npt_azim=npt_azim,
 | 
				
			||||||
 | 
					                      mask= mask, safe = safe,unit="q_A^-1", method = method,
 | 
				
			||||||
 | 
					                      polarization_factor = polCorr )
 | 
				
			||||||
 | 
					      out[_i] = i2d
 | 
				
			||||||
 | 
					    return q,azTheta,np.squeeze(out)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Objects ###
 | 
					### Objects ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue