improved getAI now one can override parameters read from file, convenient for testing different settings
This commit is contained in:
parent
61c07dde55
commit
33bf3384db
18
xray/azav.py
18
xray/azav.py
|
@ -95,17 +95,17 @@ def do2d(ai, imgs, mask = None, npt_radial = 600, npt_azim=360,method = 'csr',sa
|
||||||
out[_i] = i2d
|
out[_i] = i2d
|
||||||
return q,azTheta,np.squeeze(out)
|
return q,azTheta,np.squeeze(out)
|
||||||
|
|
||||||
def getAI(poni,folder=None):
|
def getAI(poni=None,folder=None,**kwargs):
|
||||||
""" get AzimuthalIntegrator instance:
|
""" get AzimuthalIntegrator instance:
|
||||||
→ if poni is a dictionary use it to define one
|
→ if poni is a string, it is used as filename to read.
|
||||||
→ if poni is a string look, it is used as filename to read.
|
|
||||||
in this case if folder is given it is used (together with all its
|
in this case if folder is given it is used (together with all its
|
||||||
subfolder) as search path (along with ./ and home folder)
|
subfolder) as search path (along with ./ and home folder)
|
||||||
|
→ kwargs if present can be used to define (or override) parameters from files,
|
||||||
|
dist,xcen,ycen,poni1,poni2,rot1,rot2,rot3,pixel1,pixel2,splineFile,
|
||||||
|
detector,wavelength
|
||||||
"""
|
"""
|
||||||
if isinstance(poni,pyFAI.azimuthalIntegrator.AzimuthalIntegrator):
|
if isinstance(poni,pyFAI.azimuthalIntegrator.AzimuthalIntegrator):
|
||||||
ai = poni
|
ai = poni
|
||||||
elif isinstance(poni,dict):
|
|
||||||
ai = pyFAI.azimuthalIntegrator.AzimuthalIntegrator(**poni)
|
|
||||||
elif isinstance(poni,str):
|
elif isinstance(poni,str):
|
||||||
# look is file exists in cwd
|
# look is file exists in cwd
|
||||||
if os.path.isfile(poni):
|
if os.path.isfile(poni):
|
||||||
|
@ -130,6 +130,14 @@ def getAI(poni,folder=None):
|
||||||
else:
|
else:
|
||||||
log.debug("Could not poni file %s",fname)
|
log.debug("Could not poni file %s",fname)
|
||||||
ai = pyFAI.load(fname)
|
ai = pyFAI.load(fname)
|
||||||
|
else:
|
||||||
|
ai = pyFAI.azimuthalIntegrator.AzimuthalIntegrator()
|
||||||
|
for par,value in kwargs.items(): setattr(ai,par,value)
|
||||||
|
# provide xcen and ycen for convenience (note: xcen changes poni2
|
||||||
|
# and ycen changes poni1)
|
||||||
|
if 'xcen' in kwargs: ai.poni2 = kwargs['xcen'] * ai.pixel2
|
||||||
|
if 'ycen' in kwargs: ai.poni1 = kwargs['ycen'] * ai.pixel1
|
||||||
|
ai.reset(); # needed in case of overridden parameters
|
||||||
return ai
|
return ai
|
||||||
|
|
||||||
g_mask_str = re.compile("(\w)\s*(<|>)\s*(\d+)")
|
g_mask_str = re.compile("(\w)\s*(<|>)\s*(\d+)")
|
||||||
|
|
Loading…
Reference in New Issue