Add files via upload
Load *.dat files
This commit is contained in:
parent
4ccef4991e
commit
bd61c93ff9
147
pyzebra/load_dat.py
Normal file
147
pyzebra/load_dat.py
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
def load_dat(filepath):
|
||||||
|
|
||||||
|
"""
|
||||||
|
Loads *.dat file
|
||||||
|
to add more variables to read, extend the elif list
|
||||||
|
the file must include '#data' and number of points in right place to work properly
|
||||||
|
|
||||||
|
:arg filepath
|
||||||
|
:returns det_variables
|
||||||
|
- dictionary of all detector/scan variables and 6 columns of data - omega, counts, monitor 1/2/3, time
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
variables = 'value'
|
||||||
|
det_variables = {"variables": variables}
|
||||||
|
with open(filepath, 'r') as infile:
|
||||||
|
for line in infile:
|
||||||
|
if '=' in line:
|
||||||
|
variable, value = line.split('=')
|
||||||
|
variable = variable.strip()
|
||||||
|
if variable == 'instrument':
|
||||||
|
det_variables["instrument"] = str(value)[:-1].strip()
|
||||||
|
elif variable == 'title':
|
||||||
|
det_variables["title"] = str(value)[:-1].strip()
|
||||||
|
elif variable == 'sample':
|
||||||
|
det_variables["sample"] = str(value)[:-1]
|
||||||
|
elif variable == 'user':
|
||||||
|
det_variables["user"] = str(value)[:-1].strip()
|
||||||
|
elif variable == 'ProposalID':
|
||||||
|
det_variables["ProposalID"] = str(value)[:-1].strip()
|
||||||
|
elif variable == 'original_filename':
|
||||||
|
det_variables["original_filename"] = str(value)[:-1].strip()
|
||||||
|
elif variable == 'date':
|
||||||
|
det_variables["date"] = str(value)[:-1].strip()
|
||||||
|
elif variable == 'proposal':
|
||||||
|
det_variables["proposal"] = str(value)[:-1].strip()
|
||||||
|
elif variable == 'proposal_user':
|
||||||
|
det_variables["proposal_user"] = str(value)[:-1].strip()
|
||||||
|
elif variable == 'proposal_title':
|
||||||
|
det_variables["proposal_title"] = str(value)[:-1].strip()
|
||||||
|
elif variable == 'proposal_email':
|
||||||
|
det_variables["proposal_email"] = str(value)[:-1].strip()
|
||||||
|
elif variable == 'zebra_mode':
|
||||||
|
det_variables["zebra_mode"] = str(value)[:-1].strip()
|
||||||
|
# elif variable == 'omega':
|
||||||
|
# det_variables["omega"] = float(value)
|
||||||
|
elif variable == '2-theta':
|
||||||
|
det_variables["2-theta"] = float(value)
|
||||||
|
elif variable == 'chi':
|
||||||
|
det_variables["chi"] = float(value)
|
||||||
|
elif variable == 'phi':
|
||||||
|
det_variables["phi"] = float(value)
|
||||||
|
elif variable == 'nu':
|
||||||
|
det_variables["nu"] = float(value)
|
||||||
|
elif variable == 'temp':
|
||||||
|
det_variables["temp"] = float(value)
|
||||||
|
elif variable == 'mf':
|
||||||
|
det_variables["mf"] = float(value)
|
||||||
|
elif variable == 'wavelenght':
|
||||||
|
det_variables["wavelength"] = float(value)
|
||||||
|
elif variable == 'ub1j':
|
||||||
|
det_variables["ub1"] = re.findall(r"[-+]?\d*\.\d+|\d+", str(value))
|
||||||
|
elif variable == 'ub2j':
|
||||||
|
det_variables["ub2"] = re.findall(r"[-+]?\d*\.\d+|\d+", str(value))
|
||||||
|
elif variable == 'ub3j':
|
||||||
|
det_variables["ub3"] = re.findall(r"[-+]?\d*\.\d+|\d+", str(value))
|
||||||
|
elif variable == 'a':
|
||||||
|
det_variables["lattice_par_a"] = float(value)
|
||||||
|
elif variable == 'b':
|
||||||
|
det_variables["lattice_par_b"] = float(value)
|
||||||
|
elif variable == 'c':
|
||||||
|
det_variables["lattice_par_c"] = float(value)
|
||||||
|
elif variable == 'alpha':
|
||||||
|
det_variables["lattice_ang_alpha"] = float(value)
|
||||||
|
elif variable == 'beta':
|
||||||
|
det_variables["lattice_ang_beta"] = float(value)
|
||||||
|
elif variable == 'gamma':
|
||||||
|
det_variables["lattice_ang_gamma"] = float(value)
|
||||||
|
elif variable == 'cex1':
|
||||||
|
det_variables["cex1"] = float(value)
|
||||||
|
elif variable == 'cex2':
|
||||||
|
det_variables["cex2"] = float(value)
|
||||||
|
elif variable == 'mexz':
|
||||||
|
det_variables["mexz"] = float(value)
|
||||||
|
elif variable == 'moml':
|
||||||
|
det_variables["moml"] = float(value)
|
||||||
|
elif variable == 'mcvl':
|
||||||
|
det_variables["mcvl"] = float(value)
|
||||||
|
elif variable == 'momu':
|
||||||
|
det_variables["momu"] = float(value)
|
||||||
|
elif variable == 'mcvu':
|
||||||
|
det_variables["mcvu"] = float(value)
|
||||||
|
elif variable == 'detectorDistance':
|
||||||
|
det_variables["detectorDistance"] = str(value)
|
||||||
|
elif variable == 'snv':
|
||||||
|
det_variables["snv"] = float(value)
|
||||||
|
elif variable == 'snh':
|
||||||
|
det_variables["snh"] = float(value)
|
||||||
|
elif variable == 'snvm':
|
||||||
|
det_variables["snvm"] = float(value)
|
||||||
|
elif variable == 'snhm':
|
||||||
|
det_variables["snhm"] = float(value)
|
||||||
|
elif variable == 's1vt':
|
||||||
|
det_variables["s1vt"] = float(value)
|
||||||
|
elif variable == 's1vb':
|
||||||
|
det_variables["s1vb"] = float(value)
|
||||||
|
elif variable == 's1hr':
|
||||||
|
det_variables["s1hr"] = float(value)
|
||||||
|
elif variable == 's1hl':
|
||||||
|
det_variables["s1hl"] = float(value)
|
||||||
|
elif variable == 's2vt':
|
||||||
|
det_variables["s2vt"] = float(value)
|
||||||
|
elif variable == 's2vb':
|
||||||
|
det_variables["s1vb"] = float(value)
|
||||||
|
elif variable == 's2hr':
|
||||||
|
det_variables["s1hr"] = float(value)
|
||||||
|
elif variable == 's2hl':
|
||||||
|
det_variables["s2hl"] = float(value)
|
||||||
|
elif '#data' in line:
|
||||||
|
data = infile.readlines()
|
||||||
|
num_of_points = int(data[1].split()[0])
|
||||||
|
omega = []
|
||||||
|
counts = []
|
||||||
|
monitor1 = []
|
||||||
|
monitor2 = []
|
||||||
|
monitor3 = []
|
||||||
|
time = []
|
||||||
|
for position in range(num_of_points):
|
||||||
|
omega.append(float(data[position + 3].split()[1]))
|
||||||
|
counts.append(float(data[position + 3].split()[2]))
|
||||||
|
monitor1.append(float(data[position + 3].split()[3]))
|
||||||
|
monitor2.append(float(data[position + 3].split()[4]))
|
||||||
|
monitor3.append(float(data[position + 3].split()[5]))
|
||||||
|
time.append(float(data[position + 3].split()[6]))
|
||||||
|
|
||||||
|
det_variables["omega"] = omega
|
||||||
|
det_variables["counts"] = counts
|
||||||
|
det_variables["Monitor1"] = monitor1
|
||||||
|
det_variables["Monitor2"] = monitor2
|
||||||
|
det_variables["Monitor3"] = monitor3
|
||||||
|
det_variables["time"] = time
|
||||||
|
|
||||||
|
return det_variables
|
||||||
|
except IOError:
|
||||||
|
print("File not found or path is incorrect")
|
Loading…
x
Reference in New Issue
Block a user