Save variable_name, fix dat file monitor reading

This commit is contained in:
usov_i 2021-02-09 16:08:49 +01:00
parent 91d3a0ac9e
commit 97936d6c2a

View File

@ -1,4 +1,5 @@
import os
import re
from collections import defaultdict
import numpy as np
@ -72,7 +73,7 @@ CCL_SECOND_LINE = (
("mf", float),
("date", str),
("time", str),
("scan_type", str),
("variable_name", str),
)
AREA_METHODS = ("fit_area", "int_area")
@ -158,12 +159,18 @@ def parse_1D(fileobj, data_type):
scan.append({**metadata, **s})
elif data_type == ".dat":
# skip the first 2 rows, the third row contans the column names
next(fileobj)
next(fileobj)
col_names = next(fileobj).split()
s = defaultdict(list)
match = re.search('Scanning Variables: (.*), Steps: (.*)', next(fileobj))
s["variable_name"] = match.group(1)
match = re.search('(.*) Points, Mode: (.*), Preset (.*)', next(fileobj))
if match.group(2) != "Monitor":
raise Exception("Unknown mode in dat file.")
s["monitor"] = float(match.group(3))
col_names = next(fileobj).split()
for line in fileobj:
if "END-OF-DATA" in line:
# this is the end of data
@ -177,15 +184,10 @@ def parse_1D(fileobj, data_type):
s["h"] = s["k"] = s["l"] = float("nan")
s["om"] = np.array(s["om"])
for param in ("mf", "temp"):
if param not in metadata:
s[param] = 0
s["n_points"] = len(s["om"])
s["monitor"] = s["Monitor1"][0]
s["idx"] = 1
scan.append({**metadata, **s})