changing default order of hdf works with node names and displays correct label (#310)
All checks were successful
Build AppImage / Explore-Gitea-Actions (push) Successful in 2m31s

Fix problem with incorrect selection of label and group of HDF files when using not default order

Co-authored-by: Dominik Demuth <dominik.demuth@physik.tu-darmstadt.de>
Reviewed-on: #310
This commit is contained in:
2025-06-03 17:53:48 +00:00
parent 47feebe22f
commit 5975c08fb2

View File

@ -302,15 +302,26 @@ class HdfReader(HdfNode):
def make_signal(self, node, flag: str = 'fid', value: str = None, group: str = None):
if value is None:
data_name = node.name
value = self._get_parameter_values(node, node.parameter)
else:
try:
data_name = f"{value}={node.parameter[value]}"
value = node.parameter[value]
except KeyError:
print(node.title_parameter)
try:
value = node.title_parameter[1][value]
temp = node
while value != temp.title_parameter[0][0]:
if temp.parent is None:
break
temp = temp.parent
value = temp.title_parameter[0][1]
data_name = temp.name
except KeyError:
print(f'{value} is not a valid key for {node.name}')
data_name = node.name
value = None
if group is None:
@ -343,11 +354,11 @@ class HdfReader(HdfNode):
dw = float(index['dwelltime'])
if flag == 'fid':
x = np.arange(len(y)) * dw
ret = FID(x, y, name=node.name, value=value, group=group, filename=self.file.filename)
ret = FID(x, y, name=data_name, value=value, group=group, filename=self.file.filename)
elif flag == 'spectrum':
x = np.linspace(-1/dw, 1/dw, num=len(y))
ret = Spectrum(x, y, name=node.name, value=value, group=group, filename=self.file.filename)
ret = Spectrum(x, y, name=data_name, value=value, group=group, filename=self.file.filename)
else:
raise ValueError(f'{flag} unknown, use `fid` or `spectrum`.')