added id9 log file parser
This commit is contained in:
parent
18430895ad
commit
d17b9caa7f
|
@ -4,6 +4,7 @@ from . import mask
|
||||||
from . import peaks
|
from . import peaks
|
||||||
from . import cell
|
from . import cell
|
||||||
from . import filters
|
from . import filters
|
||||||
|
from . import id9
|
||||||
try:
|
try:
|
||||||
from . import azav
|
from . import azav
|
||||||
except ImportError:
|
except ImportError:
|
||||||
|
|
43
xray/id9.py
43
xray/id9.py
|
@ -48,6 +48,49 @@ def readDelayFromDiagnostic(fname):
|
||||||
delays = np.round(delays.astype(float),12)
|
delays = np.round(delays.astype(float),12)
|
||||||
return collections.OrderedDict( zip(files,delays) )
|
return collections.OrderedDict( zip(files,delays) )
|
||||||
|
|
||||||
|
def _findDark(line):
|
||||||
|
_,value = line.split(":")
|
||||||
|
return float(value)
|
||||||
|
|
||||||
|
def _delayToNum(delay):
|
||||||
|
if delay.decode('ascii') == 'off':
|
||||||
|
delay = -10
|
||||||
|
else:
|
||||||
|
delay=utils.strToTime(delay)
|
||||||
|
return delay
|
||||||
|
|
||||||
|
def findLogFile(folder):
|
||||||
|
files = utils.getFiles(folder,basename='*.log')
|
||||||
|
files.remove(os.path.join(folder,"diagnostics.log"))
|
||||||
|
logfile = files[0]
|
||||||
|
if len(files)>1: log.warn("Found more than one *.log file that is not diagnostics.log: %s"%files)
|
||||||
|
return logfile
|
||||||
|
|
||||||
|
def readLogFile(fnameOrFolder,subtractDark=False):
|
||||||
|
""" read id9 style logfile """
|
||||||
|
if os.path.isdir(fnameOrFolder):
|
||||||
|
fname = findLogFile(fnameOrFolder)
|
||||||
|
else:
|
||||||
|
fname = fnameOrFolder
|
||||||
|
f = open(fname,"r")
|
||||||
|
lines = f.readlines()
|
||||||
|
f.close()
|
||||||
|
lines = [line.strip() for line in lines]
|
||||||
|
darks = {}
|
||||||
|
for line in lines:
|
||||||
|
if line.find("pd1 dark/sec")>=0: darks['pd1ic'] = _findDark(line)
|
||||||
|
if line.find("pd2 dark/sec")>=0: darks['pd2ic'] = _findDark(line)
|
||||||
|
if line.find("pd3 dark/sec")>=0: darks['pd3ic'] = _findDark(line)
|
||||||
|
if line.find("pd4 dark/sec")>=0: darks['pd4ic'] = _findDark(line)
|
||||||
|
for iline,line in enumerate(lines):
|
||||||
|
if line.lstrip()[0] != "#": break
|
||||||
|
data=np.genfromtxt(fname,skip_header=iline-1,names=True,comments="%",dtype=None,converters = {'delay': lambda s: _delayToNum(s)})
|
||||||
|
if subtractDark:
|
||||||
|
for diode in ['pd1ic','pd2ic','pd3ic','pd4ic']:
|
||||||
|
if diode in darks: data[diode]=data[diode]-darks[diode]*data['timeic']
|
||||||
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def doFolder_azav(folder,nQ=1500,files='*.edf*',force=False,mask=None,
|
def doFolder_azav(folder,nQ=1500,files='*.edf*',force=False,mask=None,
|
||||||
saveChi=True,poni='pyfai.poni',storageFile='auto',dark=9.9,zingerFilter=30,qlims=(0,10),
|
saveChi=True,poni='pyfai.poni',storageFile='auto',dark=9.9,zingerFilter=30,qlims=(0,10),
|
||||||
|
|
Loading…
Reference in New Issue